BFD技术的解析与实现

BFD会话建立后会周期性地快速发送BFD报文,如果在检测时间内没有收到对端BFD报文则认为该双向转发路径发生了故障,通知被服务的相关层应用进行相应的处理。
本身并没有邻居发现机制,而是靠被服务的上层应用通知其邻居信息以建立会话。
不管是物理接口状态、二层链路状态、网络层地址可达性、还是传输层连接状态、应用层协议运行状态,都可以被BFD感知到。
BFD会话建立方式
1、静态建立BFD会话:
静态建立BFD会话是指通过命令行手工配置BFD会话参数,包括配置本地标识符和远端标识符等,然后手工下发BFD会话建立请求。
2、动态建立BFD会话:
1)、动态分配本地标识符:
当应用程序触发动态创建BFD会话时,系统分配属于动态会话标识符区域的值作为BFD会话的本地标识符。然后向对端发送Remote Discriminator的值为0的BFD控制报文,进行会话协商。
2)、自学习远端标识符:
当BFD会话的一端收到Remote Discriminator的值为0的BFD控制报文时,判断该报文是否与本地BFD会话匹配,如果匹配,则学习接收到的BFD报文中Local Discriminator的值,获取远端标识符。
BFD会话管理
1、 BFD会话有四种状态:Down、Init、Up和AdminDown。
2、 BFD状态机的建立和拆除都采用三次握手机制,以确保两端系统都能知道状态的变化。以BFD会话建立为例:
BFD理论基础
1)、SwitchA和SwitchB各自启动BFD状态机,初始状态为Down,发送状态为Down的BFD报文。对于静态配置BFD会话,报文中的Remote Discriminator的值是用户指定的;对于动态创建BFD会话,Remote Discriminator的值是0;
2)、SwitchB收到状态为Down的BFD报文后,状态切换至Init,并发送状态为Init的BFD报文;
3)、SwitchB本地BFD状态为Init后,不再处理接收到的状态为Down的报文;
4)、SwitchA的BFD状态变化同SwitchB;
5)、SwitchB收到状态为Init的BFD报文后,本地状态切换至Up;
6)、SwitchA的BFD状态变化同SwitchB。
BFD特殊应用场景
1、BFD for Perlink:(ETH-TRUNK透传二层VLAN场景)
背景:两台设备通过Eth-Trunk链路直连,Eth-Trunk加入VLAN,如果使用BFD for IP单跳会话绑定VLANIF口检测链路故障,BFD会选择Eth-Trunk的一条成员链路作为检测路径,如果这条成员链路故障,而别的成员链路正常,BFD会话会检测Down,所以BFD for IP单跳会话检测Eth-Trunk链路可能会出现BFD误报的情况。
原理:BFD for Perlink会话绑定VLANIF口后,BFD会创建一条管理会话,同时还会基于Eth-Trunk的每个成员口创建一条单播动态BFD子会话。管理会话不进行协商和检测,只负责处理子会话上报的状态,并上报上层应用。BFD子会话独立地进行协商和检测,并将检测状态上报到管理会话。只有当所有子会话的状态是Down的时候,管理会话的状态才会Down。 (注:目前设备支持以单臂回声模式实现BFD子会话的链路检测; 单臂回声报文:以本端的VLANIF口的IP地址为目的地址,以对端vlanif所在设备的MAC为目的MAC地址,会话的本地标识符和远端标识符均动态创建。)
2、BFD for Link-bundle:(ETH-TRUNK为三层口场景)
背景及原理与BFD for Perlink一样;
BFD for Link-bundle会话由一个主会话以及多个子会话组成,•主会话负责为Eth-Trunk下每一个成员接口创建一个BFD子会话,以及汇总子会话的检测结果并对Eth-Trunk链路的状态做出最终判断;只要有一个子会话的状态为Up,主会话状态就为Up,如果BFD for Link-bundle没有子会话,则主会话状态为Down,通告给上层应用的状态为Unknown。

华为
SW1:
bfd remote-ip 远端地址
bfd 1 bind peer-ip 101.1.1.1 source-ip 101.1.1.2 auto
commit

R1:
bfd
bfd 1 bind peer-ip 101.1.1.2 source-ip 101.1.1.1 auto
[AR1]dis bfd session all

BFD单臂回声
bfd HW bind peer-ip 12.1.1.2 interface GigabitEthernet0/0/0 source-ip 12.1.1.1 one-arm-echo
discriminator local 1
commit
ip route-static 2.2.2.2 255.255.255.255 12.1.1.2 track bfd-session HW

OSPF与BFD进行关联
BFD
ospf 10 router-id 1.1.1.1
bfd all-interfaces enable

思科
interface Ethernet0/1
bfd interval 50 min_rx 50 multiplier 3 接口下配置BFD的发送间隔,最小接收间隔,Hello包最大容错;
ip route static bfd Ethernet0/1 24.1.1.4 接口与BFD联动,必须配置
ip route 4.1.1.0 255.255.255.0 Ethernet0/1 24.1.1.4 静态路由指向R4的loopback

interface Ethernet0/1
ip address 34.1.1.4 255.255.255.0
bfd interval 50 min_rx 50 multiplier 3 参数要保持一致,否则协商不会成功;
ip route static bfd Ethernet0/1 24.1.1.2 接口与BFD联动,
ip route 0.0.0.0 0.0.0.0 Ethernet0/0 24.1.1.2 100 控制metric为100,默认走R2
ip route 0.0.0.0 0.0.0.0 Ethernet0/1 34.1.1.3 200 控制metric为200,当R2出现故障走R3

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值