IPv6 inflight fragmentation

From: Peter <pmc_at_citylink.dinoex.sub.org>
Date: Sun, 31 Oct 2021 02:24:25 UTC

From what I understood, inflight fragmentation (on an intermediate router)
is not practical with IPv6. But it happens:

This router has inbound ethernet and outbound PPPoE:

vtnet0: flags=8943<UP,BROADCAST,RUNNING,PROMISC,SIMPLEX,MULTICAST> metric 0 mtu 1500
tun0: flags=8151<UP,POINTOPOINT,RUNNING,PROMISC,MULTICAST> metric 0 mtu 1492

And that's what is transported - Incoming on vtnet0:
IP6 2003:e7:1740:a7e0:41d:92ff:fe01:222.20487 > 2a00:1450:4001:67::8.443: Flags [.], seq 0:1428, ack 1, win 1035, options [nop,nop,TS val 2061109754 ecr 739209924], length 1428
IP6 2003:e7:1740:a7e0:41d:92ff:fe01:222.20487 > 2a00:1450:4001:67::8.443: Flags [.], seq 0:1428, ack 1, win 1035, options [nop,nop,TS val 2061113154 ecr 739209924], length 1428

Outgoing on tun0:
IP6 2003:e7:1740:a7e0:41d:92ff:fe01:222 > 2a00:1450:4001:67::8: frag (0|1440) 59241 > 443: Flags [.], seq 0:1408, ack 1, win 1035, options [nop,nop,TS val 2312762048 ecr 739149759], length 1408
IP6 2003:e7:1740:a7e0:41d:92ff:fe01:222 > 2a00:1450:4001:67::8: frag (1440|20)
IP6 2003:e7:1740:a7e0:41d:92ff:fe01:222 > 2a00:1450:4001:67::8: frag (0|1440) 59243 > 443: Flags [.], seq 1:1409, ack 1, win 1035, options [nop,nop,TS val 3069543472 ecr 739199972], length 1408
IP6 2003:e7:1740:a7e0:41d:92ff:fe01:222 > 2a00:1450:4001:67::8: frag (1440|20)

And it doesn't seem like these packets would be answered at all.

This happens when there is a dummynet pipe/queue rule (or a divert
rule) in the outbound rules to an interface that must reduce the MTU.
As soon as we skip over that dummynet (or divert), we get these ICMPv6
messages at the other end, and the fragmentation ceases:

02:59:53.651258 IP6 2003:e7:1740:a7ff::2 > 2003:e7:1740:a7e0:41d:92ff:fe01:222: ICMP6, packet too big, mtu 1492, length 1240
02:59:53.693376 IP6 2003:e7:1740:a7ff::2 > 2003:e7:1740:a7e0:41d:92ff:fe01:222: ICMP6, packet too big, mtu 1492, length 1240

So the problem is with dummynet and divert.


Cheerio,
PMc