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

Refactor Relay for Symmetric NAT #152

Closed
1 task
joshuakarp opened this issue May 26, 2021 · 2 comments
Closed
1 task

Refactor Relay for Symmetric NAT #152

joshuakarp opened this issue May 26, 2021 · 2 comments
Assignees

Comments

@joshuakarp
Copy link
Contributor

joshuakarp commented May 26, 2021

Created by @CMCDragonkai

The following discussion from 'Refactoring Network Module' MR should be addressed:

  • @Zachaccino: (+2 comments)

    Nat Type and Strategy

    Full Cone NAT

    Once an internal address (iAddr:iPort) is mapped to an external address (eAddr:ePort), any packets from iAddr:iPort are sent through eAddr:ePort.

    Any external host can send packets to iAddr:iPort by sending packets to eAddr:ePort.

    Single sided hole punching would be sufficient.

    Address Restricted Cone NAT

    Once an internal address (iAddr:iPort) is mapped to an external address (eAddr:ePort), any packets from iAddr:iPort are sent through eAddr:ePort.

    An external host (hAddr:any) can send packets to iAddr:iPort by sending packets to eAddr:ePort only if iAddr:iPort has previously sent a packet to hAddr:any. "Any" means the port number doesn't matter.

    Require coordinated 2 sided hole punching.

    Port Restricted Cone NAT

    Once an internal address (iAddr:iPort) is mapped to an external address (eAddr:ePort), any packets from iAddr:iPort are sent through eAddr:ePort.

    An external host (hAddr:hPort) can send packets to iAddr:iPort by sending packets to eAddr:ePort only if iAddr:iPort has previously sent a packet to hAddr:hPort.

    Require coordinated 2 sided hole punching.

    Symmetric NAT

    Each request from the same internal IP address and port to a specific destination IP address and port is mapped to a unique external source IP address and port; if the same internal host sends a packet even with the same source address and port but to a different destination, a different mapping is used.

    Only an external host that receives a packet from an internal host can send a packet back.

    Not Punchable, Relay is needed.

@CMCDragonkai
Copy link
Member

I beleive @joshuakarp is the best person to help work on this.

@CMCDragonkai
Copy link
Member

This is superseded by #182.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Development

No branches or pull requests

3 participants