一、BFD
1、为了减小设备故障对业务的影响,提高网络的可靠性,网络设备需要能够尽快检测到与相邻设备间的通信故障,以便及时采取措施,保证业务继续进行。在现有网络中,有些链路通常通过硬件检测信号,如SDH告警,检测链路故障,但并不是所有的介质都能够提供硬件检测。此时,应用就要依靠上层协议自身的Hello报文机制来进行故障检测。上层协议的检测时间都在1秒以上,这样的故障检测时间对某些应用来说是不能容忍的。同时,在一些小型三层网络中,如果没有部署路由协议,则无法使用路由协议的Hello报文机制来检测故障。
BFD协议就是在这种背景下产生的,BFD提供了一个通用的标准化的介质无关和协议无关的快速故障检测机制。具有以下优点:
对相邻转发引擎之间的通道提供轻负荷、快速故障检测。这些故障包括接口、数据链路,甚至有可能是转发引擎本身。
用单一的机制对任何介质、任何协议层进行实时检测。
BFD可以实现快速检测并监控网络中链路或IP路由的转发连通状态,改善网络性能。相邻系统之间通过快速检测发现通信故障,可以更快地帮助用户建立起备份通道以便恢复通信,保证网络可靠性。
2、BFD会话
BFD的标识符:
BFD建立会话存在标识符的概念,类似于OSPF建立邻居需要一个路由器的Router ID。
标识符分为本地标识符和远端标识符,本地标识符用于表示本端设备,远端标识符用于表示对端设备。
静态建立BFD会话是指通过命令行手工配置BFD会话参数,包括配置本地标识符和远端标识符等,然后手工下发BFD会话建立请求。
动态建立BFD会话是指由应用程序触发创建BFD会话,当应用程序动态触发创建BFD会话时,系统分配属于动态会话标识符区域的值作为BFD会话的本地标识符。然后向对端发送Remote Discriminator的值为0的BFD控制报文,进行会话协商。当BFD会话的一端收到Remote Discriminator的值为0的BFD控制报文时,判断该报文是否与本地BFD会话匹配,如果匹配,则学习接收到的BFD报文中Local Discriminator的值,获取远端标识符。
BFD的检测机制:
BFD的检测机制是两个系统建立BFD会话,并沿它们之间的路径周期性发送BFD控制报文,如果一方在既定的时间内没有收到BFD控制报文,则认为路径上发生了故障,BFD控制报文是UDP报文,端口号3784。
BFD提供异步检测模式。在这种模式下,系统之间相互周期性地发送BFD控制报文,如果某个系统连续3个报文都没有接收到,就认为此BFD会话的状态是Down。
3、BFD联动配置
BFD与OSPF 联动配置
RTA:
bfd
ospf 1
area 0
network 10.0.12.1 0.0.0.0
bfd all-interface enable
RTD:
bfd
ospf 1
area 0
network 10.0.12.2 0.0.0.0
bfd all-interface enable
BFD与VRRP联动配置
与VRRP联动原理:
VRRP只能感知VRRP备份组之间的故障,而配置VRRP监视上行接口仅能感知Master设备上行接口或直连链路的故障,当Master设备上行非直连链路故障时,VRRP无法感知。通过部署VRRP与BFD联动监视非直连上行链路,当Master设备的上行链路发生故障时,BFD可以快速检测故障并通知Master设备调整自身优先级,触发主备切换,确保流量正常转发。
RTC:
bfd
bfd 1 bind peer-ip 10.0.24.2 source-ip 10.0.45.5 auto
commit
SWA:
int vlan 100
ip address 10.0.12.1 255.255.255.0
vrrp vrid 1 virtual-ip 10.0.12.254
SWB:
bfd
bfd 1 bind peer-ip 10.0.45.5 source-ip 10.0.24.2 auto
commit
int vlan 100
ip address 10.0.12.2 255.255.255.0
vrrp vrid 1 virtual-ip 10.0.12.254
vrrp vrid 1 priority 200
vrrp vrid 1 track bfd-session session-name 1 reduced 100
BFD与静态路由联动配置
静态路由联动原理:
静态路由自身没有检测机制,当网络发生故障的时候,需要管理员介入。BFD与静态路由联动特性可为公网静态路由绑定BFD会话,利用BFD会话来检测静态路由所在链路的状态。
BFD与静态路由联动可为每条静态路由绑定一个BFD会话,当这条静态路由上绑定的BFD会话检测到链路故障(由Up转为Down)后,BFD会将故障上报路由管理系统,由路由管理模块将这条路由设置为“非激活”状态(此条路由不可用,从IP路由表中删除)。当这条静态路由上绑定的BFD会话成功建立或者从故障状态恢复后(由Down转为Up),BFD会上报路由管理模块,由路由管理模块将这条路由设置为“激活”状态(此路由可用,加入IP路由表)。
RTB:
bfd
bfd 1 bind peer-ip 10.0.12.1 souce-ip 10.0.12.2 auto
commit
RTA:
bfd
bfd 1 bind peer-ip 10.0.12.2 source-p 10.0.12.1 auto
commit
ip route-static 0.0.0.0 0.0.0.0 10.0.12.2 track bfd-session 1 //优先级保持为默认的60,并联动BFD会话
ip route-static 0.0.0.0 0.0.0.0 10.0.13.2 preference 100
BFD与BGP联动
与BGP联动原理:
BFD与BGP的联动原理和OSPF基本一致,唯一区别是最后通知状态消息的对象是TCP层的BGP模块。
RTA:
bfd
bgp 65500
peer 2.2.2.2 as-number 65500
peer 2.2.2.2 connect-interface loopback0
peer 2.2.2.2 bfd enable
RTB:
bfd
bgp 65500
peer 1.1.1.1 as-number 65500
peer 1.1.1.1 connect-interface loopback0
peer 1.1.1.1 bfd enable