Linux 路由意外的 mtu

Linux 路由意外的 mtu

我观察到我的网络中一些路由的行为相当奇怪(至少对我来说)。我在 ipsec 隧道上使用 gre 接口。这些 gre 接口在我的整个网络上都有 mtu 1400。通常我会看到这种 tracepath 输出:

1?: [LOCALHOST]                                         pmtu 1500
 1:  10.xxx.101.1                                         13.625ms
 1:  10.xxx.101.1                                         13.178ms
 2:  10.xxx.101.1                                         13.973ms pmtu 1400
 2:  192.168.yyy.251                                      56.555ms
 3:  192.168.yyy.92                                      643.252ms 
 4:  192.168.yyy.28                                      417.291ms 
 5:  192.168.zzz.129                                     517.893ms reached

但由于某种原因,我遇到了一个情况,tracepath 给出了不同的结果:

 1?: [LOCALHOST]                                         pmtu 1500
 1:  10.xxx.101.1                                         13.625ms
 1:  10.xxx.101.1                                         20.857ms
 2:  10.xxx.101.1                                         11.954ms pmtu 1400
 2:  192.168.yyy.251                                      46.456ms
 3:  192.168.yyy.251                                      45.563ms pmtu 1376
 3:  10.zzz.251.1                                         56.648ms
 4:  10.zzz.255.111                                       55.212ms reached

192.168.yyy.251 上的所有 gre 接口都有 mtu 1400,所有接口都配置相同。10.zzz.251.1 路由器不发送任何 ICMP fragm 需要的数据包,gre 接口当然有 mtu 1400。192.168.yyy.251 生成 ICMP fragm 需要,但我不知道为什么。ip route get 10.zzz.255.111在 192.168.yyy.251 路由器上显示:

10.zzz.255.111 from 10.xxx.101.253 tos lowdelay via 10.zzz.251.1 dev GRE_OUTPUT_INTERFACE  src 192.168.yyy.251  mark 0x2071
    cache  expires 264sec ipid 0x607b mtu 1376 iif GRE_INPUT_INTERFACE

此外,有时(我怀疑这取决于流量)路由的 mtu 会发生变化并大幅降低,并且在 10 分钟内(mtu 缓存过期)我无法建立任何需要更大数据包的新连接 - 但旧建立的连接工作正常。嗯?

答案1

我认为这是由于 GRE 隧道通过另一个 GRE 隧道路由而引起的。您的临时问题可能是 IPSEC 隧道关闭几秒钟造成的。

相关内容