NICMx / Jool

SIIT and NAT64 for Linux
GNU General Public License v2.0
320 stars 66 forks source link

Should Jool support RFC 6887 - Port Control Protocol? #183

Closed crisdeleon closed 5 years ago

crisdeleon commented 8 years ago

I stumbled upon a concept with the name of Port Mapping Protocol (RFC 6886), and its succesor Port Control Protocol (RFC 6887).

PCP allows applications to create mappings from an external IP address, protocol, and port to an internal IP address, protocol, and port. These mappings are required for successful inbound communications destined to machines located behind a NAT or a firewall.

RFC 6887, 1. Introduction

As of now, Jool allows static binding through manually adding BIB entries, however this must be done by the administrator, directly on the device that has jool installed.

PCP allows an application to create a mapping without human intervention; a PCP capable client only needs to send a UDP message with a MAP request, and the server processes the request and creates the binding.

Now I'm not a very knowledgeable person in this matter, so I'm wondering, is this worthwhile to implement in jool?

ydahhrk commented 8 years ago

is this worthwhile to implement in jool?

This doesn't sound like a request. Guess we'll have to hear some bumps.

NAT64, both Stateless [RFC6145] and Stateful [RFC6146]

(RFC 6887)

Huh, found one that uses "the term". Not that it's in the glossary, though.

toreanderson commented 8 years ago

I don't think you need to implement this directly in Jool. It seems preferable to me to instead teach a generic PCP daemon to insert and remove static BIB entries using the jool command line utility. I believe this is how it's commonly done in IPv4 (the PCP daemon maintains rules in iptables -t nat).

pierky commented 8 years ago

In principle I agree with @toreanderson's point of view, I only have some concerns that I believe can be dispelled with some field tests:

In regards of the latter, I mean something that doesn't break thinks because of script-calling-another-script-piping-results-to-egrep-and-finally-jool.

After a quick search I found a couple of PCP opensource implementations that I want to write them down here for future reference: MiniUPnP, pcp-sdn. Of course, this is just the result of a quick glance and has not presumption of completeness.

As soon as I'll have some progress with my 64 testlab I'll take them a closer look.

ydahhrk commented 8 years ago

It seems preferable to me to instead teach a generic PCP daemon to insert and remove static BIB entries using the jool command line utility.

Ok, agreed.

As soon as I'll have some progress with my 64 testlab I'll take them a closer look.

Thanks!

ydahhrk commented 5 years ago

This doesn't seem to have much momentum. I'll close it for now.