Skip to content

Fix hole punching to work in both directions #605

@tegefaulkes

Description

@tegefaulkes

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.

  1. We need more informative logs when t comes to the hole punching procedure.
  2. 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 INFO level.

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

Tasks

  1. Identify why a forward connection can be punched, but the reverse can't be punched.
  2. Apply a fix

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions