1. 课程导入与路由工程全景
在企业网络与互联网的交界处,BGP(Border Gateway Protocol,边界网关协议)几乎是唯一被广泛使用的域间路由协议。它既不像 OSPF、IS-IS 那样以"最短路径"为唯一目标,也不像静态路由那样只服务于单台设备,而是把成千上万个自治系统(AS)连接成一张可运营、可策略化的全球路由网。本课程的目标,是让学习者从"会敲 BGP 命令"进阶到"能设计、能排障、能解释路由为什么这样走"。
BGP 在企业网与互联网中的定位
要理解 BGP 的位置,先要区分两个层面。企业内部通常运行 IGP(如 OSPF、IS-IS)来保证内部可达性,而 BGP 主要承担三类任务:一是企业与运营商之间的多宿主出口选路;二是大型企业数据中心或园区之间的跨域互联;三是企业接入互联网时接收和发布公网前缀。换句话说,IGP 解决"内部怎么走最快",BGP 解决"跨域怎么走、按谁的策略走"。
BGP 的核心特征决定了它的工程属性:它基于 TCP 179 端口建立对等会话,使用路径向量(Path Vector)而非链路状态;它不计算最短路径,而是通过属性(AS_PATH、LOCAL_PREF、MED、NEXT_HOP 等)逐条比较路由;它默认不负载均衡,而是选出一条最优路径。这些特征意味着,BGP 的"正确性"往往不是由协议自动保证的,而是由工程师的策略设计保证的。
课程目标与学习路径
本课程围绕"能设计、能验证、能排障"三个能力层次展开。第一阶段建立概念框架:理解 AS、对等体、路由通告、路径属性、选路算法;第二阶段进入配置与策略:掌握 eBGP/iBGP 邻居建立、路由反射器、联盟、前缀列表、路由映射、社区属性;第三阶段面向工程实战:多宿主出口设计、流量工程、路由聚合、安全防护(RPKI、前缀过滤)、故障排查与性能优化。
学习路径建议按"单域 → 双域 → 多域 → 互联网"递进。先在一个 AS 内建立 iBGP 全互联或路由反射器,观察路由如何同步;再引入第二个 AS,配置 eBGP 并观察 AS_PATH 变化;最后模拟多运营商接入,用 LOCAL_PREF 和 MED 控制流量方向。每一阶段都应配合抓包或 show ip bgp 输出验证,而不是只看配置是否敲完。
实验环境准备
本课程实验建议使用支持 BGP 的虚拟化平台。常见选择包括 GNS3 + Cisco IOSv、EVE-NG + 多厂商镜像、Containerlab + FRRouting,或直接使用 Linux 上的 FRRouting/BIRD。若使用 FRRouting,可在 Linux 命名空间中快速搭建多 AS 拓扑,资源占用低,适合反复实验。
一个最小可用的实验拓扑包含:两个企业边界路由器(AS 65001、AS 65002)、两个模拟运营商(AS 100、AS 200)、以及若干内部主机。每台路由器至少需要两个接口:一个连接内部 IGP 域,一个连接外部对等体。地址规划建议使用 10.0.0.0/8 作为内部地址,192.0.2.0/24、198.51.100.0/24 作为互联地址,公网前缀用 203.0.113.0/24 模拟。
# FRRouting 最小 BGP 配置示例(AS 65001 边界路由器)
router bgp 65001
bgp router-id 10.0.0.1
neighbor 192.0.2.2 remote-as 100
neighbor 192.0.2.2 description To-ISP-A
neighbor 198.51.100.2 remote-as 200
neighbor 198.51.100.2 description To-ISP-B
!
address-family ipv4 unicast
network 10.0.0.0/8
neighbor 192.0.2.2 activate
neighbor 198.51.100.2 activate
exit-address-family
配置完成后,用 show bgp summary 确认邻居状态为 Established,用 show bgp ipv4 unicast 查看接收到的路由。若邻居停留在 Active 或 Connect 状态,优先检查 IP 可达性、TCP 179 是否被过滤、remote-as 是否匹配。这些判断依据会在后续排障章节反复使用。
show bgp 输出变化,这样才能把"属性影响选路"从概念变成可观察的事实。从"会配"到"会判断"
BGP 工程中最常见的误区,是认为邻居建立成功、路由表里有条目就等于网络正常。实际上,BGP 只负责传播可达性,不负责保证转发路径最优或对称。一个典型场景是:企业同时接入两家运营商,出站流量走 A,入站流量却从 B 回来,导致防火墙状态不一致。这类问题必须通过 LOCAL_PREF、MED、AS_PATH 预处理和社区属性协同解决。
因此,本课程在每个配置环节都会强调"观察点":邻居状态、路由条目、AS_PATH、下一跳、属性值、选路结果。只有把配置、协议行为和业务效果三者对齐,才算真正掌握 BGP。接下来的章节将从 AS 与对等体关系开始,逐步展开这张路由工程的全景图。