-
Notifications
You must be signed in to change notification settings - Fork 1.1k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Handle dial prioritisation for well known prefix IPv4 embedded IPv6 addresses #2349
Comments
It doesn't make sense for peoples to advertise things like Note: I don't know who advertise this in the first place, might be a bug somewhere (golang encode ipv4 as 16 bytes switch len(ipaddr) {
case 4:
// handle as ipv4
case 16:
// handle as ipv6
} |
What's happening here is: A connects to B via NAT64 router R Note: B shouldn't believe this, but that's a separate issue in identify. Will open a separate issue for that. @Jorropo Can you explain how the OS takes care of the rewrite? Let's only consider linux and go-libp2p. I ask because according to my understanding, A does need the address in the converted form to make the call to B. However if the system can be configured to do this automatically it is safe to drop this. |
@marten-seemann Not taking this up for #2365 . We can handle this case in a follow up PR. |
There is this feature called 464XLAT CLAT (Customer side tranLATor) which instead of using a "lying" DNS layer which give you NAT64 compatible IPv6 addresses, the edge clients just do the rewriting themselves. After digging:
Note there are details about how you combine different XLAT and do ipv6 over ipv4 back to ipv6 but for the final machine it's as easy as just sending ipv6 packets with the |
NAT64 only nodes who are solely reliant on DNS64 will want to dial these addresses. So I propose:
|
When implementing happy eyeballs logic to prefer QUIC IPv6 over QUIC IPv4 addresses, I've observed that a lot of the dial failures to IPv6 addresses are for addresses of this form
64:ff9b::192.0.2.33
. These are https://datatracker.ietf.org/doc/html/rfc6052#section-3.1 addresses.In most cases these nodes also report
192.0.2.33
as their address and the subsequent dial to that address succeeds.Can we just skip the dial to
64:ff9b::192.0.2.33
?If we cannot skip them, we should probably still rank them the same as IPv4 addresses and not prefer them to other IPv4 addresses.
The text was updated successfully, but these errors were encountered: