路由
路由器如何知道往哪转发?答案是两类域内算法(距离向量、链路状态)与一个域间协议(BGP)。本章讲它们的原理,以及 BGP 的策略性与脆弱性(→ 最短路径)。
- 转发:收到包查表、送到对应出口——数据面的高速路径(硬件查表);
- 路由:构建那张表——控制面,本章的主角。
表的内容:目的地前缀 → 下一跳(→ 分层模型与 IP)。
RIP:距离向量
Section titled “RIP:距离向量”每个路由器把自己的距离表告诉邻居,邻居加上到"告诉我的人"的距离取最小。Bellman-Ford 思想的分布式版(→ 最短路径):
- 优点:实现极简,只需邻居间通信;
- 缺点:收敛慢——坏消息传播慢("数到无穷"问题:链路断了,距离表逐轮 +1 直到上限);度量只有跳数。
OSPF:链路状态
Section titled “OSPF:链路状态”每个路由器** flooded 全网拓扑**(链路状态通告 LSA),各自本地跑 Dijkstra 算最短路径树:
- 优点:收敛快(拓扑变化立即泛洪)、度量可配置(带宽)、每个路由器有全网视图;
- 缺点:泛洪开销,域的规模有上限(分区域 OSPF 应对)。
**距离向量(只信邻居)与链路状态(全网视图)**是分布式最短路径的两条路线:前者通信少收敛慢,后者通信多收敛快。
域间路由:BGP
Section titled “域间路由:BGP”互联网由上万个自治系统(AS)组成,AS 之间用 BGP 交换可达性。与域内的根本不同:BGP 选路是策略而非最短——AS 根据商业关系(客户 > 对等 > 供应商)与政策(过滤某前缀、偏好某路径)选择路由,"最短"根本不在目标里。
BGP 的机制:AS 宣告自己的前缀 + 传播从邻居学来的路径(AS_PATH),路径属性驱动选择。没有全网拓扑、没有"正确"答案——只有每个 AS 的本地策略。
BGP 的脆弱性
Section titled “BGP 的脆弱性”互联网的可达性依赖于 BGP 的互信——AS 之间默认相信对方宣告的路径是真的:
- 路由劫持(prefix hijack):恶意或误操作宣告别人的前缀,流量被吸走(著名案例:Pakistan Telecom 劫持 YouTube,2008);
- 路由泄漏(route leak):传播不应传播的路由,造成大规模断网;
- 收敛慢:一条前缀的变更传播全球要分钟级,期间黑洞或环路。
对策都在路上但部署缓慢:RPKI(路由起源验证,密码学签名宣告)、BGPsec(路径验证)。互信 + 策略的体系决定了 BGP 是互联网最脆弱的一环。
- 转发是数据面(查表),路由是控制面(建表)
- 距离向量(RIP)只信邻居:简单但收敛慢(数到无穷);链路状态(OSPF)全网视图:收敛快但泛洪开销
- BGP 选路是策略而非最短:商业关系驱动,没有全网拓扑
- 互联网的可达性依赖于 BGP 的互信:劫持、泄漏、慢收敛是三大脆弱性,RPKI 部署缓慢
- 域内跑最短路径算法,域间跑商业策略——同一个"图",两个世界