前言:发送报文的前提是TCP连接已建立成功。
个人理解:BGP更多的是像一个跑道,为更多的路由提供传输条件,优势在于通过路由策略的运用,对路由进行控制。
所有的BGP报文都需要遵循以下格式
Header:头
Message:详细信息
Data:数据
是所有BGP报文都有的头部,包含以下三要素:
1.标识符:16字节,均为1,表现为均是f
2.长度:包头+信息的总长度
3.类型:报文类型
Border Gateway Protocol - OPEN Message Marker: ffffffffffffffffffffffffffffffff 标识符:16字节,均为1,表现为均是f Length: 45 长度:包头+信息的总长度 Type: OPEN Message (1) 报文类型Open报文:
作用是协商BGP的参数,包括BGP版本(目前使用的是V4,之前有V1,2,3),AS号等,尝试与BGP对等体建立BGP邻居关系,是TCP连接建立后的发的第一个报文。
frame 36: 99 bytes on wire (792 bits), 99 bytes captured (792 bits) on interface -, id 0 Ethernet II, Src: HuaweiTe_80:1d:a1 (00:e0:fc:80:1d:a1), Dst: HuaweiTe_72:2a:c7 (00:e0:fc:72:2a:c7) Internet Protocol Version 4, Src: 3.3.3.3, Dst: 4.4.4.4 Transmission Control Protocol, Src Port: 179, Dst Port: 49724, Seq: 1, Ack: 1, Len: 45 Border Gateway Protocol - OPEN Message Marker: ffffffffffffffffffffffffffffffff 标识符 Length: 45 长度 Type: OPEN Message (1) 类型 Version: 4 BGP版本 My AS: 200 发送该报文的路由器所在的AS号 Hold Time: 180 等待时间,如果超过180秒,表示无响应断开 BGP Identifier: 4.4.4.4 本地配置的router-id Optional Parameters Length: 16 可选参数字节长度 Optional Parameters Optional Parameter: Capability Parameter Type: Capability (2) Parameter Length: 14 Capability: Multiprotocol extensions capability 多协议扩展能力,默认是IPv4 Type: Multiprotocol extensions capability (1) Length: 4 AFI: IPv4 (1) 地址族ID(AFI)为IPv4 Reserved: 00 SAFI: Unicast (1) 子地址族ID:单播 Capability: Route refresh capability 路由刷新能力值 Type: Route refresh capability (2) Length: 0 Capability: Support for 4-octet AS number capability 支持4个字节的AS号码的能力(2字节是1-65535,4字节是1-4294967295) Type: Support for 4-octet AS number capability (65) Length: 4 AS Number: 200Update报文:
用于路由信息更新,包括新增路由(可达路由)更新通知和撤销路由(不可达路由)更新通知。
注:可达路由和不可达路由Update报文中包含的元素是不同的。
1.可达路由:新增路由更新,下面案例为bgp 200中宣告(network)自己的环回口,导致路由信息更新。
frame 20: 109 bytes on wire (872 bits), 109 bytes captured (872 bits) on interface -, id 0 Ethernet II, Src: HuaweiTe_80:1d:a1 (00:e0:fc:80:1d:a1), Dst: HuaweiTe_72:2a:c7 (00:e0:fc:72:2a:c7) Internet Protocol Version 4, Src: 3.3.3.3, Dst: 4.4.4.4 Transmission Control Protocol, Src Port: 179, Dst Port: 49153, Seq: 47, Ack: 20, Len: 55 Border Gateway Protocol - UPDATE Message Marker: ffffffffffffffffffffffffffffffff Length: 55 Type: UPDATE Message (2) Withdrawn Routes Length: 0 撤销(不可达)路由长度,此次为0,就是新增的路由信息 Total Path Attribute Length: 28 总的路径属性长度 Path attributes 路径属性 Path Attribute - ORIGIN: IGP 源:IGP Path Attribute - AS_PATH: empty AS路径:无 Path Attribute - NEXT_HOP: 3.3.3.3 下一跳 Path Attribute - MULTI_EXIT_DISC: 0 MED为0 Path Attribute - LOCAL_PREF: 100 本地优先级 Network Layer Reachability Information (NLRI) 网络层可达性信息(NLRI) 3.3.3.0/24 NLRI prefix length: 24 NLRI 前缀长度 NLRI prefix: 3.3.3.0 NLRI 前缀(路由前缀)
2.不可达路由:撤销路由,下面案例是去掉环回口的宣告(network),模拟出现“撤销的update”
frame 11: 81 bytes on wire (648 bits), 81 bytes captured (648 bits) on interface -, id 0 Ethernet II, Src: HuaweiTe_80:1d:a1 (00:e0:fc:80:1d:a1), Dst: HuaweiTe_72:2a:c7 (00:e0:fc:72:2a:c7) Internet Protocol Version 4, Src: 3.3.3.3, Dst: 4.4.4.4 Transmission Control Protocol, Src Port: 179, Dst Port: 49153, Seq: 1, Ack: 1, Len: 27 Border Gateway Protocol - UPDATE Message Marker: ffffffffffffffffffffffffffffffff Length: 27 Type: UPDATE Message (2) Withdrawn Routes Length: 4 撤销(不可达)路由长度,此次为4,就是要撤销的路由信息 Withdrawn Routes 撤回的路由 3.3.3.0/24 Withdrawn route prefix length: 24 Withdrawn prefix: 3.3.3.0 Total Path Attribute Length: 0 总的路径属性长度,此次为0,说明这个UPDATE报文是撤销路由报文Keepalive报文:
用于保持邻居关系,两邻居间周期性发送,判断对等体之间的可达性,相当于OSPF中的Hello报文。
注:Keepalive报文只有报文头部,发送时间是60s,两端互相发送,三倍的发送时间(180s)若没收到对方的回应,断开BGP连接。
frame 53: 73 bytes on wire (584 bits), 73 bytes captured (584 bits) on interface -, id 0 Ethernet II, Src: HuaweiTe_80:1d:a1 (00:e0:fc:80:1d:a1), Dst: HuaweiTe_72:2a:c7 (00:e0:fc:72:2a:c7) Internet Protocol Version 4, Src: 3.3.3.3, Dst: 4.4.4.4 Transmission Control Protocol, Src Port: 179, Dst Port: 49724, Seq: 65, Ack: 65, Len: 19 Border Gateway Protocol - KEEPALIVE Message Marker: ffffffffffffffffffffffffffffffff Length: 19 Type: KEEPALIVE Message (4)Notification报文:
差错通知,BGP的差错检测机制,在建立邻居过程中或者邻居已建立后出现如何差错BGP speaker都会发送该报文,然后与之相关的BGP邻居关系将被关闭。
注:错误代码分很多种,下面只列举了一种,此次显示的是我将OSPF的路由删除了一条,导致OSPF无法建立邻居关系,进而使BGP的Keepalive报文响应时间超时(超过了180s)。
frame 194: 75 bytes on wire (600 bits), 75 bytes captured (600 bits) on interface -, id 0 Ethernet II, Src: HuaweiTe_80:1d:a1 (00:e0:fc:80:1d:a1), Dst: HuaweiTe_72:2a:c7 (00:e0:fc:72:2a:c7) Internet Protocol Version 4, Src: 3.3.3.3, Dst: 4.4.4.4 Transmission Control Protocol, Src Port: 49855, Dst Port: 179, Seq: 210, Ack: 172, Len: 21 Border Gateway Protocol - NOTIFICATION Message Marker: ffffffffffffffffffffffffffffffff Length: 21 Type: NOTIFICATION Message (3) Major error Code: Hold Timer Expired (4) 错误代码:保持计时器已过期 Minor error Code (Hold Timer Expired): 0Route-Refresh报文:
路由刷新报文,用于改变路由策略后请求对等体重新发布路由信息。
注:下面的结果是使用“refresh bgp all import / export”进行BGP软路由更新,使之出现Route-Refresh 报文。
frame 295: 77 bytes on wire (616 bits), 77 bytes captured (616 bits) on interface -, id 0 Ethernet II, Src: HuaweiTe_80:1d:a1 (00:e0:fc:80:1d:a1), Dst: HuaweiTe_72:2a:c7 (00:e0:fc:72:2a:c7) Internet Protocol Version 4, Src: 3.3.3.3, Dst: 4.4.4.4 Transmission Control Protocol, Src Port: 179, Dst Port: 49698, Seq: 398, Ack: 343, Len: 23 Border Gateway Protocol - ROUTE-REFRESH Message Marker: ffffffffffffffffffffffffffffffff Length: 23 Type: ROUTE-REFRESH Message (5) Address family identifier (AFI): IPv4 (1) 地址族ID(AFI)为:IPv4 Subtype: Normal route refresh request [RFC2918] with/without ORF [RFC5291] (0) Subsequent address family identifier (SAFI): Unicast (1) 子地址族ID(SAFI):单播BGP报文应用
1.建立TCP连接时,需要使用open报文。
2.建立TCP连接后,如果有路由需要变化或者路由变化时,发送update报文到对端。
3.稳定后要定时发送keepalive报文以保持BGP连接的有效性。
4.当本地BGP在运行中发现错误时,要发送Notification报文通告BGP对等体
5. Route-Refresh报文用来通知对等体自己的路由刷新
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)