One document matched: draft-despres-softwire-sam-00.txt
Internet Engineering Task Force R. Despres
Internet-Draft RD-IPtech
Intended status: Experimental March 1, 2010
Expires: September 2, 2010
Stateless Address Mapping (SAM) for Softwire-Lite Solutions
draft-despres-softwire-sam-00
Abstract
Stateless Address Mapping (SAM) is a generic mechanism which permits,
in a number of new scenarios, to easily establish tunnels for packets
of some address family to traverse domains where this family is not
directly routed (softwires). It generalizes address mapping
principles of already deployed technologies such as 6to4, ISATAP, and
6rd, where encapsulations of IP over IP are used for point-to-
multipoint tunnels (mesh softwires).
Identified use cases of SAM include native IPv6 across IPv4 NATs,
IPv6 multihoming with provider-aggregatable prefixes, public IPv4
across IPv6-only domains and, to mitigate consequences of the IPv4
address shortage, extended IPv4 prefixes for statically shared IPv4
public addresses.
Status of this Memo
This Internet-Draft is submitted to IETF in full conformance with the
provisions of BCP 78 and BCP 79.
Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF), its areas, and its working groups. Note that
other groups may also distribute working documents as Internet-
Drafts.
Internet-Drafts are draft documents valid for a maximum of six months
and may be updated, replaced, or obsoleted by other documents at any
time. It is inappropriate to use Internet-Drafts as reference
material or to cite them other than as "work in progress."
The list of current Internet-Drafts can be accessed at
http://www.ietf.org/ietf/1id-abstracts.txt.
The list of Internet-Draft Shadow Directories can be accessed at
http://www.ietf.org/shadow.html.
This Internet-Draft will expire on September 2, 2010.
Despres Expires September 2, 2010 [Page 1]
Internet-Draft Stateless Address Mapping (SAM) March 2010
Copyright Notice
Copyright (c) 2010 IETF Trust and the persons identified as the
document authors. All rights reserved.
This document is subject to BCP 78 and the IETF Trust's Legal
Provisions Relating to IETF Documents
(http://trustee.ietf.org/license-info) in effect on the date of
publication of this document. Please review these documents
carefully, as they describe your rights and restrictions with respect
to this document. Code Components extracted from this document must
include Simplified BSD License text as described in Section 4.e of
the Trust Legal Provisions and are provided without warranty as
described in the BSD License.
Table of Contents
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 3
2. The SAM model . . . . . . . . . . . . . . . . . . . . . . . . 3
2.1. Stateless Address Mappers (SAMs) . . . . . . . . . . . . . 3
2.2. Mapping Rules . . . . . . . . . . . . . . . . . . . . . . 6
2.3. Mapping Functions . . . . . . . . . . . . . . . . . . . . 7
2.4. Encapsulations and Decapsulations . . . . . . . . . . . . 9
2.5. Fragmentation Considerations . . . . . . . . . . . . . . . 9
2.6. Extended IPv4 Prefixes and their Port Sets . . . . . . . . 10
2.7. Acquisition of Mapping Rules by Customer Nodes . . . . . . 12
3. Use-Case examples . . . . . . . . . . . . . . . . . . . . . . 15
3.1. IPv6 across IPv4-only Domains . . . . . . . . . . . . . . 15
3.1.1. Native IPv6 across NAT44 CPEs (6rdE) . . . . . . . . . 15
3.1.2. Optimized Mapping for Multiple IPv4 Prefixes . . . . . 18
3.2. IPv4 across IPv6-only Domains . . . . . . . . . . . . . . 20
3.2.1. Single IPv4 Prefix . . . . . . . . . . . . . . . . . . 20
3.2.2. Multiple IPv4 Prefixes . . . . . . . . . . . . . . . . 21
3.3. Public IPv6 across Private-IPv6 Domains . . . . . . . . . 22
3.3.1. Multihoming with Provider-Aggregetable Prefixes . . . 22
3.3.2. Renumbering with Unchanged Internal Routing . . . . . 24
3.3.3. Merging Two Private-Addressing Sites using ULAs . . . 25
3.4. A Planned Experiment at Telecom Bretagne . . . . . . . . . 27
4. Security considerations . . . . . . . . . . . . . . . . . . . 30
5. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 30
6. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 31
7. References . . . . . . . . . . . . . . . . . . . . . . . . . . 31
7.1. Normative References . . . . . . . . . . . . . . . . . . . 31
7.2. Informative References . . . . . . . . . . . . . . . . . . 32
Author's Address . . . . . . . . . . . . . . . . . . . . . . . . . 33
Despres Expires September 2, 2010 [Page 2]
Internet-Draft Stateless Address Mapping (SAM) March 2010
1. Introduction
Stateless Address Mapping (SAM) is a generalization of address-
mapping and encapsulation mechanisms used in deployed technologies
such as 6to4 [RFC3056], 6rd [RFC5569] [Standard-track 6rd], and
ISATAP [RFC5214]. Like these, it establishes point-to-multipoint
tunnels (mesh softwires of [RFC4925]). Like these also, but unlike
mesh softwire mechanisms of [RFC5565], it establishes them without
needing a common routing protocol between border nodes of traversed
domains. to keep justifies to call it a "softwire lite" solution.
Another characteristic of SAM that keeps it simple is that traversed
domains are treated as virtual links like those of 6to4, i.e. as
links on which neither link-local addresses nor any link-layer
protocol are needed.
A detailed specification of SAM is proposed in Section 2, after what
a number of typical use cases are described in Section 3. Security
considerations are covered Section 4.
Section 3.1 on IPv6 across IPv4-only domains, Section 3.2 on public
IPv4 across IPv6-only domains, and Section 3.3 on public IPv6 across
private-IPv6 domains, can be read in any order, and it is unnecessary
to have read Section 2.7 on how mapping rules can be acquired by
customer nodes to understand them.
Readers not interested in IPv4 address-plus-port locators, a subject
considered so far as controversial, can just skip Section 2.6 and
ignore, in the experimental scenario of Section 3.4, what concerns
them.
2. The SAM model
2.1. Stateless Address Mappers (SAMs)
Figure 1 summarizes the essentials of SAM, with an illustration of
the terminology used in the upper part, with below mapping-rule
parameters listed in Section 2.2, and at the end a synthetic
representation of mapping functions detailed in Section 2.3
A "SAM domain", is a routing domain in which border nodes (hosts or
routers) contain "stateless address mappers" (SAMs). Some of them
are "customer SAMs" (C-SAMs) and some of them, optional, are
"provider SAMs" (P-SAMs). Each SAM, being stateless, can be
physically replicated if necessary to support heavy traffic loads.
In this case, they share the same prefixes and locators. Addresses
to reach them are configured in routers as anycast addresses.
Despres Expires September 2, 2010 [Page 3]
Internet-Draft Stateless Address Mapping (SAM) March 2010
customer customer provider domain domain
exterior interior interior interior exterior
prefix E prefix I locator G prefix K prefix D
|______ |___ | | __________|
| | | | |
| | | | +---|------------------
exterior | +---|-----|------------|-+ | exterior
endpoint locator | | | | | | | endpoint locator
(customer-side) | | | | K <====: | (provider side)
| | | | |__________ | | |
--|-------------|--+ | | P-SAM | |
| | | | G ---->S<==== D ---->
| | | | provider SAM eLOC (not D...)
| |C-SAM | |
<---- I <====S<==== I=P.X |
eLOC=E... E <====S |
E=R.X | |
customer SAM |
| |
CUSTOMER DOMAIN | SAM DOMAIN |
-------------------+ (iSRC ----> iDST) | PROVIDER DOMAIN
+------------------------+
(in a border node) +----------------------
(in a border node)
MAPPING RULE(S): {R; P; x[; G][; T]}, where:
R = rule exterior prefix = D[.C]
P = rule interior prefix = K[.H]
C = domain-exterior-prefix code (optional)
H = domain-exterior-prefix code (optional)
X = customer index (length x)
T = lifetime (optional)
MAPPING FUNCTIONS:
E( I=P... , {R; P; x}) = R.(I-P)/r+x
iDST(eDST=R... , any eSRC,{R; P; x}) = P.(eDST - R).0*/p...
iDST(eDST not R... , eSRC = R... ,{R; ... ; G}) = G
THE SAM MODEL
Figure 1
Each SAM has an "interior interface" and an "exterior interface". At
the interior interface, it is addressed in the SAM interior locator
family of the domain. At the exterior interface, it can be addressed
in several locator families. These locator families can be IPv4,
IPv6 or, for some scenarios of the IPv4-IPv6 coexistence period
Despres Expires September 2, 2010 [Page 4]
Internet-Draft Stateless Address Mapping (SAM) March 2010
during which there is an IPv4 address shortage, extended IPv4
(IPv4E). An IPv4E locator is port-extended, i.e. composed of a
public IPv4 address plus a transport layer port number.
a SAM domain may contain any number of interior nodes, which forward
packets whose locators are in the interior locator family.
Each provider SAM is assigned, at its interior interface, a "provider
interior locator" (G). At its exterior interface, the P-SAM is
assigned one or several "domain exterior prefixes" (D).
Each customer SAM is assigned, at its interior interface, an interior
prefix called its "customer interior prefix" (I). At its interior
interface, it assigns to the customer domain behind this interface
one or several "customer exterior prefixes" (E).
Customer interior and exterior prefixes I and E have a common part,
in their lower bits, called the "customer index" (X). What precedes
X in a customer exterior prefix E is called "rule exterior prefix"
(R), and what may precede X in a customer interior prefix I is called
"rule interior prefix" (P).
In SAM, prefixes are not only address prefixes (IPv4 or IPv6, public
or private), but more generally locator prefixes, including port-
extended prefixes. Their lengths are not restricted to be shorter
than that of locators of their families so that a prefix parameter
can contain a full address or address plus port.
We use throughout the following notation:
o The dot is the a concatenation operator for prefixes, and the
minus sign is the extraction operator, so that we can write E =
R.X, I = P.X, also noted X = E - R = I - P.
o A locator that matches a prefix Z is noted Z... .
o The length of a prefix whose symbol is an upper-case letter is
noted with the same letter in lower case (d is the length of D, x
that of X).
o The length of a locator Z... is noted z... (e... = 128 if the
locator family of E is IPv6, and e... = 48 if this family is
IPv4E.)
Despres Expires September 2, 2010 [Page 5]
Internet-Draft Stateless Address Mapping (SAM) March 2010
A customer exterior prefix E assigned by a customer SAM to its
customer domain must belong to the locator space of the SAM domain.
It must therefore be an extension of one of the domain exterior
prefixes D. For this, each rule exterior prefix R must start with one
of the domain exterior prefixes D.
In a SAM domain a common part at the beginning of a number interior
locator can be identified. It is then called "domain interior
prefix" (K) of the domain. If interior locators are not constrained
to start with any specified prefix, there is only one K whose length
is 0. If there are several Ks, it must be possible to unambiguously
determine which one is at the beginning of any interior locator.
These Ks must therefore be non-overlapping prefixes. Customer
interior prefixes I assigned in a SAM domain to customer SAMs having
to be extensions of these Ks, each rule interior prefix P must start
with one of them.
If a rule exterior prefix R is longer than its contained domain
exterior prefix D, the remainder is a "domain-interior-prefix code"
(C), i.e. R = D.C, or C = R - D. When present, this code C
identifies one of the domain interior prefixes K.
If a rule interior prefix P is longer than its contained domain
interior prefix K, the remainder is a "domain-exterior-prefix code"
(H), i.e. P = K.H, or H = P - K. When present, this code H
identifies one of the domain exterior prefixes D.
2.2. Mapping Rules
To forward an exterior packet across a SAM domain a SAM derives an
interior destination locator iDST from the destination and source
locators eDST and eSRC of the exterior packet. For this, it applies
a "locator mapping function" which depends on the set of "mapping
rules" of the SAM domain: iDST = iDST(eDST, eSRC, mapping rules).
To assign customer exterior prefixes E to its customer domain,
customer SAMs apply to their prefixes I a "prefix mapping function"
which depends on the set of mapping rules of the SAM domain: E = E(I,
mapping rules).
Despres Expires September 2, 2010 [Page 6]
Internet-Draft Stateless Address Mapping (SAM) March 2010
Parameters of mapping rules are the following:
R: The "rule exterior prefix". Its family (IPv4, IPv6 or IPv4E)
determines that of exterior prefixes E that start with it, and
that of exterior endpoint locators eDST and eSRC.
P: The "rule interior prefix". Its family (IPv4, IPv6 or IPv4E)
determines that of interior prefixes I that start with it, and
that of interior locators iDST and iSRC. The length p of this
prefix may be 0.
x: The "customer-index length". It is the length of the field X that
is common to customer interior and exterior prefixes I and E. It
determines the lengths of customer interior and exterior prefixes
(i = p + x, and e = r + x).
G: The "provider interior prefix" (optional). It specifies a P-SAM
that has been assigned the domain exterior prefix D that appears
at the beginning of the customer exterior prefix R of the rule.
If G is present but has length g = 0, it means that the interior
interface of this P-SAM is the default exit from the SAM domain (a
SAM use cases where this is used is not present in this draft but
may be included in a later version). If G is absent, the rule
applies only to packets whose source and destination exterior
locators eSRC and eDST both start with the rule-exterior-prefix R
of the rule (eDST = R... and eSRC = R...).
T: The "rule lifetime" (optional). Its absence means an unbounded
lifetime. If a SAM sees that the lifetime of a rule has expired
since the rule was received, no mapping using it is permitted any
longer. The rule should then be discarded. If present, the
lifetime is expressed in seconds.
A mapping rule is represented between curly brackets, with its
parameters in the order R, P, x, G, T, as shown in Section 2 with
square brackets to indicate what is optional.
2.3. Mapping Functions
Ignoring for the time being security checks, which are discussed in
Section 4, prefix mapping functions are detailed in Figure 2, with
the following pseudo-code notation:
o As above, the dot is the concatenation operator and the minus sign
is the extraction operator: "(A.B)-D" means that A and B are
concatenated and that D, which must be present at the beginning of
the result, is extracted from it to give the final result.
Despres Expires September 2, 2010 [Page 7]
Internet-Draft Stateless Address Mapping (SAM) March 2010
o The slash notation indicates how many bits are retained in
concatenation results. "A.B/(c+d" means that A and B are
concatenated and that only the first c + d bits are retained.)
o 0* represents a filler composed of a number of 0 bits which are
appended to reach the specified total length. Its length may be
0.
CUSTOMER-SAM PREFIX MAPPING
E(I, mapping rules):
FOR each rule {R; P; x[; G][; T]} such that I=P..., DO:
Take, as valid E, E = R.(I-P)/r+x, with lifetime T
CUSTOMER-SAM DESTINATION-LOCATOR MAPPING
iDST(eDST, eSRC, mapping rules):
Take rules {R; P; x[; G][; T]} such that eDST=R...
Select among them those that have the maximum R length
Select among them one that has the maximum T (or no T)
IF there is such a rule and eSRC=R..., DO:
iDST = P.(eDST-R).0*/p...
ELSE DO:
Take rules {R; P; x[; G][; T]} such that eSRC=R... :
Select among them those that have a G
Select among them one that has the maximum T (or no T)
IF there is such a rule, DO:
iDST = G
ELSE: Return a "Destination unreachable" error message
PROVIDER- SAM DESTINATION LOCATOR MAPPING:
- iDST(eDST, eSRC, mapping rules):
Take rules {R; P; x[; G][; T]} such that eDST=R...
Select among them those that have the maximum R length
Select among them one that has the maximum T (or no T)
IF there is such a rule and eSRC=R...,, DO:
iDST = P.(eDST-R).0*/p...
ELSE: Return a "Destination unreachable" error message
SAM MAPPING FUNCTIONS
Figure 2
Despres Expires September 2, 2010 [Page 8]
Internet-Draft Stateless Address Mapping (SAM) March 2010
2.4. Encapsulations and Decapsulations
To traverse SAM domains with end-to-end network transparency,
exterior packets are encapsulated in interior packets. Destination
locators iDST of these interior packets are those obtained by the
mapping functions of Section 2.3. The source locators iSRC is in a
customer SAM its interior prefix I, completed if necessary by a
filler of 0s. In a provider SAM, it is its provider interior locator
G
If the interior locator family is IPv4 or IPv6, encapsulation is in
IP over IP, with the protocol/next-header field of the encapsulating
packet set to 41 (an extension of what this value means for 6to4,
ISATAP and 6rd).
If the interior locator family is IPv4E, encapsulation is in IP over
UDP over IP. UDP ports are the last 16 bits of 48-bit interior
locators of the IPv4E family.
At tunnel exit, interior packets from which exterior packets have to
be extracted are recognized by their protocol/next-header field = 41,
if the interior locator family is IPv4 or IPv6, and by their UDP
destination port being that assigned to encapsulation if this family
is IPv4E.
ICMP/ICMPv6 error messages of the interior locator family that are
received at tunnel exits are analyzed to determine the original
source and destination locators eSRC and eDST of encapsulated packets
whose discarding is signaled. ICMP/ICMPv6 error messages are then
constructed with the same or appropriately translated error type,
with this eSRC as destination, with the exterior-interface address of
the SAM as source SAM, and with the part of the original exterior
packet found in the received error message after the constructed
ICMP/ICMPv6 header.
2.5. Fragmentation Considerations
If the exterior locator family of a SAM domain is IPv6, datagram
fragmentation has to remain an end-to-end issue. Exterior packets
that don't exceed the size that is guaranteed to traverse the SAM
domain without fragmentation are forwarded. (To comply with
[RFC2460], this size must be at least 1280 octets). Exterior packets
having more than this size may either be discarded (with the
appropriate ICMPv6 error message returned to the source), or
forwarded. In the latter case, the ICMP "Packet too big" error
messages may be received, and must be translated as indicated in
Section 2.4.
Despres Expires September 2, 2010 [Page 9]
Internet-Draft Stateless Address Mapping (SAM) March 2010
If the exterior locator family of a SAM domain is IPv4, a packet size
that traverses the SAM domain without risking to be found too big has
to be known. Exterior packets that have more than this size and
don't have their "Don't fragment" bit set are then fragmented in IPv4
and each resulting packet is independently encapsulated in an
interior family datagram. Exterior packets having more than this
size and having the "Don't fragment" bit set to 1 may either be
discarded (with the appropriate ICMPv6 error message returned to the
source), or forwarded. In the latter case, the ICMP "Packet too big"
error messages may be received, and must be translated as indicated
in Section 2.4.
If the exterior locator family of a SAM domain is IPv4E, other
fragments of a fragmented datagram than the first one don't contain
the necessary UDP port numbers, and therefore cannot be individually
forwarded. Tunnel-entrance SAMs must first reassemble each datagram,
using for this a classical datagram reassembly function, and then
treat the result like an IPv4 packet of the previous paragraph. In
tunnel-exit SAMs interior and exterior datagrams are reassembled
before forwarding.
2.6. Extended IPv4 Prefixes and their Port Sets
Port forwarding is used for IPv4-only hosts that are behind an IPv4
NAT (NAT44) to be reachable from the Internet. Mappings between
transport-layer ports and host private addresses can be configured by
administrative commands, or automatically by a protocol such as the
NAT Port Mapping Protocol of [NAT-PMP]). Now that more and more
sites will have no public IPv4 address of their own, new mechanisms
are needed for this intra-site port forwarding to remain possible.
The SAM answer to this need consists in ISPs statelessly assigning
disjoint port sets to customer sites that share a common public IPv4
address. This permits customer NAT44s to configure at any time their
internal port forwarding with ports of their assigned port set. No
new protocol between customer-site NATs and ISP provided NATs within
their infrastructures is needed for this.
Note that this partial palliative of the IPv4 address shortage does
not avoid limitations that are inherent to public-address sharing
between customers: less ports available for port consuming
applications, impossibility for customers to obtain any specific port
number, etc. Enabling IPv6 in addition to IPv4 remains therefore the
only complete solution to restore good host reachability across the
Internet, on any chosen ports.
Despres Expires September 2, 2010 [Page 10]
Internet-Draft Stateless Address Mapping (SAM) March 2010
For port sets assigned to customer domains that share public IPv4
addresses not to include ports that have more value than others,
ports numbers below 4096 have to be excluded. (This exclusion is
chosen by reference to Windows which has been reported to dynamically
bind ports to applications starting at 4096, because lower numbered
ports are subject to specific behaviors, in particular well known
ports below 1096. If a port range other than above 4095-65535 should
be preferred, the logic described below could easily be adapted to
it.)
Figure 3 shows how SAM derives a port set from an extended IPv4
prefix, i.e. a prefix of the IPv4E family having a length from 33 to
48.
Bits of the prefix after the first 32 are called the port-set index
S. If its length s is less than 13, S identifies 4 port ranges. The
largest of these ranges has 2 ^ (15 - s) elements; the second 2^(14 -
s); etc. For port-set indexes of lengths s > 12, the number of port
ranges of the port set is limited to 15 - s, with the smallest range
having only one element. An extended prefix E of less than 45 bits
has thus 15 / 16 * 2^(48 - e) elements.
Note that, if desired for simplicity, implementations may use only
the first contiguous range, leaving unused less than half of the
ports in the assigned set.
<-------- extended-IPv4 prefix E ------>
<--- IPv4 address (32 bits) ---><------>
|
"port set index" S ________| port-prefix number
| lengths of ports
| V V
/ 1<------> s + 1 2^(15-s)
port prefixes / 01<------> s + 2 2^(14-s)
of the port set \ 001<------> s + 3 2^(13-s)
if s < 13 \ 0001<------> s + 4 2^(12-s)
--------
15/16*2^(16-s)
CORRESPONDENCE EXTENDED-IPv4 PREFIXES AND LOCATOR PORT SETS
Figure 3
Despres Expires September 2, 2010 [Page 11]
Internet-Draft Stateless Address Mapping (SAM) March 2010
2.7. Acquisition of Mapping Rules by Customer Nodes
For early experimentations or advanced uses, a customer SAM may
acquire the SAM rules of its SAM domain by administrative
configuration. But for extensive deployments, they must be acquired
automatically. The DHCP of [RFC2131] and DHCPv6 of [RFC3315]) can be
used for this. Alternatively, in particular for scenarios where
NAT44s have to be traversed, using the DNS as proposed in section 6
of [DNS-SD] can be a better approach.
Figure 4 shows how classical functions of DHCP clients and servers
can be combined with some SAM-specific functions to build a solution:
o A "local SAM-rule configurator" is present in each provider-SAM
border node. It derives one or several SAM mapping rules from its
local parameters. These parameters may have been administratively
configured and/or obtained by automated prefix delegation from the
provider domain. The obtained mapping rules are then submitted,
in a DHCP-option format shown in Figure 5, to a collocated
classical DHCP server.
o A "SAM multiple DHCP client" is present in each "SAM-capable DHCP
server", i.e. in each stateless DHCP server that border nodes of
customer SAMs query to obtain their parameters. A SAM multiple
DHCP client is administratively configured with locators of all
provider SAMs of the domain. It queries them to obtain their
mapping rules. It then submits all of them to the collocated SAM-
rule merger.
o A "SAM-rule merger" is present in each SAM-capable DHCP server.
It gathers all rules submitted to it by the collocated SAM
multiple DHCP client, and merges them into a single SAM DHCP
option. In a sophisticated version, it may retain only some of
these rules, according to some criteria that are beyond the scope
of this version of the draft. The resulting DHCP option, suitable
for a stateless DHCP operation, is then submitted to the
collocated classical stateless DHCP server.
o If a SAM-capable DHCP server is collocated with a provider SAM,
the local SAM-rule configurator can directly submit its rules to
the local SAM-rule merger, without needing a DHCP client-server
relationship.
Despres Expires September 2, 2010 [Page 12]
Internet-Draft Stateless Address Mapping (SAM) March 2010
customer SAM
+-----------------+
| +-------------+ |====>|SAM-rules and other requests
| | DHCP client | | |(to a SAM-capable DHCP server)
| +-------------+ |
+-----------------+
SAM-capable DHCP server
+-------------------+
| +---------------+ |
SAM-rules and other Requests|====>| | DHCP server | |
(from customer-SAMs)| | | (stateless) | |
| +---------------+ |
| | SAM-rule | |
| | merger | |
| +---------------+ |
SAM-rule Requests|<====| | SAM multiple | |
(to all P-SAMs, the list of which| | | DHCP client | |
is administratively configured)| | +---------------+ |
+-------------------+
Provider SAM
+-------------------+
| +---------------+ |
SAM-rules Requests|====>| | DHCP server | |
(from SAM-capable DHCP servers)| | | (stateless) | |
| +---------------+ |
| |local SAM rules| |
| | configurator | |
| +---------------+ |
+-------------------+
FUNCTIONAL ENTITIES TO AUTOMATE SAM-RULES ADVERTISEMENT
Figure 4
The proposed format for the SAM DHCP option is the same for both IPv4
DHCP and DHCPv6. It is detailed in Figure 5. Codes of rule
parameters are chosen to be easy to recognize by maintenance
personnel. (In particular, the first hexadecimal digit is 4, 5,or 6,
distinguishes whether the exterior locator family of the rule is
IPv4, IPv4E, or IPv6). To ensure compactness of prefix
representations, the number of significant bits of their last octets
is included in parameter codes themselves.
Despres Expires September 2, 2010 [Page 13]
Internet-Draft Stateless Address Mapping (SAM) March 2010
1 octet each in DHCP
2 octets in DHCPv6
/\
/ \
<---><---><---------------- n octets ---------------->
+----+----+---...---+--- ... ---+---...---+--- ... ---+
| . | n | rule 1 | | rule i | |
+--|-+----+---...---+--- ... ---+---...---+--- ... ---+
| _________________/ \________________
option code / \
+-----...-----+-- ... --+-----...-----+-- ... --+
| parameter 1 | | Parameter j | |
+-----...-----+-- ... --+-----...-----+-- ... --+
order of parameters _____/ \_____
R, P, x[, E][,T] / \
+----+----+----+--...--+----+
| . | k | parameter value |
+--|-+----+----+--...--+----+
parameter code <--- k octets -->
PARAMETER-CODE VALUES (in Hexadecimal)
1F : x
2F : G
3F : T
4n : IPv4-family prefix (R or P) \
5n : IPv4E-family prefix (R or P) > where n = prefix length mod 8
6n : IPv6-family prefix (R or P) /
PROPOSED DHCP AND DHCPv6 OPTION FORMATS FOR SAM
Figure 5
For rules to be acquired by means of the DNS, in SRV records, a
textual representation has to be used. That which is used in figures
of use cases could serve this purpose. A more compact representation
may be preferable, but is beyond the scope of this version of the
draft.
Despres Expires September 2, 2010 [Page 14]
Internet-Draft Stateless Address Mapping (SAM) March 2010
3. Use-Case examples
3.1. IPv6 across IPv4-only Domains
3.1.1. Native IPv6 across NAT44 CPEs (6rdE)
We consider an ISP whose infrastructure is IPv4, and whose customers
use their own choice of CPEs. Some of these CPEs are likely to
remain IPv4 for quite some time, with NAT44s and port-forwarding
included but no IPv6 support. By provisioning a P-SAMs (possibly
physically duplicated for increased availability and/or performance),
this ISP can offer native IPv6 to all SAM-capable hosts behind these
NATs. We call this application "extended 6rd" or "6rdE".
An IPv6 prefix can be assigned to each host behind such a NAT44 by
concatenating an IPv6 prefix belonging to the ISP, the IPv4 address
of the host customer site and the port that is forwarded to it.
because typical ISPs would not be able to chose for this /16s, these
prefixes will typically be longer than the /64 limit of [RFC4291].
But we note that the /64 limit is technically not necessary for
prefixes only used on virtual links (they don't use the stateless
address autoconfiguration protocol [RFC2462] which does rely on
interface IDs and subnet prefixes to having each 64 bits). We
therefore choose to accept, for this application, host IPv6 prefixes
longer than /64. (How to officialize a relaxation of the /64
constraint of [RFC4291] for this type of IPv6 addresses is beyond the
scope of this draft.)
Figure 6 details the configuration of a 6rdE use case, with the two
applicable mapping rules . The first rule concerns IPv6 packets
exchanged between two customer sites and between a customer site and
the Internet. The second concerns IPv6 packets exchanged between two
hosts within a customer site.
The IPv6 prefix assigned by the ISP to 6rdE is supposed to be D =
2001:db8:9::/48. As nothing is needed in customer exterior locators
E between this D and customer-site IPv4 addresses, the first rule
will have its rule exterior prefix R1 = D. The provider interior
locator G is made of the IPv4 address the P-SAM, supposed to be
192.88.99.3 (an anycast address similar to that of 6to4), and the UDP
port assigned to 6rdE in the P-SAM, supposed to be port 9999. This
ISP is supposed to have a number of independent IPv4 prefixes so that
no common IPv4 prefix is supposed to exist, and the length of the
domain interior prefix P1 of the first rule is 0.
Despres Expires September 2, 2010 [Page 15]
Internet-Draft Stateless Address Mapping (SAM) March 2010
+---------------------------+------------------------+--------
| CUSTOMER SITE | ISP NETWORK | IPv4
| | |BACKBONE
| | multiple prefixes <=========
| | |
| | P-SAM
| | G=192.88.99.3:9999 ---->S<==== D
| | D=2001:db8:9:/48(v6)
| | | IPv6
| | |BACKBONE
| NAT44 |
| K2=192.168.0.0/16 <====N |
| 0.0.0.0/0 ====>N<---- Y=198.16.2.2 |
| 192.168.0.2 N port 4098 |
HOSTS | 192.168.0.3 N port 4099 |
| | and, at least for each SAM-capable host, |
V | 192.168.a.b N port 4096+256*a+b |
-------+ | |
C-SAM | |
I <====S<==== I=192.168.0.2 | |
E <====S | |
E=2001:db8:9:c610:202:1002/96(v6) | |
-------+ | |
C-SAM | |
I <====S<==== I=192.168.0.3 | |
E <====S | |
E=2001:db8:9:c610:202:1003/96(v6) | |
-------+ | |
+---------------------------+------------------------+--------
MAPPING RULES {R1, P1, x1, G} and {R2,P2, x2}
with R1=D, p=0/0(v4), x1=32+16=48, R2=D.Y, P2=K2, x2=32-p2 :
{R1=2001:db8:9::/48(v6); P1=0/0(v4); x1=48; G=192.88.99.3:9999}
{R2=2001:db8:9:c610:2:2::/80; P2=192.168.0.0/16(v4); x2=16}
IPv6 ACROSS NAT44s WITH 6rdE
Figure 6
The customer-index length x1 is that of an IPv4 address plus a port,
i.e. x1 = 48. With the first mapping rule thus defined {R1=2001:db8:
9::/48(v6); P1=0/0(v4); x1=48; G=192.88.99.3:9999}, IPv6 packets
between two hosts of different customer sites and between a host and
the Internet are encapsulated in UDP over IPv4. They are routed in
private IPv4 across customer sites and in public IPv4 across the ISP
network.
Despres Expires September 2, 2010 [Page 16]
Internet-Draft Stateless Address Mapping (SAM) March 2010
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2
+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+==+=+=+=+=+=++....
| IPv4 | |
+-+-+-+-+ +
| |
+ +-+-+-+-+-+-+-+-+ +
| | UDP | | IPv4
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| iSRC = 192.88.99.3 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| iDST = NAT external address Y = 198.16.2.2 |
+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+==+=+=+=+=+=++....
| 4098 | 9999 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ UDP
| |
+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+==+=+=+=+=+=++....
| IPv6 | |
+-+-+-+-+ +
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| |
+ +
| eSRC = any IPv6 address not 2001:db8:9::/48 |
+ +
| |
+ +
| | IPv6
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| |
+ +
| |
+ eDST = any IPv6 address 2001:db8:9:c610:202:1002::/96 +
| |
+ +
| |
+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+==+=+=+=+=+=++....
| |
+ IPv6 payload + higher
| | layer
EXAMPLE OF PACKET TRAVERSING THE CUSTOMER SITE
Figure 7
Despres Expires September 2, 2010 [Page 17]
Internet-Draft Stateless Address Mapping (SAM) March 2010
Note that hosts must use as source addresses of encapsulating packets
they send their interface addresses, which are in their site private
address spaces (not their site public addresses which are embedded in
in their exterior IPv6 prefixes). Similarly, the host receives and
must accept its IPv4 private address as valid destination in received
encapsulating headers. Figure 6 shows the format, with its
encapsulation headers, of an IPv6 packet that go from the NAT44 to a
host, coming from the Internet.
Now, we need a mapping rule for IPv6 packets exchanged between two
hosts in the same customer site. In the shown customer site, there
is a domain interior prefix K2 = 192.168.0.0/16, so that the customer
index length is x2 = 32 - k2 = 16. Since there is no need to
distinguish among several domain exterior prefixes the customer
interior prefix P2 is equal to the domain interior prefix K2, i.e.
P2 = 192.168.0.0/16. The customer exterior prefix, which determines
whether a locator belongs to the site or not, is D followed by the
customer site public address Y, supposed to be 198.16.2.2, i.e. R2 =
2001:db8:9:c610:2:2::/80. With this in the second rule, IPv6 packets
exchanged between two hosts of the site are encapsulated in IPv4
packets that are routed within the site, as desired.
3.1.2. Optimized Mapping for Multiple IPv4 Prefixes
Although 6rd has been successfully used as a tool for "rapid
deployments" of IPv6 across IPv4 ISP networks, which is its only
purpose, some people have expressed criticisms that the number of
bits used to embed IPv4 addresses in IPv6 prefixes could be better
optimized. The example which we now present makes such an
optimization possible.
Note that this, is not to suggest that SAM should be used in place of
6rd to rapidly deploy IPv6, but only to show that, if and when SAM is
eventually an IETF approved design, it will permit, at a price of
some more complexity, more optimized IPv6 prefix lengths than with
6rd.
In this example, shown in Figure 8, the IPv4 ISP network has 3 IPv4
domain interior prefixes (K1=198.16.0.0/15, K2=198.34.0.0/16,
K3=198.36.0.0/16), and one IPv6 prefix to be used for SAM (D=2001:
db8::/32). Three mapping rules will then be defined, to optimize
exterior prefix lengths, with an objective that all customer sites
have the same IPv6 prefix length.
Despres Expires September 2, 2010 [Page 18]
Internet-Draft Stateless Address Mapping (SAM) March 2010
+------------------------------+
| ISP NETWORK |
| | IPv4 BACKBONE
| K1=198.16.0.0/15 <=========
| K2=198.34.0.0/16 |
| K3=198.36.0.0/16 |
| P-SAM
HOSTS | G=198.16.0.1 ---->S<==== D=2001:db8::/32
| | | IPv6 BACKBONE
V | |
-------+ |
c-SAM |
I <====S<==== I=198.16.2.2/32(v4) |
E <====S |
E=2001:db8:c610:202 |
-------+ |
C-SAM |
I <====S<==== I=198.34.2.2/32(v4) |
E <====S |
E=2001:db8:c622:202 |
-------+ |
C-SAM |
I <====S<==== I=198.36.2.2/32(v4) |
E <====S |
E=2001:db8:c624:202 |
-------+ |
+------------------------------+
MAPPING RULES {Rn; Pn; xn; G}
with Rn=D.Cn, Pn=Kn, i=32, e=56, xn=i-kn,
cn=e-d-xn=20-xn, Cn=n000::/cn :
{R1=2001:db8:1::/39(v6); P1=198.16.0.0/15(v4) ; x1=17; G=198.16.0.1}
{R2=2001:db8:2::/40(v6); P2=198.16.0.0/15(v4) ; x2=16; G=198.16.0.1}
{R3=2001:db8:3::/40(v6); P3=198.16.0.0/15(v4) ; x3=16; G=198.16.0.1}
OPTIMIZED v6/v4 MAPPING FOR MULTIPLE IPv4 PREFIXES
Figure 8
Since there is only one domain exterior prefix D, there is no need
for domain-exterior-prefixes codes C in customer interior prefixes so
that, for n = 1 to 3, Pn = Kn.
On the other hand, since there are several domain interior prefixes
Kn, each customer exterior prefix Rn will include a domain-interior
prefix code Cn after the common D. These codes are chosen so that all
customer exterior prefixes E have the same length. We take e = 56,
Despres Expires September 2, 2010 [Page 19]
Internet-Draft Stateless Address Mapping (SAM) March 2010
i.e. long enough to identify all customer sites after the common /32
prefix D, and constrained to be a multiple of 4 bits for convenience.
Each customer-index length xn is then determined by the length of the
domain interior prefixes Kn which precedes customer indexes X in IPv4
addresses, i.e. xn = 32 - kn. Lengths cn are then 56 - d - xn = kn -
8, i.e. c1 = 7 and c2 = c3 = 8. We choose a value of the first 4
bits of each cn to be n. The 3 rules are then as shown on the
Figure.
3.2. IPv4 across IPv6-only Domains
As some ISPs have started deploying IPv6-only networks, typically for
high bandwidth applications, some of their customers may need
connectivity with the IPv4 Internet. (This need is the reverse from
that satisfied by 6rd where IPv6 connectivity is offered across IPv4-
only ISP networks).
The following sections describe how this can be achieved with SAM,
first if only one ISP IPv4 prefix is used for this, then if there are
several.
3.2.1. Single IPv4 Prefix
+----------------------------+
| ISP NETWORK | IPv6 BACKBONE
| <========= K=2001:db8/32(v6)
| |
| | IPv4 BACKBONE
| P-SAM
------------------+ G=2001:db8::1 ---->S<==== D =198.16.0.0/16
CUSTOMER SITE | |
C-SAM |
I <====S<==== I=2001:db8:4:4/48(v6) |
E=198.16.4.4 <====S |
------------------+ |
+----------------------------+
MAPPING RULE : {R; P; x; G}
with R=D, P=K, x=e...-p,
{R=198.16.0.0/16 ; P=2001:db8::/32; x=16; G=2001:db8:::1}
IPv4 ADDRESSES ACROSS AN IPv6-ONLY NETWORK
Figure 9
Figure 9 presents an example configuration where all global IPv4
Despres Expires September 2, 2010 [Page 20]
Internet-Draft Stateless Address Mapping (SAM) March 2010
addresses that have to be assigned to customer sites across the ISP
IPv6-only infrastructure have the common domain exterior prefix D =
198.16.0.0/16. The customer index length x is then set to 32 - d,
i.e. x = 16.
The ISP is supposed to assign to this application an IPv6 domain
interior prefix K=2001:db8/32, and to have as interior locator of the
provider SAM G = 2001:db8::1. Since there is only one domain
exterior prefix D, no domain-exterior-prefix C is needed, and R = D.
Since there is only one D, we also have P = K. With the resulting
mapping rule {R=198.16.0.0/16; P=2001:db8::/32; x=16;
G=2001:db8:::1}, customer sites that are assigned /48 prefixes are
also assigned public IPv4 addresses. IPv4 packets are encapsulated
in IPv6 packets to traverse the ISP network. Between two customer
sites, they take the same path as packets that are natively IPv6.
Between a customer site and the Internet, they go via the P-SAM.
3.2.2. Multiple IPv4 Prefixes
We now consider a scenario, detailed in Figure 10, in which an ISP,
whose IPv6 infrastructure is IPv6 only, has a fragmented IPv4 address
space. It has three IPv4 prefixes giving a total of 2^19 addresses:
D1=198.16.0.0/14, D2=198.36.0.0/15, and D3=198.34.0.0/15. Its IPv6
address space is contiguous, with K = 2001:db0/28 as domain interior
prefix. It could support 2^20 customer sites with a /48 for each,
but, willing to offer a uniform service, with an IPv4 address for
each, it will use half the available space. Three mapping rules will
be set up.
The customer index Xn of a customer site whose domain exterior prefix
is Dn must have length xn = 32 - dn, i.e. x1 = 18 and x2 = x3 = 17.
Since there are 3 domain exterior prefixes Dn, we have to choose 3
domain-exterior-prefix codes Cn. Supposing we want to assign /48s as
customer interior prefixes P, the length of each Cn must be such that
that k + cn + xn = 48, i.e. cn = 20 - xn, i.e. c1 = 2, c2 = c3 = 3.
The Cn having to be non-overlapping prefixes, with otherwise
arbitrary values, we chose binary values C1 = 00, C2 = 010, and C3 =
011.
Assuming that the IPv6 address of the provider SAM is G=2001:d00::1,
the resulting mapping rules are {R1=198.16.0.0/14; P1=2001:db!::/30;
x1=18; G=2001:d00::1}, {R2=198.36.0.0/15; P2=2001:d20::/31; x2=17;
G=2001:d00::1}, and {R3=198.16.0.0/15; P3=2001:d30::/31; x3=17.
G=2001:d00::1}. With them, customer sites of the ISP have each one
one of the 2^19 IPv4 addresses and a /48 prefix starting with the
common 2001:db0::/29 prefix.
Despres Expires September 2, 2010 [Page 21]
Internet-Draft Stateless Address Mapping (SAM) March 2010
+------------------------------+
| ISP NETWORK | IPv6 BACKBONE
| K <=========
| K=2001:db0/28(v6)
| |
| | IPv4 BACKBONE
CUSTOMER SITES | P-SAM
| | G=2001:db0::1 ----->S<=====
V | | D1=198.16.0.0/14
------------------+ | D2=198.34.0.0/15
C-SAM | D3=198.36.0.0/15
I <====S<==== I=2001:db0:404::/48(v6) |
E=198.16.4.4 <====S |
------------------+ |
C-SAM |
<====S<==== I=2001:db4:505::/48(v6) |
E=198.34.5.5 <====S |
------------------+ |
C-SAM |
<====S<==== I=2001:db6:707::/48(v6) |
E=198.36.7.7 <====S |
------------------+ |
+------------------------------+
MAPPING RULES : {Rn, P, xn, G}
with Rn=Dn, P=K.Cn, xn=32-dn, cn=48-k-xn :
{R1=198.16.0.0/14; P1=2001:db0::/30; x1=18; G=2001:db0::1}
{R2=198.36.0.0/15; P2=2001:db4::/31; x2=17; G=2001:db0::1}
{R3=198.16.0.0/15; P3=2001:db6::/31; x3=17; G=2001:db0::1}
IPv4 ACROSS AN IPv6-ONLY NETWORK - MULTIPLE IPv4 PREFIXES
Figure 10
3.3. Public IPv6 across Private-IPv6 Domains
3.3.1. Multihoming with Provider-Aggregetable Prefixes
A well known problem of IPv4 is that more and more provider
independent prefixes (PIs) are needed to support customer-site
multihoming. This has led to a dramatic growth of Internet-core
routing tables [RFC3582]. The well known reason for this is that, in
multihomed customer sites that have multiple provider-aggregetable
prefixes (PAs), each packet having an intra-site address starting
with one of the PAs has to be routed toward the Internet via the ISP
that provided this PA (ingress-filtering compatibility, discussed in
particular in Section 4.7 of [RFC4864]).
Despres Expires September 2, 2010 [Page 22]
Internet-Draft Stateless Address Mapping (SAM) March 2010
While it has been expected that the need for PI prefixes might
disappear with IPv6, a complete solution remains to be specified for
this to eventually happen.
+------------------------------+
| CUSTOMER SITE | ISP NETWORK
| |
| K=fc00::/56 <====:
| |
| P-SAM
| G1=fc00::7:0:0:0:1 ---->S<==== D1
| D1=2001:db8:1::/48(v6)
| |
| P-SAM
------------+ G2=fc00::6:0:0:0:1 ---->S<==== D2
HOST | D2=2001:db8:2:2200::/56(v6)
| |
I <====S<==== I=fc00::8:0:3:3:3(v6) |
E1,E2 <====S |
E1=22001:db8::1:8:0:3:3:3/128(v6) |
E2=2001:db8:2:2208:3:3:3:3/128(v6) |
| |
------------+ |
+------------------------------+
MAPPING RULES {Rn=Dn.Cn; P=K; x; Gn}
with i=e=128, Cn=::/e-x-dn, x=128-k :
{R1=2001:db8:1::/56(v6); P=fc00::/56; x=72; G=fc00::7:0:0:0:1}
{R2=2001:db8:2:2200::/56(v6); P=fc00::/56; x=72; G=fc00::6:0:0:0:1}
MULTIHOMED SITE WITH IPv6 PROVIDER-AGGREGETABLE PREFIXES
Figure 11
We now show on an example, detailed in Figure 11, that hosts of IPv6
multihomed sites that are SAM capable can take advantage of
multihoming with multiple PAs.
The customer site is assumed to have two PA prefixes, which we take
as domain exterior prefixes D1=2001:db8:1::/48 and D2=2001:db8:2:
2200::/56. They have different lengths for generality of the case.
We assume that the site has several IPv6 interior links, with routing
between based on a private address space and an 8-bit index to
identify each link. The domain interior prefix which precedes these
8 bits is supposed to be K = fc00::/56, in compliance with
[RFC4193]). Provider SAMs that face the two ISPs are supposed to
Despres Expires September 2, 2010 [Page 23]
Internet-Draft Stateless Address Mapping (SAM) March 2010
have as provider interior addresses G1=fc00::7:0:0:0:1 and G2=fc00::
6:0:0:0:1.
Since we want host IPv6 addresses to be assigned as usual, i.e.
possibly with the Stateless Address Autoconfiguration of [RFC2462],
all bits that follow the common domain interior prefix K must be
taken as customer indexes, i.e. x = 128 - 56 = 72.
With the resulting mapping rules {R1=2001:db8:1::/56(v6);
P=fc00::/56; x=72; G=fc00::7:0:0:0:1} and {R2=2001:db8:2:2200::/
56(v6); P=fc00::/56; x=72; G=fc00::6:0:0:0:1}, and with the customer-
SAM locator mapping function of Section 2.3, packets of the shown
host that leave the site have as interior destination iDST G1 or G2
depending on whether their exterior source eSRC matches R1 or R2,
i.e. D1 or D2. Thus, compatibility with ingress filtering exercised
by the ISPs is ensured, as desired.
Packets exchanged between two hosts of the site, with their public
addresses as source and destination eSRC and eDST, are encapsulated
in IPv6 packets having private source and destination addresses iSRC
and iDST.
3.3.2. Renumbering with Unchanged Internal Routing
This example is the same as that of Section 3.3.1 except that, as an
additional feature, the renumbering which is needed when an ISPs
modifies the prefix assigned to the site is automated: the periodical
refresh of SAM parameters, imposed by limited lifetimes assigned to
mapping rules, does the job.
For this, SAM rules, similar to those of Section 3.3.1 now contain
non-default lifetime parameters T, as shown in Figure 12. These are
taken shorter than those of received exterior prefixes, e.g. set to
half their values. Assuming that ISP-2 plans a replacement of prefix
D2 by a new one, say D3, it advertises the new prefix D3 with a
lifetime shorter than that of D2, the still valid but deprecated
prefix. Mapping-rule lifetimes T2 and T3, being derived from
prefixes advertised by ISP-2 for D2 and D3, rule R2 is automatically
deprecated and will be eliminated after some time.
As long as bot R2 and R3 are still valid, each customer SAM has two
ISP-2 exterior prefixes, with different lifetimes. The prefix that
has the longer lifetime is the preferred one, i.e. hosts may use it
in source addresses of transmitted packets, and may accept it in
destination addresses of received packets. The other is deprecated,
i.e. hosts may accept it in destination addresses of received
packets, but may not use it in source addresses of transmitted
packets.
Despres Expires September 2, 2010 [Page 24]
Internet-Draft Stateless Address Mapping (SAM) March 2010
+------------------------------+
| CUSTOMER SITE | ISP NETWORK
| |
| K=fc00::/56 <====:
| |
| P-SAM
| G1=fc00::7:0:0:0:1 ---->S<==== D1
| D1=2001:db8:1::/48(v6),lifetime=80,000
| |
| P-SAM
| G2=fc00::6:0:0:0:1 ---->S<==== D2
------------+ D2=2001:db8:2:2200::/56(v6), lifetime=64,000
HOST | D3=2001:db8:3:::/48(v6), lifetime=86,400
| |
I <====S<==== I=fc00::8:0:3:3:3(v6) |
E1,E2 <====S |
E1=22001:db8::1:8:0:3:3:3/128(v6) <- unique address
E2=2001:db8:2:2208:3:3:3:3/128(v6) <- valid address
E3=2001:db8::3:8:3:3:3:3/128(v6) <- preferred address
| |
------------+ |
+------------------------------+
MAPPING RULES {Rn=Dn.Cn; P=K; x; Gn; Tn}
with i=e=128, Cn=::/e-x-dn, x=128-k, Tn=lifetime(Dn)/2 :
{R1=2001:db8:1::/48(v6); P=fc00::/56; x=72;
G1=fc00::7:0:0:0:1; T1=40,000}
{R2=2001:db8:2:2200::/56(v6); P=fc00::/56; x=72;
G2=fc00::6:0:0:0:1; T2=32,000}
{R3=2001:db8:3:::/48(v6); P=fc00::/56; x=72;
G2=fc00::6:0:0:0:1; T2=43,200}
RENUMBERING IN A MULTIHOMED IPv6 SITE USING PRIVATE ADDRESSING
Figure 12
After the deprecated rule has been discarded, the configuration
returns back back to normal, i.e. with only one customer exterior
address per ISP in each host.
3.3.3. Merging Two Private-Addressing Sites using ULAs
We consider, as shown in Figure 13, two customer sites where interior
routing is based on unique local IPv6 unicast addresses (ULAs) of
[RFC4193].
Despres Expires September 2, 2010 [Page 25]
Internet-Draft Stateless Address Mapping (SAM) March 2010
I=fd12:3456:7890:9:4:4:4:/128(v6)
| K1=fd12:3456:7890::/56(v6)
Host-A +---|-----------------------|--+
-------+ | CUSTOMER SITE-1 | |
C-SAM | K1 <====:
I <====S<==== I |
E <====S P-SAM
----|--+ G1=fd12:3456:7890::1 ---->S<==== D1
| | K2 K1 D1=2001:db8:1::/48(v6)
| | || /\ |
| +-----------\/-----||----------+
|
E=2001:db8:1:9:4:4:4:4/128(v6)
I=fd09:8765:4321:88:3:3:3:3/128(v6)
|
| || /\ K2=fd09:8765:4321::/56(v6)
Host-B +---|--------\/-----||------|--+
-------+ | K2 K1 | |
C-SAM | K2 <====:
I <====S<==== I |
E <====S P-SAM
| | G2=fd09:8765:4321::1 ---->S<==== D2
----|--+ D2=2001:db8:2:220:/56(v6)
| | CUSTOMER SITE-2 |
| +------------------------------+
|
E=2001:db8:2:2288:3:3:3:3/128(v6)
MAPPING RULES: {Rn=Dn.Cn; Pn=Kn; x; Gn}
with e=i=128, Cn=::/e-x-dn, Pn=Kn, x= 72:
{R1=2001:db8:1::/56(v6); P1=fd12:3456:7890:/56(v6); x=72;
G1=fd12:3456:7890::1}
{R2=2001:db8:2:2200:/56; P2=fd09:8765:4321::/56(v6); x=72;
G2=fd09:8765:4321::1}
MERGER OF TWO IPv6 SITES USING UNIQUE LOCAL ADDRESSES
Figure 13
For end-to-end transparency to be preserved in IPv6 despite the use
of intra-site private addressing, hosts and customer-site edge
routers are supposed to be SAM capable.
Mapping rules are established with only one domain exterior prefix D
Despres Expires September 2, 2010 [Page 26]
Internet-Draft Stateless Address Mapping (SAM) March 2010
per site, but otherwise with the same principles as in the
multihoming example of Section 3.3.1, in particular with also 8 bits
to identify IPv6 links within each site. These rules are supposed to
be in site-1 {R1=2001:db8:1::/56(v6); P1=fd12:3456:7890:/56(v6);
x1=68; G1=fd12:3456:7890::1}, and in site-2{R2=2001:db8:2:2200:/56;
P2=fd09:8765:4321::/56(v6); x2=72; G2=fd09:8765:4321::1}.
Now, we want to interconnect the two sites in such a way that traffic
between hosts of the two sites goes via direct inter-site links.
Since this is precisely the purpose ULAs, we want to do this without
having to renumber private addresses in any of the two sites.
For this, it is sufficient that routes be opened between the two
sites for their respective ULA prefixes, and that DHCP servers of
each sites have site their lists of provider-SAM locators completed
with that of the other site.
After some delay, which depends on timers of DHCP refreshes, all
hosts know the two rules. Then, mapping rules of Section 2.3 are
such that packets going from a site to the global Internet continue
to reach it via the same provider SAM as before, but that inter-site
packets go via the shortcuts, as desired.
For example, if a packet from host A is addressed to host B, it has
eDST = 2001:db8:2:2288:3:3:3:3 which matches, the customer exterior
prefix of the second rule R2 = 2001:db8:2:2200:/60. The derived
interior destination locator is then iDST = P2.(eDST - R2).0*/128 =
fd09:8765:4321:88:3:3:3:3, i.e. the interior address of host B.
If a more complete merger is desired, with the merged site becoming
multihomed so that all hosts become able to transmit via either
provider SAM, this is also possible. Two rules have for this to be
added: {{R1=2001:db8:1::/56(v6); P2=fd09:8765:4321::/56(v6); x=72;
G1=fd12:3456:7890::1} and {R2=2001:db8:2:2200:/56; P1=fd12:3456:
7890:/56(v6); x=72; G2=fd09:8765:4321::1}.
3.4. A Planned Experiment at Telecom Bretagne
A particular experiment of SAM is planned at Telecom Bretagne, an
academic institution in France. It involves a two-layer hierarchy of
SAM domains. The layer-1 domain is a student-residence network;
layer-2 domains are LANs within rooms of some of the students that
participate in the experiment.
Each student room, which has today a DHCP advertised private IPv4
address and an auto-configured IPv6 public address, will obtain in
addition, with SAM, a /60 IPv6 prefix and 240 ports on a shared
public IPv4 address.
Despres Expires September 2, 2010 [Page 27]
Internet-Draft Stateless Address Mapping (SAM) March 2010
+------------------------------+
| STUDENT-RESIDENCE NETWORK |TELECOM BRETAGNE
| | NETWORK
| |IPV6
| <=========
| 2001:660:7301:4666::/64
| |
| NAT44 IPv4
| K=192.168.0.0/24<====N<----
| 0.0.0.0/0 ====>N
| |
-------------+ P-SAM
| G=192.168.0.1/32 ---->S<=====
STUDENT ROOM | D1=2001:660:7301:3000/52(v6)
| D2=192.108.119.26/32(v4)
<---------- |
2001:660:7301:4666:2:3:4:5 |
| |
C-SAM |
I <----S<---- I=192.168.0.4(v4) <- IPv4 private address
<====S |
E1=2001:660:7301:3040/60(v6) <- IPv6 public prefix
E2=192.108.119.26.4/40(v4) <- 240 ports on a public IPv4 address
| (15/16*2^(48-40))
-------------+ |
+------------------------------+
STUDENT-RESIDENCE MAPPING RULES : {Rn; P; x; G}
with Rn=Dn, P=K, x=32-p :
{R1=2001:660:7301:3000/52(v6); P=192.168.0.0/24; x=8}
{R2=192.108.119.26/32(v4); P=192.168.0.0/24; x=8}
STUDENT-RESIDENCE NETWORK AT TELECOM-BRETAGNE
Figure 14
In rooms equipped with a SAM-capable CPE, each SAM-capable host will
have, in addition to its DHCP advertised private IPv4 address, a /64
IPv6 prefix and 15 ports on the shared IPv4 address.
The configuration planned for this is shown in Figure 14 and
Figure 15.
Despres Expires September 2, 2010 [Page 28]
Internet-Draft Stateless Address Mapping (SAM) March 2010
+---------------+========================+
| STUDENT-ROOM | IN STUDENT-ROOM CPE | STUDENT-RESIDENCE
| LAN | | NETWORK
| | |
| | <----------
| | 2001:660:7301:4666:2:3:4:5
|K= 198.0.0.0/28| |
| | | |
| | NAT44 C-SAM
| <====N<---- 192.168.0.4 <----S<---- I
| ====>N S I=192.168.0.4(v4)
| 0.0.0.0/0| S
| | S
| P-SAM S
| G ---->|<==== D1,D2 E2,E2 <====S
| G=198.0.0.1| D1=E1=2001:660:7301:3040/60(v6)
| | D2=E2=192.108.119.26.4/40(v4)
| | |
-------+ +========================+
STUDENT| |
HOST | |
| |
C-SAM |
I <----S<---- I=192.168.0.2(v4) <- IPv4 private address
<====S |
E1=2001:660:7301:3042:/64(v6) <- IPv6 public prefix
E2=192.108.119.26.4.32/44(v4) <- 15 ports on a public IPv4 address
| | (15/16*2^(48-44))
-------+ |
+---------------+
STUDENT-ROOM MAPPING RULES : {Rn; P; x; G}
with Rn=Dn, P=K, x=32-p :
{R1=2001:660:7301:3040/60(v6); P=192.168.0.0/28; x=4}
{R2=192.108.119.26/32(v4); P=192.168.0.0/28; x=4}
STUDENT-ROOM EXAMPLE AT TELECOM-BRETAGNE
Figure 15
In a border node of the residence, a provider SAM will be set up, in
a PC under Linux, to derive from the 8 lower bits of private IPv4
addresses two public prefixes: an IPv6 /60 and an extended IPv4 /40.
Despres Expires September 2, 2010 [Page 29]
Internet-Draft Stateless Address Mapping (SAM) March 2010
In each room participating to the intra-room experiment, a router
under Linux will be supplied. In addition to its classical NAT44
which assigns private IPv4 addresses to hosts in the room, it will
include a customer SAM and a provider SAM. The customer SAM will
derive the IPv6 /60 and the IPv4E /40 of the room from its private
address on the residence LAN. The provider SAM will further
distribute these prefixes so that each host in the room can derive
from it's DHCP assigned IPv4 address an IPv6 /64 and an IPv4E /44.
Thus, each host will have not only it's own IPv6 address, but will
also be able to to manage a small IPv6 LAN behind it. It will also
be reachable from the Internet in IPv4 at it's shared public address
on one of it's 15 assigned ports.
4. Security considerations
To avoid to introduce new spoofing opportunities, SAMs should
ascertain that source and destination iSRC and iDST of each received
interior packet are, with the mapping rules of the domain, valid
derivate from the exterior source and destination eSRC and eDST
contained in the encapsulated packet.
Against denial of service attacks, the fact that mapping functions
and encapsulations are stateless is clearly favorable. An exception
exists however with IPv4E exterior locator spaces because of the the
datagram reassembly function of Section 2.6 which has a stateful
internal operation. (This vulnerability is the same as found in NATs
that don't forward fragmented datagrams.)
A systematic study has still to be done on which routing-loop-
attacks, similar to those documented for ISATAP and 6to4 in
[RoutingLoops], might be possible. As a minimal precaution, provider
SAMs should discard any interior packets received whose source iSRC
is the provider interior locator G of any provider SAM, and should
not forward any interior packet whose destination iDST is such a G.
Any interior address of a 6to4 relay that would be set up in a SAM
domain, or of a default ISATAP router giving access to the IPv6
Internet, should be considered also as a forbidden G.
5. IANA Considerations
DHCP and DHCPv6 option codes have to be specified by IANA.
It could also be convenient that a number be assigned by IANA for the
port used in provider SAMs to encapsulate over UDP over IP.
Despres Expires September 2, 2010 [Page 30]
Internet-Draft Stateless Address Mapping (SAM) March 2010
6. Acknowledgments
Although this specification is mostly the result of a personal work
of the author, in continuity with that which led to the 6rd of
[RFC5569], recognition is due to a number of colleagues who provided
useful reactions as the proposal evolved. Mark Townsley provided
precious encouragements since the early phases of the project. He
also acted as a convincing advocate for a Cisco Research Grant to be
allocated, a SAM experiment with port-extended IPv4 addressing, at
Telecom Bretagne. Laurent Toutain, who leads the team in charge of
this experiment, deserves special gratitude for the confidence he has
shown for the concept, and for the time spent for experiment to be
organized. Dave Thaler has to be thanked for the detailed review he
made on a previous draft. Satoru Matsushima was first to point out
that, because some providers already operate IPv6-only networks,
public IPv4 across such networks could become a not-so-long-term
application of SAM.
7. References
7.1. Normative References
[RFC1700] Reynolds, J. and J. Postel, "Assigned Numbers", RFC 1700,
October 1994.
[RFC2131] Droms, R., "Dynamic Host Configuration Protocol",
RFC 2131, March 1997.
[RFC2460] Deering, S. and R. Hinden, "Internet Protocol, Version 6
(IPv6) Specification", RFC 2460, December 1998.
[RFC3315] Droms, R., Bound, J., Volz, B., Lemon, T., Perkins, C.,
and M. Carney, "Dynamic Host Configuration Protocol for
IPv6 (DHCPv6)", RFC 3315, July 2003.
[RFC3736] Droms, R., "Stateless Dynamic Host Configuration Protocol
(DHCP) Service for IPv6", RFC 3736, April 2004.
[RFC4213] Nordmark, E. and R. Gilligan, "Basic Transition Mechanisms
for IPv6 Hosts and Routers", RFC 4213, October 2005.
[RFC4291] Hinden, R. and S. Deering, "IP Version 6 Addressing
Architecture", RFC 4291, February 2006.
Despres Expires September 2, 2010 [Page 31]
Internet-Draft Stateless Address Mapping (SAM) March 2010
7.2. Informative References
[DNS-SD] Cheshire, S. and M. Krochmal, "DNS-Based Service Discovery
- draft-cheshire-dnsext-dns-sd-05", September 2008.
[NAT-PMP] Cheshire, S. and M. Krochmal, "NAT Port Mapping Protocol
(NAT-PMP) - draft-cheshire-nat-pmp-03", April 2008.
[NatClassification]
Jennings, C., "NAT Classification Test Results -
draft-jennings-behave-test-results-04", July 2007.
[RFC1918] Rekhter, Y., Moskowitz, R., Karrenberg, D., Groot, G., and
E. Lear, "Address Allocation for Private Internets",
BCP 5, RFC 1918, February 1996.
[RFC2461] Narten, T., Nordmark, E., and W. Simpson, "Neighbor
Discovery for IP Version 6 (IPv6)", RFC 2461,
December 1998.
[RFC2462] Thomson, S. and T. Narten, "IPv6 Stateless Address
Autoconfiguration", RFC 2462, December 1998.
[RFC3056] Carpenter, B. and K. Moore, "Connection of IPv6 Domains
via IPv4 Clouds", RFC 3056, February 2001.
[RFC3068] Huitema, C., "An Anycast Prefix for 6to4 Relay Routers",
RFC 3068, June 2001.
[RFC3484] Draves, R., "Default Address Selection for Internet
Protocol version 6 (IPv6)", RFC 3484, February 2003.
[RFC3582] Abley, J., Black, B., and V. Gill, "Goals for IPv6 Site-
Multihoming Architectures", RFC 3582, August 2003.
[RFC3704] Baker, F. and P. Savola, "Ingress Filtering for Multihomed
Networks", BCP 84, RFC 3704, March 2004.
[RFC4193] Hinden, R. and B. Haberman, "Unique Local IPv6 Unicast
Addresses", RFC 4193, October 2005.
[RFC4864] Van de Velde, G., Hain, T., Droms, R., Carpenter, B., and
E. Klein, "Local Network Protection for IPv6", RFC 4864,
May 2007.
[RFC4925] Li, X., Dawkins, S., Ward, D., and A. Durand, "Softwire
Problem Statement", RFC 4925, July 2007.
Despres Expires September 2, 2010 [Page 32]
Internet-Draft Stateless Address Mapping (SAM) March 2010
[RFC5214] Templin, F., Gleeson, T., and D. Thaler, "Intra-Site
Automatic Tunnel Addressing Protocol (ISATAP)", RFC 5214,
March 2008.
[RFC5565] Wu, J., Cui, Y., Metz, C., and E. Rosen, "Softwire Mesh
Framework", RFC 5565, June 2009.
[RFC5569] Despres, R., "IPv6 Rapid Deployment on IPv4
infrastructures (6rd)", January 2010.
[RoutingLoops]
Nakibly, G. and F. Templin, "Routing Loops using ISATAP
and 6to4: Problem Statement and Proposed Solutions - -
draft-nakibly-v6ops-tunnel-loops-01", February 2010.
[Standard-track 6rd]
Townsley, M. and O. Troan, "IPv6 via IPv4 Service Provider
Networks - draft-ietf-softwire-ipv6-6rd-04",
February 2010.
Author's Address
Remi Despres
RD-IPtech
3 rue du President Wilson
Levallois,
France
Email: remi.despres@free.fr
Despres Expires September 2, 2010 [Page 33]
| PAFTECH AB 2003-2026 | 2026-04-24 04:36:42 |