互联网不是一张扁平网,而是由自治系统(AS)拼起来的。BGP 的工作,是让这些 AS 互相宣告「我能到达哪些前缀」,并按策略选择邻居。
可达性宣告,不是最短路径算法
IGP(如 OSPF)追求域内最优;BGP 面对的是商业与策略世界。同一前缀可能经多条 AS_PATH 到达:有的更短,有的带宽更大,有的结算更便宜。运营商关心的是可控的偏好,而不是单纯跳数。
选路时心里要有一条优先级草图
实现细节因厂商而异,但学习时可先记住常见偏好方向:
- 本地策略(权值/Local Preference)往往优先于路径长短;
- AS_PATH 更短通常更好,但仍可能被策略覆盖;
- 来源类型、MED、IGP 度量、BGP Router ID 等作为后续平局裁决。
真正做设计时,要把「我想把流量引到哪条上游」翻译成可执行的策略语句,而不是期望协议自动替你做商业决策。
汇聚、劫持与可见性
更具体前缀通常更优先,这带来精细流量工程的能力,也带来前缀劫持的风险面。RPKI、IRR 路由对象、监控平台(看全球可见性)已经成为运营基本功。个人实验环境即使规模小,也建议习惯查看「我的宣告在外面看起来是什么样」。
一句话:BGP 先是策略语言,其次才是路由协议。