-
Notifications
You must be signed in to change notification settings - Fork 5
Description
Specification
While testing the testnet and hole punching. We found that while a connection could be punched between the two test machines. The connection could be established with hole punching from NodeA -> NodeB just fine. But starting the connection in reverse with hole punching NodeB -> NodeA could not be done.
With this we can conclude that the hole punching does work, we can see it working with the forward case. But there is some flaw with the hole punching procedure that prevents it working with certain kinds of NATs.
Before we can move forward with testing this, other things need to be cleaned up.
- We need more informative logs when t comes to the hole punching procedure.
- We need to reduce the amount of noise in the logging output. As it stands there is too much logging about connections. We need a discussion about the amount of logging that is appropriate and what kind of logging isn't needed at the
INFOlevel.
Then we can move on to Identifying why connections can only be punched one way. I first guess is that we are not providing the correct information when signalling. Right now the signalling protocol provides the src host:port to the target, but I don't think it's providing the target information back to the src node. That is one thing to look into.
Additional context
- Related 6th Testnet Deployment #551
- Related NAT Signalling (Hole Punching) should be Fire & Forget, Coalesced, and Secured with Signatures #555
Tasks
- Identify why a forward connection can be punched, but the reverse can't be punched.
- Apply a fix