| 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/ | ||||