Skip to main content

ICMP Extensions for IP/ICMP translators (XLATs)
draft-equinox-intarea-icmpext-xlat-source-00

Document Type Active Internet-Draft (individual)
Authors David Lamparter , Jen Linkova
Last updated 2024-03-21
RFC stream (None)
Intended RFC status (None)
Formats
Additional resources GitHub Username: eqvinox
GitHub Repository
Stream Stream state (No stream defined)
Consensus boilerplate Unknown
RFC Editor Note (None)
IESG IESG state I-D Exists
Telechat date (None)
Responsible AD (None)
Send notices to (None)
draft-equinox-intarea-icmpext-xlat-source-00
Internet Area                                               D. Lamparter
Internet-Draft                                              NetDEF, Inc.
Intended status: Standards Track                              J. Linkova
Expires: 22 September 2024                                        Google
                                                           21 March 2024

            ICMP Extensions for IP/ICMP translators (XLATs)
              draft-equinox-intarea-icmpext-xlat-source-00

Abstract

   This document suggests the creation of an ICMP Multi-part Extension
   to carry the original IPv6 source address of ICMPv6 messages
   translated to ICMP by stateless (RFC6145) or stateful (RFC 6146)
   protocol translators.

About This Document

   This note is to be removed before publishing as an RFC.

   Source, version control history, and issue tracker for this draft can
   be found at https://github.com/eqvinox/icmpext-clat-source.

   (Note the draft was renamed (clat → xlat) prior to submission but
   changing the repository name on github breaks too many things to be
   worth the effort.)

Status of This Memo

   This Internet-Draft is submitted in full conformance with the
   provisions of BCP 78 and BCP 79.

   Internet-Drafts are working documents of the Internet Engineering
   Task Force (IETF).  Note that other groups may also distribute
   working documents as Internet-Drafts.  The list of current Internet-
   Drafts is at https://datatracker.ietf.org/drafts/current/.

   Internet-Drafts are draft documents valid for a maximum of six months
   and may be updated, replaced, or obsoleted by other documents at any
   time.  It is inappropriate to use Internet-Drafts as reference
   material or to cite them other than as "work in progress."

   This Internet-Draft will expire on 22 September 2024.

Lamparter & Linkova     Expires 22 September 2024               [Page 1]
Internet-Draft             icmpext-xlat-source                March 2024

Copyright Notice

   Copyright (c) 2024 IETF Trust and the persons identified as the
   document authors.  All rights reserved.

   This document is subject to BCP 78 and the IETF Trust's Legal
   Provisions Relating to IETF Documents (https://trustee.ietf.org/
   license-info) in effect on the date of publication of this document.
   Please review these documents carefully, as they describe your rights
   and restrictions with respect to this document.  Code Components
   extracted from this document must include Revised BSD License text as
   described in Section 4.e of the Trust Legal Provisions and are
   provided without warranty as described in the Revised BSD License.

Table of Contents

   1.  Introduction  . . . . . . . . . . . . . . . . . . . . . . . .   2
   2.  Requirements Language . . . . . . . . . . . . . . . . . . . .   3
   3.  Improved Translation Behavior . . . . . . . . . . . . . . . .   3
   4.  IPv6 Original Source Extension  . . . . . . . . . . . . . . .   4
   5.  Security Considerations . . . . . . . . . . . . . . . . . . .   4
   6.  Privacy Considerations  . . . . . . . . . . . . . . . . . . .   5
   7.  IANA Considerations . . . . . . . . . . . . . . . . . . . . .   5
   8.  References  . . . . . . . . . . . . . . . . . . . . . . . . .   5
     8.1.  Normative References  . . . . . . . . . . . . . . . . . .   5
     8.2.  Informative References  . . . . . . . . . . . . . . . . .   6
   Acknowledgements  . . . . . . . . . . . . . . . . . . . . . . . .   6
   Authors' Addresses  . . . . . . . . . . . . . . . . . . . . . . .   6

1.  Introduction

   To allow communication between IPv6-only and IPv4-only devices, IPv4/
   IPv6 translators translate IPv6 and IPv4 packet headers according to
   the IP/ICMP Translation Algorithm defined in [RFC6145].  For example,
   464XLAT ([RFC6877]) defines an architecture for providing IPv4
   connectivity across an IPv6-only network.  The solution contains two
   key elements: provider-side translator (PLAT) and customer-side
   translator (CLAT).  CLAT implementations translate private IPv4
   addresses to global IPv6 addresses, and vice versa, as defined in
   [RFC6145].

   To map IPv4 addresses to IPv6 ones the translators use the
   translation prefix (either a well-known or a network-specific one,
   see [RFC6052]).  The resulting IPv6 addresses can be statelessly
   translated back to IPv4.  However it's not the case for an arbitrary
   global IPv6 addresses.  Those addresses can only be translated to
   IPv4 by a stateful translators.

Lamparter & Linkova     Expires 22 September 2024               [Page 2]
Internet-Draft             icmpext-xlat-source                March 2024

   One of scenarios when it might be required but not currently possible
   is translating ICMPv6 error messages send by intermediate nodes to
   the CLAT address in the 464XLAT envinronment.  The most typical
   example is a diagnistic tool like traceroute sending packets to an
   IPv4 destination from an IPv6-only host.  Received ICMPv6 Time
   Exceeded are translated to ICMP Time Exceeded.  If those packets were
   originated from an IPv4 address and translated to ICMPv6 by the PLAT
   (NAT64) device, then the source address of such packet can be mapped
   back to IPv4 by removing the translation prefix.  However ICMPv6
   error messages sent by devices located between the IPv6-only host and
   the NAT64 device have "native" IPv6 source addresses, which can not
   be mapped back to IPv4.  Those packets are usually dropped and tools
   like traceroute can not represent IPv6 intermediate hops in any
   meaningful way.  Such behaviour complicates troubleshooting.  It's
   also confusing for users and increases operational costs, as users
   report packet loss in the network based on traceroute output.

   Some CLAT implementations are known to workaround this issue by
   representing IPv6 addresses in IPv4 traceroute by using a reserved
   IPv4 address space and using the hop limit as the last octet, so an
   IPv6 device 5 hops away is shown as 225.0.0.5 etc.

   It should be noted that the similar issue occurs in IPv6 Data Center
   Environments when an ICMPv6 error message needs to be sent to an
   IPv4-only client.  As per Section 4.8 of [RFC7755], ICMPv6 error
   packets are usually dropped by the translator.

   This document proposes an ICMP extension so original IPv6 address of
   an ICMPv6 error message can be included into IMCP message and
   therefore passed to an application.

2.  Requirements Language

   The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
   "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and
   "OPTIONAL" in this document are to be interpreted as described in BCP
   14 [RFC2119] [RFC8174] when, and only when, they appear in all
   capitals, as shown here.

3.  Improved Translation Behavior

   Whenever a translator generates an IPv4 ICMP message from an ICMPv6
   packet, and the IPv6 source address does not match the NAT64 prefix
   (and is therefore not mappable to an IPv4 address), the extension
   described in this document SHOULD be added to the ICMP packet.

Lamparter & Linkova     Expires 22 September 2024               [Page 3]
Internet-Draft             icmpext-xlat-source                March 2024

   The translator SHOULD NOT add the extension if the packet IPv6 source
   address is an IPv4 address mapped to an IPv6 address using the
   translation prefix known to the translator.

   TBD: clarify IPv4 source address for consistency?  (maybe not, would
   extend scope of this draft.)

4.  IPv6 Original Source Extension

   The suggested encoding to be appended[RFC4884] to ICMP messages is as
   follows:

      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
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
     |          Length = 20          |   Class TBD1  |  C-Type = 0   |
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
     |                                                               |
     +                                                               +
     |                  original IPv6 source address                 |
     +                          16 octets                            +
     |                                                               |
     +                                                               +
     |                                                               |
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                                  Figure 1

   The Length, Class and C-Type fields are as defined in [RFC4884] and
   filled in accordingly.  This document describes only one encoding and
   uses C-Type 0 for it.  C-Type MUST be set to 0 when appending this
   extension.  On receipt, this extension MUST be ignored if C-Type is
   not 0 or if Length is not 20.

   The original IPv6 source address field is always 16 octets in length
   and filled as described in this document.  It may contain any source
   address possibly seen in an ICMPv6 packet.  This notably includes
   link-local addresses, the IPv6 loopback address, and mapped IPv4
   addresses.  Receivers MUST NOT reject addresses solely due to the
   address not being a globally scoped IPv6 addresses.

5.  Security Considerations

   TBD.  Should probably be local-only.

Lamparter & Linkova     Expires 22 September 2024               [Page 4]
Internet-Draft             icmpext-xlat-source                March 2024

6.  Privacy Considerations

   TBD

7.  IANA Considerations

   This document requests that IANA allocates a "Class Value" from the
   "ICMP Extension Object Classes and Class Sub-types" registry created
   by [RFC4884] for use as described above.  The following entry should
   be appended:

     +=============+==============================+=================+
     | Class Value | Class Name                   | Reference       |
     +=============+==============================+=================+
     | TBD1        | Original IPv6 Source Address | [THIS DOCUMENT] |
     +-------------+------------------------------+-----------------+

                                 Table 1

8.  References

8.1.  Normative References

   [RFC2119]  Bradner, S., "Key words for use in RFCs to Indicate
              Requirement Levels", BCP 14, RFC 2119,
              DOI 10.17487/RFC2119, March 1997,
              <https://www.rfc-editor.org/info/rfc2119>.

   [RFC4884]  Bonica, R., Gan, D., Tappan, D., and C. Pignataro,
              "Extended ICMP to Support Multi-Part Messages", RFC 4884,
              DOI 10.17487/RFC4884, April 2007,
              <https://www.rfc-editor.org/info/rfc4884>.

   [RFC6052]  Bao, C., Huitema, C., Bagnulo, M., Boucadair, M., and X.
              Li, "IPv6 Addressing of IPv4/IPv6 Translators", RFC 6052,
              DOI 10.17487/RFC6052, October 2010,
              <https://www.rfc-editor.org/info/rfc6052>.

   [RFC6145]  Li, X., Bao, C., and F. Baker, "IP/ICMP Translation
              Algorithm", RFC 6145, DOI 10.17487/RFC6145, April 2011,
              <https://www.rfc-editor.org/info/rfc6145>.

   [RFC6877]  Mawatari, M., Kawashima, M., and C. Byrne, "464XLAT:
              Combination of Stateful and Stateless Translation",
              RFC 6877, DOI 10.17487/RFC6877, April 2013,
              <https://www.rfc-editor.org/info/rfc6877>.

Lamparter & Linkova     Expires 22 September 2024               [Page 5]
Internet-Draft             icmpext-xlat-source                March 2024

   [RFC8174]  Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC
              2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174,
              May 2017, <https://www.rfc-editor.org/info/rfc8174>.

8.2.  Informative References

   [RFC7755]  Anderson, T., "SIIT-DC: Stateless IP/ICMP Translation for
              IPv6 Data Center Environments", RFC 7755,
              DOI 10.17487/RFC7755, February 2016,
              <https://www.rfc-editor.org/info/rfc7755>.

Acknowledgements

   This document is the result of discussions with Thomas Jensen.

Authors' Addresses

   David 'equinox' Lamparter
   NetDEF, Inc.
   San Jose,
   United States of America
   Email: equinox@diac24.net, equinox@opensourcerouting.org

   Jen Linkova
   Google
   1 Darling Island Rd
   Pyrmont NSW 2009
   Australia
   Email: furry13@gmail.com, furry@google.com

Lamparter & Linkova     Expires 22 September 2024               [Page 6]