Skip to content
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

Support all NAT types for hole punching #100

Closed
robert-cronin opened this issue Sep 16, 2020 · 1 comment · Fixed by #118
Closed

Support all NAT types for hole punching #100

robert-cronin opened this issue Sep 16, 2020 · 1 comment · Fixed by #118
Assignees
Labels
development Standard development
Milestone

Comments

@robert-cronin
Copy link
Contributor

At the moment we have a UDP hole punching implementation that covers full-cone NAT as all it's doing is mapping an internal host:port address to an external host:port address. This is a weak implementation as any actual use of polykey is likely to find itself behind either a port-restricted cone NAT or symmetric NAT.

Any hole punching solution probably won't work with symmetric NAT so the relay can be used in that case. The main thing missing from our implementation to support port-restricted cone NAT is to have the intermediary node send a connection request to the NATted node with the other private node's public address. Section 3.2 on this guide is useful for understanding.

@robert-cronin
Copy link
Contributor Author

This is now implemented in latest PR

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
development Standard development
Development

Successfully merging a pull request may close this issue.

1 participant