Skip to content

Use client's (private) IP addresses for NAT traversal as well

bornholdt requested to merge revised-traversal into master
  • Hello Messages to super-peer will now contain all local IP addresses of the client.
  • Unite Messages will contain the public IP address seen by the super-peer as well as the private IP addresses provided by the client.
  • The traversal process will now ping all received address candidates until it gets an Acknowledgment. If so, all other candidates are discarded and will no longer be pinged. (If we receive a peer's ping from an unknown IP address - this is the case for symmetric NATs - it will be added to the candidate list and therefore pinged as well).
  • The protocol changes are fully compatible with version 0.7.0 super-peers and clients.

These improvements allow us to do NAT traversal in environments without support for hairpinning (or NAT loopback). We observed this problem with OpenWrt-based routers that do not support hairpinning nor IP Multicast.

Edited by bornholdt

Merge request reports