RIP 与 BGP:路由表的自动生成

问题:路由表为什么不能手写

手写路由表在小规模下可行,但有两个硬伤:

  1. 路由器可能有多个出口,路由表会很长
  2. 周围拓扑会变动(新增路由器、路由器故障),需要路由表能及时把流量导向其他出口

因此需要一种机制,能自动探测周围拓扑并生成路由表

用北京地铁理解路由更新

从机场到朝阳门:2号航站楼 → 三元桥 → 东直门 → 朝阳门

  • 2号航站楼 = 出发主机,朝阳门 = 目的主机
  • 三元桥、东直门 = 中间路由器

三元桥 → 东直门 段因维修停运,三元桥就需要更新自己的路由表,指示后续流量改走:三元桥 → 芍药居,再由芍药居按它的路由表继续送往朝阳门。

这就是路由协议要做的事:让每个节点自动获知”哪条路不通了、该改走哪条”。

RIP:按”跳数”决定路径

RIP(Routing Information Protocol) 通过距离决定路由,属于 distance-vector protocol(距离向量协议)

这里的”距离” = 从出发地到目的地途径的路由器数目(hop number)

工作过程

  1. 最初可手工生成某节点的路由表
  2. 该节点按 RIP 向周围路由器和主机广播自己到各个 IP 的距离
    • 例:三元桥广播 到机场 = 0国贸 = 1望京西 = 1建国门 = 2
  3. 收到 RIP 包的节点,结合”自己到发送方的距离”算出新距离
    • 东直门到三元桥距离为 1,收到”到机场 = 0” → 东直门经三元桥到机场 = 1 + 0 = 1
    • 若东直门原有记录更远(如经芍药居 = 2),则更新路由表,改走三元桥
    • 若原有记录不差,则保持不变
  4. 各点不断重复”广播 / 计算距离 / 更新路由表”,最终全网收敛到合理路径

基本逻辑一句话

如果 A 距离 B 为 6,而我距离 A 为 1,那么我途径 A 到 B 的距离为 7。

关键限制:15 跳上限

RIP 出于技术原因(looping hops,防环路)认为距离超过 15 的 IP 不可到达

因此 RIP 只适用于规模有限的网络,典型是”互联网的一个部分”——往往属于同一个 ISP 或有同一管理机构。

自治系统(AS)

由于 RIP 的规模限制,互联网被划分为自治系统(AS, autonomous system)

  • AS 内部:主机和路由器使用 RIP 决定路由表
  • AS 之间:通过边界路由器通信

BGP:AS 之间的路由

各 AS 的边界路由器之间通过 BGP(Border Gateway Protocol) 生成前往其他 AS 的路由表。

BGP 的基本工作过程与 RIP 类似,但决策依据更丰富——不只是距离,还权衡政策、连接性能等其他因素来决定流量走向。

表:RIP 与 BGP 的分工

RIPBGP
作用范围自治系统内部自治系统之间
度量依据跳数(hop number)距离 + 政策 + 性能等
类型距离向量协议路径向量协议
规模限制15 跳上限面向全球互联网
使用者AS 内主机与路由器边界路由器

三个协议的分工总结

协议解决的问题层次
ARP让每台设备知道局域网内 IP ↔ MAC 的对应关系,实现 IP 包到帧的封装连接层与网络层之间
RIP生成自治系统内部合理的路由表网络层
BGP生成自治系统之间的路由表网络层

三者共同协助 IP 传输:ARP 解决”下一跳的 MAC 是谁”,RIP/BGP 解决”下一跳该往哪走”。

适用范围

上文的 IP 接力过程同样适用于 IPv6(除 ARP 被 NDP 替代外)。

参考链接