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

testing: add integration testing that asserts STUN/NAT hole punching is working properly #27

Closed
backkem opened this issue Jul 18, 2018 · 5 comments
Labels

Comments

@backkem
Copy link
Member

backkem commented Jul 18, 2018

Investigate ways to simulate and test traversal of different NAT types and combinations of NAT types.

Related:

@Sean-Der Sean-Der changed the title testing: investigate NAT testing testing: add integration testing that asserts STUN/NAT hole punching is working properly Sep 29, 2018
@enobufs
Copy link
Member

enobufs commented Jan 16, 2019

If one NAT type is ok, then we can do it using docker containers. The idea is to have multiple layers of dockers (docker-in-docker technique), where outer most docker represents a WAN (we can run STUN/TURN/signaling server there), second layer is to set up an IP masquerade, and innermost container will be the NATted application. As far as I know, Ubuntu's IP masquerade (based on iptables) exhibits "Port-restricted cone NAT". You can emulate more than one virtual "NATted" subnets inside a docker, so we can simulate App-->NAT-->WAN-->NAT-->App. Let me know if this could help.

@backkem
Copy link
Member Author

backkem commented Jan 16, 2019

Eventually it would be nice to test using a variety of NAT types but for now it would already help a lot to automate one test. That would mean we no longer have to manually test NAT traversal.

@enobufs
Copy link
Member

enobufs commented Jan 16, 2019

I just put my demo code together...
https://github.com/enobufs/nat-traversal-test-using-docker

@Sean-Der Sean-Der transferred this issue from pion/webrtc Apr 17, 2019
@Sean-Der
Copy link
Member

@enobufs you ok with me closing this as a dupe of your vnet work? I think everything will be covered when that rolls out.

We can simulate all NAT types between peers (and that we get the expected behavior) so I think that covers everything!

@enobufs
Copy link
Member

enobufs commented Jun 25, 2019

Yes, I'd agree. Let me close this issue.
See: pion/webrtc#712

@enobufs enobufs closed this as completed Jun 25, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Development

No branches or pull requests

3 participants