第八章 配置和优化OSPF协议.md

掌握OSPF协议的配置在协议的学习过程中是非常重要的,可以巩固对于所学知识的了解程度。本章介绍了OSPF协议的基本配置步骤,以及OSPF的维护调试命令,阐述了如何配置参数优化OSPF网络,包括配置OSPF网络类型、接口开销、定时器,并且讲解了如何在OSPF中引入缺省路由。

8.2 OSPF基本配置与显示

8.2.1 配置OSPF基本功能

image.png

路由器默认没有运行OSPF协议。如果需要使用OSPF协议,进行路由发现和选择,需要在路由器上进行配置。配置OSPF基本功能的步骤包括以下几部分:

  • 第一步:启动OSPF进程,并指定进程ID

如果没有指定ospf进程id,系统默认当前运行进程ID为1。


[H3C]ospf process-id

  • 第二步:配置OSPF区域进入OSPF区域视图

缺省情况下,没有配置OSPF区域。如果在单区域情况下,可以不配置骨干区域Area0;如果在多区域情况下配置区域,必须配置骨干区域Area0 。


[H3C-ospf-1]area area-id

  • 第三步:配置区域包含的网段并在指定接口上使能OSPF

[H3C-ospf-1-area-0.0.0.0]network 192.168.1.0 0.0.0.255

缺省情况下,接口不属于任何区域且OSPF功能处于关闭状态。一个网段只能属于一个区域,并且必须为每个运行OSPF协议的接口指明某一个特定的区域。在这个配置过程中,需要使用尽量精确的反掩码。

当在路由器上启动多个OSPF进程时,需要指定不同的进程号。OSPF进程号是本地概念,不影响与其它路由器之间的报文交换。因此,不同的路由器之间,即使进程号不同也可以进行报文交换。

在配置同一区域内的路由器时,大多数的配置数据都应该以区域为基础来统一考虑。错误的配置可能会导致相邻路由器之间无法相互传递信息,甚至导致路由信息的阻塞或者产生路由环路。例如,在配置OSPF区域的时候,如果两台邻居路由器错误地配置了不同的OSPF区域,就会导致邻居关系无法建立。

8.2.2 配置Router ID

image.png

一台路由器。Router ID可以由系统自动选择,也可以人为的手工配置。为保证OSPF运行的稳定性,在进行网络规划时应该确定路由器ID的划分并建议手工配置,以便在网络设计之初就明确了每台路由器对应的Router ID。手工配置路由器的ID时,必须保证自治系统中任意两台路由器的ID都不相同。通常的做法是将路由器的ID配置为与该路由器某个Loopback接口的IP地址一致。

手工配置Router ID的方法有两种:

  • 配置设备的Router ID。如果使用这种方法配置,这台路由器的所有路由协议的Router ID都被指定,
[H3C]router id 10.1.1.199

  • 配置OSPF协议的Router ID。如果使用这种配置方法,仅仅指定这台路由器上的OSPF协议的Router ID。一般情况下,推荐使用这种配置方法

[H3C]ospf 1router-id 10.1.1.199

8.2.3 OSPF单区域配置示例

image.png

如上图所示,RTA和RTB运行OSPF,并划分在同一区域内。

RTA使用loopback接口0的IP地址1.1.1.1作为Router ID,并且将接口加入OSPF的Area0。RTB使用loopback接口0的IP地址2.2.2.2作为Router ID,并且将接口加入OSPF的Area0。完成上述配置后,由于RTA的Ethernet0/0与RTB的Ethernet0/0共享同一条数据链路,并且在同一个网段内,故它们互为邻居。


[RTA]ospf 1 route-id 1.1.1.1

[RTA-osfp-1]area 0.0.0.0

[RTA-osfp-1]network 10.0.0.0 0.0.0.255


[RTB]ospf 1 route-id 2.2.2.2

[RTB-osfp-1]area 0.0.0.0

[RTB-osfp-1]network 10.0.0.0 0.0.0.255

8.2.4 OSPF 多区域配置示例

image.png

如上图所示,RTA、RTB和RTC运行OSPF,规划RTA和RTC属于不同的区域,RTB是区域边界路由器,负责在不同区域之间转发报文。

RTA、RTB和RTC使用loopback 接口地址作为Router ID。RTB作为ABR,在Area0内与RTA建立邻居,在Area1内与RTC建立邻居。RTA和RTC配置与单区域情况下相比没有变化,重点关注RTB的配置。

RTA配置如下:


[RTA]int loopback0

[RTA-loopback-0]ip address 1.1.1.1 24

[RTA]ospf 1 router-id 1.1.1.1

[RTA-ospf-1]area 0.0.0.0

[RTA-ospf-1]network 10.0.0.0 0.0.0.255 

[RTA-ospf-1]area 1.1.1.1 

[RTA-ospf-1]network 20.0.0.0 0.0.0.255 

RTB配置如下:


[RTB]int loopback0

[RTB-loopback-0]ip address 2.2.2.2 24 

[RTB]ospf 1 router-id 2.2.2.2

[RTB-ospf-1]area 0.0.00

[RTB-ospf-1]network 10.0.0.0 0.0.0.255 

[RTB-ospf-1] 

8.2.5 OSPF显示与调试

image.png

在完成OSPF协议相关配置后,在任意视图下执行display命令可以显示配置后OSPF的运行情况,通过查看显示信息验证配置的效果。

使用display ospf peer可以用来显示OSPF邻居信息。以下是输出示例:

image.png

从输出示例中可以看到本台路由器的Router ID是2.2.2.2。

输出命令中各参数描述如下表:

image.png

使用display ospf interface可以用来显示OSPF接口信息。以下是输出示例:

image.png

输出命令中各参数如下表:

image.png
image.png

使用display ospf routing可以用来显示OSPF路由信息。以下是输出示例:

image.png
image.png
image.png

使用display ip routing-table可以显示ip路由信息。以下是输出信息:

image.png

从输出示例中可以看出,1.1.1.1/32、3.3.3.3/32和10.0.1.1/32这3条路由都是通过OSPF协议学习而来的,其中OSPF协议的优先级为10,到达目的地的度量值为1。

image.png
image.png

下面列出了其他常用的OSPF显示命令。

image.png

image.png

在OSPF的维护过程中,有时候需要重置OSPF的进程或连接计数器。

在用户视图下执行reset命令可以复位OSPF计数器或连接,命令如下表所示。

image.png
image.png

除了上文介绍的显示和维护命令外,系统还提供丰富的调试命令,来显示OSPF协议动态过程。

如上图所示,RTA和RTB运行OSPF协议。在RTA上的用户视图下用debugging ospf event命令打开OSPF协议的事件调试信息开关,以下是输出示例:

image.png
image.png

经命令输出可以看到OSPF邻居间建立邻接关系的全过程。可以从中观察邻居状态从DOWN开始,经过Init、2-way、ExStart、Exchange、loading直到Full。

image.png

另外,OSPF协议还具有其它大量的调试命令,可以用来观察OSPF协议的链路状态调试信息、报文调试信息、OSPF路由计算调试信息以及进程调试信息等。

一般情况下,建议根据需要输入相应的调试命令,观察OSPF协议的报文交互。在正常状态时,不建议配置任何调试命令,以防止对于系统运行造成不必要的影响。

image.png

8.2 优化OSPF网络

8.3.1 配置OSPF网络类型

image.png

缺省情况下,OSPF根据接口的链路层协议来确定接口网络类型。在不同的网络类型下,OSPF工作机制会有所不同。可以根据链路层协议和网络拓扑来配置相应的网络类型。

在接口视图下,配置OSPF接口网络类型的命令如下:


[RTA-g1/0/1]ospf network-type {broacast | nbma | p2mp [unicast] | p2p [peer-address-check] }

在ATM、帧中继等NBMA网络中,如果任意两台路由器之间都有一条虚电路直接可达,那么可以把OSPF接口的网路类型配置为NBMA;否则,需要把OSPF接口的网络类型配置为P2MP;如果路由器在NBMA网络中只有一个对端,也可将接口类型改为P2P方式。

另外,在配置广播网络和NBMA网络时,还可以指定各接口的路由器优先级,以此来影响网络中的DR/BDR选择。一般情况下,应该选择性能和可靠性较高的路由器作为DR和BDR。

当网络类型为广播网或NBMA类型时,可以通过配置接口的路由器优先级来影响网络中DR/BDR的选择。默认的路由器优先级为1,可以根据需要将性能和可靠性较高的路由器优先级调整的较高。

在接口视图下,配置OSPF接口(如果是三层交换机则是在vlan接口,也就是三层接口下调整ospf相关参数)的路由器优先级的命令如下:


[RTA-g1/01]ospf dr-priority 4  #优先级大的优先选为DR

8.3.2 配置OSPF接口开销

image.png

OSPF路由以到达目的地址的开销作为度量值,而到达目的地的开销是路径上所有路由器接口开销之和。所以,通过配置路由器接口开销,可以改变OSPF路由开销,从而达到控制路由选路的目的。

配置ospf接口开销有两种方式:

  • 1.在接口视图下,配置ospf接口开销值。

ospf cost value

使用上述命令后,ospf协议仅对当前接口开销值进行修改。推荐使用此方式。

  • 2.在ospf视图下,配置ospf接口的参考带宽

bandwidth-reference value

使用上述命令后,OSPF协议会根据该接口的带宽自动计算其开销值,计算公式为:


接口开销=带宽参考值÷接口带宽

缺省情况下,带宽参考值为100M。意味着所有链路带宽大于100M的接口开销都被计算为1,不能反馈链路带宽的真实情况。所以,可以根据网络情况将参考带宽修改为1000M或者更大。推荐配置带宽参考值为网络中所有链路带宽中的最大值。

配置了OSPF参考带宽之后,路由器上所有接口的开销都被重新计算。

image.png

在上图所示网络中,RTA、RTB、RTC之间通过GE接口互连。缺省情况下,GE接口的开销值为1。所以,在RTC上进行路由查看时,可以发现路由1.1.1.1/32的开销值为2。如果要改变此路由的开销,可以在RTC上修改接口GO/0的接口开销。

image.png

如果在RTB上配置接口GO/0的接口开销值为100,则可以发现RTC上的路由1.1.1.1/32开销值变为200。

8.3.3 配置OSPF报文定时器

image.png

OSPF协议的Hello定时器是指接口发送Hello报文的时间间隔。OSPF邻居的失效时间是指,在该时间间隔内,若未收到邻居的Hello报文,就认为该邻居已失效。

除此之外,还有其他的定时器:

  • Poll 定时器:在NBMA网络中,路由器向状态为Down的邻居路由器发送轮询 Hello报文的时间间隔。

  • 接口重传LSA的时间间隔:路由器向它的邻居通告一条LSA后,需要对方进行确认。若在重传间隔时间内没有收到对方的确认报文,就会向邻居重传这条LSA。

image.png

修改了网络类型后,Hello定时器与邻居失效时间都将恢复缺省值。另外,相邻路由器重传LSA时间间隔的值不要设置得太小,否则将会引起不必要的重传。通常应该大于一个报文在两台路由器之间传送一个来回的时间。

image.png

缺省情况下,P2P、Broadcast类型接口发送Hello报文的时间间隔为10秒;P2MP、NBMA类型接口发送Hello报文的时间间隔为30秒。Hello定时器的值越小,发现网络拓扑改变的速度越快,对系统资源的开销也就越大。同一网段上的接口的Hello定时器的值必须相同。

缺省情况下,P2P、Broadcast类型接口的OSPF邻居失效的时间为40秒;P2MP、NBMA类型接口的OSPF邻居失效的时间为120秒。邻居失效时间值至少应为Hello计时器值的4倍,同一网段上的接口的邻居失效时间也必须相同。

在OSPF中,如果双方的Hello定时器和邻居失效时间不一致,就不能建立邻居。因此,一般情况下不建议对于OSPF协议的Hello计时器和邻居失效时间进行修改。

8.3.4 配置OSPF引入缺省路由

image.png

在OSPF中,使用import-route命令不能引入缺省路由,如果要引入缺省路由,必须使用该命令。配置OSPF引入缺省路由的命令如下:


default-route-advertise [[[always |  permit-calculate-other] | cost 10 |  route-policy route-policy-name | type type]* | summary const 10]

主要含义如下:

  • always:如果当前路由器的路由表中没有缺省路由,使用此参数可产生一个描述缺省路由的Type-5LSA发布出去。如果没有指定该关键字,仅当本地路由器的路由表中存在缺省路由时,才可以产生一个描述缺省路由的Type-5LSA发布出去。

  • cost cost:该缺省路由的度量值,取值范围为0~16777214,如果没有指定,缺省路由的度量值将取default cost命令配置的值

  • route-policy route-policy-name:路由策略名,为1~63个字符的字符串,区分大小写。只有当前路由器的路由表中存在缺省路由,并且有路由匹配 route-policy-name指定的路由策略,才可以产生一个描述缺省路由的Type-5LSA发布出去,指定的路由策略会影响Type-5LSA中的值。如果同时指定always参数,不论当前路由器的路由表中是否有缺省路由,只要有路由匹配指定的路由策略,就将产生一个描述缺省路由的Type-5LSA发布出去,指定的路由策略会影响 Type-5LSA中的值。

  • type type:该Type-5LSA的类型,取值范围为1~2,如果没有指定,Type-5 LSA的缺省类型将取default type命令配置的值。

  • summary:发布指定缺省路由的Type-3LSA。在选用该参数时,必须首先使能VPN,否则路由不能发布。

你可能感兴趣的:(第八章 配置和优化OSPF协议.md)