| < draft-thubert-v6ops-yada-yatt-00.txt | draft-thubert-v6ops-yada-yatt-01.txt > | |||
|---|---|---|---|---|
| v6ops P. Thubert, Ed. | v6ops P. Thubert, Ed. | |||
| Internet-Draft Cisco Systems | Internet-Draft Cisco Systems | |||
| Updates: 1122, 4291 (if approved) 28 March 2022 | Updates: 1122, 4291 (if approved) 29 March 2022 | |||
| Intended status: Informational | Intended status: Informational | |||
| Expires: 29 September 2022 | Expires: 30 September 2022 | |||
| Yet Another Double address and Translation Technique | Yet Another Double Address and Translation Technique | |||
| draft-thubert-v6ops-yada-yatt-00 | draft-thubert-v6ops-yada-yatt-01 | |||
| Abstract | Abstract | |||
| This document provides a mechanism named YADA to extend the current | This document provides a mechanism named YADA to extend the current | |||
| IPv4 Internet by interconnecting IPv4 realms via a common footprint | IPv4 Internet by interconnecting IPv4 realms via a common footprint | |||
| called the shaft. YADA extends [INT-ARCHI] with the support of an | called the shaft. YADA extends [INT-ARCHI] with the support of an | |||
| IP-in-IP format used to tunnel packets across the shaft. This | IP-in-IP format used to tunnel packets across the shaft. This | |||
| document also provides a bump-in-the-stack method to enable YADA on a | document also provides a bump-in-the-stack method to enable YADA on a | |||
| legacy stack, e.g., to enable virtual machines without changing them. | legacy stack, e.g., to enable virtual machines without changing them. | |||
| This document also provides a stateless address and IP header | This document also provides a stateless address and IP header | |||
| translation between YADA and IPv6 [IPv6] called YATT and extends | translation between YADA and IPv6 [IPv6] called YATT and extends | |||
| [IPv6-addressING] for the YATT format. YATT can take place as a bump | [IPv6-ADDRESSING] for the YATT format. YATT can take place as a bump | |||
| in the stack at either end, or within the network and enables an | in the stack at either end, or within the network and enables an | |||
| IPv6-only stack to dialog with an IPv4-only stack across a network | IPv6-only stack to dialog with an IPv4-only stack across a network | |||
| that can be IPv6, IPv4, or mixed. YATT requires that the IPv6 stack | that can be IPv6, IPv4, or mixed. YATT requires that the IPv6 stack | |||
| owns a prefix that derives from a YADA address and the IPv4 stack is | owns a prefix that derives from a YADA address and the IPv4 stack is | |||
| capable of YADA, so it does not replace a generic 4 to 6 translation | capable of YADA, so it does not replace a generic 4 to 6 translation | |||
| mechanism for any v6 to any v4. | mechanism for any v6 to any v4. | |||
| Status of This Memo | Status of This Memo | |||
| This Internet-Draft is submitted in full conformance with the | This Internet-Draft is submitted in full conformance with the | |||
| skipping to change at page 1, line 45 ¶ | skipping to change at page 1, line 45 ¶ | |||
| Internet-Drafts are working documents of the Internet Engineering | Internet-Drafts are working documents of the Internet Engineering | |||
| Task Force (IETF). Note that other groups may also distribute | Task Force (IETF). Note that other groups may also distribute | |||
| working documents as Internet-Drafts. The list of current Internet- | working documents as Internet-Drafts. The list of current Internet- | |||
| Drafts is at https://datatracker.ietf.org/drafts/current/. | Drafts is at https://datatracker.ietf.org/drafts/current/. | |||
| Internet-Drafts are draft documents valid for a maximum of six months | Internet-Drafts are draft documents valid for a maximum of six months | |||
| and may be updated, replaced, or obsoleted by other documents at any | and may be updated, replaced, or obsoleted by other documents at any | |||
| time. It is inappropriate to use Internet-Drafts as reference | time. It is inappropriate to use Internet-Drafts as reference | |||
| material or to cite them other than as "work in progress." | material or to cite them other than as "work in progress." | |||
| This Internet-Draft will expire on 29 September 2022. | This Internet-Draft will expire on 30 September 2022. | |||
| Copyright Notice | Copyright Notice | |||
| Copyright (c) 2022 IETF Trust and the persons identified as the | Copyright (c) 2022 IETF Trust and the persons identified as the | |||
| document authors. All rights reserved. | document authors. All rights reserved. | |||
| This document is subject to BCP 78 and the IETF Trust's Legal | This document is subject to BCP 78 and the IETF Trust's Legal | |||
| Provisions Relating to IETF Documents (https://trustee.ietf.org/ | Provisions Relating to IETF Documents (https://trustee.ietf.org/ | |||
| license-info) in effect on the date of publication of this document. | license-info) in effect on the date of publication of this document. | |||
| Please review these documents carefully, as they describe your rights | Please review these documents carefully, as they describe your rights | |||
| skipping to change at page 2, line 41 ¶ | skipping to change at page 2, line 41 ¶ | |||
| 9. Security Considerations . . . . . . . . . . . . . . . . . . . 10 | 9. Security Considerations . . . . . . . . . . . . . . . . . . . 10 | |||
| 10. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 10 | 10. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 10 | |||
| 11. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 10 | 11. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 10 | |||
| 12. References . . . . . . . . . . . . . . . . . . . . . . . . . 10 | 12. References . . . . . . . . . . . . . . . . . . . . . . . . . 10 | |||
| 12.1. Normative References . . . . . . . . . . . . . . . . . . 10 | 12.1. Normative References . . . . . . . . . . . . . . . . . . 10 | |||
| 12.2. Informative References . . . . . . . . . . . . . . . . . 10 | 12.2. Informative References . . . . . . . . . . . . . . . . . 10 | |||
| Author's Address . . . . . . . . . . . . . . . . . . . . . . . . 11 | Author's Address . . . . . . . . . . . . . . . . . . . . . . . . 11 | |||
| 1. Introduction | 1. Introduction | |||
| This document provides a mechanism called Yet Another Double address | This document provides a mechanism called Yet Another Double Address | |||
| (YADA) to grow the Internet beyond the current IPv4 [IPv4] realm that | (YADA) to grow the Internet beyond the current IPv4 [IPv4] realm that | |||
| limits its capacity to form public addresses. This is achieved by | limits its capacity to form public addresses. This is achieved by | |||
| interconnecting IPv4 realms via a common footprint called the shaft. | interconnecting IPv4 realms via a common footprint called the shaft. | |||
| In the analogy of a building, the ground floor would be the Internet, | In the analogy of a building, the ground floor would be the Internet, | |||
| and each additional floor would be another IPv4 realm. The same | and each additional floor would be another IPv4 realm. The same | |||
| surface of floor is available in each level, analog to the full IPv4 | surface of floor is available in each level, analog to the full IPv4 | |||
| addressing that is available in each realm. The same footprint is | addressing that is available in each realm. The same footprint is | |||
| dedicated across the building levels for the elevator shaft. The | dedicated across the building levels for the elevator shaft. The | |||
| elevator shaft enables a third dimension that spans across the levels | elevator shaft enables a third dimension that spans across the levels | |||
| skipping to change at page 4, line 35 ¶ | skipping to change at page 4, line 35 ¶ | |||
| by collating a well-known Interface ID, so there's a one-to-one | by collating a well-known Interface ID, so there's a one-to-one | |||
| relationship between the YADA and the IPv6 address derived from it. | relationship between the YADA and the IPv6 address derived from it. | |||
| More in Section 6. | More in Section 6. | |||
| 2. Terminology | 2. Terminology | |||
| 2.1. Glossary | 2.1. Glossary | |||
| This document often uses the following acronyms: | This document often uses the following acronyms: | |||
| YADA: Yet Another Double address | YADA: Yet Another Double Address | |||
| YATT: Yet Another Translation Technique | YATT: Yet Another Translation Technique | |||
| NAT: Network address Translation | NAT: Network address Translation | |||
| IID: Interface ID | IID: Interface ID | |||
| CG-NAT: Carrier Grade NAT | CG-NAT: Carrier Grade NAT | |||
| 2.2. New Terms | 2.2. New Terms | |||
| This document often uses the following nex terms: | This document often uses the following nex terms: | |||
| IPv4 realm A full IPv4 network like the current Internet. YADA does | IPv4 realm A full IPv4 network like the current Internet. YADA does | |||
| skipping to change at page 5, line 32 ¶ | skipping to change at page 5, line 32 ¶ | |||
| 3. Extending RFC 1122 | 3. Extending RFC 1122 | |||
| YADA extends [INT-ARCHI] to add the capability for an IPv4 host to | YADA extends [INT-ARCHI] to add the capability for an IPv4 host to | |||
| recognize an special IP-in-IP format as an inter-realm IPv4 packet | recognize an special IP-in-IP format as an inter-realm IPv4 packet | |||
| and process it accordingly. It also adds a new DNS double-A record | and process it accordingly. It also adds a new DNS double-A record | |||
| format that denotes a YADA address. | format that denotes a YADA address. | |||
| 4. Extending RFC 4291 | 4. Extending RFC 4291 | |||
| YATT extends [IPv6-addressING] to add the capability for an IPv4 host | YATT extends [IPv6-ADDRESSING] to add the capability for an IPv4 host | |||
| to recognize an special IPv6 format as an YATT address embedding a | to recognize an special IPv6 format as an YATT address embedding a | |||
| YADA address and process it accordingly. It also automatically | YADA address and process it accordingly. It also automatically | |||
| derives the ownership of the YATT prefix associated to a owned YADA | derives the ownership of the YATT prefix associated to a owned YADA | |||
| address. | address. | |||
| 5. YADA | 5. YADA | |||
| YADA assigns IPv4 prefixes to a multinternet shaft; those prefixes | YADA assigns IPv4 prefixes to a multinternet shaft; those prefixes | |||
| must be the same across all the realms that are interconnected by the | must be the same across all the realms that are interconnected by the | |||
| shaft. Multiple prefixes can be assigned to the shaft for unicast | shaft. Multiple prefixes can be assigned to the shaft for unicast | |||
| skipping to change at page 7, line 7 ¶ | skipping to change at page 7, line 7 ¶ | |||
| -----------------------------------------------------/ | -----------------------------------------------------/ | |||
| | | | | | | | | | | |||
| | | | | | | | | |||
| | | | | | | | | |||
| v | v | |||
| Figure 2: Packets Entering the shaft | Figure 2: Packets Entering the shaft | |||
| The packet destination is an address is the shaft and it is attracted | The packet destination is an address is the shaft and it is attracted | |||
| by a router that serves the shaft and advertises its prefixes in the | by a router that serves the shaft and advertises its prefixes in the | |||
| source realm. Based ion longest match, the router forwards the | source realm. Based on longest match, the router forwards the packet | |||
| packet inside the shaft following the host route to a router that | inside the shaft following the host route to a router that serves the | |||
| serves the destination realm. That router swaps the destination | destination realm. That router swaps the destination address in the | |||
| address in the inner and outer headers and forwards within its realm | inner and outer headers and forwards within its realm to the final | |||
| to the final destination, as shown in Figure 3. In normal | destination, as shown in Figure 3. In normal conditions, the stack | |||
| conditions, the stack of the destination node recognizes the YADA | of the destination node recognizes the YADA format and replies | |||
| format and replies accordingly. | accordingly. | |||
| | | | | |||
| | | | | | | | | |||
| | | | | | | | | |||
| /------|----|-------|--------------------------------- | /------|----|-------|--------------------------------- | |||
| / | | | | | / | / | | | | | / | |||
| / | | | | | / | / | | | | | / | |||
| / | |----|---|---| Destination Node / | / | |----|---|---| Destination Node / | |||
| / | / | | / / | / | / | | / / | |||
| / | /. +---|----> outer(src=src-realm / | / | /. +---|----> outer(src=src-realm / | |||
| skipping to change at page 8, line 13 ¶ | skipping to change at page 8, line 13 ¶ | |||
| avoid pointing on a node that does not support YADA. | avoid pointing on a node that does not support YADA. | |||
| YADA requires the assignment of a second IPv4 prefix, this time for a | YADA requires the assignment of a second IPv4 prefix, this time for a | |||
| internal NATing operation. A bump-in-the-stack intercepts the DNS | internal NATing operation. A bump-in-the-stack intercepts the DNS | |||
| lookups, and when the response yields a double-A record with a | lookups, and when the response yields a double-A record with a | |||
| foreign realm, the record is augmented with an IPv4 address taken | foreign realm, the record is augmented with an IPv4 address taken | |||
| from a local NAT pool. When the stack sends a packet to that | from a local NAT pool. When the stack sends a packet to that | |||
| particular address, the bump-in-the-stack translates to the YADA | particular address, the bump-in-the-stack translates to the YADA | |||
| format, using the information in the double-A record for the | format, using the information in the double-A record for the | |||
| destination, and the local realm as source realm. The other way | destination, and the local realm as source realm. The other way | |||
| around, id a packet arrives with a YADA format but the stack does not | around, if a packet arrives with a YADA format but the stack does not | |||
| support it, the bump-in-the-stack allocates an address from the pool, | support it, the bump-in-the-stack allocates an address from the pool, | |||
| and NATs to IPv4 using that address as source. | and NATs to IPv4 using that address as source. | |||
| YADA was initially published as USPTO 7,356,031, filed in February | YADA was initially published as USPTO 7,356,031, filed in February | |||
| 2002. | 2002. | |||
| 6. YATT | 6. YATT | |||
| A second mechanism called YATT translates the YADA format into flat | A second mechanism called YATT translates the YADA format into flat | |||
| IPv6. | IPv6. | |||
| skipping to change at page 9, line 6 ¶ | skipping to change at page 9, line 6 ¶ | |||
| Depending on assignment, the leftmost piece realm prefix may be | Depending on assignment, the leftmost piece realm prefix may be | |||
| truncated if it is well-known, to allow the YATT space and the realm | truncated if it is well-known, to allow the YATT space and the realm | |||
| address to fit in a 32-bit DWORD. This way, the YATT prefix can be a | address to fit in a 32-bit DWORD. This way, the YATT prefix can be a | |||
| full /64 prefix that is entirely owned by the host that owns the | full /64 prefix that is entirely owned by the host that owns the | |||
| associated YADA address. | associated YADA address. | |||
| YATT then forms an IPv6 address for that host by collating a well- | YATT then forms an IPv6 address for that host by collating a well- | |||
| known Interface ID, so there's a one-to-one relationship. | known Interface ID, so there's a one-to-one relationship. | |||
| The formats can not be strictly provided till the YATT space and YADA | The formats can not be strictly provided till the YATT space and YADA | |||
| prefix are assigned. But say that the YATT Space is F00::/6 and the | prefix are assigned. But say that the YATT Space is F000::/6 and the | |||
| YADA prefix is 240.0.0.0/6. In that case the values perfectly | YADA prefix is 240.0.0.0/6. In that case the values perfectly | |||
| overlap and the YATT format becomes as follows: | overlap and the YATT format becomes as follows: | |||
| +-----+----------+----------------+---------------------------------+ | +-----+----------+----------------+---------------------------------+ | |||
| | Realm Address | IPv4 Host | Well-Known | | | Realm Address | IPv4 Host | Well-Known | | |||
| | in 240.0.0.0/6 | Public Address | IID | | | in 240.0.0.0/6 | Public Address | IID | | |||
| +-----+- --------+----+-----------+---------------------------------+ | +-----+- --------+----+-----------+---------------------------------+ | |||
| <--- 32 bits ---><--- 32 bits ---><------------ 64 bits ------------> | <--- 32 bits ---><--- 32 bits ---><------------ 64 bits ------------> | |||
| <------ YATT IPv6 Prefix -------> | <------ YATT IPv6 Prefix -------> | |||
| skipping to change at page 10, line 6 ¶ | skipping to change at page 10, line 6 ¶ | |||
| application/stack that is not YADA-enabled, or to an IPv6 address | application/stack that is not YADA-enabled, or to an IPv6 address | |||
| that is not a YATT address, is not provided. | that is not a YATT address, is not provided. | |||
| Since the YATT translation is stateless, the header translation can | Since the YATT translation is stateless, the header translation can | |||
| happen anywhere in the network, e.g., as a bump in the stack at | happen anywhere in the network, e.g., as a bump in the stack at | |||
| either end, or within the network, e.g., at the routers that serve | either end, or within the network, e.g., at the routers that serve | |||
| the realms on the shaft. The shaft itself is expected to be dual | the realms on the shaft. The shaft itself is expected to be dual | |||
| stack to forward packets in their native form, either v4 or v6. | stack to forward packets in their native form, either v4 or v6. | |||
| For a legacy IPv4 node to communicate with YADA-enabled IPv4 node in | For a legacy IPv4 node to communicate with YADA-enabled IPv4 node in | |||
| another realm, a NAT operation similar to DS-Lite [DS-LIGHT], but | another realm, a NAT operation similar to NAT46 [NAT-DEPLOY], but | |||
| between IPv4 and YADA addresses, is required. | between IPv4 and YADA addresses, is required. The same would be | |||
| required to allow an IPv4-only YADA node to communicate with | ||||
| 8. Backwards Compatibility | 8. Backwards Compatibility | |||
| YADA operation does not affect the intra-realm communication. The | YADA operation does not affect the intra-realm communication. The | |||
| only affected stacks are the endpoints that communicate between | only affected stacks are the endpoints that communicate between | |||
| realms leveraging YADA. | realms leveraging YADA. | |||
| 9. Security Considerations | 9. Security Considerations | |||
| 10. IANA Considerations | 10. IANA Considerations | |||
| skipping to change at page 10, line 41 ¶ | skipping to change at page 10, line 42 ¶ | |||
| [IPv4] Postel, J., "Internet Protocol", STD 5, RFC 791, | [IPv4] Postel, J., "Internet Protocol", STD 5, RFC 791, | |||
| DOI 10.17487/RFC0791, September 1981, | DOI 10.17487/RFC0791, September 1981, | |||
| <https://www.rfc-editor.org/info/rfc791>. | <https://www.rfc-editor.org/info/rfc791>. | |||
| [INT-ARCHI] | [INT-ARCHI] | |||
| Braden, R., Ed., "Requirements for Internet Hosts - | Braden, R., Ed., "Requirements for Internet Hosts - | |||
| Communication Layers", STD 3, RFC 1122, | Communication Layers", STD 3, RFC 1122, | |||
| DOI 10.17487/RFC1122, October 1989, | DOI 10.17487/RFC1122, October 1989, | |||
| <https://www.rfc-editor.org/info/rfc1122>. | <https://www.rfc-editor.org/info/rfc1122>. | |||
| [IPv6-addressING] | [IPv6-ADDRESSING] | |||
| Hinden, R. and S. Deering, "IP Version 6 Addressing | Hinden, R. and S. Deering, "IP Version 6 Addressing | |||
| Architecture", RFC 4291, DOI 10.17487/RFC4291, February | Architecture", RFC 4291, DOI 10.17487/RFC4291, February | |||
| 2006, <https://www.rfc-editor.org/info/rfc4291>. | 2006, <https://www.rfc-editor.org/info/rfc4291>. | |||
| [IPv6] Deering, S. and R. Hinden, "Internet Protocol, Version 6 | [IPv6] Deering, S. and R. Hinden, "Internet Protocol, Version 6 | |||
| (IPv6) Specification", STD 86, RFC 8200, | (IPv6) Specification", STD 86, RFC 8200, | |||
| DOI 10.17487/RFC8200, July 2017, | DOI 10.17487/RFC8200, July 2017, | |||
| <https://www.rfc-editor.org/info/rfc8200>. | <https://www.rfc-editor.org/info/rfc8200>. | |||
| 12.2. Informative References | 12.2. Informative References | |||
| [DS-LIGHT] Chan, H., Ed., Liu, D., Seite, P., Yokota, H., and J. | [NAT-DEPLOY] | |||
| Korhonen, "Requirements for Distributed Mobility | Palet Martinez, J., "Additional Deployment Guidelines for | |||
| Management", RFC 7333, DOI 10.17487/RFC7333, August 2014, | NAT64/464XLAT in Operator and Enterprise Networks", | |||
| <https://www.rfc-editor.org/info/rfc7333>. | RFC 8683, DOI 10.17487/RFC8683, November 2019, | |||
| <https://www.rfc-editor.org/info/rfc8683>. | ||||
| Author's Address | Author's Address | |||
| Pascal Thubert (editor) | Pascal Thubert (editor) | |||
| Cisco Systems, Inc | Cisco Systems, Inc | |||
| Building D | Building D | |||
| 45 Allee des Ormes - BP1200 | 45 Allee des Ormes - BP1200 | |||
| 06254 Mougins - Sophia Antipolis | 06254 Mougins - Sophia Antipolis | |||
| France | France | |||
| Phone: +33 497 23 26 34 | Phone: +33 497 23 26 34 | |||
| End of changes. 14 change blocks. | ||||
| 25 lines changed or deleted | 27 lines changed or added | |||
This html diff was produced by rfcdiff 1.48. The latest version is available from http://tools.ietf.org/tools/rfcdiff/ | ||||