Why do we still need IPv4 when we are migrating to IPv6...

Phil Mayers p.mayers at imperial.ac.uk
Thu Feb 12 14:08:28 CET 2015


On 12/02/15 11:05, Tore Anderson wrote:
> * Ole Troan
>
>> When will IPv6 provide me as an end-user with more "value" than what
>> my current NATed IPv4 connection does?
>
> If you, like me, like to play games online, and at some point find
> yourself googling for the cause of connectivity problems (it is just

+100

Let me document something I ran into recently. Playstation 4 "party 
chat" wasn't working for me, with some people.

Detailed examination showed the fault was causes by a complex 
interaction between the UDP NAT traversal on the client, race conditions 
with the HTTPS-based control channel, and the iptables/conntrack NAT 
code on the CPE[1].

It made me mad, and made me want IPv6 :o(

Cheers,
Phil

[1] Details for the curious:

1. Client binds a UDP port and does a STUN discovery to determine 
external IP/port

2. Client sends external IP/port to HTTPS-based "control" channel

3. Client requests IP/port of other participants from control channel
    <client goes to sleep waiting for a reply here>

4. Remote participant receives our client IP/port and starts sending UDP 
traffic to that port

5. Packets arrive at local CPE; no "conntrack" entry present, so traffic 
is punted to local IP stack on CPE

6. Local IP stack generates ICMP port-unreachable

7. Conntrack inspects content of ICMP port-unreachable, extracts 
"original" 5-tuple, creates a conntrack entry and links ICMP to it

8. Client receives remote participant IP/port from control channel, 
sends UDP data to it, from already-bound UDP port

9. CPE sees UDP traffic; tries to map internal port to same external 
port, finds a conflicting 5-tuple already present (from step #7) and 
instead maps to random port.

10. Remote CPE sees traffic from random port; no conntrack mapping; goto 
step 7...


The only way to get around this is to use the "DMZ" (forward all unknown 
ports) functionality, which you can only point to one device - good luck 
if you have two - or for the people managing the CPE to make the local 
"iptables" INPUT chain DROP, not REJECT, at least for unknown UDP. Good 
luck persuading lazy residential providers to fix that...

Grr. NAT sucks.


More information about the ipv6-ops mailing list