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

Add NATPMP & PCP support #698

Open
WhyNotHugo opened this Issue Sep 17, 2014 · 6 comments

Comments

Projects
None yet
5 participants
@WhyNotHugo

WhyNotHugo commented Sep 17, 2014

Originally discussed in discourse, it was agreed that NATPMP & PCP is very important for NAT traversal, especially in scenarios with no UPnP support.

This library was mentioned, and covers both protocols, though I'm unsure if a C library can be used from golang.

@mbravorus

This comment has been minimized.

mbravorus commented Oct 16, 2014

It should be mentioned that in particular Apple products such as Airport Extreme or TimeCapsule do not have UPnP but have NAT-PMP.

@WhyNotHugo

This comment has been minimized.

WhyNotHugo commented Oct 16, 2014

Apple's amongst many other. The same applies for many custom built routers, like my own OpenBSD-based one.

@calmh calmh modified the milestone: v1.0-maybe Jan 15, 2015

@calmh calmh removed this from the v1.0-maybe milestone Nov 17, 2015

@calmh calmh modified the milestone: Unplanned Jan 1, 2016

AudriusButkevicius added a commit to AudriusButkevicius/syncthing that referenced this issue Apr 10, 2016

AudriusButkevicius added a commit to AudriusButkevicius/syncthing that referenced this issue Apr 13, 2016

AudriusButkevicius added a commit to AudriusButkevicius/syncthing that referenced this issue Apr 13, 2016

st-review pushed a commit that referenced this issue Apr 13, 2016

@calmh

This comment has been minimized.

Member

calmh commented Apr 13, 2016

NAT-PMP is now implemented. What equipment speaks PCP, or what is the driver for that protocol?

@fluggelgleckheimlen

This comment has been minimized.

fluggelgleckheimlen commented Jun 22, 2017

Currently PCP only used in enterprise/carrier grade devices such as Juniper MX (which costs $20 000+) and I don't think it will be widely adopted until complete migration to IPv6.

@calmh calmh closed this Jun 22, 2017

@WhyNotHugo

This comment has been minimized.

WhyNotHugo commented Jun 22, 2017

Back when I posted this, I had some computers on my network with dual-stack, and other IPv6-only (with NAT64 to access IPv4-only hosts). The latter ones needed PCP (definitely not enterprise/carrier grade equipment, just an EdgeRouter Lite + OpenBSD) for port forwarding because that worked with NAT64.

I'm guessing that PCP will probably become more popular during the transition period -- when more people start having just NAT64, and not native IPv4.

I now run 100% dual-stack, so NATPMP is enough for me, and, I think, most people. Big thanks for working on this!

@AudriusButkevicius

This comment has been minimized.

Member

AudriusButkevicius commented Jun 22, 2017

Reference implementation of PCP.

https://github.com/hujun-open/pypcpc/blob/master/pcpc.py

Reopening as this could still be implemented, especially how easy it would be to plug it in.

@calmh calmh removed this from the Unplanned (Contributions Welcome) milestone Feb 11, 2018

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