【路由系列】BGP

BGP(边界网关协议)详解

BGP(Border Gateway Protocol)​ 是一种用于在不同自治系统(AS)之间交换路由信息的外部网关协议(EGP)​,广泛应用于互联网核心路由。它是路径矢量协议,基于TCP(端口179),具有高可靠性和可扩展性。


一、BGP的报文类型

  1. Open报文

    • 作用:建立BGP邻居关系,协商参数(如版本、AS号、Hold Time、BGP标识符等)。
    • 触发时机:TCP连接建立后发送的第一个报文。
  2. Update报文

    • 作用:携带路由更新信息(新增/撤销路由),包含路径属性(如AS路径、下一跳、Local Preference等)。
    • 关键字段:NLRI(网络层可达信息)、Withdrawn Routes(撤销的路由)。
  3. Keepalive报文

    • 作用:维持BGP邻居关系,周期性发送(默认间隔60秒)。
    • 规则:Hold Time超时若未收到Keepalive,邻居关系断开。
  4. Notification报文

    • 作用:在检测到错误时(如参数不匹配)立即发送,终止BGP连接。
    • 包含信息:错误代码和子代码(如版本不支持、AS号无效等)。
  5. Route-Refresh报文(可选)​

    • 作用:动态请求邻居重新发送路由信息,需双方支持此能力(通过Open报文协商)。
    • 场景:策略变更后需刷新路由表时使用。

二、BGP邻居状态机

BGP邻居建立需经历以下状态转换:

  1. Idle(空闲)​

    • 初始状态:拒绝所有连接尝试,可能因管理员触发或错误恢复后进入。
    • 动作:启动连接重试定时器,尝试发起TCP连接。
  2. Connect(连接中)​

    • 动作:等待TCP连接完成。
    • 转换
      • 成功 → 发送Open报文,进入OpenSent
      • 失败 → 进入Active状态,尝试重新连接。
  3. Active(活跃)​

    • 动作:持续尝试建立TCP连接。
    • 转换
      • 成功 → 发送Open报文,进入OpenSent
      • 失败 → 返回Idle
  4. OpenSent(Open已发送)​

    • 动作:已发送Open报文,等待对端Open报文。
    • 转换
      • 收到合法Open报文 → 发送Keepalive,进入OpenConfirm
      • 参数不匹配 → 发送Notification并回到Idle
  5. OpenConfirm(Open已确认)​

    • 动作:等待对端Keepalive报文。
    • 转换
      • 收到Keepalive → 进入Established
      • Hold Time超时 → 回到Idle
  6. Established(已建立)​

    • 最终状态:邻居关系建立成功,开始交换Update/Keepalive报文。
    • 异常:若收到Notification或Keepalive超时,回到Idle

三、BGP邻居建立过程

  1. TCP连接建立

    • 发起方(通常为两端中较低路由器ID的一方)尝试与对端(端口179)建立TCP连接。
  2. Open报文交换

    • 双方发送Open报文,协商参数:
      • BGP版本:必须一致(通常为BGPv4)。
      • AS号:若为eBGP邻居,需不同;iBGP则相同。
      • Hold Time:双方协商较小值(默认180秒)。
      • BGP标识符:通常为路由器Loopback地址。
  3. Keepalive确认

    • 参数匹配后,双方发送Keepalive报文确认,进入Established状态。
  4. 路由信息交换

    • 通过Update报文交换路由表,携带路径属性和策略信息。
  5. 维护与错误处理

    • 周期性发送Keepalive维持连接。
    • 检测到错误时发送Notification报文终止会话。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值