BGP 的四种消息数据包及六种状态机

一、BGP 消息数据包

1.open 包

用于标示自己,规定BGP运行的参数:

  1. BGP version(2,3,4会协商最低的)
  2. AS number,Hold time (默认180s,不一样时以短的为准)
  3. BGP router-id (标识BGP路由器的产生,和OSPF一样)
  4. optional parameters(可选支持,如多协议,认证等)

2.keeplive

用于维护 BGP peer 关系,默认60s,open 包协商成功就会发送 keeplive 包。

3.update

用于更新、通告路由;撤销路由通告,选路属性在 path attributes 属性

4.notification

BGP 出错报文,用于通告 BGP 错误。

二、BGP状态机

1、BGP事件有以下几种:

  1. BGP开始
  2. BGP结束
  3. BGP传输连接打开
  4. BGP传输连接终止
  5. BGP传输连接打开失败
  6. BGP传输致命差错
  7. 重试连接计 时器超时
  8. 持续事件终止
  9. keeplive 计时器终止
  10. 收到 open 消息
  11. 收到 keeplive 消息
  12. 收到 update 消息
  13. 收到 notification 消息

2、状态机:

(1)Idle state

在此状态下配置 neighbor 或重置邻居,BGP将初始化所有资源并打开 Connect Retry 计时器,初始化邻居的TCP连接,监听来自邻居初始化消息并将它的状态转未Connect状态。
为了防止差错的持续出现造成BGP邻居的摆动,Connect Retry 计时器会呈现级数级的增加第一次60s,下一次的为前一 次的2倍120s,再下次240s。

(2)Connect state

BGP在此状态需等到TCP连接完成以后再决定后续的动作;

  1. 如果TCP同步成功,BGP将connect Retry计时器清零,完成初始化并发送一个 open消息包给邻居并把自己的状态置为 Open send 状态 。
  2. 如果失败,BGP会继续监听邻居发出的连接,重置 Connect Retry 计时器并将自己状态转移到 Active 状态。
  3. 如果 Connect Retry 时间超时,计时器重新开始,再次试图与邻居建立TCP连接,BGP 保持 Connect 状态,出现其他事件转 入 Idle 状态。
(3)Active state

置于Active 状态时 BGP 试图与邻居建立一个 TCP 的连接;

  1. 如果 TCP 连接成功,BGP 将 Connect Retry 计时器清零,完成初始化,给邻居发送Open 消息并将状态置为 Open,hold 时间置为4mins 。
  2. 如果在 Active 状态,Connect Retry计时器超时回 Connect 状态并重置 Connect Retry 计时器。
  3. 如果试图与一个未知 IP 建立 TCP 会话,同时 Connect Retry 计时器重置,拒绝连接并保持 Active 状态。
  4. 任何一个事件都会导致重回 Idle。
(4)Open send state

在此状态,已经发送了 open 消息,BGP 需要等待邻居发送的 open 消息包;

  1. 收到open消息,如果发现有差错,将给邻居发送一个 notification 消息并将状态置为 Idle 。
  2. 如果收到 open 包消息没错,将发送 keeplive 包给邻居,并建立IBGP或者EBGP状态置为 Open confire state 。
  3. 如果收到TCP断开消息则断开BGP连接重置 Connect Retry 计时器,状态置为 Active 。
(5)Open confire state

在此状态下 BGP 会等待一个 keeplive 消息B包或者 notification 消息包;

  1. 如果收到一个 keeplive 消息包,会将状态置为 Establish 。
  2. 如果收到 notification 消息包,会将状态置为 Idle 并断开 TCP 连接。
  3. 如果 hold 计时器超时,检测到一个差错或者有 stop 事件法师娃,BGP 将给邻居发送一个 notification 并断开连接,之后状态置为 Idle 。
(6)Establish state

此状态下 BGP 对等体间的连接已经完全建立,此时可以交换 update, keeplive 和notification 等消息,若收到 notification,则会将状态置为 Idle 中断连接。

三、BGP建邻流程图

以下是根据 BGP 消息数据包和状态机工作过程绘制的流程图:
BGP 的四种消息数据包及六种状态机_第1张图片
初次使用亿图软件建立的 BGP 建邻流程图,如有错误请留言,我进行修改。

你可能感兴趣的:(网络)