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 的"正确性"往往不是由协议自动保证的,而是由工程师的策略设计保证的。

BGP 在企业网与互联网中的路由工程全景 企业园区 / 数据中心 OSPF / IS-IS 域内 10.0.0.0/8 私网前缀 企业边界路由器 AS 65001 eBGP 出口 运营商 A AS 100 运营商 B AS 200 互联网 全球路由表 IGP eBGP eBGP BGP 路径决策关键属性(按比较顺序) Weight / LOCAL_PREF 本地优先级,越高越优 AS_PATH 长度 越短越优 ORIGIN / MED 起源类型、多出口度量 eBGP > iBGP 外部路径优先 工程含义:BGP 不自动选"最快"路径,而是按属性逐级比较; 工程师通过 LOCAL_PREF、MED、AS_PATH 预处理等策略控制入站与出站流量方向。 示例:AS 65001 通过 LOCAL_PREF=200 优选运营商 A 作为主出口,运营商 B 作为备份。

课程目标与学习路径

本课程围绕"能设计、能验证、能排障"三个能力层次展开。第一阶段建立概念框架:理解 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 是否匹配。这些判断依据会在后续排障章节反复使用。

实验环境建议先固定拓扑和地址,再逐步增加策略。每次只改一个变量(如只调整 LOCAL_PREF),并记录 show bgp 输出变化,这样才能把"属性影响选路"从概念变成可观察的事实。

从"会配"到"会判断"

BGP 工程中最常见的误区,是认为邻居建立成功、路由表里有条目就等于网络正常。实际上,BGP 只负责传播可达性,不负责保证转发路径最优或对称。一个典型场景是:企业同时接入两家运营商,出站流量走 A,入站流量却从 B 回来,导致防火墙状态不一致。这类问题必须通过 LOCAL_PREF、MED、AS_PATH 预处理和社区属性协同解决。

因此,本课程在每个配置环节都会强调"观察点":邻居状态、路由条目、AS_PATH、下一跳、属性值、选路结果。只有把配置、协议行为和业务效果三者对齐,才算真正掌握 BGP。接下来的章节将从 AS 与对等体关系开始,逐步展开这张路由工程的全景图。