摘要
- LSRR 和 SSRR 把中间地址写入 IPv4 头部,由经过的系统决定是否处理。
- 后续标准保留了报文格式,却要求非本地源路由转发默认关闭,并建议默认丢弃这些选项。
通常,IPv4 的目的地址会指向下一步应到达的位置。源路由改变了这种关系:当数据包到达该地址后,选项中还可能保留另一个地址。愿意参与的系统会把下一个地址写入普通目的地址字段,把自身出接口的地址写入选项中空出的槽位,再将指针推进四个八位组。路径因此是数据包里的可变状态,而不只是供观察的标签。
LSRR 的类型值为 131,允许在列出的节点之间使用普通路由。SSRR 的类型值为 137,要求下一个列出的节点必须可以直接到达。两者都包含长度、指针和 IPv4 地址槽位;长度与指针必须经过检查。复制标志使选项随每个分片携带,而 IPv4 头部最多 60 个八位组,又限制了可放入的路径长度。
这种机制并没有让发送方获得无条件的控制权。每个系统仍可依据本地过滤和策略决定是否处理。若 SSRR 的下一个地址不在直接可达的网络上,路由就可能失败。数据包记录下来的地址只说明哪些系统接受并处理了选项,并不能证明整条路径,也不是路径认证。
RFC 1122 把转发问题明确变成主机策略。主机可以充当源路由的中间跳点,但非本地源路由转发必须有可配置的关闭开关,而且默认必须关闭。网关的策略过滤同样适用。无法完成的源路由可以通过 ICMP Destination Unreachable 的代码 5(Source Route Failed)报告。
RFC 6274 随后说明了相关风险:绕过路由控制、从意外接口接近系统、暴露拓扑,以及让流量经过人为设计的额外路径。它还要求在读取或写入地址槽位之前检查长度和指针。该 RFC 建议默认丢弃 LSRR 与 SSRR,同时为确有需要的环境保留明确的启用开关,例如有限的诊断或对等互联场景。
RFC 7126 将政策区分为三种:丢弃数据包、忽略选项并按普通目的地址转发,或依据 RFC 791 处理源路由。对两种选项,它建议默认值为 drop,并要求记录这一默认值。忽略并不等于丢弃;数据包可能到达发送方在该阶段并未预期的设备。
因此,变化是默认信任的消失,而不是机制从 IPv4 中被删除。源路由仍然存在于规范中,但数据包不再能够假定网络会自动合作。
来源
会员简报
档案背景详情
使用相应会员等级登录,即可解锁完整简报与来源注释。
仅限 Strategic Circle
Strategic Circle
所有读者均可浏览。加入并登录后可解锁档案简报。
加入 Strategic Circle仅限 Leadership Alliance
Leadership Alliance
符合条件的 IP 资产所有者和管理层可登录查看 Leadership Alliance 简报。
加入 Leadership Alliance
