go-libp2p
go-libp2p copied to clipboard
NAT Traversal testing
We really need to start actually testing NAT traversal in a variety of different scenarios. I have investigated a few different ways of doing this virtually, and theyre all 'really hard'. My current solution for the near term is to build a physical network with a way to automate the different NAT traversal scenarios of each router in the network for testing.
Whatever method is chosen, we can use this issue to track the implementation.
We should also get samples of known-weird routers
@lgierth oooooh, yes. Good point.
(I'd offer to have an online-accessible physical testbed at my place, have plenty of room)
@lgierth I'll be back to Berlin for the 28th of August, I can stay some extra days and we could hack this together. How does that sound? :)
I am currently also testing the NAT traversal capabilities of my own app.
I've written my own Golang-based version of mininet, the Go network testing toolkit (Gont).
However, I am now struggling to replicate the various NAT-styles. It seems like the standard masquerading feature of Netfilter is a symmetric NAT which is not really useful for our use-case.
I am now working on implementing other NAT-types in Gont.
@stv0g thanks for commenting here. I think it is also worth following https://github.com/testground/testground/issues/1299. Let us know in case you want to collaborate on any of these efforts.
Tracked by https://github.com/libp2p/test-plans/issues/126.