默认路由+BFD检测一般都是在出口路由上检测下一跳是否正常,有个朋友的网络说做了BFD后发现网络不通了,让帮远程排查一下。
连上远程,首先检查bfd状态(图2),发现是INIT状态,在交换机上PING 1.1.1.1却是通的,路由可达,怀疑BFD配置不对,查看相应BFD配置。
SW配置
#
bfd
#
bfd bfd1 bind peer-ip 2.2.2.1 interface Vlanif20 source-ip 192.168.20.2
discriminator local 31
discriminator remote 41
#
bfd bfd2 bind peer-ip 1.1.1.1 interface Vlanif10 source-ip 192.168.10.2
discriminator local 11
discriminator remote 21
#
路由器配置
#
bfd
#
bfd bfd bind peer-ip 192.168.20.2 interface GigabitEthernet0/0/1 source-ip 2.2.2.1
discriminator local 41
discriminator remote 31
commit
#
bfd bfd2 bind peer-ip 192.168.10.2 interface GigabitEthernet0/0/2 source-ip 1.1.1.1
discriminator local 21
discriminator remote 11
commit
#
从配置中第一眼看看不出问题,结合拓扑(图1)看发现,下一跳检测的是路由器的出接口,不是跟交换机直连的接口IP,问题就出在这里,BFD检测只有在单跳检测的时候才指定出接口。BFD多跳检测配置的时候,不需要指定出接口,否则会导致BFD无法建立。于是把配置改成这样就通了。
SW配置
#
bfd
#
bfd bfd1 bind peer-ip 2.2.2.1 source-ip 192.168.20.2
discriminator local 31
discriminator remote 41
#
bfd bfd2 bind peer-ip 1.1.1.1 source-ip 192.168.10.2
discriminator local 11
discriminator remote 21
#
路由器配置
#
bfd
#
bfd bfd bind peer-ip 192.168.20.2 source-ip 2.2.2.1
discriminator local 41
discriminator remote 31
commit
#
bfd bfd2 bind peer-ip 192.168.10.2 source-ip 1.1.1.1
discriminator local 21
discriminator remote 11
commit
#
这个故障虽然简单,但不容易发现,在做BFD检测时要考虑是单跳还是多跳检测,建议都不要加上接口做检测。想要学习更多故障处理方法和案例,可以学习一 下我的故障处理专栏,里面总结了很多故障处理的方法的实际案例。