Skip to content

第4章:IP 寻址、转发与路由

前缀与最长匹配

IP 地址包含按路由策略划分的前缀。CIDR 写法 192.0.2.0/24 表示前 24 bit 固定;转发表用前缀聚合大量地址,避免每个目的主机单独一项。

当多项匹配时,采用最长前缀匹配。例如表中有默认路由 /010.0.0.0/810.1.0.0/16,目的 10.1.2.3 应采用 /16 项。它表示更具体的目的范围,不是说这条路径在物理上更短。

路由器先查表选择输出接口和下一跳,再完成链路封装。TTL 到零或找不到可用路由时可能返回 ICMP 错误,但错误消息也可能被过滤,未收到 ICMP 不能证明数据已送达。

路由算法与协议

链路状态协议传播拓扑,各节点依据链路代价计算路径。距离向量协议与邻居交换距离估计,使用 Bellman–Ford 形式

Dx(y)=minvN(x){c(x,v)+Dv(y)}.D_x(y)=\min_{v\in N(x)}\{c(x,v)+D_v(y)\}.

代价为正、拓扑静止时能求最短路,不代表故障期间立即收敛。邻居可能互相采用过期信息,形成计数到无穷等问题;分割视野和毒性逆转缓解部分环路,但不能消除所有多节点情形。

域内路由关注一个管理域中的可达性和代价。BGP 在自治系统之间传播前缀与路径属性,路径选择受商业关系和策略影响,不必选跳数最少的路径。数据转发仍然使用安装后的转发表,不会为每个数据包运行一次全网 BGP。

MTU 与分片

不同链路允许的最大帧载荷不同。超过路径 MTU 的报文需要由协议栈调整大小,或在允许的场景下分片。IPv4 路由器在允许分片时可以分片,IPv6 路由器不替源主机分片。

路径 MTU 发现依赖探测或相关错误反馈。若中间设备丢弃大包又屏蔽必要反馈,就可能出现小请求正常、大传输卡住。问题在于路径约束没有被发送端正确获知,不能仅用“能 ping 通”排除。

NAT 与端到端地址

NAT 改写地址,常见 NAPT 还改写端口,依靠映射状态把返回流量交还内网主机。它节约公网地址,却让通信依赖额外中间状态。映射超时可能中断空闲会话,外部发起连接也需要额外规则或穿透机制。

NAT 和防火墙是不同功能。一个设备常同时实现两者,但地址转换本身不等于完整的访问控制策略。

练习

  1. 为一个目标地址同时构造三条匹配路由,验证最长前缀规则。
  2. 一个自治系统为何可能拒绝更短的 BGP 路径?
  3. 说明 MTU 黑洞与 DNS 故障会呈现哪些不同症状。

上次更新: