两种会话的分工
同一个 AS 之内建立的对等会话叫 IBGP,跨 AS 建立的叫 EBGP。两者的差别不止「内外」:EBGP 每跳都会改写 AS_PATH 与下一跳、默认只允许直连;IBGP 保留原有属性、不追加 AS_PATH、也不改下一跳,因此需要额外机制解决可达性与规模问题。
对比项
| 项 | EBGP | IBGP |
|---|---|---|
| 默认 TTL | 1(直连),多跳需配置 | 255 |
| AS_PATH | 离开时追加本 AS | 不追加 |
| 下一跳 | 默认改为自身(除非第三方下一跳) | 保持不变(常用 next-hop-self 修改) |
| 属性修改 | MED 等随更新改变 | 不改写,原样传递 |
| 回环口对等 | 常需 multihop + update-source | update-source + IGP 可达 |
| 全互联 | 不需要 | 需要全互联或 RR/联盟 |
| 防环 | 靠 AS_PATH | 靠不通过 IBGP 再学的规则 |
基本信息
| 判定依据 | 配置里的 remote-as 是否等于本机 AS 号 |
|---|---|
| EBGP 默认跳数 | TTL 1,仅直连 |
| IBGP 下一跳 | 默认不变,内网需能到达该地址 |
| IBGP 路由传递 | 只传给其他 IBGP 邻居,不再重分发进 IGP |
| 典型规模方案 | 全互联适用于少量设备,规模大时用 RR 或联盟 |
典型使用场景
- 与运营商互联:使用 EBGP,按策略控制发布与接收集合
- 企业内多台边界设备之间:使用 IBGP 同步从外部学到的路由
- 双边界双出口:IBGP 让两台设备都掌握出口可用性
- 跨域扩展:设备数量增加时用 RR 替代两两全互联
- 数据中心内以 IBGP 承载 EVPN 或 VPN 地址族
两类会话的典型写法
两类会话的典型写法
# EBGP:直连对等,AS 号不同
router bgp 65001
neighbor 10.0.0.2 remote-as 65002
!
# IBGP:同 AS,用环回口对等并配合 IGP 可达
router bgp 65001
neighbor 10.0.0.9 remote-as 65001
neighbor 10.0.0.9 update-source Loopback0
neighbor 10.0.0.9 next-hop-self # 给内网邻居改写下一跳
!
show ip bgp summary # 两种邻居同表显示,注意 AS 列与状态列IBGP 的规则是「不把从 IBGP 学到的路由再传给其他 IBGP 邻居」,这条规则保证了无环,也是必须全互联或引入 RR 的根本原因。
IBGP 下一跳默认不改写:如果内网设备没有到外部下一跳的路由,路由会出现在 BGP 表却不可用,表现为「有路由但不通」。
判断会话类型看 show ip bgp summary 的 AS 列:与本机 AS 相同的是 IBGP,不同的是 EBGP。同一台设备上两种邻居可以并存,策略需要分别核对。