首先什么是BFD:BFD是指动态链路检测机制,当链路出现故障时就会使bfd的会话表置为down状态,然后关联bfd的策略就会执行。
拟故障情况:基本的配置已经完成。

一:g0/0/48线路故障:
没有配置BFD检测之前,即使线路故障core1的vrrp一样还是master。


因为我们没有配置链路检测BFD所以一直丢包,core1还认为自己是主而且没问题,那么就会出现断网的情况,VRRP不切换主备.
然后在配置之前先测试一下当链路恢复时会发送什么

可以知道要丢20个包左右,我这里的尝试的是先关闭后立即启动,可能有误差。
这是默认情况。接下来就是配置BFD动态链路检测
XML
###core1:
bfd static Core1_TO_GW1 peer-ip 172.16.254.1 interface GigabitEthernet1/0/48 source-ip 172.16.254.2 discriminator local 1 remote 2
quit
track 1 interface GigabitEthernet1/0/48
track 2 bfd static Core1_TO_GW1
int vlan 10
#vrrp检测到链路故障时优先级减去120
vrrp vrid 10 track 2 priority reduced 120
###GW1
bfd static GW1_to_Core1 peer-ip 172.16.254.2 interface GigabitEthernet 0/0/2 source-ip 172.16.254.1 discriminator local 2 remote 1
##其他设备同理
配置成功后抓包会收到BFD的报文,而且交换机上的会话表为up即为配置成功。
dis bfd session ip

那么接下来就是测试故障了,当进行shutdown后vlan10就变为Backup状态了,而且线路故障后只丢了一个包。


但是这里还有一个问题就是,当线路故障恢复后仍然会丢20个左右的包,为了解决这个问题就需要引入延迟抢占功能。
XML
vrrp vrid 10 preempt-mode delay 5000
配置这个后你会发现ping的时候,有时候会丢一个包,有时候一个包都不会丢弃。

至此,这个线路故障就完美解决了,