双向转发检测BFD(Bidirectional Forwarding Detection)是一种全网统一的检测机制,用于快速检测、监控网络中链路或者IP路由的转发连通状况。
为了减小设备故障对业务的影响,提高网络的可靠性,网络设备需要能够尽快检测到与相邻设备间的通信故障,以便及时采取措施,保证业务继续进行。在现有网络中,有些链路通常通过硬件检测信号,如SDH告警,检测链路故障,但并不是所有的介质都能够提供硬件检测。此时,应用就要依靠上层协议自身的Hello报文机制来进行故障检测。上层协议的检测时间都在1秒以上,这样的故障检测时间对某些应用来说是不能容忍的。在三层网络中,Hello报文检测机制无法针对所有路由来检测故障,如:静态路由。这对系统间互联互通定位故障造成困难。
BFD协议就是在这种背景下产生的,BFD提供了一个通用的标准化的介质无关和协议无关的快速故障检测机制。具有以下优点:
对相邻转发引擎之间的通道提供轻负荷、快速故障检测。这些故障包括接口、数据链路,甚至有可能是转发引擎本身。
用单一的机制对任何介质、任何协议层进行实时检测。
BFD可以实现快速检测并监控网络中链路或IP路由的转发连通状态,改善网络性能。相邻系统之间通过快速检测发现通信故障,可以更快地帮助用户建立起备份通道以便恢复通信,保证网络可靠性。
与动态路由协议不同,静态路由自身没有检测机制,当网络发生故障的时候,需要管理员介入。BFD for静态路由特性可为静态路由绑定BFD会话,利用BFD会话来检测静态路由所在链路的状态。
BFD for静态路由可为每条静态路由绑定一个BFD会话,在自身满足参与选路条件的前提下,静态路由最终是否能参与选路还受BFD会话检测状态影响。
当某条静态路由上的BFD会话检测到链路故障(BFD会话检测状态为Down)时,BFD会将故障上报系统,系统将这条路由从IP路由表中删除。
当某条静态路由上的BFD会话检测到故障的链路重新建立成功(BFD会话检测状态为Up)时,BFD会上报系统,系统将这条路由加入IP路由表。
缺省情况下,当BFD会话状态处于Admin down(shutdown命令触发)或邻居Admin down时,与该BFD会话绑定的静态路由可以参与选路。但是在系统整机重启场景下,BFD会话需要重新协商,静态路由是否能参与选路以BFD重新协商状态为准。
BFD for静态路由有单跳检侧和多跳检测两种方式。
对于非迭代的静态路由,所配置的出接口和下一跳就是直连下一跳信息。这样,BFD会话的出接口即静态路由的出接口,对端地址即路由的下一跳。
对于迭代的静态路由,仅配置了下一跳,需要迭代出直连下一跳和出接口。这样,BFD会话的对端地址为路由的原始下一跳,出接口则不限。一般情况下,迭代的原始下一跳是多跳的,非直接可达,故支持迭代的静态路由进行多跳检测。
1、在SwitchA和SwitchB上配置BFD Session,在SwitchA和SwitchB之间实现毫秒级故障感知,提高收敛速度。
2、配置SwitchA到NMS的静态路由并绑定BFD Session,实现毫秒级故障感知,提高收敛速度。
1、配置各接口所属的VLAN,配置S1。S2的配置与S1类似。
S1]vlan 10
[S1-vlan10]q
[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
2、配置各VLANIF接口的IP地址,配置S1。S2的配置与S1类似。
[S1]interface Vlanif 10
[S1-Vlanif10]ip address 10.1.1.1 24
[S1-Vlanif10]q
3、配置S1和S2间的BFD会话,在S1配置与S2间的BFD Session。
[S1]bfd aa bind peer-ip 10.1.1.2
[S1-bfd-session-aa]discriminator local 10
[S1-bfd-session-aa]discriminator remote 20
[S1-bfd-session-aa]commit
[S1-bfd-session-aa]q
????????# 在S2配置与S1之间的BFD Session。
[S2]bfd bb bind peer-ip 10.1.1.1
[S2-bfd-session-bb]discriminator local 20
[S2-bfd-session-bb]discriminator remote 10
[S2-bfd-session-bb]commit
[S2-bfd-session-bb]q
4、配置静态路由并绑定BFD会话,在S1配置到外部网络的静态路由,并绑定BFD会话a。
[S1]ip route-static 10.2.2.0 24 10.1.1.2 track bfd-session aa
1、配置完成后,在S1和S2上执行display bfd session all命令,可以看到BFD会话已经建立,且状态为Up。S1上的显示为例。
2、?在S1查看IP路由表,静态路由存在于路由表中。
3、?对S2接口GigabitEthernet0/0/1执行shutdown命令模拟链路故障。
[S2]interface GigabitEthernet 0/0/1
[S2-GigabitEthernet0/0/1]shutdown
4、查看S1的路由表,发现静态路由10.2.2.0/24也不存在了。因为静态路由绑定了BFD会话,当BFD检测到故障后,就会迅速通知所绑定的静态路由不可用。
?对S2接口GigabitEthernet0/0/1执行undo shutdown命令模拟链路恢复正常
[S2]interface GigabitEthernet 0/0/1
[S2-GigabitEthernet0/0/1]undo shutdown
查看S1的路由表,发现静态路由10.2.2.0/24重新出现在路由表中。因为当BFD检测到链路恢复正常后,就会迅速通知所绑定的静态路由重新生效。
?