多跳 EBGP 是什么
EBGP 默认只允许直连建立会话,因为会话报文 TTL 为 1,跨一台设备就会被丢弃。当两端不是直连(例如使用环回口对等、或中间隔着一台传输设备)时,需要配置 ebgp-multihop 指定允许的跳数,同时保证两端都能路由到对方的会话地址。
基本信息
| 默认行为 | EBGP 报文 TTL=1,跨设备即丢 |
|---|---|
| 配置 | neighbor <ip> ebgp-multihop <ttl>,按实际跳数加余量设置 |
| 配套 | 通常与 update-source 环回口一起使用 |
| 前提 | 两端有到对端会话地址的路由(静态或 IGP) |
| 安全 | 跳数不要开过大,可叠加 GTSM 做来源校验 |
| 华为对应 | peer <ip> ebgp-max-hop <跳数> |
典型使用场景
- 用环回口建立 EBGP 会话,链路切换时会话不重建
- 跨传输设备与对端互联,无法直连建立会话
- 双链路同一对端:用环回口对等提升会话稳定性
- 与云上虚拟网关互联:会话地址不在同一段
- 多跳场景配合 TTL 安全检查,防止伪造报文
典型配置
典型配置
router bgp 65001
neighbor 10.0.0.9 remote-as 65002
neighbor 10.0.0.9 update-source Loopback0 # 用环回口作为会话源
neighbor 10.0.0.9 ebgp-multihop 3 # 允许 3 跳,按实际路径加余量
!
show ip bgp neighbors 10.0.0.9 # 核对状态与多跳配置
show ip route 10.0.0.9 # 确认两端都能路由到会话地址跳数与配置选择
| 场景 | 建议跳数 | 说明 |
|---|---|---|
| 同一台设备直连 | 默认(1) | 无需配置多跳 |
| 隔一台三层设备 | 2 | 留 1 跳余量 |
| 隔两台或多跳冗余路径 | 3 或略高 | 路径变化时仍可建立 |
| 环回口对等加多路径 | 按最长路径加余量 | 过长会削弱伪造报文的防护 |
多跳 EBGP 之前先确认两端有到对端环回地址的路由:路由不通时配置多跳只是让报文能发出去,问题依旧。
TTL 设置不要照着最小跳数写:链路切换或路径变化时,跳数刚好不够会导致会话偶发中断,难以定位。
配置核对清单
| 检查项 | 正确表现 | 常见错误 |
|---|---|---|
| 对端地址 | 指向对端环回或稳定接口地址 | 指向会随链路变化的接口地址 |
| 源地址 | update-source 指定同一接口 | 未指定导致源地址不匹配 |
| 跳数 | 按最长路径加余量 | 按最小跳数设置 |
| 路由 | 两端都可路由到会话地址 | 只有一侧有路由 |
| 安全 | 必要时启用 TTL 校验 | 跳数放得过宽无防护 |