Ibgp与Ebgp区别
1. 使用场景
eBGP主要用于:
- 不同运营商/组织之间交换路由,例如中国电信与中国联通的互联互通
- 企业多归属(multihoming)接入多个 ISP
- IXP(互联网交换点)中各参与方之间的路由交换
iBGP 主要用于: - 在一个大型 AS 内部传递从 eBGP 学到的外部路由信息,使 AS 内所有边界路由器共享一致的路由视图
- 大型 ISP 或企业骨干网内部,配合 IGP(OSPF/IS-IS)协同工作
- 通常与路由反射器(Route Reflector)或联邦(Confederation)配合部署,解决全互联的扩展性问题
2. 关键原理与行为差异
| 维度 | eBGP | iBGP |
|---|---|---|
| 定义 | 运行在不同 AS 之间的 BGP | 运行在同一个 AS 内部的 BGP |
| 主要目的 | 对外交换路由(AS 之间传递信息) | 对内统一认知,承载路由(在AS内部传递外部路由) |
| TTL 默认值 | 1(邻居通常直连) | 255(可以跨多跳建立) |
| AS-PATH 行为 | 发送路由时添加本地 AS 号(也用于防环) | 不修改 AS-PATH |
| 防环机制 | 收到路由后检查AS-PATH,若包含自己的AS号则丢弃 | 水平分割规则:从 iBGP邻居学到的路由不再传给其他 iBGP 邻居。逻辑上要求全互联(Full-Mesh),路由不需要二次传播。 |
| Next-Hop 行为 | 默认改为自身接口地址 | 默认不改变 next-hop(保留 eBGP 邻居的地址),通常需要手动 next-hop-self |
| 邻居关系要求 | 一般直连,或用 ebgp-multihop |
逻辑上需要全互联(full-mesh),否则需要 RR 或联邦 |
| AD(管理距离) | 20(更优先) | 200(较低优先级) |
| MED 属性 | 跨AS传递,用于影响入站流量 | 在AS内部传递,保持一致 |
| Local Preference | 不跨 AS 传递 | 在 iBGP 之间传递,用于 AS 内部选路 |
3. 核心原理总结
- eBGP 的防环靠 AS-PATH:路由每经过一个 AS 就追加该 AS 号,若收到包含自身 AS 号的路由则拒绝,天然防止环路。
- iBGP 的防环靠水平分割:因为 iBGP 不修改 AS-PATH(AS 号相同,无法靠 AS-PATH 检测环路),所以规定 iBGP 学到的路由不能再转发给其他 iBGP 邻居。这个规则直接导致了全互联要求——每台路由器必须和 AS 内所有其他 BGP 路由器建立 iBGP 邻居,否则路由无法传播到所有节点。
- 全互联的扩展性问题:N 台路由器需要 N×(N-1)/2 条 iBGP 会话,因此实际部署中几乎都使用路由反射器(RR)或 BGP 联邦(Confederation)来减少会话数量。
- Next-Hop 的协作逻辑:iBGP 不改 next-hop,意味着 AS 内部路由器必须通过 IGP 能到达该 next-hop 地址,否则路由不可用。这就是 BGP 和 IGP 必须协同工作的原因