第81篇:BGP 基础——AS 与 eBGP/iBGP 基本概念

关键词

BGP、AS、eBGP、iBGP、IGP、EGP、互联网路由


一、BGP 是什么?

BGP(Border Gateway Protocol,边界网关协议) 是互联网的"粘合剂"——它连接了全球数万个自治系统(AS),是互联网得以互联互通的根本。

1.1 BGP 的定位

对比 IGP(OSPF/IS-IS) BGP
作用范围 一个 AS 内部 AS 之间
路由数量 几百 ~ 几千条 几十万 ~ 百万条
设计目标 快速收敛、最优路径 可控性、策略性、扩展性
选路依据 Cost(带宽相关) 丰富的路径属性
协议类型 链路状态 路径矢量

1.2 BGP 的版本

版本 说明
BGP-1 ~ BGP-3 早期版本,已弃用
BGP-4 当前标准(RFC 4271),支持 CIDR 和路由聚合
BGP-4+ 扩展支持 IPv6(MP-BGP)

二、自治系统(AS)

2.1 什么是 AS

AS(Autonomous System,自治系统) 是由同一管理机构管理、使用统一路由策略的一组网络设备。

AS 100(中国电信) AS 200(中国联通) | OSPF/IS-IS 内部路由 | ─── eBGP ────── | OSPF/IS-IS 内部路由 | | --- | --- | --- | ↑ iBGP ↑ iBGP │ │ | AS内 路由器 | | AS内 路由器 | | --- | --- | --- |

2.2 AS 编号

类型 范围 说明
公有 ASN 1~64511 互联网上使用的 AS 号,需申请
私有 ASN 64512~65535 内部使用,不上互联网
32 位 ASN 65536~4294967295 扩展 ASN
# 配置 AS 号
bgp 100                         # AS 100

三、eBGP 与 iBGP

3.1 eBGP(外部 BGP)

eBGP 运行在不同 AS 之间:

AS 100                          AS 200
  │                               │
  │── eBGP(TTL=1,直连)────────│
  │                               │

eBGP 特点: - 不同 AS 之间的互联 - 默认 TTL = 1(要求直连) - 默认下一跳不变

3.2 iBGP(内部 BGP)

iBGP 运行在同一个 AS 内部

     AS 100

RouterA ──iBGP── RouterB ──iBGP──RouterC─

iBGP 特点: - 同一 AS 内部的全互联或 RR 反射 - 默认 TTL = 255 - 默认下一跳不变 - 水平分割:从 iBGP 学习的路由不传递给其他 iBGP 对等体

3.3 eBGP vs iBGP 对比

对比项 eBGP iBGP
对等体 AS 不同 AS 相同 AS
TTL 1(默认) 255(默认)
下一跳 保持不变 保持不变
iBGP 水平分割 不适用 适用(重要!)
Local Preference 不传递 在 AS 内传递
路由优先级(Preference) 255 255

四、BGP 与 IGP 的关系

BGP 和 IGP 在网络中各司其职:

         ┌──────────────────────────────┐
         │       BGP 路由(全球)        │
         │  AS_PATH / 各种属性 / 策略    │
         └──────────────┬───────────────┘
                        │
              ┌─────────┴─────────┐
              │   BGP 路由表       │
              │   (策略决策)      │
              └─────────┬─────────┘
                        │
              ┌─────────┴─────────┐
              │   IP 路由表        │
              │   (最优 BGP 路由  │
              │    + IGP 路由)    │
              └─────────┬─────────┘
                        │
              ┌─────────┴─────────┐
              │   IGP 路由         │
              │  (OSPF/IS-IS)    │
              │  AS 内部可达性     │
              └───────────────────┘

BGP 依赖 IGP 实现下一跳可达。

# BGP 路由例子:
# 网络 10.0.1.0/24,下一跳 192.168.1.1
# 要使用这条 BGP 路由,必须通过 IGP 到达 192.168.1.1

五、BGP 的路径矢量特性

BGP 是路径矢量(Path Vector)协议:

  • 距离矢量(RIP):只知道"多远"
  • 链路状态(OSPF):知道"完整拓扑"
  • 路径矢量(BGP):知道"经过哪些 AS"
AS_PATH = [100, 200, 300]
表示:该路由经过了 AS 100 → AS 200 → AS 300

路由器收到后:
  - 可以判断是否存在环路(如果自己的 AS 在 AS_PATH 中)
  - 可以根据 AS_PATH 长度做选路
  - 可以基于 AS_PATH 做路由策略

六、最简单的 BGP 配置

# RouterA(AS 100)
bgp 100
 router-id 1.1.1.1
 peer 10.0.12.2 as-number 200      # 对端 AS 200
 #
 ipv4-family unicast
  peer 10.0.12.2 enable
  network 172.16.1.0 255.255.255.0  # 宣告本 AS 的路由

# RouterB(AS 200)
bgp 200
 router-id 2.2.2.2
 peer 10.0.12.1 as-number 100      # 对端 AS 100
 #
 ipv4-family unicast
  peer 10.0.12.1 enable
  network 172.16.2.0 255.255.255.0

七、总结

知识点 核心要点
BGP 本质 互联网的路径矢量路由协议
AS 自治系统,使用 ASN 标识
eBGP 不同 AS 之间运行
iBGP 同一 AS 内部运行
BGP vs IGP BGP 做策略决策,IGP 做 AS 内部可达性
AS_PATH 路径矢量特性,记录经过的 AS 路径

八、思考

  1. BGP 和 OSPF 在协议定位上有什么本质区别?
  2. eBGP 和 iBGP 的主要区别有哪些?
  3. 为什么 BGP 被称为路径矢量协议?AS_PATH 字段如何防止环路?
  4. BGP 为什么需要依赖 IGP 来实现下一跳可达?
  5. 公有 ASN 和私有 ASN 的范围分别是什么?在什么场景下使用私有 ASN?

下篇预告:第82篇《BGP 报文类型——Open、Update、Keepalive、Notification》——了解 BGP 的四种核心报文。