第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 路径 |
八、思考
- BGP 和 OSPF 在协议定位上有什么本质区别?
- eBGP 和 iBGP 的主要区别有哪些?
- 为什么 BGP 被称为路径矢量协议?AS_PATH 字段如何防止环路?
- BGP 为什么需要依赖 IGP 来实现下一跳可达?
- 公有 ASN 和私有 ASN 的范围分别是什么?在什么场景下使用私有 ASN?
下篇预告:第82篇《BGP 报文类型——Open、Update、Keepalive、Notification》——了解 BGP 的四种核心报文。