????????与动态路由协议不同,静态路由自身没有检测机制,当网络发生故障的时候,需要管理员介入。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会话的出接口即静态路由的出接口,对端地址即路由的下一跳。
对于迭代的静态路由,仅配置了下一跳,需要迭代出直连下一跳和出接口。这样,BFD会话的对端地址为路由的原始下一跳,出接口则不限。一般情况下,迭代的原始下一跳是多跳的,非直接可达,故支持迭代的静态路由进行多跳检测。
????????如果路由的下一跳信息不是直接可达的,那么该路由就不能用来指导转发,系统会根据下一跳信息计算出一个实际的出接口和下一跳,这个过程就叫做路由迭代。另外,使用display ip routing-table命令查看路由时,如果Flags字段显示为R,则表示路由为迭代路由,否则,为非迭代路由。
##基础IP地址配置
[S1]vlan 10
[S1-vlan10]q
[S1]int g0/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]int Vlanif 10
[S1-Vlanif10]ip add 10.1.1.1 24
[S1-Vlanif10]q
##配置S1和S2之间的BFD会话,配置本地标识符为10,对端标识符为20,如果BFD会话的本地标识符和远端标识符不对应,则会话无法Up。
[S1]bfd
[S1-bfd]q
[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
##在S1配置到外部网络的静态路由,并绑定BFD会话aa。
[S1]ip route-static 10.2.2.0 24 10.1.1.2 track bfd-session aa
?##基础IP地址配置
[S2]vlan batch 10 20
[S2]int g0/0/1
[S2-GigabitEthernet0/0/1]port link-type trunk
[S2-GigabitEthernet0/0/1]port trunk allow-pass vlan 10
[S2-GigabitEthernet0/0/1]q
[S2]int g0/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]int Vlanif 10
[S2-Vlanif10]ip add 10.1.1.2 24
[S2-Vlanif10]q
[S2]int Vlanif 20
[S2-Vlanif20]ip add 10.2.2.2 24
[S2-Vlanif20]q
##配置S1和S2之间的BFD会话,配置本地标识符为20,对端标识符为10,如果BFD会话的本地标识符和远端标识符不对应,则会话无法Up。
[S2]bfd
[S2-bfd]q
[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
配置完成后在S1上查看BFD会话已经建立,且静态路由也已经加表
关闭S2的g0/0/1模拟故障?
[S2]int g0/0/1
[S2-GigabitEthernet0/0/1]shutdown
##因为静态路由绑定了BFD会话,当BFD检测到故障后,就会迅速通知所绑定的静态路由不可用。所以静态路由就不存在了
当BFD检测到链路恢复正常后,就会迅速通知所绑定的静态路由重新生效。