>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