Subject: [pcp] MAP4 vs MAP6 clarification

From: Francis Dupont <[email-masked]>
Date: Thu, 11 Aug 2011 15:09:53 +0200

The base 13 spec is not very clear about the use of
MAP4 vs MAP6 (and says nothing for PEER4 vs PEER6,
one can just suppose the same logic applies).

There are only two places where one can find an
indication:
 - section 7 (not normative?) where the choice is
  done according to client's listeners
 - section 10.3 (FILTER option) as nearly a side effect.

IMHO the addresses involved in PCP can be classified into:
 - source addresses (mainly the client's address in the
  common header)

 - internal addresses

 - external addresses

 - remote peer addresses

It seems the current spec uses the last class (remote peer
addresses) for opcode4 vs opcode6 but:
 - this is far to be very clear
 - this information is redundant with the base 13 address
  encoding (i.e., IPv4 mapped IPv6 addresses)
So IMHO we have two choices:
 - merge MAP4 and MAP6 (and PEER4 with PEER6)
 - attach the opcode version to the remote peer one
  and make inconsistent requests malformed

BTW it should be fine to have a table with the IP version
to use for the 4 classes in function of the kind of device
controlled by the PCP server, i.e.:

IPv4 firewall:
 source, internal, external, remote: v4

IPv6 firewall:
 source, internal, external, remote: v6

DS-Lite plain mode:
 source: v6
 internal, external, remote: v4

DS-Lite encapsulation mode:
 source, internal, external, remote: v4

?NAT64:
 source, internal: v6
 external, remote: v4

?NAT46:
 source, internal: v4
 external, remote: v6

NAT444 (both home gateway and CGN):
 source, internal, external, remote: v4

Regards

[email-masked]