小乔 发表于 2017-11-24 10:29:55

BGP OPEN报文格式

网络协议报文格式大全
http://bbs.hh010.com/thread-531884-1-1.html
(出处: 鸿鹄论坛)

BGP OPEN报文格式报文格式如果BGP报文头中的TYPE为1,则该报文为OPEN报文。报文头后面所接的报文内容如下,OPEN报文用于建立BGP连接:图1 OPEN报文格式
http://www.023wg.com/message/message/image/bgp-format-open.png



字段长度含义
Version1个字节(无符号位)表示协议的版本号,现在BGP的版本号为4。
My Autonomous System2个字节(无符号位)发送者自己的AS域号
Hold Time2个字节(无符号位)发送者自己设定的hold time值(单位:秒),用于协商BGP对等体间保持建立连接关系,发送KEEPALIVE或UPDATE等报文的时间间隔。BGP的状态机必须在收到对等体的OPEN报文后,对发出的OPEN报文和收到的OPEN报文两者的hold time时间作比较,选择较小的时间作为协商结果。Hold Time的值可为零(不发KEEPALIVE报文)或大于等于3,我们系统的默认为180。
BGP Identifier4个字节(无符号位)发送者的router id。
Opt Parm Len1个字节(无符号位)表示Optional Parameters(可选参数)的长度。如果此值为0,表示没有可选参数。
Optional Parameters 此值为BGP可选参数列表,每一个可选参数是一个TLV格式的单元(RFC3392)。0                   10 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-...|Parm. Type   | Parm. Length|Parameter Value (variable)+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-...
[*]Parm. Type:占1个字节(无符号位),为可选参数类型。我们现在的实现中,只在type值为2时有意义,表示携带的参数为协商能力。
[*]Parm. Length:占1个字节(无符号位),为Parameter Value的长度。
[*]Parameter. Value:根据Parm.Type的不同值填写不同的参数内容,在Parm.Type为2表示协商能力时,Parameter.Value是表示所支持的各种协商能力的列表,列表中的每一个单元是如下的一个TLV三元组:+------------------------------+| Capability Code (1 octet)    |+------------------------------+| Capability Length (1 octet)|+------------------------------+| Capability Value (variable)|+------------------------------+

[*]Capability Code:所支持的能力编号,占1个字节。Code为1时,表示支持的地址族能力;Code为2时,表示支持REFRESH能力。
[*]Capability Length:表示Capability Value的长度,占1个字节。
[*]Capability Value:根据Code值的不同其内容与长度也不同。Capability Code为1:Capability Value值是一个TLV三元组,共占4个字节:0       7      15      23      31+-------+-------+-------+-------+|      AFI      | Res.| SAFI|+-------+-------+-------+-------+AFI:地址族标识(Address Family Identifier),占2个字节,能力所支持地址族标识信息,用以和SAFI一同确定网络层协议和IP地址间的关系,编码方式与多协议扩展中的规定相同。其值按照RFC1700中ADDRESS FAMILY NUMBERS的定义;Res:保留位,占1个字节,发送者应将其设置为零,在接受的时候忽略;SAFI:子地址族标识(Address Family Identifier),占1个字节,能力所支持的子地址族标识信息,用以和AFI一同确定网络层协议和IP地址间的关系,编码方式与多协议扩展中的规定相同。其值按照RFC1700中ADDRESS FAMILY NUMBERS的定义。Capability Code为2(RFC2918)表示支持路由刷新能力,即Route Refresh Capability。此能力的code为2,length为零,无value部分。需要说明的是,只有在能力协商中使能了支持Route Refresh Capability,路由器才能处理REFRESH报文。我们的实现是默认情况下,支持IPv4单播能力与路由刷新能力,其他能力需要另外设定。



表1 AFI及SAFI编码说明

AFI编码AFI说明SAFI编码SAFI说明说明
1IPv4地址族1单播IPv4单播
2组播IPv4组播
128VPNIPv4的L3VPN
2IPv6地址族1单播IPv6单播
2组播IPv6组播
128VPNIPv6的L3VPN
196二层128VPNL2VPN的Kompella方式


报文实例http://www.023wg.com/message/message/image/BGP-header_OPEN-example.png
参考标准

标准描述
RFC 827Exterior Gateway Protocol (EGP)
RFC 2918Route Refresh Capability for BGP-4
RFC 4271A Border Gateway Protocol 4 (BGP-4)





byronyj 发表于 2017-11-24 16:25:07

感謝版主!

hugo_26 发表于 2020-2-2 21:22:30

ddddddddddddddd
页: [1]
查看完整版本: BGP OPEN报文格式