BFD协议

目录

BFD的故障检测机制:

BFD会话的建立两种方式:

BFD会话建立过程:

BFD的两种检测方式:

单跳和多跳的判断依据:

正确的BFD配置方式:

BFD检测时间介绍和调整方式:

BFD的联动配置方式:

BFD与VRRP联动实验


BFD是双向检测机制,是一种介质无关、协议无关的快速检测机制

三个模块:应用模块------track模块------BFD检测模块

单跳检测:不可以跨域三层设备,配置时如果添加interface关键词,即为单跳检测。

                发送BFD报文时,请求peer-ip的MAC地址进行报文发送。

多跳检测:可以跨越三层设备,配置时不添加interface关键词,即为多跳检测。

                 发送BFD报文时,会请求peer-ip下一跳的MAC地址进行报文发送。
 

建立BFD会话连接的时候:依据上层协议建立会话(ospf,vrrp,静态路由,策略路由),BFD自己不会建立邻居关系

建立会话关系:设备表示:

本地标识符

远端标识符

commit开启

BFD的故障检测机制:

BFD依赖会话进行故障的检测,我们在两个系统之间建立BFD会话,并沿它们之间的路径快速的发送BFD控制报文,如果一方在特定的时间内没有收到BFD控制报文,那么BFD将会认为会话down,此时联动其他协议或者接口状态的改变。

BFD会话的建立两种方式:

1、静态建立BFD会话:静态建立BFD会话是指通过命令行手工配置BFD会话参数,包括配置本地标识符和远端标识符等,然后手工下发BFD会话建立请求。
2、动态建立BFD会话:动态的BFD会话建立多应用到与协议的联动功能中,动态建立BFD会话时,系统对本地标识符和远端标识符的处理方式如下:
          动态分配本地标识符:当应用程序触发动态创建BFD会话时,系统随机分配一个本地标识符。然后向对端发送Remote Discriminator的值为0的BFD控制报文,进行会话协商。
        自动学习远端标识符:当BFD会话的一端收到Remote Discriminator的值为0的BFD控制报文时,判断该报文是否与本地BFD会话匹配,如果匹配,则学习接收到的BFD报文中Local Discriminator的值,获取远端标识符。
         BFD通过控制报文中的Local Discriminator和Remote Discriminator区分不同的会话。
         静态配置BFD会话的本地标识符取值范围是1 ~8191,动态创建BFD会话的本地标识符取值范围是8192~16383。

 

BFD会话建立过程:

BFD会话有四种状态:Down、Init、Up和AdminDown。会话状态变化通过BFD报文的State字段传递,系统根据自己本地的会话状态和接收到的对端BFD报文驱动状态改变。BFD状态机的建立和拆除都采用三次握手机制,以确保两端系统都能知道状态的变化。..以BFD会话建立为例,简单介绍状态机的迁移过程。

 1. RouterA和RouterB各自启动BFD状态机,初始状态为Down,发送状态为Down的BFD报文。对于静态配置BFD会话,报文中的Remote Discriminator的值是用户指定的;
            对于动态创建BFD会话,Remote Discriminator的值是0。
2. RouterB收到状态为Down的BFD报文后,状态切换至Init,并发送状态为Init的BFD报文。

3. RouterB本地BFD状态为Init后,不再处理接收到的状态为Down的报文。
4. RouterA的BFD状态变化同RouterB。
5. RouterB收到状态为Init的BFD报文后,本地状态切换至Up。

6. RouterA的BFD状态变化同RouterB。

BFD的两种检测方式:

 1、单跳检测:单跳检测只能测试两台设备之间的直连链路,即不能跨域三层。(Echo即单播回声也仅限于单跳检测中)
 2、多跳检测:多条检测可用于任意两否设备之间,不要求设备直连,可以跨域三层设备检测。在BFD中分为单跳检测和多跳检测两种,在单跳和多跳检测中,处理方式的区别如下:
       (1)单跳检测:设备直接向peer-IP发送BFD报文,此时设备会直接请求peer-ip的链路层地址。
       (2)多跳检测:设备按照peer-ip进行路由表的递归,请求最终下一跳的MAC地址,最终向peer-ip地址发送BFD报文。


如何判断BFD会话是单跳检测还是多跳检测呢?
    BFD会话是单跳还是多跳检测,由创建BFD会话时候的配置决定。在创建BFD会话的后面可以添加一下几种参数:

@peer-ip //用来指定发送BFD报文的目的IP地址。
@interface //用来指定发送BFD报文的出接口。

@source-ip//用来指定发送BFD报文的源IP地址。
@auto//用来指定发送BFD进行自协商本地标识符和远端标识符。

@one-arm-echo //用来指定发送BFD使用单臂回声功能。
@在配置BFD的时候interface语句和source-ip语句都是可选配置:
1、当不配置source-ip的时候:发送BFD报文的源IP地址,为去往peer-ip出接口的IP地址;

2、当不配置interface的时候:发送BFD报文的出接口,为去往peer-ip的出接口。

单跳和多跳的判断依据:

1、在配置BFD的时候,如果没有带出接口(interface)参数,则该BFD会话为多跳检测链路。

2、在配置BFD的时候,如果带上了出接口(interface)参数,则该BFD会话为单跳检测链路。

基于单跳检测和多跳检测处理方式的区别,将会存在以下一些错误配置需要注意:
bfd 2 bind peer-ip 10.0.12.2 interface g0/0/0
特征:当带上了interface语句,此时为单跳检测,设备将会直接发送ARP请求peer-ip的链路层地址
结果:如果peer-ip是一个非直连地址:将会由于ARP请求报文无法跨三层传递,导致无法获得peer-ip的MAC地址,BFD会话无法正常建立。(这种是错误的配置方式)
如果peer-ip是一个直连的地址:那么peer-ip是直连链路上的某台设备,此时ARP请求可以到达该设备,BFD会话可以正常建立。
 

正确的BFD配置方式:

     @bfd 1 bind peer-ip 3.3.3.3
           配置BFD多跳检测(不带interface),发送BFD报文的Dip为3.3.3.3。出接口和源IP默认。           @bfd 1 bind peer-ip 3.3.3.3 source-ip 1.1.1.1
           配置BFD多跳检测(不带interface),发送BFD报文的Dip为3.3.3.3,Sip为1.1.1.1,出接口    默认。

      @ bfd 1 bind peer-ip 3.3.3.3 source-ip 1.1.1.1 auto
              配置BFD多跳检测(不带interface),发送BFD报文的Dip为3.3.3.3,Sip为1.1.1.1,出接口默认,并且指定与3.3.3.3的BFD会话建立方式为自协商,无需配置本地和远端标识符。
      @ bfd 1 bind peer-ip 10.0.12.2 interface g0/0/0
             配置BFD单跳检测(携带interface),发送BFD报文的Dip为直连的10.0.12.2,出接口为CO/0/0,Sip默认。

      @ bfd 1 bind peer-ip 10.0.12.2 interface g0/0/0 source-ip 1.1.1.1
配置BFD单跳检测(携带interface),发送BFD报文的Dip为直连的10.0.12.2,出接口为GO/0/0,Sip为1.1.1.1.

      @bfd 1 bind peer-ip 10.0.12.2 interface g0/0/0 source-ip 10.0.12.1 auto
配置BFD单跳检测(携带interface),发送BFD报文的Dip为直连的10.0.12.2,出接口为GO/0/0,Sip地址为10.0.12.1。(并且指定会话的建立方式为自协商,无需配置本地和远端标识符)
      @bfd 2 bind peer-ip 10.0.12.2 interface GigabitEthernet 0/0/0 source-ip 10.0.12.1 one-arm-echo

       配置BFD单臂回声功能(必须携带interface,单臂回声只支持单跳),单播回声中只需要配置本地标识符即可。常用的使用方式:一般配置单跳检测的时候只绑定对端IP地址和本端相应接口,多跳检测值绑定对端IP地址。
 

BFD检测时间介绍和调整方式:

    在BFD中,BFD的超时检测时间主要有三个数值来决定:
    1、DMTI (Desired Min Tx Interval) :即,BFD报文的最小发送间隔
    2、RMRI (Required Min Rx Interval) :即,BFD报文的最小接受间隔

    3、Detect Mult (Detect time multiplier) :叫做检测时间倍数

为降低对系统资源的占用,一旦检测到BFD会诂状态变为Down,系统自动将本端的发送间隔调整为大于1000毫秒的一个随机值,当BFD会话的状态重新变为Up后,再恢复成用户配置的时间间隔。

常见配置命令:
[Huawei-bfd-session-1] min-rx-interval 1000//配置最小接受间隔,单位毫秒

[Huawei-bfd-session-1] min-tx-interval 1000//配置最小发送间隔,单位毫秒

[Huawei-bfd-session-1] detect-multiplier 10//配置检测倍数
[Huawei-bfd-session-1] min-echo-rx-interval 100 //配置单播回声中BFD-echo报文的发送间隔,单位毫秒。
[Huawei-bfd] multi-hop destination-port 4784//配置BFD UDP报文的目的端口号,最新的RFC草案定义的端口号是4784而华为使用的是3784,兼容的时候使用。
 

BFD的联动配置方式:

1、BFD会话与接口联动:
在BFD视图下: process-interface-status//将配置BFD会话时候绑定的出接口与BFD会话状态进行联动,只能与单跳检测,因为配置出接口的都是单跳检测。
2、BFD会话与静态路由联动:
ip route-static 192.168.1.0 24 10.0.12.1 track bfd-session XX//将BFD会话状态与静态路由进行联动。

3、BFD会话与OSPF进行联动:
[Huawei-ospf-1]bfd all-interfaces ?
detect-multiplier  //检测倍数,针对所有接口因为OSPF建立的BFD会话生效
enable   //开启BFD与OSPF联动功能,当开启之后BFD将为所有FULL关系的OSPF邻居,动态建立BFD会话。
 frr-binding //将BFD会话与OSPFIP FRR进行绑定,当BFD检测到接口链路故障 后,BFD会话状态会变为Down并触发接口进行快速重路由,将流    量从故障链路 切换到备份链路上
 min-rx-interval       //配置最小接受间隔,针对所有接口因为OSPF建立的BFD会话生效。     

min-tx-interval        //配置最小发送间隔,针对所有接口因为OSPF建立的BFD会话生效。

[Huawei-GigabitEthernet0/0/0]ospf bfd ?
block//针对特定接口禁用OSPF BFD功能
detect-multiplier//针对接口配置超时倍数。

enable //针对特定接口开启OSPF BFD联动功能。
[AR1]dis ospf bfd session all
 

注意事项:

AR1和AR4建立bfd,与ospf联动,在中间运行ospf的路由器上也需要在ospf进程开启bfd

BFD与VRRP联动实验

拓扑:

1.规划好IP地址,配置AR3到达192.168.1.0网段的静态路由,配置AR1和AR2到达192.168.2.0网段的路由

AR1配置

[AR1]dis ip interface b
Interface                         IP Address/Mask      Physical   Protocol  
GigabitEthernet0/0/0              192.168.3.2/24       up         up        
GigabitEthernet0/0/1              192.168.1.252/24     up         up      


//vrrp配置,此设备为master设备
[AR1-GigabitEthernet0/0/1]dis th

interface GigabitEthernet0/0/1
 ip address 192.168.1.252 255.255.255.0 
 vrrp vrid 1 virtual-ip 192.168.1.254
 vrrp vrid 1 priority 120

跟踪0/0/0接口,出故障备份设备会转为master设备
 vrrp vrid 1 track interface GigabitEthernet0/0/0 reduced 50
AR2配置

[AR2]dis ip int brief 

Interface                         IP Address/Mask      Physical   Protocol  
GigabitEthernet0/0/0              192.168.4.2/24       up         up        
GigabitEthernet0/0/1              192.168.1.253/24     up         up        


[AR2-GigabitEthernet0/0/1]dis th

interface GigabitEthernet0/0/1
 ip address 192.168.1.253 255.255.255.0 
 vrrp vrid 1 virtual-ip 192.168.1.254
[AR3]dis ip int brief 

Interface                         IP Address/Mask      Physical   Protocol  
GigabitEthernet0/0/0              192.168.2.254/24     up         up        
GigabitEthernet0/0/1              192.168.3.1/24       up         up        
GigabitEthernet0/0/2              192.168.4.1/24       up         up        


二.AR1和AR3建立BFD会话连接

AR1配置

[AR1]bfd 
[AR1-bfd]q
[AR1]bfd 1 bind  peer-ip 192.168.3.1 source-ip 192.168.3.2
[AR1-bfd-session-1]discriminator local 1        //配置本地标识符,这里根据路由器编号
[AR1-bfd-session-1]discriminator remote 3       //配置与其建立bfd会话的设备标识符
[AR1-bfd-session-1]commit                       //开启

AR3配置
[AR3]bfd	
[AR3-bfd]q
[AR3]bfd 1 bind peer-ip 192.168.3.2 source-ip 192.168.3.1 
[AR3-bfd-session-1]discriminator local  3
[AR3-bfd-session-1]discriminator remote 1
[AR3-bfd-session-1]commit 

 将ARRP绑定BFD会话

[AR1-GigabitEthernet0/0/1]dis th

vrrp vrid 1 track bfd-session 1 reduced 50


//这个1是自己的本地标识符,最容易错

3.测试

如果将AR3的g0/0/1端口断开,因为bfd和vrrp绑定了,bfd协议检测故障很快,就会马上告诉vrrp,从而切换master设备

断开了master上行设备,backup设备就会马上切换成master设备

[AR2]dis vrrp brief 
Total:1     Master:1     Backup:0     Non-active:0      
VRID  State        Interface                Type     Virtual IP     
----------------------------------------------------------------
1     Master       GE0/0/1                  Normal   192.168.1.254  

  • 11
    点赞
  • 126
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
BFD(Bidirectional Forwarding Detection)是一种用于快速检测链路故障的协议。它主要用于在网络中检测链路的状态,以便迅速发现并通知其他网络设备。以下是BFD协议的一些关键内容: 1. 功能:BFD协议提供了一种快速检测链路状态的机制,可以用于检测链路故障、节点故障,以及链路质量的变化等。它可以在互连设备之间进行快速的单向或双向的检测。 2. 检测方式:BFD使用周期性的探测报文来检测链路的状态。这些报文通常以非常低的间隔时间发送,以实现快速检测。BFD报文可以通过数据链路层直接发送,也可以通过IP层封装后发送。 3. 检测对象:BFD可以用于检测各种类型的链路,包括点对点链路、多点链路和以太网子接口等。它可以适用于各种网络环境和网络设备。 4. 会话建立:BFD会话是指两个网络设备之间的BFD连接。在建立BFD会话之前,设备需要进行BFD会话参数的配置,包括检测间隔、探测模式和其他相关参数。一旦配置完成,设备之间可以通过BFD报文进行链路状态的检测。 5. 状态传输和处理:BFD的状态包括“Up”(链路正常)、“Down”(链路故障)和“AdminDown”(管理员禁用)。当链路状态发生变化时,BFD会将状态信息通知给设备,并触发相应的故障处理机制。 总之,BFD协议是一种快速检测链路状态的机制,可在网络中提供快速的链路故障检测和通知。它可以被广泛应用于各种网络环境和设备中,以确保网络的可靠性和稳定性。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值