开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第31天,点击查看活动详情
BGP的报文结构:所有报文都是单播
- TCP端口号179
- BGP头部是固定的东西
BGP包类型
- Open包, 类似hello,建立邻居关系
- Keeplive 类似hello,维护邻居关系
- Update 路由更新,包含属性
- Notification 当检测到错误后,发送后关闭BGP连接
- Route-refresh 当路由策略发生变化的时候,触发请求邻居重新通告路由
BGP状态
- ldle 初始化,路由器查找路由表,是否有达到邻居的路由
- Connect 发起tcp连接,等待tcp连接
- Active TCP连接失败,继续尝试TCP连接
- Open Sent TCP连接成功,已发送Open包
- Open Confirm 已收到对方正确的Open包,如果没有收到,会进入Active
- Established 邻居建立完成,开始传递路由
Idle 找到路由了就开始建立三次握手,进入了connect状态,connect超时,还是connect,三次握手的包发出去了,但是连接失败,就停留在active,active也会进行重试,尝试成功了,进入open sent,如果active 重试超时,退回到connect状态,opensent之后的状态如果失败,则退回到Idle状态。
BGP邻居关系建立
BGP活跃状态验证
活跃:路由器已发送一个Open数据包,正在等待响应。
- 状态可能会在活跃与空闲之间不断循环
- 由于以下原因,邻居可能不知道如何返回到该路由器:
- 不存在指向BGP”打开“数据包源IP地址的路由
- 邻居与错误的地址建立对等关系
- 不存在该路由器的邻居声明
- AS号配置错误