The NAT64 should store IPv4-TCP packets for which there's no state for a while.
This is explained in RFC 6146 page 28.
What's are the implications of this being missing? / What's the reason for the need to fix this? :)
Can't you open multiple tcp sessions through jool simultaneously now?
Correcting myself here. :)
I read this: http://tools.ietf.org/html/rfc6146#page-28
and this: http://ttcplinux.sourceforge.net/documents/one/tcpstate/tcpstate.html
TLDR: If an outside host connects to the gateway-ip(v4)
src port 1, dst port 2
At the same time as the inside-host connects to the same outside host from
src port 2, dst port 1
The connection should succeed and result in one less roundtrip needed for tcp.
(chances are very very slim of this occuring in real life)
Thanks for making me learn something new! ;)
Lol. Still, I admit I could have been more wordy.
I case someone else wants a summary:
"Simultaneous open of TCP connections" is when all of the following conditions are met:
As cetex mentioned, this happens very rarely. I far as I know, there is no reason why anyone would actually actively want this to happen (even as an attack, AFAIK); it's simply a sporadic phenomenon TCP is supposed to handle gracefully. Also, it doesn't affect other connections at all.
Instead of doing what the RFC wants, Jool simply drops the IPv4 connection attempt. Jool will not crash, but what happens at the endpoints is somewhat implementation specific. In the worst case, they will simply have to reattempt the connection.
This is currently being worked at https://github.com/NICMx/NAT64/tree/tcp_store_packet, but it's on temporary hiatus and not part of the current planned milestones.
Update 2014-06-25: This is currently being worked at https://github.com/NICMx/NAT64/tree/issue58.
My understanding of the consequences of the current implementation have changed.
This is what the RFC wants us to do:
If Jool receives a IPv4-TCP connection request, the packet should be stored.
This is what Jool currently does:
If Jool receives a IPv4-TCP connection request, the packet is discarded.
Because the end result is the same in both second bullets, it just so happens that Jool has supported Simultaneous Open of TCP connections all along. What it does poorly is is let IPv4 nodes know that their TCP connections cannot be made when there is no Simultaneous Open...
This was fixed and the changes were merged into the master branch; Closing.