BGP的数据包
Open、Update、Notification、Keepalive、Route-refresh
BGP的公共头部
Marker :标记 (可以兼容字段、版本) 全F
Length: 标明数据包多长多大
Type:表明数据包类型(可选 12345)
Open报文
--- 用来建立BGP对等体关系的数据报文
版本:协议版本
AS号:自身的AS号,比对逻辑对等体发过来的OPEN报文中携带的AS号,必须和指定建邻的AS必须一致,否则会导致建邻失败
保活时间:类似于OSPF的死亡时间 默认时间180s ,如果对等体双方保活时间不一致,会按照时间更短的去执行。
路由器标识符:Router ID --- 建邻双方的RID不能一致,如果相同会导致建立对等体失败。
认证
Keepalive报文
- 用于周期保活BGP对等体关系,默认是1/3的周期保活时间是60s。
- 用来做Open报文的临时确认包
Update报文
--- 传递BGP路由信息的数据包
Notification 报文
--- 告警报文,在BGP工资过程中如果出现故障导致出现问题,会发送Notification报文告知对等体故障的原因。
Route-refresh 报文
--- 用于在改变路由策略后请求对等体重新发送路由信息。
BGP的5种报文格式
BGP对等体间通过以下5种报文进行交互,其中Keepalive报文为周期性发送,其余报文为触发式发送:
- Open报文:用于建立BGP对等体连接。
- Update报文:用于在对等体之间交换路由信息。
- Notification报文:用于中断BGP连接。
- Keepalive报文:用于保持BGP连接。
- Route-refresh报文:用于在改变路由策略后请求对等体重新发送路由信息。只有支持路由刷新(Route-refresh)能力的BGP设备会发送和响应此报文。
BGP的状态机
建立对等体之间TCP会话:指定建立对等体的对象
面试题:BGP有几次会话
BGP在建立对等体过程中会建立两次TCP会话,会保留RID大的设备发起的TCP会话