@dhuseby
Thanks for letting me know. I tried a dockerized hole punching scenario with rust-libp2p on two server instances without public ip, and it worked. I prefer to first ensure the js-libp2p works the same, and then follow-up on my questions (if any). For now, I’m pretty sure my ISP uses multiple levels of NAT, which makes hole punching impossible.