分享

【干货】大神教你如何OSPF配置?

 网络工程师老杨 2021-08-05

验证OSPF配置

有多种方式可以进行OSPF的验证,用于确定已经对它完成了适当地配置并能进行正常的运行,下面的章节将要介绍需要了解并能够完成有关OSPF配置的show命令。我们先从查看Corp路由器上的路由选择表开始。

好,我们先在路由器Corp上执行show ip route 命令,看一下这里是否有机会进行故障排除的演练:

路由器Corp显示,只在我们互联网络中找到2个动态的路由,表项所带的0表明它们是OSPF的内部路由(而C显然是那些直接相连的网络)。但是在这个路由选择表中带有s的行表示的是什么?

由此可以看出,与EIGRP不同,在这个小型的互联网络中,当我首次完成对路由器的配置时,它并没有正常地“工作”起来。下 面来查找下这个问题并将它修复。我们先从192.168.30.0 和40.0开始查起;到达这些网络的路由不应该被显示为静态的。让我们返回R2,看下那里进行的配置:

对192. 168.30.0和40.0的配置看起来是正确的,但是在第一行中对10.0.0.0 网络的配置中发现一个错误。你看出来了吗?那就是问题所在,我所使用的通配符告诉OSPF要严格匹配前3个八位位组中的内容,但是我又没有任何一个接口开始于10.0.0, 因此,这里需要重新进行网络的声明:

R2(config)#router ospf 45678

R2(config- router)#no network 10.0.0.0 0.0.0.255 area 0

R2( config- router )#network 10.1.4.0 0.0.0.255 area 0

于是,我取消了这个错误的声明,然后配置了一个正确的网络声明。下面我们再来看下Corp的路由选择表:

是的,好像是好些了...但是仍然可以发现那个神奇的172. 16.0.0网络夹杂在Corp路由选择表的输出中。查看下R3上的配置,看看是否存在有错误的配置:

router ospf 1

1og- adj acency- changes

network 10.1.5.1 0.0.0.0 area 0

network 172.16.10.0 0.0.0.255 area 0

这里有另一个错误的输人。看看使用OSPF多么简单?你发现我犯的错误了吗?输人show ip interface brief可以帮助你发现问题所在:

应该不难看出,这里的快速以太网接口的地址应该是10.1.5.2,而不是OSPF配置中的10.1.5.1。记住,在网络声明中永远使用直接连接的接口或网络地址,而不要使用远程路由器的网络地址。下面就是对这个问题的修复,以及应该进行的声明:

R3( config)#router ospf 1

R3(config-router)#no network 10.1.5.1 0.0.0.0 area 0

R3(config-router)#network 10.1.5.2 0.0.0.0 area 0

现在再来最后看下Corp上的路由选择表。现在一切都应该正常了:

现在就得到了一个看上去非常漂亮的OSPF路由选择表。能够发现并修复如示例所示的OSPF网络配置错误是非常重要的。使用OSPF时很容易犯一些小错误, 因此对一些小细 节要特别加以关注。下面就是必须掌握的所有有关OSPF的验证命令。

01.

show ip ospf命令

命令show ip ospf 用于显示运行在该路由器上的一个或全部OSPF进程的OSPF信息。这些信息包含路由器ID、区域信息、SPF统计和LSA定时器信息。让我们检验下Corp路由器的输出: 

注意,这个路由器ID (RID)是10.1.5.1,是这个路由器上所配置的最高IP地址。

02.

show ip ospf database命令

使用show ip ospf database命令将给出在互联网络中路由器的编号( AS),及相邻路由器的ID (也就是前面提到过的拓扑数据库)。与show ip eigrp topology 命令不同,这个命令只显示OSPF路由器,而不是AS中的全部链路,这点与EIGRP中的做法是不一样的。这一输出是根据区域进行分割的。下面是一个输出的示例,其内容还是来自Corp: 

这里能看到4个路由器和每个路由器的RID (即每个路由器上最高的IP地址)。路由器的输出还给出了链路ID和该链路上位于ADV路由器(即通告路由器)下的路由器RID,注意,接口也是链路。

03.

show ip ospf interface 命令

命令show ip ospf interface给出了所有与接口相关的OSPF信息。被显示的数据是关于所有启用OSPF的接口或指定接口的OSPF信息。(我将其中某些重要的内容加黑为粗体。)

由这个命令显示的信息包括以下内容:

  • 接口IP地址;

  • 区域分配;

  • 进程ID;

  • 路由器ID;

  • 网络类型;

  • 开销;

  • 优先级;

  • DR/BDR选举信息(如果可用);

  • Hello和Dead定时器间隔;

  • 邻接邻居信息。

我在这里使用show ip ospf interface f0/0命令,是因为我知道在Corp和R3路由器之间的快速以太网的广播多路访问网络上会进行指定路由器的选举。稍后我们就进人对DR和BDR的选举内容的学习中,而其他所加黑的信息也非常重要!

下面作为一个示例,输入show ip ospf interface 命令时会收到如下应答: .

Corp#sh ip ospf int f0/0

%OSPF: 0SPF not enabled on FastEthernet0/0

导致这一错误出现的原因是,路由器上启用了OSPF但没有在接口上进行相应的配置。你需要检查网络声明,因为你所尝试验证的这个接口没有出现在OSPF的进程中。

04.

show ip ospf nei ghbor命令

由于show ip ospf neighbor 命令汇总了OSPF信息中关于邻居和邻接状态的信息,因此这一命令超级有用。如果网络中存在DR或BDR,这些信息也将被显示出来。下面就是一个示例:

要知道这是一个超级重要的命令,因为它在对成品化网络的维护中特别实用。我们看下路由器R3上的输出:

由于在R3和Corp路由器间有一个以太网链接(广播多路访问),因此这里会由一个选举过程来决定谁是指定路由器( DR )以及谁是备份指定路由器( BDR )。我们可以看出R3成为了指定路由器,之所以赢得选举是因为它在这个网络上具有最高的IP地址。这是在默认情况下的结果,我们当然可以对此进行修改。

而在这个输出中,在Corp到R1、R2和R3的连接上却没有给出DR或BDR,导致这一情况的原因是在默认情况下,点到点链路上不会进行DR的选举,并且它们显示为FULL_。同时从路由器Corp的输出中不难看出,它和3个路由器是完全邻接的。

05.

show ip protocols 命令

不论在路由器上运行OSPF、EIGRP、IGRP、RIP、 BGP、IS-IS, 或者其他能配置在路由器上的路由选择协议,show ip protocols 命令都非常有用。它提供了一个关于所有当前运行协议的真实操作情况的精彩概述。

下面给出了Corp路由器上的输出:

从这里的输出中,可以确定此OSPF的进程ID、OSPF的路由器ID、OSPF的区域类型、在OSPF上配置的网络和区域,以及邻居OSPF的路由器ID等许多内容。仔细阅读,认真思考!你是否注意到,与我们前面在RIP中执行同一个命令相比,这里的输出缺少了有关定时器的内容?这是因为链路状态路由选择协议不像距离矢量路由选择算法那样,需要使用定时器才能保持网络的稳定运行。

06.

调试 OSPF

对任何协议而言,debug 都是一个很有力的分析工具,表9-4给出了些可以帮助OSPF排错的debug命令。

下面首先给出了在路由器Corp上运行debugipospfpacket命令的输出:

从上面的输出中我们可以看到该路由器正在接收来自邻居(邻接)路由器的Hello数据包。OSPF每10秒钟发送一次Hello数据包。

下一个使用的DEBUG命令是debug ip ospf adj,它将给出发生在广播和非广播多路访向网络上的选举,在下面的小节中,它是一个重要的命令。要得到有效的输出,需要先关闭R3.上的F0/O接口,然后再将它启用:

    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多