BFD基础

在这里插入图片描述

BFD

概述

故障检测

  • 硬件检测

    • 很快发现故障
    • 但并不是所有介质都能提供硬件检测
  • 慢hello

    • 采用路由协议中的Hello报文机制

      • fast hello

        • 1秒
        • 针对本协议
    • 测到故障所需时间为秒级

    • 依赖于路由协议

  • 其他检测机制

    • 系统间互联互通时,这样的专用检测机制通常难以部署

报文类型

  • 控制报文

    • 标准定义
  • echo报文

    • 非标定义

控制报文的bfd

原理

  • 工作原理

    • 控制报文

      • BFD 控制报文采用UDP 封装,源端口号的范围为49152 到65535,对于单跳检测其UDP 目的端
        口号为3784,对于多跳检测其UDP 目的端口号为4784。

      • 报文结构

        • 报文头

          • 控制报文头

            • 字段定义

              • Vers BFD协议版本号,目前版本号为1
              • Diag 诊断码,表明发送方最近一次会话Down的原因
              • Sta
                发送方BFD会话当前状态,取值为:
                • 0:代表AdminDown
                • 1:代表Down
                • 2:代表Init
                • 3:代表Up
              • P 会话参数变化时置位
              • F
                如果收到的BFD控制报文P字段置位,则将下一个发送的BFD控制报文的F字段置位作为
                应答
              • C 该字段置位表明BFD的实现是独立于控制平面的
              • A 该字段置位表明报文包含认证部分,会话需要进行认证
              • D
                该字段置位表明发送方希望以查询模式运行,不置位表明不希望以查询模式运行或不支
                持查询模式
              • R 保留位,发送时设为0,接收时忽略该字段
              • Detect Mult 检测时间倍数
              • Length BFD控制报文长度,单位为字节
              • My Discriminator 发送方产生的一个唯一非0值,用来标识不同的BFD会话
              • Your Discriminator
                如果已经收到会话邻居发送的BFD控制报文则该值为收到报文中的My Discriminator,否
                则为0
              • Desired Min TX
                Interval 发送方支持的最小BFD控制报文发送时间间隔,单位为微秒
              • Required Min RX
                Interval 发送方支持的最小BFD控制报文接收时间间隔,单位为微秒
              • Required Min Echo
                RX Interval
                发送方支持的最小BFD Echo报文接收时间间隔,单位为微秒。为0表示不支持BFD Echo
                报文
              • Auth Type 认证类型
              • Auth Len 可选认证部分长度,包括Auth Type和Auth Len字段,单位为字节
              • Authentication Data 认证数据区
    • 会话建立方式

      • 静态bfd

        • 手工创建静态BFD 会话的同时,指定本地标识符和远端标识符
        • 将应用程序与BFD 联动时,手工指定本地标识符和远端标识符
      • 动态bfd

        • 动态 BFD 会话的本端标识符由本端设备分配,远端标识符在BFD 会话协商建立过程中获取。
    • 会话建立过程

      • 状态机

        • DOWN:本端会话已经关闭或刚刚创建。DOWN 状态表示转发路径不可用,与BFD 会话联动的上层应用需要采取适当的措施,例如主备路径切换等
        • INIT:本端已经可以与对端通信,且本端希望会话进入UP 状态。
        • UP:本端会话已经建立成功。UP 状态表示转发路径可用。
      • 会话建立

        • 模式分类

          • 主动模式:在建立会话前不管是否收到对端发来的BFD 控制报文,都会主动发送BFD 控制报
            文;
          • 被动模式:在建立会话前不会主动发送BFD 控制报文,直到收到对端发送来的控制报文。
        • 建立过程

          • 三次握手的机制

            • (1) Router A和Router B的BFD 收到上层应用的通知后,发送状态为DOWN的BFD 控制报文。
            • (2) Router B 收到对端状态为DOWN 的BFD 控制报文后,本地会话状态由DOWN 迁移到INIT,
              随后将待发送的BFD 控制报文中的Sta 字段填为2(表示会话状态为INIT)。Router A 的BFD
              状态变化同Router B。
            • (3) Router A 收到对端状态为INIT 的BFD 控制报文后,本地会话状态由INIT 迁移到UP,随后将
              待发送的BFD 控制报文中的Sta 字段填为3(表示会话状态为UP)。Router B 的BFD 状态
              变化同Router A。
            • (4) BFD 双方状态都为UP 时,标志会话成功建立,两端开始检测链路状态。
            • (5) 如果本端BFD 会话DOWN,将会向对端发送Sta 字段填为1 的BFD 控制报文,通知对端会
              话DOWN,对端的BFD 会话也迁移到DOWN 状态。
    • 定时器协商

      • 定时器值的选取原则

        • BFD 控制报文发送时间间隔

          • =MAX(本端Desired Min TX Interval,对端Required Min RX
            Interval)
        • 检测时间

          • =对端BFD 控制报文中的Detect Mult×MAX(本端Required Min RX Interval,对端Desired Min TX Interval)
      • BFD 检测时间协商

        • Router A 与Router B 建立BFD 会话,
          双方的Desired Min TX Interval 和Required Min RX Interval (下面简称为TX 和RX)都为100ms,
          Detect Mult 都为3。根据定时器协商规则,Router A 的发送时间间隔为Router A 的TX 与Router B
          的RX 中的最大值也就是100ms,Router B 的发送时间间隔也是100ms,双方的检测超时时间都
          为300ms。
          如果此时将Router A 的TX 和RX 加大到150 ms。
          (1) Router A 比较本端的RX(150ms)和Router B 的TX(100ms),然后将本端检测时间改为
          450ms,同时向对端发送P 字段置位的BFD 控制报文(TX 和RX 均为150ms)。
          (2) Router B 收到报文后,将收到报文中的RX 与本端的TX 进行比较,由于RX 较大,故Router
          B 的发送间隔改为150ms。经过比较本端RX和对端的TX,从而将检测时间也增大到450ms。
          调整完成后给Router A 回复F 字段置位的BFD 控制报文(TX 和RX 均为100ms)。
          (3) Router A 收到对端发来F 字段置位的控制报文,根据报文中的RX 与本端的TX 进行比较计算
          出新的时间间隔为150ms。
          (4) 定时器协商完成,双方的发送间隔和检测时间均分别为150ms 和450ms。
    • 会话检测机制

      • 异步模式:设备周期性发送BFD 控制报文,如果在检测时间内没有收到对端发送的BFD 控制
        报文,则认为会话DOWN。缺省情况下,BFD 会话为异步模式。

      • 查询模式:当系统中的BFD 会话数量较多时,采用查询模式可防止周期性发送BFD 控制报文
        的开销对系统的正常运行造成影响。

        • 本端的BFD 会话工作在查询模式时,本端设备会向对端发送D 比特位置1 的BFD 控制报
          文,对端(缺省为异步模式)收到该报文后将停止周期性发送BFD 控制报文。
        • 如果 BFD 会话两端都是查询模式,则双方在BFD 会话建立后停止周期性发送BFD 控制报
          文。仅当需要验证连通性的时候,设备会连续发送P 比特位置1 的BFD 控制报文。如果在
          检测时间内没有收到对端回应的F 比特位置1 的报文,就认为会话DOWN;如果在检测时
          间内收到对端回应的F 比特位置1 的报文,就认为链路连通,停止发送报文,等待下一次
          触发查询。
    • 回声功能

      • 单臂回声≠echo报文

        • 使用异步模式的BFD 会话检测直连网段的连通性时,可以使用BFD 回声功能辅助进行故障检测。
          回声功能启动后,会话的一端周期性地发送BFD echo 报文,同时自动降低控制报文的接收速率,
          减少对带宽资源的消耗。对端不对BFD control echo 报文进行处理,而只将此报文转发回发送端。如果发
          送端连续几个echo 报文都没有接收到,会话状态将变为DOWN。
  • 各种分类

    • 会话建立方式

      • 静态bfd

        • 二层链路检测

        • 三层链路检测

          • 单挑检测
          • 多跳检测
        • 聚合口链路检测

        • 单臂回声链路检测

      • 动态bfd

        • 静态路由
        • ospf
        • bgp
        • isis
        • rip
        • vrrp
    • 链路跳数

      • 单跳
      • 多跳
    • 会话建立模式

      • 主动模式
      • 被动模式
    • 会话建立后操作模式

      • 异步模式
      • 查询模式

参数

  • BFD基础配置功能

    • BFD单挑检测

    • BFD多跳检测

    • 静态标识符配置

    • BFD单臂回声功能

    • BFD会话认证信息

    • 会话检测机制

    • 运行模式

      • 主动
      • 被动
  • BFD参数配置

    • BFD检测时间
      (具体啥用)

      • 检测时间 = 本端检测倍数 × max(本端最短接收间隔,本端最短发送间隔)

        • 本端检测倍数
          detect-multiplier
        • 本端最短接收间隔
          min-rx-interval
        • 本端最短发送间隔
          min-tx-interval
    • BFD等待恢复时间
      wtr
      (当BFD会话从状态Down变为状态Up时,BFD等待WTR超时后才将这个变化通知给上层应用)

    • BFD会话描述信息
      description
      (只对静态配置的BFD会话有效,对于动态配置的BFD会话和静态标识符自协商BFD会话无效)

    • BFD报文优先级
      tos-exp

      • 功能

        • 检测同一链路上不同优先级的报文转发是否畅通
        • 将BFD报文设置为高优先级报文后,优先保证BFD报文的转发。
    • trap消息定时器时间间隔
      snmp-agent bfd trap-interval

    • bfd会话震荡抑制功能
      dampening timer-interval
      (链路质量差时,BFD检测会导致业务频繁切换。通过配置链路震荡抑制时间,可以防止业务频繁切换,有效保护链路资源,降低链路资源消耗。)

      • dampening timer-interval maximum maximum-milliseconds initial initial-milliseconds secondary secondary-milliseconds

        • initial-milliseconds定时器
        • secondary-milliseconds定时器
        • maximum-milliseconds定时器

bfd应用场景

  • BFD检测IP链路

    • 单跳检测
    • 多跳检测
  • BFD单臂回声功能

    • 单臂回声
  • BFD与接口状态联动

    • 与接口状态联动
  • bfd与协议联动

    • BFD与静态路由联动

    • BFD与RIP联动

    • BFD与IS-IS联动

    • BFD与BGP联动

    • BFD与MPLS LSP联动

      • 暂无需求
    • BFD与MPLS TE联动

      • 暂无需求
    • BFD与VRRP联动

    • BFD与PIM联动

    • bfd与vsf联动

echo报文的bfd

原理

  • 报文

    • BFD echo 报文采用UDP 封装,目的端口号为3785,目的IP 地址为发送接口的地址,源IP 地址
      由配置产生(配置的源IP 地址要避免产生ICMP 重定向)。
    • BFD 协议并没有对BFD echo 报文的格式进行定义,唯一的要求是发送方能够通过报文内容识别会
      话。
    • 当 BFD 会话工作于echo 报文方式时,仅在隧道应用中支持多跳检测,其他应用中仅支持单跳检测。
  • 本端周期性发送echo 报文建立BFD 会话,对链路进行单向检测。对端不建立BFD 会话。

  • 本端发送echo 报文,对端只需把收到的echo 报文转发回本端。如果本端在检测时间内没有收到对
    端转发回的echo 报文,则认为会话DOWN。

参数

应用

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值