rfc7600v4.txt | rfc7600.txt | |||
---|---|---|---|---|
skipping to change at page 5, line 28 | skipping to change at page 5, line 28 | |||
by a PSID. | by a PSID. | |||
Mapping rule: A set of parameters that are used by BRs and CEs to | Mapping rule: A set of parameters that are used by BRs and CEs to | |||
derive 4rd IPv6 addresses from 4rd IPv4 addresses. Mapping | derive 4rd IPv6 addresses from 4rd IPv4 addresses. Mapping | |||
rules are also used by each CE to derive a 4rd IPv4 prefix from | rules are also used by each CE to derive a 4rd IPv4 prefix from | |||
an IPv6 prefix that has been delegated to it. | an IPv6 prefix that has been delegated to it. | |||
EA bits (Embedded Address bits): Bits that are the same in a 4rd | EA bits (Embedded Address bits): Bits that are the same in a 4rd | |||
IPv4 address and in the 4rd IPv6 address derived from it. | IPv4 address and in the 4rd IPv6 address derived from it. | |||
BR mapping rule: The mapping rule that is applicable to off-domain | BR Mapping rule: The Mapping rule that is applicable to off-domain | |||
IPv4 addresses (addresses reachable via BRs). It can also apply | IPv4 addresses (addresses reachable via BRs). It can also apply | |||
to some or all CE-assigned IPv4 addresses. | to some or all CE-assigned IPv4 addresses. | |||
CE mapping rule: A mapping rule that is applicable only to | CE Mapping rule: A Mapping rule that is applicable only to | |||
CE-assigned IPv4 addresses (shared or not). | CE-assigned IPv4 addresses (shared or not). | |||
NAT64+ mapping rule: The mapping rule that is applicable to IPv4 | NAT64+ Mapping rule: The Mapping rule that is applicable to IPv4 | |||
addresses reachable via a NAT64+. | addresses reachable via a NAT64+. | |||
CNP (Checksum Neutrality Preserver): A field of 4rd IPv6 addresses | CNP (Checksum Neutrality Preserver): A field of 4rd IPv6 addresses | |||
that ensures that TCP-like checksums do not change when IPv4 | that ensures that TCP-like checksums do not change when IPv4 | |||
addresses are replaced with 4rd IPv6 addresses. | addresses are replaced with 4rd IPv6 addresses. | |||
4rd Tag: A 16-bit tag whose value allows 4rd CEs, BRs, and NAT64+s | 4rd Tag: A 16-bit tag whose value allows 4rd CEs, BRs, and NAT64+s | |||
to distinguish 4rd IPv6 addresses from other IPv6 addresses. | to distinguish 4rd IPv6 addresses from other IPv6 addresses. | |||
3. The 4rd Model | 3. The 4rd Model | |||
skipping to change at page 9, line 29 | skipping to change at page 9, line 29 | |||
4. Well-Known Ports (WKPs) authorized (OPTIONAL) | 4. Well-Known Ports (WKPs) authorized (OPTIONAL) | |||
B. Domain Path MTU (PMTU) | B. Domain Path MTU (PMTU) | |||
C. Hub-and-spoke topology (Yes or No) | C. Hub-and-spoke topology (Yes or No) | |||
D. Tunnel Traffic Class (OPTIONAL) | D. Tunnel Traffic Class (OPTIONAL) | |||
"Rule IPv4 prefix" is used to find, by a longest match, which Mapping | "Rule IPv4 prefix" is used to find, by a longest match, which Mapping | |||
rule applies to a 4rd IPv4 address (Section 4.5). A Mapping rule | rule applies to a 4rd IPv4 address (Section 4.5). A Mapping rule | |||
whose Rule IPv4 prefix is longer than /0 is a CE mapping rule. BR | whose Rule IPv4 prefix is longer than /0 is a CE Mapping rule. BR | |||
and NAT64+ mapping rules, which must apply to all off-domain IPv4 | and NAT64+ Mapping rules, which must apply to all off-domain IPv4 | |||
addresses, have /0 as their Rule IPv4 prefixes. | addresses, have /0 as their Rule IPv4 prefixes. | |||
"EA-bits length" is the number of bits that are common to 4rd IPv4 | "EA-bits length" is the number of bits that are common to 4rd IPv4 | |||
addresses and 4rd IPv6 addresses derived from them. In a CE mapping | addresses and 4rd IPv6 addresses derived from them. In a CE Mapping | |||
rule, it is also the number of bits that are common to a CE-delegated | rule, it is also the number of bits that are common to a CE-delegated | |||
IPv6 prefix and the 4rd IPv4 prefix derived from it. BR and NAT64+ | IPv6 prefix and the 4rd IPv4 prefix derived from it. BR and NAT64+ | |||
mapping rules have EA-bits lengths equal to 32. | Mapping rules have EA-bits lengths equal to 32. | |||
"Rule IPv6 prefix" is the prefix that is used as a substitute for the | "Rule IPv6 prefix" is the prefix that is used as a substitute for the | |||
Rule IPv4 prefix when a 4rd IPv6 address is derived from a 4rd IPv4 | Rule IPv4 prefix when a 4rd IPv6 address is derived from a 4rd IPv4 | |||
address (Section 4.5). In a BR mapping rule or a NAT64+ mapping | address (Section 4.5). In a BR Mapping rule or a NAT64+ Mapping | |||
rule, it MUST be a /80 prefix whose bits 64-79 are the 4rd Tag. | rule, it MUST be a /80 prefix whose bits 64-79 are the 4rd Tag. | |||
"WKPs authorized" may be set for mapping rules that assign shared | "WKPs authorized" may be set for Mapping rules that assign shared | |||
IPv4 addresses to CEs. (These rules are those whose length of the | IPv4 addresses to CEs. (These rules are those whose length of the | |||
Rule IPv4 prefix plus the EA-bits length exceeds 32.) If set, | Rule IPv4 prefix plus the EA-bits length exceeds 32.) If set, | |||
well-known ports may be assigned to some CEs having particular IPv6 | well-known ports may be assigned to some CEs having particular IPv6 | |||
prefixes. If not set, fairness is privileged: all IPv6 prefixes | prefixes. If not set, fairness is privileged: all IPv6 prefixes | |||
concerned with the Mapping rule have port sets having identical | concerned with the Mapping rule have port sets having identical | |||
values (no port set includes any of the well-known ports). | values (no port set includes any of the well-known ports). | |||
"Domain PMTU" is the IPv6 Path MTU that the ISP can guarantee for all | "Domain PMTU" is the IPv6 Path MTU that the ISP can guarantee for all | |||
of its IPv6 paths between CEs and between BRs and CEs. It MUST be at | of its IPv6 paths between CEs and between BRs and CEs. It MUST be at | |||
least 1280 octets [RFC2460]. | least 1280 octets [RFC2460]. | |||
skipping to change at page 11, line 7 | skipping to change at page 11, line 7 | |||
* The IPv4 packet is already fragmented, or may be fragmented | * The IPv4 packet is already fragmented, or may be fragmented | |||
later on, i.e., if MF = 1 OR offset > 0 OR (total length > | later on, i.e., if MF = 1 OR offset > 0 OR (total length > | |||
68 AND DF = 0). | 68 AND DF = 0). | |||
In order to optimize cases where fragmentation headers are | In order to optimize cases where fragmentation headers are | |||
unnecessary, the NAT44 of a CE that has one SHOULD send packets | unnecessary, the NAT44 of a CE that has one SHOULD send packets | |||
with TTL = 254. | with TTL = 254. | |||
R-5: In Domains whose chosen topology is hub-and-spoke, BRs that | R-5: In Domains whose chosen topology is hub-and-spoke, BRs that | |||
receive 4rd IPv6 packets whose embedded destination IPv4 | receive 4rd IPv6 packets whose embedded destination IPv4 | |||
addresses match a CE mapping rule MUST do the equivalent of | addresses match a CE Mapping rule MUST do the equivalent of | |||
reversibly translating their headers to IPv4 and then | reversibly translating their headers to IPv4 and then | |||
reversibly translate them back to IPv6 as though packets would | reversibly translate them back to IPv6 as though packets would | |||
be entering the Domain. | be entering the Domain. | |||
(A) Without IPv6 fragment header | (A) Without IPv6 fragment header | |||
IPv4 packet Tunnel packet | IPv4 packet Tunnel packet | |||
+--------------------+ : : +--------------------+ | +--------------------+ : : +--------------------+ | |||
20| IPv4 Header | : <==> : | IPv6 Header | 40 | 20| IPv4 Header | : <==> : | IPv6 Header | 40 | |||
+--------------------+ : : +--------------------+ | +--------------------+ : : +--------------------+ | |||
| IP Payload | <==> | IP Payload | | | IP Payload | <==> | IP Payload | | |||
skipping to change at page 16, line 46 | skipping to change at page 16, line 46 | |||
(by default) (If WKPs authorized) | (by default) (If WKPs authorized) | |||
: : : : | : : : : | |||
+---+----+---------+ +----+-------------+ | +---+----+---------+ +----+-------------+ | |||
Ports in |> 0|PSID|any value| OR |PSID| any value | | Ports in |> 0|PSID|any value| OR |PSID| any value | | |||
the CE port set +---+----+---------+ +----+-------------+ | the CE port set +---+----+---------+ +----+-------------+ | |||
: 4 : 12 : : 16 : | : 4 : 12 : : 16 : | |||
Figure 4: From CE IPv6 Prefix to 4rd IPv4 Address and Port Set | Figure 4: From CE IPv6 Prefix to 4rd IPv4 Address and Port Set | |||
R-7: A CE whose delegated IPv6 prefix matches the Rule IPv6 prefix | R-7: A CE whose delegated IPv6 prefix matches the Rule IPv6 prefix | |||
of one or several Mapping rules MUST select the CE mapping rule | of one or several Mapping rules MUST select the CE Mapping rule | |||
for which the match is the longest. It then derives its 4rd | for which the match is the longest. It then derives its 4rd | |||
IPv4 prefix as shown in Figure 4: (1) The CE replaces the Rule | IPv4 prefix as shown in Figure 4: (1) The CE replaces the Rule | |||
IPv6 prefix with the Rule IPv4 prefix. The result is the CE | IPv6 prefix with the Rule IPv4 prefix. The result is the CE | |||
4rd IPv4 prefix. (2) If this CE 4rd IPv4 prefix has less than | 4rd IPv4 prefix. (2) If this CE 4rd IPv4 prefix has less than | |||
32 bits, the CE takes it as its assigned IPv4 prefix. If it | 32 bits, the CE takes it as its assigned IPv4 prefix. If it | |||
has exactly 32 bits, the CE takes it as its IPv4 address. If | has exactly 32 bits, the CE takes it as its IPv4 address. If | |||
it has more than 32 bits, the CE MUST take the first 32 bits as | it has more than 32 bits, the CE MUST take the first 32 bits as | |||
its shared public IPv4 address and bits beyond the first 32 as | its shared public IPv4 address and bits beyond the first 32 as | |||
its Port-set identifier (PSID). Ports of its restricted port | its Port-Set identifier (PSID). Ports of its restricted port | |||
set are by default those that have any non-zero value in their | set are by default those that have any non-zero value in their | |||
first 4 bits (the PSID offset), followed by the PSID, and | first 4 bits (the PSID offset), followed by the PSID, and | |||
followed by any values in remaining bits. If the WKP | followed by any values in remaining bits. If the WKP | |||
authorized option applies to the Mapping rule, there is no | authorized option applies to the Mapping rule, there is no | |||
4-bit offset before the PSID so that all ports can be assigned. | 4-bit offset before the PSID so that all ports can be assigned. | |||
NOTE: The choice of the default PSID position in Port fields | NOTE: The choice of the default PSID position in port fields | |||
has been guided by the following objectives: (1) for fairness, | has been guided by the following objectives: (1) for fairness, | |||
avoid having any of the well-known ports 0-1023 in the port set | avoid having any of the well-known ports 0-1023 in the port set | |||
specified by any PSID value; (2) for compatibility with RTP/ | specified by any PSID value; (2) for compatibility with RTP/ | |||
RTCP [RFC4961], include in each port set pairs of consecutive | RTCP [RFC4961], include in each port set pairs of consecutive | |||
ports; (3) in order to facilitate operation and training, have | ports; (3) in order to facilitate operation and training, have | |||
the PSID at a fixed position in port fields; (4) in order to | the PSID at a fixed position in port fields; (4) in order to | |||
facilitate documentation in hexadecimal notation, and to | facilitate documentation in hexadecimal notation, and to | |||
facilitate maintenance, have this position nibble-aligned. | facilitate maintenance, have this position nibble-aligned. | |||
Ports that are excluded from assignment to CEs are 0-4095, | Ports that are excluded from assignment to CEs are 0-4095, | |||
instead of just 0-1023, in a trade-off to favor nibble | instead of just 0-1023, in a trade-off to favor nibble | |||
alignment of PSIDs and overall simplicity. | alignment of PSIDs and overall simplicity. | |||
R-8: A CE whose delegated IPv6 prefix has its longest match with the | R-8: A CE whose delegated IPv6 prefix has its longest match with the | |||
Rule IPv6 prefix of the BR mapping rule MUST take as its IPv4 | Rule IPv6 prefix of the BR Mapping rule MUST take as its IPv4 | |||
address the 32 bits that, in the delegated IPv6 prefix, follow | address the 32 bits that, in the delegated IPv6 prefix, follow | |||
this Rule IPv6 prefix. If this is the case while the hub-and- | this Rule IPv6 prefix. If this is the case while the hub-and- | |||
spoke option applies to the Domain, or if the Rule IPv6 prefix | spoke option applies to the Domain, or if the Rule IPv6 prefix | |||
is not a /80, there is a configuration error in the Domain. An | is not a /80, there is a configuration error in the Domain. An | |||
implementation-dependent administrative action MAY be taken. | implementation-dependent administrative action MAY be taken. | |||
A CE whose delegated IPv6 prefix does not match the Rule IPv6 | A CE whose delegated IPv6 prefix does not match the Rule IPv6 | |||
prefix of either any CE Mapping rule or the BR mapping rule, | prefix of either any CE Mapping rule or the BR Mapping rule, | |||
and is in a Domain that has a NAT64+ mapping rule, MUST be | and is in a Domain that has a NAT64+ Mapping rule, MUST be | |||
noted as having the unspecified IPv4 address. | noted as having the unspecified IPv4 address. | |||
4.5. Address Mapping from 4rd IPv4 Addresses to 4rd IPv6 Addresses | 4.5. Address Mapping from 4rd IPv4 Addresses to 4rd IPv6 Addresses | |||
: 32 : : 16 : \ | : 32 : : 16 : \ | |||
+----------------------------+ +---------------+ | | +----------------------------+ +---------------+ | | |||
| IPv4 address | |Port_or_ICMP_ID| | Shared-address | | IPv4 address | |Port_or_ICMP_ID| | Shared-address | |||
+----------------------------+ +---+------+----+ | case | +----------------------------+ +---+------+----+ | case | |||
: Longest match : : 4 : PSID : | (PSID length | : Longest match : : 4 : PSID : | (PSID length | |||
: with a Rule IPv4 prefix : :length: | of the rule > 0) | : with a Rule IPv4 prefix : :length: | of the rule > 0) | |||
skipping to change at page 18, line 30 | skipping to change at page 18, line 30 | |||
+--------------------------+--------+-----+ / | +--------------------------+--------+-----+ / | |||
| Rule IPv6 prefix | EA bits | | | Rule IPv6 prefix | EA bits | | |||
+--------------------------+--------------+ | +--------------------------+--------------+ | |||
: : | : : | |||
+-----------------------------------------+ | +-----------------------------------------+ | |||
| IPv6 prefix | | | IPv6 prefix | | |||
+-----------------------------------------+ | +-----------------------------------------+ | |||
:\_______________________________ / \ | :\_______________________________ / \ | |||
: ___________________\______/ \_______________ | : ___________________\______/ \_______________ | |||
: / \ \ | : / \ \ | |||
: / (CE mapping rule) \ (BR mapping rule) \ | : / (CE Mapping rule) \ (BR Mapping rule) \ | |||
: <= 64 : : 112 : | : <= 64 : : 112 : | |||
+----------+---+---+------+---+ +--------------+---+------+---+ | +----------+---+---+------+---+ +--------------+---+------+---+ | |||
|CE v6 prfx| 0 |tag|v4 add|CNP| |BR IPv6 prefix|tag|v4 add|CNP| | |CE v6 prfx| 0 |tag|v4 add|CNP| |BR IPv6 prefix|tag|v4 add|CNP| | |||
+----------+-|-+---+------+---+ +--------------+---+------+---+ | +----------+-|-+---+------+---+ +--------------+---+------+---+ | |||
: <= 64 : | :16 : 32 :16 : : 64 :16 : 32 :16 : | : <= 64 : | :16 : 32 :16 : : 64 :16 : 32 :16 : | |||
| | | | |||
Padding to /64 | Padding to /64 | |||
Figure 5: From 4rd IPv4 Address to 4rd IPv6 Address | Figure 5: From 4rd IPv4 Address to 4rd IPv6 Address | |||
skipping to change at page 19, line 24 | skipping to change at page 19, line 24 | |||
all 64 bits are set." | all 64 bits are set." | |||
and | and | |||
"the whole IID value MUST be viewed as an opaque bit string by | "the whole IID value MUST be viewed as an opaque bit string by | |||
third parties, except possibly in the local context." | third parties, except possibly in the local context." | |||
(1) If hub-and-spoke topology does not apply to the Domain, or | (1) If hub-and-spoke topology does not apply to the Domain, or | |||
if it applies but the IPv6 address to be derived is a | if it applies but the IPv6 address to be derived is a | |||
source address from a CE or a destination address from a | source address from a CE or a destination address from a | |||
BR, find the CE mapping rule whose Rule IPv4 prefix has | BR, find the CE Mapping rule whose Rule IPv4 prefix has | |||
the longest match with the IPv4 address. | the longest match with the IPv4 address. | |||
If no Mapping rule is thus obtained, take the BR mapping | If no Mapping rule is thus obtained, take the BR Mapping | |||
rule. | rule. | |||
If the obtained Mapping rule assigns IPv4 prefixes to CEs, | If the obtained Mapping rule assigns IPv4 prefixes to CEs, | |||
i.e., if the length of the Rule IPv4 prefix plus EA-bits | i.e., if the length of the Rule IPv4 prefix plus EA-bits | |||
length is 32 - k, with k >= 0, delete the last k bits of | length is 32 - k, with k >= 0, delete the last k bits of | |||
the IPv4 address. | the IPv4 address. | |||
Otherwise, if the length of the Rule IPv4 prefix plus the | Otherwise, if the length of the Rule IPv4 prefix plus the | |||
EA-bits length is 32 + k, with k > 0, take k as the PSID | EA-bits length is 32 + k, with k > 0, take k as the PSID | |||
length and append to the IPv4 address the PSID copied from | length and append to the IPv4 address the PSID copied from | |||
skipping to change at page 23, line 21 | skipping to change at page 23, line 21 | |||
For this, a BR MAY systematically reassemble fragmented IPv4 packets | For this, a BR MAY systematically reassemble fragmented IPv4 packets | |||
before tunneling them. But this consumes large memory space, creates | before tunneling them. But this consumes large memory space, creates | |||
opportunities for denial-of-service-attacks, and can significantly | opportunities for denial-of-service-attacks, and can significantly | |||
increase forwarding delays. This is the reason for the following | increase forwarding delays. This is the reason for the following | |||
requirement: | requirement: | |||
R-15: BRs SHOULD support an algorithm whereby received IPv4 packets | R-15: BRs SHOULD support an algorithm whereby received IPv4 packets | |||
can be forwarded on the fly. The following is an example of | can be forwarded on the fly. The following is an example of | |||
such an algorithm: | such an algorithm: | |||
(1) At BR initialization, if at least one CE mapping rule | (1) At BR initialization, if at least one CE Mapping rule | |||
deals with one or more shared public IPv4 addresses (i.e., | deals with one or more shared public IPv4 addresses (i.e., | |||
length of Rule IPv4 prefix + EA-bits length > 32), the BR | length of Rule IPv4 prefix + EA-bits length > 32), the BR | |||
initializes an empty "IPv4 packet table" whose entries | initializes an empty "IPv4 packet table" whose entries | |||
have the following items: | have the following items: | |||
- IPv4 source | - IPv4 source | |||
- IPv4 destination | - IPv4 destination | |||
- IPv4 identification | - IPv4 identification | |||
skipping to change at page 26, line 32 | skipping to change at page 26, line 32 | |||
Unreachable, Net unreachable), and ICMPv6 Type = 3 and Code = 0 | Unreachable, Net unreachable), and ICMPv6 Type = 3 and Code = 0 | |||
(Time Exceeded, Hop limit exceeded in transit) MUST be | (Time Exceeded, Hop limit exceeded in transit) MUST be | |||
translated into ICMPv4 Type = 11 and Code = 0 (Time Exceeded, | translated into ICMPv4 Type = 11 and Code = 0 (Time Exceeded, | |||
time to live exceeded in transit). | time to live exceeded in transit). | |||
4.9. Provisioning 4rd Parameters to CEs | 4.9. Provisioning 4rd Parameters to CEs | |||
Domain parameters listed in Section 4.2 are subject to the following | Domain parameters listed in Section 4.2 are subject to the following | |||
constraints: | constraints: | |||
R-23: Each Domain MUST have a BR mapping rule and/or a NAT64+ mapping | R-23: Each Domain MUST have a BR Mapping rule and/or a NAT64+ Mapping | |||
rule. The BR mapping rule is only used by CEs that are | rule. The BR Mapping rule is only used by CEs that are | |||
assigned public IPv4 addresses, shared or not. The NAT64+ | assigned public IPv4 addresses, shared or not. The NAT64+ | |||
mapping rule is only used by CEs that are assigned the | Mapping rule is only used by CEs that are assigned the | |||
unspecified IPv4 address (Section 4.4) and therefore need an | unspecified IPv4 address (Section 4.4) and therefore need an | |||
ISP NAT64 to reach IPv4 destinations. | ISP NAT64 to reach IPv4 destinations. | |||
R-24: Each CE and each BR MUST support up to 32 Mapping rules. | R-24: Each CE and each BR MUST support up to 32 Mapping rules. | |||
Support for up to 32 Mapping rules ensures that independently | Support for up to 32 Mapping rules ensures that independently | |||
acquired CEs and BR nodes can always interwork. | acquired CEs and BR nodes can always interwork. | |||
ISPs that need Mapping rules for more IPv4 prefixes than this | ISPs that need Mapping rules for more IPv4 prefixes than this | |||
number SHOULD split their networks into multiple Domains. | number SHOULD split their networks into multiple Domains. | |||
Communication between these domains can be done in IPv4 or by | Communication between these domains can be done in IPv4 or by | |||
some other implementation-dependent, but equivalent, means. | some other implementation-dependent, but equivalent, means. | |||
R-25: For mesh topologies, where CE-CE paths don't go via BRs, all | R-25: For mesh topologies, where CE-CE paths don't go via BRs, all | |||
mapping rules of the Domain MUST be sent to all CEs. For | Mapping rules of the Domain MUST be sent to all CEs. For | |||
hub-and-spoke topologies, where all CE-CE paths go via BRs, | hub-and-spoke topologies, where all CE-CE paths go via BRs, | |||
each CE MAY be sent only the BR mapping rule of the Domain | each CE MAY be sent only the BR Mapping rule of the Domain | |||
plus, if different, the CE mapping rule that applies to its CE | plus, if different, the CE Mapping rule that applies to its CE | |||
IPv6 prefix. | IPv6 prefix. | |||
R-26: In a Domain where the chosen topology is hub-and-spoke, all CEs | R-26: In a Domain where the chosen topology is hub-and-spoke, all CEs | |||
MUST have IPv6 prefixes that match a CE mapping rule. | MUST have IPv6 prefixes that match a CE Mapping rule. | |||
(Otherwise, packets sent to CEs whose IPv6 prefixes would match | (Otherwise, packets sent to CEs whose IPv6 prefixes would match | |||
only the BR mapping rule would, with longest-match selected | only the BR Mapping rule would, with longest-match selected | |||
routes, be routed directly to these CEs. This would be | routes, be routed directly to these CEs. This would be | |||
contrary to the hub-and-spoke requirement.) | contrary to the hub-and-spoke requirement.) | |||
R-27: CEs MUST be able to acquire parameters of 4rd domains | R-27: CEs MUST be able to acquire parameters of 4rd domains | |||
(Section 4.2) in DHCPv6 [RFC3315]. Formats of DHCPv6 options | (Section 4.2) in DHCPv6 [RFC3315]. Formats of DHCPv6 options | |||
to be used are detailed in Figures 7, 8, and 9, with field | to be used are detailed in Figures 7, 8, and 9, with field | |||
values specified after each figure. | values specified after each figure. | |||
0 1 2 3 | 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 | 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 | |||
skipping to change at page 36, line 16 | skipping to change at page 36, line 16 | |||
In the sections that follow, each Mapping rule will be represented as | In the sections that follow, each Mapping rule will be represented as | |||
follows, using 0bXXX to represent binary number XXX; square brackets | follows, using 0bXXX to represent binary number XXX; square brackets | |||
("[ ]") indicate optional items: | ("[ ]") indicate optional items: | |||
{Rule IPv4 prefix, EA-bits length, Rule IPv6 prefix | {Rule IPv4 prefix, EA-bits length, Rule IPv6 prefix | |||
[, WKPs authorized]} | [, WKPs authorized]} | |||
EXAMPLES: | EXAMPLES: | |||
{0.0.0.0/0, 32, 2001:db8:0:1:300::/80} | {0.0.0.0/0, 32, 2001:db8:0:1:300::/80} | |||
a BR mapping rule | a BR Mapping rule | |||
{198.16.0.0/14, 22, 2001:db8:4000::/34} | {198.16.0.0/14, 22, 2001:db8:4000::/34} | |||
a CE mapping rule | a CE Mapping rule | |||
{0.0.0.0/0, 32, 2001:db8:0:1::/80} | {0.0.0.0/0, 32, 2001:db8:0:1::/80} | |||
a NAT64+ mapping rule | a NAT64+ Mapping rule | |||
{198.16.0.0/14, 22, 2001:db8:4000::/34, Yes} | {198.16.0.0/14, 22, 2001:db8:4000::/34, Yes} | |||
a CE mapping rule | a CE Mapping rule | |||
and hub-and-spoke topology | and hub-and-spoke topology | |||
Appendix B. Configuring Multiple Mapping Rules | Appendix B. Configuring Multiple Mapping Rules | |||
As far as mapping rules are concerned, the simplest deployment model | As far as Mapping rules are concerned, the simplest deployment model | |||
is that in which the Domain has only one rule (the BR mapping rule). | is that in which the Domain has only one rule (the BR Mapping rule). | |||
To assign an IPv4 address to a CE in this model, an IPv6 /112 is | To assign an IPv4 address to a CE in this model, an IPv6 /112 is | |||
assigned to it, comprising the BR /64 prefix, the 4rd Tag, and the | assigned to it, comprising the BR /64 prefix, the 4rd Tag, and the | |||
IPv4 address. However, this model has the following limitations: (1) | IPv4 address. However, this model has the following limitations: (1) | |||
shared IPv4 addresses are not supported; (2) IPv6 prefixes used for | shared IPv4 addresses are not supported; (2) IPv6 prefixes used for | |||
4rd are too long to also be used for native IPv6 addresses; (3) if | 4rd are too long to also be used for native IPv6 addresses; (3) if | |||
the IPv4 address space of the ISP is split with many disjoint IPv4 | the IPv4 address space of the ISP is split with many disjoint IPv4 | |||
prefixes, the IPv6 routing plan must be as complex as an IPv4 routing | prefixes, the IPv6 routing plan must be as complex as an IPv4 routing | |||
plan based on these prefixes. | plan based on these prefixes. | |||
With more mapping rules, CE prefixes used for 4rd can be those used | With more Mapping rules, CE prefixes used for 4rd can be those used | |||
for native IPv6. How to choose CE mapping rules for a particular | for native IPv6. How to choose CE Mapping rules for a particular | |||
deployment does not need to be standardized. | deployment does not need to be standardized. | |||
The following is only a particular pragmatic approach that can be | The following is only a particular pragmatic approach that can be | |||
used for various deployment scenarios. It is applied in some of the | used for various deployment scenarios. It is applied in some of the | |||
use cases that follow. | use cases that follow. | |||
(1) Select a "Common_IPv6_prefix" that will appear at the beginning | (1) Select a "Common_IPv6_prefix" that will appear at the beginning | |||
of all 4rd CE IPv6 prefixes. | of all 4rd CE IPv6 prefixes. | |||
(2) Choose all IPv4 prefixes to be used, and assign one of them to | (2) Choose all IPv4 prefixes to be used, and assign one of them to | |||
each CE mapping rule i. | each CE Mapping rule i. | |||
(3) For each CE mapping rule i, do the following: | (3) For each CE Mapping rule i, do the following: | |||
A. Choose the length of its Rule IPv6 prefix (possibly the same | A. Choose the length of its Rule IPv6 prefix (possibly the same | |||
for all CE mapping rules). | for all CE Mapping rules). | |||
B. Determine its PSID_length(i). A CE mapping rule that | B. Determine its PSID_length(i). A CE Mapping rule that | |||
assigns shared addresses with a sharing ratio of 2^Ki has | assigns shared addresses with a sharing ratio of 2^Ki has | |||
PSID_length = Ki. A CE mapping rule that assigns IPv4 | PSID_length = Ki. A CE Mapping rule that assigns IPv4 | |||
prefixes of length L < 32 is considered to have a negative | prefixes of length L < 32 is considered to have a negative | |||
PSID_length (PSID_length = L - 32). | PSID_length (PSID_length = L - 32). | |||
C. Derive EA-bits length (i) = 32 - L(Rule IPv4 prefix(i)) + | C. Derive EA-bits length(i) = 32 - L(Rule IPv4 prefix(i)) + | |||
PSID_length(i). | PSID_length(i). | |||
D. Derive the length of Rule_code(i), the prefix to be appended | D. Derive the length of Rule_code(i), the prefix to be appended | |||
to the Common prefix to get the Rule IPv6 prefix of rule i: | to the common prefix to get the Rule IPv6 prefix of rule i: | |||
L(Rule_code(i)) = L(CE IPv6 prefix(i)) | L(Rule_code(i)) = L(CE IPv6 prefix(i)) | |||
- L(Common_IPv6_prefix) | - L(Common_IPv6_prefix) | |||
- (32 - L(Rule IPv4 prefix(i))) | - (32 - L(Rule IPv4 prefix(i))) | |||
- PSID_length(i) | - PSID_length(i) | |||
E. Derive Rule_code(i) with the following constraints: (1) its | E. Derive Rule_code(i) with the following constraints: (1) its | |||
length is L(Rule_code(i)); (2) it does not overlap with any | length is L(Rule_code(i)); (2) it does not overlap with any | |||
of the previously obtained Rule codes (for instance, 010 and | of the previously obtained Rule_codes (for instance, 010 and | |||
01011 do overlap, while 00, 011, and 010 do not); (3) it has | 01011 do overlap, while 00, 011, and 010 do not); (3) it has | |||
the lowest possible value as a fractional binary number (for | the lowest possible value as a fractional binary number (for | |||
instance, 0100 < 10 < 11011 < 111). Thus, rules whose | instance, 0100 < 10 < 11011 < 111). Thus, rules whose | |||
Rule_code lengths are 4, 3, 5, and 2 give Rule_codes 0000, | Rule_code lengths are 4, 3, 5, and 2 give Rule_codes 0000, | |||
001, 00010, and 01. | 001, 00010, and 01. | |||
F. Take Rule IPv6 prefix(i) = the Common_IPv6_prefix followed | F. Take Rule IPv6 prefix(i) = the Common_IPv6_prefix followed | |||
by Rule_code(i). | by Rule_code(i). | |||
:<--------------------- L(CE IPv6 prefix(i)) --------------------->: | :<--------------------- L(CE IPv6 prefix(i)) --------------------->: | |||
: : | : : | |||
: 32 - L(Rule IPv4 prefix(i)) PSID_length(i): | : 32 - L(Rule IPv4 prefix(i)) PSID_length(i): | |||
: \ | : | : \ | : | |||
: :<---------'--------><--'-->: | : :<---------'--------><--'-->: | |||
: : || : | : : || : | |||
: : \/ : | : : \/ : | |||
: :<------->:<--- EA-bits length(i) --->: | : :<------->:<--- EA-bits length(i) --->: | |||
: L(Rule code(i)) | : L(Rule_code(i)) | |||
: : : | : : : | |||
+----------------------------+---------+ | +----------------------------+---------+ | |||
| Common IPv6 prefix |Rule code| | | Common_IPv6_prefix |Rule_code| | |||
| | (i) | | | | (i) | | |||
+----------------------------+---------+ | +----------------------------+---------+ | |||
:<------ L(Rule IPv6 prefix(i)) ------>: | :<------ L(Rule IPv6 prefix(i)) ------>: | |||
Figure 10: Diagram of One Pragmatic Approach | Figure 10: Diagram of One Pragmatic Approach | |||
Appendix C. Adding Shared IPv4 Addresses to an IPv6 Network | Appendix C. Adding Shared IPv4 Addresses to an IPv6 Network | |||
C.1. With CEs within CPEs | C.1. With CEs within CPEs | |||
skipping to change at page 39, line 5 | skipping to change at page 39, line 5 | |||
192.2.0.0/16, and 192.1.0.0/16 (neither overlapping nor | 192.2.0.0/16, and 192.1.0.0/16 (neither overlapping nor | |||
aggregatable). This gives 2^(32 - 15) + 3 * 2^(32 - 16) IPv4 | aggregatable). This gives 2^(32 - 15) + 3 * 2^(32 - 16) IPv4 | |||
addresses, i.e., 2^18 + 2^16. For the 2^20 customers to have the | addresses, i.e., 2^18 + 2^16. For the 2^20 customers to have the | |||
same sharing ratio, the number of IPv4 addresses to be shared has to | same sharing ratio, the number of IPv4 addresses to be shared has to | |||
be a power of 2. The ISP can therefore give up using one of its | be a power of 2. The ISP can therefore give up using one of its | |||
/16s, say the last one. (Whether or not it could be motivated to | /16s, say the last one. (Whether or not it could be motivated to | |||
return it to its Internet Registry is off-scope for this document.) | return it to its Internet Registry is off-scope for this document.) | |||
The sharing ratio to apply is then 2^20 / 2^18 = 2^2 = 4, giving a | The sharing ratio to apply is then 2^20 / 2^18 = 2^2 = 4, giving a | |||
PSID length of 2. | PSID length of 2. | |||
Applying the principles of Appendix B with L(Common IPv6 prefix) = | Applying the principles of Appendix B with L(Common_IPv6_prefix) = | |||
36, L(PSID) = 2 for all rules, and L(CE IPv6 prefix(i)) = 56 for all | 36, L(PSID) = 2 for all rules, and L(CE IPv6 prefix(i)) = 56 for all | |||
rules, Rule codes and Rule IPv6 prefixes are as follows: | rules, Rule_codes and Rule IPv6 prefixes are as follows: | |||
+--------------+--------+-----------+-----------+-------------------+ | +--------------+--------+-----------+-----------+-------------------+ | |||
| CE Rule IPv4 | EA | Rule-Code | Code | CE Rule IPv6 | | | CE Rule IPv4 | EA | Rule-Code | Code | CE Rule IPv6 | | |||
| prefix | bits | length | (binary) | prefix | | | prefix | bits | length | (binary) | prefix | | |||
| | length | | | | | | | length | | | | | |||
+--------------+--------+-----------+-----------+-------------------+ | +--------------+--------+-----------+-----------+-------------------+ | |||
| 192.8.0.0/15 | 19 | 1 | 0 | 2001:db8:0::/37 | | | 192.8.0.0/15 | 19 | 1 | 0 | 2001:db8:0::/37 | | |||
| 192.4.0.0/16 | 18 | 2 | 10 | 2001:db8:800::/38 | | | 192.4.0.0/16 | 18 | 2 | 10 | 2001:db8:800::/38 | | |||
| 192.2.0.0/16 | 18 | 2 | 11 | 2001:db8:c00::/38 | | | 192.2.0.0/16 | 18 | 2 | 11 | 2001:db8:c00::/38 | | |||
+--------------+--------+-----------+-----------+-------------------+ | +--------------+--------+-----------+-----------+-------------------+ | |||
skipping to change at page 40, line 12 | skipping to change at page 40, line 12 | |||
Ports : 0bYYYY 11XX XXXX XXXX | Ports : 0bYYYY 11XX XXXX XXXX | |||
with YYYY > 0, and X...X any value | with YYYY > 0, and X...X any value | |||
An IPv4 packet sent to address 192.4.238.238 and port 7777 is | An IPv4 packet sent to address 192.4.238.238 and port 7777 is | |||
tunneled to the IPv6 address obtained as follows (Section 4.5): | tunneled to the IPv6 address obtained as follows (Section 4.5): | |||
IPv4 address : 192.4.238.238 (0xc004 eeee) | IPv4 address : 192.4.238.238 (0xc004 eeee) | |||
: 0b1100 0000 0000 0100 1110 1110 1110 1110 | : 0b1100 0000 0000 0100 1110 1110 1110 1110 | |||
Rule IPv4 prefix(i): 192.4.0.0/16 (longest match) | Rule IPv4 prefix(i): 192.4.0.0/16 (longest match) | |||
: 0b1100 0000 0000 0100 | : 0b1100 0000 0000 0100 | |||
IPv4 suffix (i) : 0b1110 1110 1110 1110 | IPv4 suffix(i) : 0b1110 1110 1110 1110 | |||
EA-bits length (i) : 18 | EA-bits length(i) : 18 | |||
PSID length (i) : 2 (= 16 + 18 - 32) | PSID length(i) : 2 (= 16 + 18 - 32) | |||
Port field : 0b 0001 1110 0110 0001 (7777) | Port field : 0b 0001 1110 0110 0001 (7777) | |||
PSID : 0b11 | PSID : 0b11 | |||
Rule IPv6 prefix(i): 2001:0db8:0800::/38 | Rule IPv6 prefix(i): 2001:0db8:0800::/38 | |||
CE IPv6 prefix : 2001:0db8:0bbb:bb00::/56 | CE IPv6 prefix : 2001:0db8:0bbb:bb00::/56 | |||
IPv6 address : 2001:0db8:0bbb:bb00:300:c004:eeee:YYYY | IPv6 address : 2001:0db8:0bbb:bb00:300:c004:eeee:YYYY | |||
with YYYY = the computed CNP | with YYYY = the computed CNP | |||
C.2. With Some CEs behind Third-Party Router CPEs | C.2. With Some CEs behind Third-Party Router CPEs | |||
We now consider an ISP that has the same need as the ISP described in | We now consider an ISP that has the same need as the ISP described in | |||
skipping to change at page 40, line 36 | skipping to change at page 40, line 36 | |||
IPv6 infrastructure, it uses that of a third-party provider and (2) | IPv6 infrastructure, it uses that of a third-party provider and (2) | |||
some of its customers use this provider's Customer Premises Equipment | some of its customers use this provider's Customer Premises Equipment | |||
(CPEs) so that they can use specific services offered by the | (CPEs) so that they can use specific services offered by the | |||
provider. In these CPEs, a non-zero index is used to route IPv6 | provider. In these CPEs, a non-zero index is used to route IPv6 | |||
packets to the physical port to which CEs are attached, say 0x2. | packets to the physical port to which CEs are attached, say 0x2. | |||
Each such CPE delegates to the CE nodes the customer-site IPv6 prefix | Each such CPE delegates to the CE nodes the customer-site IPv6 prefix | |||
followed by this index. | followed by this index. | |||
The ISP is supposed to have the same IPv4 prefixes as those in the | The ISP is supposed to have the same IPv4 prefixes as those in the | |||
previous use case -- 192.8.0.0/15, 192.4.0.0/16, and 192.2.0.0/16 -- | previous use case -- 192.8.0.0/15, 192.4.0.0/16, and 192.2.0.0/16 -- | |||
and to use the same Common IPv6 prefix, 2001:db8:0::/36. | and to use the same Common_IPv6_prefix, 2001:db8:0::/36. | |||
We also assume that only a minority of customers use third-party | We also assume that only a minority of customers use third-party | |||
CPEs, so that it is sufficient to use only one of the two /16s for | CPEs, so that it is sufficient to use only one of the two /16s for | |||
them. | them. | |||
Mapping rules are then (see Appendix C.1): | Mapping rules are then (see Appendix C.1): | |||
{192.8.0.0/15, 19, 2001:0db8:0000::/37} | {192.8.0.0/15, 19, 2001:0db8:0000::/37} | |||
{192.4.0.0/16, 18, 2001:0db8:0800::/38} | {192.4.0.0/16, 18, 2001:0db8:0800::/38} | |||
{192.2.0.0/16, 18, 2001:0db8:0c00::/38} | {192.2.0.0/16, 18, 2001:0db8:0c00::/38} | |||
skipping to change at page 41, line 14 | skipping to change at page 41, line 14 | |||
In a BR, and also in a CE if the topology is mesh, the IPv6 address | In a BR, and also in a CE if the topology is mesh, the IPv6 address | |||
that is derived from IPv4 address 192.4.238.238 and port 7777 is | that is derived from IPv4 address 192.4.238.238 and port 7777 is | |||
obtained as described in the previous section, except for the last | obtained as described in the previous section, except for the last | |||
two steps, which are modified as follows: | two steps, which are modified as follows: | |||
IPv4 address : 192.4.238.238 (0xc004 eeee) | IPv4 address : 192.4.238.238 (0xc004 eeee) | |||
: 0b1100 0000 0000 0100 1110 1110 1110 1110 | : 0b1100 0000 0000 0100 1110 1110 1110 1110 | |||
Rule IPv4 prefix(i): 192.4.0.0/16 (longest match) | Rule IPv4 prefix(i): 192.4.0.0/16 (longest match) | |||
: 0b1100 0000 0000 0100 | : 0b1100 0000 0000 0100 | |||
IPv4 suffix (i) : 0b1110 1110 1110 1110 | IPv4 suffix(i) : 0b1110 1110 1110 1110 | |||
EA-bits length (i) : 18 | EA-bits length(i) : 18 | |||
PSID length (i) : 2 (= 16 + 18 - 32) | PSID length(i) : 2 (= 16 + 18 - 32) | |||
Port field : 0b 0001 1110 0110 0001 (7777) | Port field : 0b 0001 1110 0110 0001 (7777) | |||
PSID : 0b11 | PSID : 0b11 | |||
Rule IPv6 prefix(i): 2001:0db8:0800::/38 | Rule IPv6 prefix(i): 2001:0db8:0800::/38 | |||
CE IPv6 prefix : 2001:0db8:0bbb:bb00::/60 | CE IPv6 prefix : 2001:0db8:0bbb:bb00::/60 | |||
IPv6 address : 2001:0db8:0bbb:bb00:300:192.4.238.238:YYYY | IPv6 address : 2001:0db8:0bbb:bb00:300:192.4.238.238:YYYY | |||
with YYYY = the computed CNP | with YYYY = the computed CNP | |||
Appendix D. Replacing Dual-Stack Routing with IPv6-Only Routing | Appendix D. Replacing Dual-Stack Routing with IPv6-Only Routing | |||
In this use case, we consider an ISP that offers IPv4 service with | In this use case, we consider an ISP that offers IPv4 service with | |||
End of changes. 45 change blocks. | ||||
55 lines changed or deleted | 55 lines changed or added | |||
This html diff was produced by rfcdiff 1.41. The latest version is available from http://tools.ietf.org/tools/rfcdiff/ |