How do IPFS and LibP2P implement NAT traversal?

I know that IPFS and LibP2P only provide interfaces so NAT traversal can be implemented in multiple ways, but what are the main implementations for js-ipfs and go-ipfs for example? Are there STUN and TURN servers (like the ones of the Mozilla foundation) hardcoded in js-ipfs for example, that nodes would send a request to whenever they want to seed data?

Have you already visited this page?

1 Like

No but I should have! Thank you.

1 Like

Also: this: for a maybe-not-up-to-date-but-detailed-and-somewhat-relevant-I-think step-by-step description.