Hello,
At Julien Goodwin's talk in April, he said, if I understand correctly, Internode has a bug in their implementation of PPPoA and IPv6 in that 1500 size packets will get silently dropped. Only for IPv4, not IPv6.
I am not seeing this however, and just want to check my calculations are correct.
(just to be confusing: with IPv4, both tcpdump (with -v) and ping will quote the ethernet packet size of 1492 or 1500, but this doesn't happen with IPv6)
TEST #1: 1472 + 8 bytes ICMP + 20 bytes IPv4 header = 1500
^C
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 35.350/35.350/35.350/0.000 ms
13:11:27.668571 IP (tos 0x0, ttl 64, id 0, offset 0, flags [DF], proto ICMP (1), length 1500)
59.167.180.194 >
202.158.218.252: ICMP echo request, id 18672, seq 1, length 1480
13:11:27.703559 IP (tos 0x0, ttl 57, id 33509, offset 0, flags [+], proto ICMP (1), length 1492)
202.158.218.252 >
59.167.180.194: ICMP echo reply, id 18672, seq 1, length 1472
13:11:27.703628 IP (tos 0x0, ttl 57, id 33509, offset 1472, flags [none], proto ICMP (1), length 28)
I can confirm that the outgoing packets are not fragmented in this case, by running tcpdump on remote system:
13:11:27.694702 IP (tos 0x20, ttl 57, id 0, offset 0, flags [DF], proto ICMP (1), length 1500)
13:11:27.694728 IP (tos 0x20, ttl 64, id 33509, offset 0, flags [none], proto ICMP (1), length 1500)
TEST #2: 1464 + 8 bytes ICMP + 20 bytes IPv4 header + 8 bytes PPPoE overheard = 1500
^C
2 packets transmitted, 2 received, 0% packet loss, time 1003ms
rtt min/avg/max/mdev = 33.642/34.010/34.378/0.368 ms
In this case no fragmentation occurs:
13:13:00.502010 IP (tos 0x0, ttl 64, id 0, offset 0, flags [DF], proto ICMP (1), length 1492)
59.167.180.194 >
202.158.218.252: ICMP echo request, id 18683, seq 1, length 1472
13:13:00.536331 IP (tos 0x0, ttl 57, id 33510, offset 0, flags [none], proto ICMP (1), length 1492)
202.158.218.252 >
59.167.180.194: ICMP echo reply, id 18683, seq 1, length 1472
TEST#3: 1452 + 8 bytes ICMP + 40 bytes IPv6 header = 1500
^C
2 packets transmitted, 2 received, 0% packet loss, time 1003ms
rtt min/avg/max/mdev = 35.263/36.128/36.994/0.886 ms
In this case fragmentation occurs on the returned packets (like test #1):
13:14:17.853662 IP6 (hlim 64, next-header ICMPv6 (58) payload length: 1460) 2001:44b8:4112:8a04::2 > 2001:388:60ac::5: [icmp6 sum ok] ICMP6, echo request, length 1460, seq 1
13:14:17.888746 IP6 (hlim 57, next-header Fragment (44) payload length: 1448) 2001:388:60ac::5 > 2001:44b8:4112:8a04::2: frag (0xd268db04:0|1440) ICMP6, echo reply, length 1440, seq 1
13:14:17.888839 IP6 (hlim 57, next-header Fragment (44) payload length: 28) 2001:388:60ac::5 > 2001:44b8:4112:8a04::2: frag (0xd268db04:1440|20)
In this case though, unlike test #1, the response packets are fragmented by the sender:
So somehow the sender must be working out the reduced MTU.
TEST#4: 1444 + 8 bytes ICMP + 40 bytes IPv6 header + 8 bytes PPPoE overhead = 1500
^C
3 packets transmitted, 3 received, 0% packet loss, time 2004ms
rtt min/avg/max/mdev = 34.348/34.852/35.721/0.617 ms
Like #2 no fragmentation:
13:16:03.105321 IP6 (hlim 64, next-header ICMPv6 (58) payload length: 1452) 2001:44b8:4112:8a04::2 > 2001:388:60ac::5: [icmp6 sum ok] ICMP6, echo request, length 1452, seq 1
13:16:03.139572 IP6 (hlim 57, next-header ICMPv6 (58) payload length: 1452) 2001:388:60ac::5 > 2001:44b8:4112:8a04::2: [icmp6 sum ok] ICMP6, echo reply, length 1452, seq 1
Maybe this is a bug that Internode has fixed? Or maybe I have got something wrong?
It does appear that PPPoE limitations apply even for PPPoA, at least with received packets. For both IPv6 and IPv4.
--
Brian May <
brian@microcomaustralia.com.au>