「BFD」- 报文格式

  CREATED BY JENKINSBOT

BFD 检测是通过维护在两个系统间建立的 BFD Session 来实现的,系统通过发送 BFD 报文建立会话;
BFD 控制报文根据场景不同封装不同,报文结构由 强制部分可选的认证字段 组成;

强制部分

Ver:BFD协议版本号,目前为 1;
Diag:诊断字,标明本地 BFD 系统最近一次会话状态发生变化的原因;
Sta:BFD本地状态;

P:参数发生改变时,发送方在BFD报文中置该标志,接收方必须立即响应该报文;
F:响应P标志置位的回应报文中必须将F标志置位;
C:转发/控制分离标志,一旦置位,控制平面的变化不影响BFD检测;
A:认证标识,置1代表会话需要进行验证;
D:查询请求,置位代表发送方期望采用查询模式对链路进行监测;
M:为BFD将来支持点对多点扩展而设的预留位;

Detect Mult:检测超时倍数,缺省 3 倍。用于检测方计算检测超时时间;
Length:报文长度,单位为字节;

My Discriminator:BFD 会话连接本地标识符(Local Discriminator) 。发送系统产生的一个唯一的、非零鉴别值,用来区分一个系统的多个BFD会话;
Your Discriminator:BFD 会话连接远端标识符(Remote Discriminator) 。从远端系统接收到的鉴别值,这个域直接返回接收到的“My Discriminator”,如果不知道这个值就返回0;

Desired Min TX Interval:本地支持的最小 BFD 报文发送间隔;
Required Min RX Interval:本地支持的最小 BFD 报文接收间隔;
Required Min Echo RX Interval:本地支持的最小Echo报文接收间隔,单位为微秒(如果本地不支持Echo功能,则设置0);

可选部分(认证字段)

报文格式

单臂回声

Frame 33: 66 bytes on wire (528 bits), 66 bytes captured (528 bits) on interface -, id 0
Ethernet II, Src: HuaweiTe_84:0e:3c (00:e0:fc:84:0e:3c), Dst: HuaweiTe_76:6c:63 (00:e0:fc:76:6c:63)
Internet Protocol Version 4, Src: 10.0.25.2, Dst: 10.0.25.2
User Datagram Protocol, Src Port: 49154, Dst Port: 3784
BFD Control message
    001. .... = Protocol Version: 1
    ...0 0000 = Diagnostic Code: No Diagnostic (0x00)
    11.. .... = Session State: Up (0x3)
    Message Flags: 0xc0
    Detect Time Multiplier: 3 (= 3000 ms Detection time)
    Message Length: 24 bytes
    My Discriminator: 0x00000002
    Your Discriminator: 0x00000002
    Desired Min TX Interval: 1000 ms (1000000 us)
    Required Min RX Interval: 1000 ms (1000000 us)
    Required Min Echo Interval: 1078071 ms (1078071040 us)

单臂回声的原理是发送发给自己的 BFD 报文,即 SRC-IP-Address 与 DST-IP-Address 相同。