1、OSPF与BFD联动
双向转发检测BFD(Bidirectional Forwarding Detection)是一种用于检测转发引擎之间通信故障的检测机制。
BFD对两个系统间的、同一路径上的同一种数据协议的连通性进行检测,这条路径可以是物理链路或逻辑链路,包括隧道。
OSPF与BFD联动就是将BFD和OSPF协议关联起来,将BFD对链路故障的快速感应通知OSPF协议,从而加快OSPF协议对于网络拓扑变化的响应。
网络上的链路故障或拓扑变化都会导致设备重新进行路由计算,所以缩短路由协议的收敛时间对于提高网络的性能是非常重要的。
由于链路故障是无法完全避免的,因此,加快故障感知速度并将故障快速通告给路由协议是一种可行的方案。BFD和OSPF相关联,一旦与邻居之间的链路出现故障,BFD的快速性能够加快OSPF的收敛速度。
2、有无OSPF与BFD联动功能对比
有无BFD | 链路故障检测机制 | 收敛速度 |
---|---|---|
无BFD | OSPF Dead定时器超时(默认配置40s) | 秒级 |
有BFD | BFD会话状态为Down | 毫秒级 |
3、OSPF与BGP联动
当有新的设备加入到网络中,或者设备重启时,可能会出现在BGP收敛期间内网络流量丢失的现象。这是由于IGP收敛速度比BGP快而造成的。
通过使能OSPF与BGP联动特性可以解决这个问题。
在存在备份链路的情况下,BGP在链路回切时,由于路由收敛速度滞后于OSPF路由收敛速度,从而造成流量丢失。
如下图所示,四台设备SwitchA、SwitchB、SwitchC、SwitchD之间运行OSPF协议,并建立IBGP连接。SwitchC为SwitchB的备份设备。当网络环境稳定时,BGP与OSPF在设备上是完全收敛的。
正常情况下,从SwitchA到10.3.1.0/30的流量会途经SwitchB。当SwitchB发生故障后,流量切换到SwitchC。SwitchB故障恢复以后,流量回切到SwitchB,此时会有流量丢失。
这是因为,在流量回切到SwitchB的过程中,IGP收敛速度比BGP快,因此OSPF先收敛,BGP还没有完成收敛,导致SwitchB不知如何到达10.3.1.0/30。
这样,当从SwitchA去往10.3.1.0/30的流量被发送给SwitchB时,由于没有必要的路由选择信息,这些流量就会被丢弃。
使能了OSPF与BGP联动特性的设备会在设定的联动时间内保持为Stub路由器,也就是说,该设备发布的LSA中的链路度量值为最大值(65535),从而告知其它OSPF设备不要使用这个路由器来转发数据。
图中,在RoutetB上使能BGP联动,这样,在BGP收敛完成前,SwitchA不把流量转发到SwitchB上,而是继续使用备份设备SwitchC转发流量,直到SwitchB上的BGP路由完成收敛。
4、实验案例
实验拓扑:
1、S1配置。
##基础IP地址
[S1]vlan batch 10 30
[S1]interface gigabitethernet 0/0/1
[S1-GigabitEthernet0/0/1]port link-type trunk
[S1-GigabitEthernet0/0/1]port trunk allow-pass vlan 10
[S1-GigabitEthernet0/0/1]q
[S1]interface gigabitethernet0/0/2
[S1-GigabitEthernet0/0/2]port link-type trunk
[S1-GigabitEthernet0/0/2]port trunk allow-pass vlan 30
[S1-GigabitEthernet0/0/2]q
[S1]interface vlanif 10
[S1-Vlanif10]ip address 10.1.1.1 24
[S1-Vlanif10]q
[S1]interface vlanif 30
[S1-Vlanif30]ip address 10.3.3.1 24
[S1-Vlanif30]q
##配置OSPF
[S1]ospf 1 router-id 10.10.10.1
[S1-ospf-1]area 0
[S1-ospf-1-area-0.0.0.0]network 10.1.1.0 0.0.0.255
[S1-ospf-1-area-0.0.0.0]network 10.3.3.0 0.0.0.255
[S1-ospf-1-area-0.0.0.0]q
[S1-ospf-1]q
##关闭stp功能
[S1]int g0/0/1
[S1-GigabitEthernet0/0/1]undo stp enable
[S1-GigabitEthernet0/0/1]int g0/0/2
[S1-GigabitEthernet0/0/2]undo stp enable
##配置BFD联动
[S1]bfd
[S1-bfd]q
[S1]ospf
[S1-ospf-1]bfd all-interfaces enable
[S1-ospf-1]q
2、S2配置
##基础IP地址
[S2]vlan batch 20 30 40
[S2]interface gigabitethernet 0/0/1
[S2-GigabitEthernet0/0/1]port link-type trunk
[S2-GigabitEthernet0/0/1]port trunk allow-pass vlan 30
[S2-GigabitEthernet0/0/1]q
[S2]interface gigabitethernet 0/0/2
[S2-GigabitEthernet0/0/2]port link-type trunk
[S2-GigabitEthernet0/0/2]port trunk allow-pass vlan 20
[S2-GigabitEthernet0/0/2]q
[S2]interface gigabitethernet0/0/3
[S2-GigabitEthernet0/0/2]port link-type trunk
[S2-GigabitEthernet0/0/2]port trunk allow-pass vlan 40
[S2-GigabitEthernet0/0/2]q
[S2]interface vlanif 20
[S2-Vlanif10]ip address 10.2.2.2 24
[S2-Vlanif10]q
[S2]interface vlanif 30
[S2-Vlanif30]ip address 10.3.3.2 24
[S2-Vlanif30]q
[S2]interface vlanif 40
[S2-Vlanif30]ip address 172.16.1.1 24
[S2-Vlanif30]q
##配置OSPF
[S2]ospf 1 router-id 10.10.10.2
[S2-ospf-1]area 0
[S2-ospf-1-area-0.0.0.0]network 10.2.2.0 0.0.0.255
[S2-ospf-1-area-0.0.0.0]network 10.3.3.0 0.0.0.255
[S2-ospf-1-area-0.0.0.0]network 172.16.1.0 0.0.0.255
[S2-ospf-1-area-0.0.0.0]q
[S2-ospf-1]q
##关闭stp功能
[S2]int g0/0/2
[S2-GigabitEthernet0/0/2]undo stp enable
[S2-GigabitEthernet0/0/2]int g0/0/1
[S2-GigabitEthernet0/0/1]undo stp enable
[S2-GigabitEthernet0/0/1]int g0/0/3
[S2-GigabitEthernet0/0/3]undo stp enable
##配置BFD联动
[S2]bfd
[S2-bfd]q
[S2]ospf
[S2-ospf-1]bfd all-interfaces enable
[S2-ospf-1]q
3、S3配置
##基础IP地址
[S3]vlan batch 10 20
[S3]interface gigabitethernet 0/0/1
[S3-GigabitEthernet0/0/1]port link-type trunk
[S3-GigabitEthernet0/0/1]port trunk allow-pass vlan 10
[S3-GigabitEthernet0/0/1]q
[S3]interface gigabitethernet0/0/2
[S3-GigabitEthernet0/0/2]port link-type trunk
[S3-GigabitEthernet0/0/2]port trunk allow-pass vlan 20
[S3-GigabitEthernet0/0/2]q
[S3]interface vlanif 10
[S3-Vlanif10]ip address 10.1.1.2 24
[S3-Vlanif10]q
[S3]interface vlanif 20
[S3-Vlanif30]ip address 10.2.2.1 24
[S3-Vlanif30]q
##配置OSPF
[S3]ospf 1 router-id 10.10.10.3
[S3-ospf-1]area 0
[S3-ospf-1-area-0.0.0.0]network 10.1.1.0 0.0.0.255
[S3-ospf-1-area-0.0.0.0]network 10.2.2.0 0.0.0.255
[S3-ospf-1-area-0.0.0.0]q
[S3-ospf-1]q
##关闭stp功能
[S3]int g0/0/2
[S3-GigabitEthernet0/0/2]undo stp enable
[S3-GigabitEthernet0/0/2]int g0/0/1
[S3-GigabitEthernet0/0/1]undo stp enable
##配置BFD联动
[S3]bfd
[S3-bfd]q
[S3]ospf
[S3-ospf-1]bfd all-interfaces enable
[S3-ospf-1]q
4、实验结果
在S1上查看路由表可以看到路由信息已经全部学到
在S1查看BFD会话表状态已经为(up)
当接口S2的g0/0/1down时,去往172.16.1.0的下一跳就会变成S3的方向
[S2]int g0/0/1
[S2-GigabitEthernet0/0/1]shutdown