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

Detect moving into and out of symmetric NAT #1702

Open
russellb opened this issue Nov 27, 2023 · 1 comment
Open

Detect moving into and out of symmetric NAT #1702

russellb opened this issue Nov 27, 2023 · 1 comment
Labels
bug Something isn't working nexd Nexodus agent

Comments

@russellb
Copy link
Member

nexd currently only does symmetric NAT detection at startup. Whatever it detects at that point is what it assumes until nexd is restarted again. This should be changed so that it is reconciled while running.

The impact of the bug:

  1. If nexd starts behind symmetric NAT and moves outside of it, will continue to only peer with a relay. It will not attempt direct peering, even though it should be able to.

  2. If nexd starts behind easy NAT and moves to symmetric NAT, nexd will continue attempting direct peering even though it won't work. Because nexd retries using fallback methods, peering should eventually still work once it falls back to a relay, assuming one is present. Peering will just take longer to come up than it should.

@russellb russellb added bug Something isn't working nexd Nexodus agent labels Nov 27, 2023
@markmc
Copy link

markmc commented Nov 27, 2023

When I moved from easy NAT to symmetric NAT and back, I found even restarting the agent wasn't enough to re-establish connectivity - it went back to showing reflexive as the peering method, but peers were unreachable

Note - I didn't actually set up a relay when I was behind symmetric NAT

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working nexd Nexodus agent
Projects
Status: 📋 Backlog
Development

No branches or pull requests

2 participants