BFD控制报文格式
网络协议报文格式大全http://bbs.hh010.com/thread-531884-1-1.html
(出处: 鸿鹄论坛)
BFD控制报文格式BFD控制报文封装在UDP报文中传送,对于单跳检测其UDP目的端口号为3784,对于多跳检测其UDP目的端口号为4784或3784。BFD控制报文根据场景不同封装不同。BFD控制报文包括两部分:强制部分和可选的认证字段。不同的认证类型,认证字段的格式不同。报文格式BFD控制报文强制部分的格式如下(RFC5880):图1 强制部分的格式
http://www.023wg.com/message/message/image/bfd-format.png
字段长度含义
Version (Vers)3 bitsBFD协议版本号,目前为1。
Diagnostic (Diag)5 bits诊断字,标明本地BFD系统最近一次会话状态发生变化的原因,取值及含义:0 -- No Diagnostic1 -- Control Detection Time Expired2 -- Echo Function Failed3 -- Neighbor Signaled Session Down4 -- Forwarding Plane Reset5 -- Path Down6 -- Concatenated Path Down7 -- Administratively Down8 -- Reverse Concatenated Path Down9-31 -- Reserved for future use
[*]
State (Sta)2 bitsBFD本地状态。0 -- AdminDown1 -- Down2 -- Init3 -- Up
Poll (P)1 bit参数发生改变时,发送方在BFD报文中置该标志,接收方必须立即响应该报文。
[*]1:表示发送系统请求进行连接确认,或者发送请求参数改变的确认。
[*]0:表示发送系统不请求确认。
Final (F)1 bit响应P标志置位的回应报文中必须将F标志置位。
[*]1:表示发送系统响应一个接收到P比特为1的BFD包。
[*]0:表示发送系统不响应一个P比特为1的包。
Control Plane Independent (C)1 bit转发/控制分离标志,一旦置位,控制平面的变化不影响BFD检测,如:控制平面为IS-IS,当IS-IS重启/GR时,BFD可以继续监测链路状态。
[*]1:表示发送系统的BFD实现不依赖于它的控制平面。即,BFD报文在转发平面传输,即使控制平面失效,BFD仍然能够起作用。
[*]0:表示BFD报文在控制平面传输。
Authentication Present (A)1 bit认证标识,置1代表会话需要进行验证。
Demand (D)1 bit查询请求,置位代表发送方期望采用查询模式对链路进行监测。
[*]1:表示发送系统希望工作在查询模式。
[*]0:表示发送系统不希望、或不能工作在查询模式。
Multipoint (M)1 bit为BFD将来支持点对多点扩展而设的预留位。
Detect Mult8 bits检测超时倍数,用于检测方计算检测超时时间。
[*]查询模式:采用本地检测倍数。
[*]异步模式:采用对端检测倍数。
Length8 bits报文长度,单位为字节。
My Discriminator32 bitsBFD会话连接本地标识符。发送系统产生的一个唯一的、非0鉴别值,用来区分一个系统的多个BFD会话。
Your Discriminator32 bitsBFD会话连接远端标识符。从远端系统接收到的鉴别值,这个域直接返回接收到的“My Discriminator”,如果不知道这个值就返回0。
Desired Min TX Interval32 bits本地支持的最小BFD报文发送间隔,单位为微秒。
Required Min RX Interval32 bits本地支持的最小BFD报文接收间隔,单位为微秒。
Required Min Echo RX Interval32 bits本地支持的最小Echo报文接收间隔,单位为微秒(如果本地不支持Echo功能,则设置0)。
图2 BFD控制报文可选部分的格式
http://www.023wg.com/message/message/image/bfd-format-option.png
字段长度含义
Auth Type8 bitsBFD控制报文使用的认证类型。不同值表示的认证类型如下:0 - Reserved1 - Simple Password2 - Keyed MD53 - Meticulous Keyed MD54 - Keyed SHA15 - Meticulous Keyed SHA16-255 - Reserved for future use
Auth Len8 bits认证字段的长度,包括认证类型与认证长度字段,单位为字节。
Authentication DataVariable认证字段净荷。如果A比特位置1且认证类型值为1(Simple Password),则认证字段格式如下:http://www.023wg.com/message/message/image/bfd-format-option-A11.png
[*]Auth Type:认证类型,对于简单密码认证,值为1。
[*]Auth Len:认证字段长度,对于简单密码认证,长度等于密码长度+3。
[*]Auth Key ID:该报文使用的认证秘钥ID,该值允许同时激活多个秘钥。
[*]Password: 密码值,是个二进制字符串,长度为1~16字节。
如果A比特位置1切认证类型值为2(Keyed MD5)或3(Meticulous Keyed MD5),则认证字段格式如下:http://www.023wg.com/message/message/image/bfd-format-option-A12.png
[*]Auth Type:认证类型,值为2 (Keyed MD5)或3 (Meticulous Keyed MD5)。
[*]Auth Len:认证字段长度,对于Keyed MD5和Meticulous Keyed MD5认证,长度值为24。
[*]Auth Key ID:该报文使用的认证秘钥ID,该值允许同时激活多个秘钥。
[*]Reserved:在传输过程中,该值必须为0,接收端接收时忽略此字段。
[*]Sequence Number: 报文顺序号。对于Keyed MD5认证,该值随机增加,对于Meticulous Keyed MD5认证,同一个会话中的报文按顺序逐渐增加。该值用于预防重放攻击。
[*]Auth Key/Digest: 该字段携带16字节MD5摘要信息。当MD5摘要被计算后,该字段填的是MD5共享秘钥,并按需尾填充16字节的0。
如果A比特位置1切认证类型值为4(Keyed SHA1)或5(Meticulous Keyed SHA1),则认证字段格式如下:http://www.023wg.com/message/message/image/bfd-format-option-A145.png
[*]Auth Type:认证类型,值为4 (Keyed SHA1)或5 (Meticulous Keyed SHA1)。
[*]Auth Len:认证字段长度,对于Keyed SHA1和Meticulous Keyed SHA1认证,长度为28。
[*]Auth Key ID:该报文使用的认证秘钥ID,该值允许同时激活多个秘钥。
[*]Reserved:在传输过程中,该值必须为0,接收端接收时忽略此字段。
[*]Sequence Number: 报文顺序号。对于Keyed SHA1认证,该值随机增加,对于Meticulous Keyed SHA1认证,同一个会话中的报文按顺序逐渐增加。该值用于预防重放攻击。
[*]Auth Key/Digest: 该字段携带20字节SHA1哈希值。当hash被计算后,,该字段填的是SHA1共享秘钥,并按需尾填充20字节的0。
报文示例图3 BFD报文格式(不认证)
http://www.023wg.com/message/message/image/BFD_control.png
图4 BFD报文格式(简单认证)
http://www.023wg.com/message/message/image/BFD-simple.png
图5 BFD报文格式(MD5认证)
http://www.023wg.com/message/message/image/BFD-MD5.png
图6 BFD报文格式(SHA1认证)
http://www.023wg.com/message/message/image/BFD-SHA1.png
参考标准
标准描述
RFC 5880Bidirectional Forwarding Detection
感謝版主! ddddddddddddd
页:
[1]