首页 文章详情

BFD详解

joke7164 | 81 2024-04-30 19:40 0 0 0
UniSMS (合一短信)

     BFD引入原因:OSPF VRRP等各类数据协议都是用秒为单位的,当一个dhcp,或者ospf 如下设备down掉会等待4*hello   40s才会失效,会造成数据包丢弃,信息差,vrrp因为没提前检测已经发送的数据会造成路由重计数导致次优路径等问题(如下AR1-LSW1 DOWN  线路蓝色次优路径   ospf非直连down掉造成40s老化才能检测到设备故障)。

9737218d3ae0e8fdd9d7df66acd1cd11.webp

        BFD(双向转发检测机制):充分解决了上面协议响应上检测机制的不足之处(介质无关,协议无关为上层服务协议)BFD本身没有发现机制,依靠上层协议通知,建立BFD会话周期性发送BFD报文,如双方在检测时间内未收到报文,则发生了故障。(可到微秒    1秒=1000毫秒=1000000微秒)组播地址224.0.0.184

3c5b67bd828036b3ecdf33c714c83341.webp

         建立和拆除BFD的变化:双方开始启动的时候初始状态为down ,当我收到down的报文后状态变成init并不再处理接收down的报文,并发送init报文,对方收到我的down的报文同理,发送init,当我收到对方的init报文的时候状态为up稳定状态。(如果一直没收到检测定时器超时机制)

BFD建立会话有两种形式:静态BFD会话,动态BFD会话。两者的不同点为静态BFD是手工指定的本端远端的标识符。动态是相互学习,仅标识本端,远端标识为0,进行动态学习后获取远端标识符。两者配置不同。
      
        bfd代码:
      
      
        BFD  先全局模式下敲BFD,开启bfd
      
      
        bfd 1 bind peer-ip default-ip int g0/0/0      开启二层端口检测
      
      
        bfd 1 bind peer-ip 12.0.0.2/ int vlanif 1     创建三层接口检测
      
      
        discriminator local/remote 10/20              建立本地或者远端标识符
      
      
        commit                                        提交BFD会话
      
      
        min-tx-interval/min-rx-interval 100           配置发送/接收间隔
      
      
        detect-multiplier 3                           配置本地检测倍数默认是3
      
      
        检测公式:本端检测间隔=对端检测倍数*max(发送,接收间隔)
      
      
        display BFD session all verbose               验证BFD会话状态
      
      
        vrrp vrid 1 track bfd-session 10              配置与vrrp联动10为本地标识符
      
      
        bfd all-interfaces enable                     配置与ospf 联动
      
      
        peer x.x.x.x bfd enable                       配置ospf与bfd联动
      
      
        ip route-static x.x.x.x x.x.x.x track bfd-session 1  配置静态路由联动 
      
    

BFD两种会话工作方式:控制报文方式(链路会话,交互链路状态。单跳UDP目的端口3748,多跳为4784)echo报文方式(单项发送报文由另一边转发回来实现双方检测,单臂回声。UDP目的端口为3785)

BFD会话建立前运行模式:主动模式(主动发送报文,无论收到与否),被动模式(不会主动发送报文,直到收到为止) 至少一个为主动模式才能建立会话。

BFD会话建立后运行模式:异步模式(周期性发送BFD报文,在检测时间内没收到则会话down)查询模式(一旦会话建立不再周期性发送报文,而是用其他方式检测连通性,减少BFD会话开销)

接受间隔和发送间隔计算(bfd快慢设置):

举例:sw1  最小发送间隔300ms    最小接受间隔500ms  本地检测倍数 5                                      sw2  最小发送间隔200ms   最小接间隔600ms  本地检测数 2

sw2最终时间:sw1发送300ms接收600 只能600ms接收的最大值 则600*对端检测倍数5=3000

sw1 终时间 :sw2 发送200ms接收500只能500ms最大接收 则500*2=1000ms

应用场景:

1.检测ip链路(检测直连:单跳绑定接口,非直连:多跳绑定IP检测)

2.BFD单臂回声(一方支持BFD的情况)

3.与接口状态联动(检测非直连故障接口状态)

4.与静态路由联动(静态本身没检测机制)

5.与RIP,OSPF,ISIS,MPLS,IPV6,vrrp联动(ospf等各类协议都是秒级)

6.与smart link联动

案例1(上篇的vrrp,ospf做bfd)

034683891627a590d37096be82f4e6bc.webp

1.先做vrrp 监听上行接口,避免上层接口down造成次优路由(lsw 10)

      
        
          interface vlan 8
        
      
      
        vrrp vrid 1 track interface GigabitEthernet 0/0/4 reduced 101  
      
      
        --当上层链路down掉vlanif 8 的优先级200会减去101 变成 99让 lsw11变成主
      
      
        lsw 11同理
      
      
        
          interface vlan 9
        
      
      
        vrrp vrid 2 track interface GigabitEthernet 0/0/4 reduced 101
      
    

LSW10的上层链路AR6 1.1.1.1的接口 DOWN掉 pc5仍然可以访问如下(次优路径)

372086201585585f79a2bf3a33dae58d.webp

命令配置后LSW10优先级如下

5f94a0676bf5215fa050a5696a21ad0a.webp

2.做bfd当中间链路发生故障(检测两个ip是否能通不能通自动变成主)

      
        LSW 10
      
      
        interface vlanif 8
      
      
        bfd 1 bind peer-ip 192.168.8.253 source-ip 192.168.8.252 auto
      
      
        vrrp vrid 1 track bfd-session session-name 1 reduced 101
      
      
        --当主和备bfd down掉主的优先级减去101变成99
      
      
        LSW 11
      
      
        bfd 1 bind peer-ip 192.168.8.252 source-ip 192.168.8.253 auto
      
      
        vrrp vrid 1 track bfd-session session-name 1 increased  101
      
      
        ---利用两个ip互通检测,当主不能通,我的优先级加上101变成201
      
      
        
          
LSW 10 interface vlanif 9 bfd 1 bind peer-ip 192.168.9.252 source-ip 192.168.9.253 auto vrrp vrid 2 track bfd-session session-name 1 reduced 101 ---利用两个ip互通检测,当主不能通,我的优先级加上101变成201 LSW 11 interface vlanif 9 bfd 1 bind peer-ip 192.168.9.253 source-ip 192.168.9.252 auto vrrp vrid 2 track bfd-session session-name 1 increased 101 --当主和备bfd down掉主的优先级减去101变成99

a364287f85e8c4ec9e71d8434a577dc1.webp

1.非直连OSPF 做bfd(拓扑如下,当非直连断开,AR7和AR8的ospf需要等待40s判定断开)

ec0c2e606d5b167f0196f7f6378e4e1b.webp

      
        AR6,AR8 的ospf进程里面打上所有接口全部宣告BFD
      
      
        ospf 1 
      
      
        BFD  all-interfaces  enable 
      
    

当ospf断开后(BFD先告知down掉了,bfd告知ospf立即down掉)

3829ee68595e613c1cddbf305433b05f.webp

good-icon 0
favorite-icon 0
收藏
回复数量: 0
    暂无评论~~
    Ctrl+Enter