go-libp2p icon indicating copy to clipboard operation
go-libp2p copied to clipboard

NAT Traversal testing

Open whyrusleeping opened this issue 9 years ago • 6 comments

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.

whyrusleeping avatar Sep 13 '16 19:09 whyrusleeping

We should also get samples of known-weird routers

ghost avatar Sep 13 '16 19:09 ghost

@lgierth oooooh, yes. Good point.

whyrusleeping avatar Sep 13 '16 19:09 whyrusleeping

(I'd offer to have an online-accessible physical testbed at my place, have plenty of room)

ghost avatar Sep 13 '16 20:09 ghost

@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? :)

daviddias avatar Aug 19 '17 17:08 daviddias

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 avatar Aug 14 '22 22:08 stv0g

@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.

mxinden avatar Aug 15 '22 01:08 mxinden

Tracked by https://github.com/libp2p/test-plans/issues/126.

marten-seemann avatar Jun 28 '23 02:06 marten-seemann