A common problem you might face soon (World IPv6 Day is 5 days away)
is reachability to IPv6 sites due to MTU issues. ICMPv6 has a nice
internal mechanism which is supposed to help the application overcome
these issues, but like in the IPv4 world, not everything is perfect.
Let's suppose that an IPv6 subscriber is using a DSL router and is connected through PPPoE to a BRAS.
TARGET <=> BRAS <=> DSL-ROUTER <=> HOST
The usual MTU for PPPoE connections is 1492 bytes, as shown below.
1500 bytes = Ethernet Payload
- 6 bytes = PPPoE header
- 2 bytes = PPP ID
---------------------------------
1492 bytes = IPv6 Packet that can be carried over a PPPoE connection
If your host is configured with 1492 (or something lower) as MTU on its LAN interface, then the OS running on it will automatically take care of "fragmentation", so you don't need to worry for anything. Unfortunately this isn't a common scenario by default. You either have to configure it manually on the host or if you are lucky enough and the DSL modem supports advertisement of MTU to its LAN interface through RA messages (and your host accepts them), it will happen automatically.
If your host is configured with anything larger than 1492 on its LAN interface (in most cases it's the default of 1500), problems might arise.
Users with hosts running Windows can try to ping an IPv6 address (i.e. the next hop after the DSL router) in order to find possible issues with the MTU. The closer the target is, the easier it will be to troubleshoot the problem. Then you start moving towards the target until you meet the issue.
First, some numbers you will need regarding the various headers
1492 bytes = IPv6 Packet
- 40 bytes = IPv6 Header
- 8 bytes = ICMPv6 Header
-------------------------------
1444 bytes = ICMPv6 payload data
Since Windows ping uses the actual payload as a size, if you want to send a total of 1492 bytes, you have to send 1492-40-8=1444 bytes of ICMPv6 payload data. Anything larger will lead to either a problem or to fragmentation.
Windows>ping -l 1444 x:x::x Pinging target [x:x:xx] with 1444 bytes of data: Reply from x:x:xx: time=53ms Reply from x:x:xx: time=51ms Reply from x:x:xx: time=54ms Reply from x:x:xx: time=53ms Ping statistics for x:x:xx: Packets: Sent = 4, Received = 4, Lost = 0 (0% loss), Approximate round trip times in milli-seconds: Minimum = 51ms, Maximum = 54ms, Average = 52ms
These are the relevant Wireshark captures.







0 comments:
Post a Comment