RetroShare / RetroShare

RetroShare is a Free and Open Source cross-platform, Friend-2-Friend and secure decentralised communication platform.
https://retroshare.cc/
Other
1.75k stars 279 forks source link

External IP forced to IPv4 with no manual override #2483

Open sdgathman opened 3 years ago

sdgathman commented 3 years ago

This prevents RS from connecting at all to anything when there is no real IP4. It's ok if the autoconfigure gets it wrong - just need a way to manually set external IP. The correct IPv6 is even in the detected IPs list - but there is no way to select one.

sdgathman commented 3 years ago

On creating a tunnel to an external VPS to enable IP4, things start working. Running packet trace shows no IPv6 traffic, even after joining the DHT. I assume it is putting what it thinks is the External IP in the DHT.

sdgathman commented 3 years ago

After finally joining some retroshare nodes via tunnel, some people (e.g. ASmith) have informed me that while retroshare listens on IPv6, the DHT data structure does not have a slot for IPv6 IPs. So the only way to get an IPv6 connection is by sharing an "include all ips" retroshare invite with a peer.

It also appears that UDP connections support IP6, but TCP needs some patches. That at least says things are moving in the right direction.

Upgrading the DHT record format could be tricky. I remember helping to design SPF protocol to work with either TXT or SPF DNS RRs. The problem was, common DNS servers would hang on SPF RR type, so operators would always check TXT first. This led to stats telling publishers to only bother with TXT. So, we finally gave up and abandoned the SPF RR type.