概览格式
BGP 报文格式如图所示:
注:此图并不严谨:BGP Packet 的 Open、Update、Notification … 并非字段,而是不同类型的 BGP Packet 载荷;
Header: BGP Header
主要字段解释如下:
Marker:长度:16-Byte;用于标明 BGP 报文边界,所有 bit 均为“1”;
Length:长度:2-Byte;BGP 报文总长度(包括报文头在内),以 Byte 为单位。
Type:长度:1-Byte;BGP 报文的类型。
其取值从 1-5 来表示 5 种报文,分别表示 Open、Update、Notification、Keepalive、Route-refresh 报文;
Payload: BGP Packet
BGP 存在 5 种类型的报文,不同类型的报文拥有相同的头部(header)。
报文名称,作用,发送时刻:
Open:协商 BGP 对等体参数,建立对等体关系;
BGP TCP连接建立成功之后
Keepalive:标志对等体建立,维持BGP对等体关系
BGP路由器收到对端发送的Keepalive报文,将对等体状态置为已建立,同时后续定期发送keepalive报文用于保持连接
Update,发送 BGP 路由更新
当 BGP Peer 关系建立后,如果有路由需要发送或路由变化,则向对等体发送Update报文
Notification,报告错误信息,中止对等体关系;
当 BGP 在运行中发现错误时,发送 Notification 报文将错误通告给 BGP Peer;
Route-refresh,用于当本端改变路由策略后,要求 BGP Peer 重新发送路由信息。只有支持 Router Refresh 能力的 BGP 设备会发送和响应此报文
当路由策略发生变化时,触发请求对等体重新通告路由