BGP 对等互连 - 为什么有两个 KEEPALIVE 消息

网络工程 思科 bgp
2021-07-29 21:22:34

BGP 在两台路由器之间建立 BGP 对等体的过程中。有以下交流。让我有点困惑的是,在每个 UPDATE Message 之后,同一个数据包中有两个 KEEPALIVE 消息。知道为什么吗?

**Source       Destination  Proto  Length  Message**
ROUTER_A --> ROUTER_B      BGP    99     OPEN Msg
ROUTER_B --> ROUTER_A      BGP    118    OPEN Msg, KEEPALIVE Msg
ROUTER_A --> ROUTER_B      BGP    73     KEEPALIVE Msg
ROUTER_A --> ROUTER_B      BGP    106    UPDATE Msg
ROUTER_A --> ROUTER_B      BGP    92     KEEPALIVE Msg, KEEPALIVE Msg

Border Gateway Protocol - KEEPALIVE Message
    Marker: ffffffffffffffffffffffffffffffff
    Length: 19
    Type: KEEPALIVE Message (4)
Border Gateway Protocol - KEEPALIVE Message
    Marker: ffffffffffffffffffffffffffffffff
    Length: 19
    Type: KEEPALIVE Message (4)

ROUTER_B --> ROUTER_A      BGP    106    UPDATE Msg
ROUTER_B --> ROUTER_A      BGP    92     KEEPALIVE Msg, KEEPALIVE Msg

Border Gateway Protocol - KEEPALIVE Message
    Marker: ffffffffffffffffffffffffffffffff
    Length: 19
    Type: KEEPALIVE Message (4)
Border Gateway Protocol - KEEPALIVE Message
    Marker: ffffffffffffffffffffffffffffffff
    Length: 19
    Type: KEEPALIVE Message (4)
1个回答

当 BGP 会话两端的路由器首次启动时,它们之间的会话处于空闲状态。BGP 会话保持空闲,直到检测到启动事件。通常,开始事件是新 BGP 会话的配置或现有 BGP 会话的重置。在启动时,启动事件由路由器在 BGP 会话启动时生成。

BGP 主机检测到启动事件后,向其配置的 BGP 邻居发送 TCP 请求数据包。这些数据包仅定向到已明确配置为 BGP 邻居的相邻接口。邻居主机收到TCP请求包后,产生TCP响应,完成三向握手,建立对端TCP连接。在此握手发生时,连接的 BGP 状态为 Connect。如果在发起主机等待 TCP 响应数据包时发生 TCP 超时,则连接的 BGP 状态为活动。Active 状态表示路由器正在主动侦听 TCP 响应,并且 TCP 重试计时器已启动。

一旦在 BGP 会话的两端建立了 TCP 连接,BGP 会话状态为 OpenSent,表明始发路由器已生成开放消息。open 消息是一个初始 BGP 握手,必须在任何路由通告发生之前发生。收到开放消息后,相邻路由器生成保持连接消息。收到keepalive消息建立点对点连接,BGP会话状态转换为Established。在发起主机等待保活响应数据包时,BGP 会话状态为 OpenConfirm。

信息来源