跳到主要内容

5.4.1. A Stateless Solution to MTU Handling (无状态 MTU 处理方案)

5.4.1. A Stateless Solution to MTU Handling (无状态 MTU 处理方案)

ITR 处理 MTU 问题的无状态方案如下:

  1. 定义 H 为 ITR 向分组前置的外层首部大小, 以八位组计. 包括 UDP 与 LISP 首部长度.

  2. 定义 L 为 ITR 可向 ETR 发送的最大分组大小, 以八位组计, 无需 ITR 或任何中间路由器对分组分片.

  3. 定义体系结构常数 S 为 ITR 必须接收的分组最大大小, 以八位组计, 以便满足有效 MTU. 即 S = L - H.

当 ITR 从站点面向接口收到分组并添加 H 八位组封装后, 若产生分组大小大于 L 八位组, 则通过首先将原始分组拆成 2 个等大小分片来解决 MTU 问题. 然后向每个分片前置 LISP 首部. 封装后分片大小为 (S/2 + H), 小于 ITR 估计的其与对应 ETR 之间路径 MTU.

当 ETR 收到封装分片时, 将其视为两个独立封装的分组. 剥离 LISP 首部后将每个分片转发到目的站点的目的主机. 两个分片在目的主机重组为源主机发起的单一 IP 数据报. 注意, 若在 ITR 处或之后对封装分组进行了分片, 重组亦可在 ETR 发生.

当源主机发起的分组 IP 首部 DF 字段为 0 时, ITR 执行此行为. 当 IP 首部 DF 字段为 1, 或分组为源主机发起的 IPv6 分组时, 若大小大于 L, ITR 将丢弃分组并向源发送 ICMP Too Big 消息, 通告值为 S, 其中 S 为 (L - H).

当外层首部封装使用 IPv4 首部时, 实现应该将 DF 位设为 1, 以避免 ETR 分片重组. 若有充分理由相信发送 ITR 与接收 ETR 之间存在无法解决的路径 MTU 问题, 实现可以将此类首部中的 DF 位设为 0.

本规范建议将 L 定义为 1500.