LISP Working Group                                       L. Iannone, Ed.
Internet-Draft                                                    Huawei
Intended status: Experimental                           16 February 2026
Expires: 20 August 2026


                         NAT traversal for LISP
                    draft-ietf-lisp-nat-traversal-01

Abstract

   This document describes a mechanism for IPv4 NAT traversal for LISP
   tunnel routers (xTR) and LISP Mobile Nodes (LISP-MN) behind a Network
   Address Translator (NAT) device.  A LISP device both detects the NAT
   and initializes its state.  Forwarding to the LISP device through a
   NAT is enabled by the LISP Re-encapsulating Tunnel Router (RTR)
   network element, which acts as an anchor point in the data plane,
   forwarding traffic from unmodified LISP devices through the NAT.

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 20 August 2026.

Copyright Notice

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











Iannone                  Expires 20 August 2026                 [Page 1]


Internet-Draft             LISP NAT Traversal              February 2026


   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  . . . . . . . . . . . . . . . . . . . . . . . .   3
   2.  Requirements Language . . . . . . . . . . . . . . . . . . . .   3
   3.  Definition of Terms . . . . . . . . . . . . . . . . . . . . .   3
   4.  NAT Traversal Basics  . . . . . . . . . . . . . . . . . . . .   4
   5.  LISP NAT Traversal Overview . . . . . . . . . . . . . . . . .   6
   6.  LISP Messages Details . . . . . . . . . . . . . . . . . . . .   6
     6.1.  Info-Request/Info-Reply Messages Format . . . . . . . . .   7
       6.1.1.  Info-Request Message  . . . . . . . . . . . . . . . .   8
       6.1.2.  Info-Reply Message  . . . . . . . . . . . . . . . . .   9
     6.2.  Map-Register Message  . . . . . . . . . . . . . . . . . .  11
     6.3.  Map-Notify Message  . . . . . . . . . . . . . . . . . . .  11
     6.4.  Data Plane ECM Map-Notify Message . . . . . . . . . . . .  12
   7.  Protocol Operations . . . . . . . . . . . . . . . . . . . . .  14
     7.1.  xTR Processing  . . . . . . . . . . . . . . . . . . . . .  14
       7.1.1.  ETR Processing  . . . . . . . . . . . . . . . . . . .  15
       7.1.2.  ITR Processing  . . . . . . . . . . . . . . . . . . .  17
     7.2.  Map-Server Processing . . . . . . . . . . . . . . . . . .  18
     7.3.  RTR Processing  . . . . . . . . . . . . . . . . . . . . .  18
       7.3.1.  RTR Control Plane Operations  . . . . . . . . . . . .  18
       7.3.2.  RTR Data Plane Forwarding . . . . . . . . . . . . . .  20
   8.  Security Considerations . . . . . . . . . . . . . . . . . . .  20
   9.  Backward Compatibility with early version of this document  .  21
   10. IANA Considerations . . . . . . . . . . . . . . . . . . . . .  22
   11. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . .  23
   12. References  . . . . . . . . . . . . . . . . . . . . . . . . .  23
     12.1.  Normative References . . . . . . . . . . . . . . . . . .  23
     12.2.  Informative References . . . . . . . . . . . . . . . . .  24
   Appendix A.  LISP NAT Traversal Example . . . . . . . . . . . . .  24
     A.1.  EID Prefix Registration Example . . . . . . . . . . . . .  24
     A.2.  Data Communication Example  . . . . . . . . . . . . . . .  27
   Author's Address  . . . . . . . . . . . . . . . . . . . . . . . .  27









Iannone                  Expires 20 August 2026                 [Page 2]


Internet-Draft             LISP NAT Traversal              February 2026


1.  Introduction

   The Locator/ID Separation Protocol [RFC9300] [RFC9301] defines a set
   of functions, for participating routers, to exchange information used
   to map from Endpoint IDentifiers (EIDs) to routable Routing LOCators
   (RLOCs).  The assumption that the LISP Tunnel Routers are reachable
   at their RLOC breaks when a LISP device is behind a Network Address
   Translator (NAT [RFC3022]).  LISP relies on the Tunnel Routers (xTRs)
   being able to receive traffic at their RLOC on destination port 4341.
   However, nodes behind a NAT are only reachable through the NAT's
   public address and in most cases only after the appropriate mapping
   state is created in the NAT.  Depending on the type of the NAT
   device, this mapping state may be address and port dependent.  In
   other words, the mapping state in the NAT device may be associated
   with the 5-tuple that forms a specific flow, preventing incoming
   traffic from any LISP router other than the one associated with the
   5-tuple.  A NAT traversal mechanism is needed to make the LISP device
   behind a NAT reachable.

   This document briefly discusses available NAT traversal options, and
   then it introduces in detail a NAT traversal mechanism specific for
   LISP.  Two new LISP control messages, namely LISP Info-Request and
   LISP Info-Reply, are introduced in order to detect whether a LISP
   device is behind a NAT, and discover the global IP address and global
   ephemeral port used by the NAT to forward LISP packets sent by the
   LISP device.  The LISP Re-encapsulating Tunnel Router (RTR)
   [RFC9300], acts as a re-encapsulating LISP tunnel router to pass
   traffic through the NAT, to and from the LISP device.  The use of
   LISP Encapsulated Control Messages (ECM) to send LISP Map-Register
   messages, allows LISP devices to initialize NAT state to use the RTR
   services.  This mechanism addresses the scenario where the LISP
   device is behind the NAT, but the associated Map-Server [RFC9301] is
   on the public side of the NAT.

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.  Definition of Terms

   This documents assumes that the reader is familiar with LISP and the
   LISP terminology.  For definitions of terms like Map-Request, Map-
   Reply, Ingress Tunnel Router (ITR), and Egress Tunnel Router (ETR),
   please consult the LISP specifications in [RFC9300] and [RFC9301].



Iannone                  Expires 20 August 2026                 [Page 3]


Internet-Draft             LISP NAT Traversal              February 2026


   Basic NAT:  See [RFC3022] and also Section 4.1.1 of [RFC2663].

   Data Plane Encapsulated Control Message (DP-ECM):  Is a LISP control
      message encapsulated with a LISP data plane header and defined in
      Section 6.4.

   Info-Request:  A LISP control message sent by a LISP device to its
      Map-Server to check whether it is behind a NAT and defined in
      Section 6.1.1.

   Info-Reply:  A LISP control message sent by a Map Server to a LISP
      device in response to an Info-Request control message and defined
      in Section 6.1.2.

   NAPT Network Address Port Translation:  See [RFC3022] and also
      Section 4.1.2 of [RFC2663].

   Re-encapsulating Tunnel Router (RTR):  As defined in [RFC9301].

   Site-ID:  As defined in [RFC9301].

   xTR-ID:  As defined in [RFC9301].

   In this document the general term NAT is used to refer to both Basic
   NAT and NAPT.

4.  NAT Traversal Basics

   There are a variety of NAT devices and a variety of network
   topologies utilizing NAT devices in deployments.  Most NAT devices
   deployed today are designed primarily around the client/server
   paradigm, where clients inside a private network do initiate
   connections to public servers with public IP addresses.  As such, any
   protocol requiring a device or host, in a private network behind a
   NAT, to receive packets or accept sessions from public servers/hosts,
   without first initiating a session or sending packets towards those
   servers/hosts, will be challenged by deployed NAT devices.

   NAT devices are loosely classified based on how restrictive they are.
   This classification is essentially identifying the type of mapping
   state that the NAT device is requiring to allow incoming traffic.
   For instance, the mapping state may be end-point independent, where
   once device A inside the private network sends traffic to a
   destination outside, a mapping state in the NAT is created that only
   includes information about device A, namely its IP address and
   perhaps its port number.  Once this mapping is established in the NAT
   device, any external device with any IP address could send packets to
   device A.  More restrictive NAT devices could include the 5-tuple



Iannone                  Expires 20 August 2026                 [Page 4]


Internet-Draft             LISP NAT Traversal              February 2026


   information of the flow as part of the mapping state, in other words,
   the mapping state in the NAT is dependent upon source IP and port, as
   well as destination IP and port (symmetric NAT or endpoint-dependent
   NAT).  Such a NAT only allows traffic from the specified destination
   IP and port to reach the specified source device on the specified
   source port.  Traffic with a different 5-tuple signature will not be
   allowed to pass.  In general, in the case of less restrictive NATs it
   may be possible to eventually establish direct peer-to-peer
   connections, by means of various hole punching techniques and initial
   rendezvous servers.  However, in the case of symmetric NATs or NATs
   with endpoint-address-and-port-dependent mappings, direct connection
   may prove impossible.  In such cases, a relay device is required that
   is in the public network and can relay packets between the two
   endpoints.

   Various methods have been designed to address NAT traversal
   challenges, mostly in the context of peer-to-peer applications and
   protocols.  Among these, the Interactive Connectivity Establishment
   (ICE) [RFC8445] seems the most comprehensive, which defines a
   protocol that leverages other protocols such as Session Traversal
   Utilities for NAT (STUN) [RFC8489] and Traversal Using Relays around
   NAT (TURN) [RFC8656], as well as rendezvous servers to identify and
   exchange a list of potential transport (IP and port) addresses
   between the two endpoints.  All possible pairs of transport addresses
   are exhaustively tested to find the best possible option for
   communication, preferring direct connections to connections using a
   relay.  In the case of most restrictive NATs, ICE leads to use of
   TURN servers as relay for the traffic.  TURN requires a list of
   allowed peer IP addresses defined as permissions, before allowing a
   peer to use the relay server to reach a TURN client.

   Common NAT traversal techniques such as ICE generally assume bi-
   directional traffic with the same 5-tuple.  LISP, however, requires
   traffic to use destination UDP port 4341, without specifying the
   source port.  As a result, LISP traffic is generally unidirectional.
   This means that, in the case of symmetric or endpoint-address-and-
   port-dependent mapping NATs, even when an outgoing mapping is
   established, still incoming traffic may not match the established
   mapping and will not be allowed to pass.  As a result, while ICE may
   be used to traverse less restrictive NATs, the use of standard TURN
   servers as relays to traverse symmetric NATs for LISP protocol is not
   possible.

   The rest of this document specifies a NAT traversal technique that
   enables LISP protocol to traverse multiple types of NATs including
   symmetric NATs.





Iannone                  Expires 20 August 2026                 [Page 5]


Internet-Draft             LISP NAT Traversal              February 2026


5.  LISP NAT Traversal Overview

   There are two attributes of a LISP device behind a typical NAT that
   requires special consideration in LISP protocol behavior in order to
   make the device reachable.  First, the RLOC assigned to the device is
   typically not globally unique nor globally routable.  Hence, for NAT
   traversal, outbound packets are required to create state before the
   NAT accepts inbound packets.  Second, LISP protocol requires an xTR
   to receive traffic on the specific UDP port 4341, hence, the random
   UDP port allocated by the NAT on its public side to associate with a
   xTR behind the NAT cannot be used by other xTRs to send LISP traffic.
   This section provides an overview of the LISP NAT traversal mechanism
   which deals with these conditions, while the rest of the document
   specifies the mechanism in details.

   When a LISP device needs to register an RLOC in the mapping system,
   it needs first to discover whether the RLOC is behind a NAT.  To do
   this, the ETR queries its Map-Server to discover the ETR's translated
   global RLOC and port, via two new LISP messages, namely Info-Request
   (see Section 6.1.1) and Info-Reply (see Section 6.1.1).  Once the ETR
   detects that it is behind a NAT, it uses a Re-encapsulating Tunnel
   Router (RTR) as an anchor point for sending and receiving data plane
   traffic through the NAT device.  The ETR registers the RTR RLOC(s) to
   its Map-Server using the RTR as a proxy for the Map-Register message.
   The ETR encapsulates the Map-Register message in a LISP Encapsulated
   Control Message (ECM) destined to the RTR's RLOC using 4341 as source
   port.  This initializes state in the NAT device so that the ETR can
   receive traffic on port 4341 from the RTR.  The ETR also registers
   the RTR RLOC as the RLOC where the ETR EID prefix is reachable.  As a
   result, all packets destined to the ETR's EID will go to the
   registered RTR.  The RTR will then re-encapsulate and forward the
   traffic, thanks to the existing NAT state, to the ETR.

   Outbound LISP data traffic from the ITR can be sent directly to the
   external destinations, however this will create state on the NAT.  To
   avoid excessive state on the NAT device, the ITR can encapsulate
   outgoing traffic to the RTR, where the RTR decapsulates the LISP
   packets, and then re-encapsulates them or forwards them natively
   depending on whether their destination is a LISP site or not.

   A complete and detailed example of LISP NAT traversal can be found in
   Appendix A.

6.  LISP Messages Details

   The main modifications in the LISP protocol to enable LISP NAT
   traversal via an RTR include:




Iannone                  Expires 20 August 2026                 [Page 6]


Internet-Draft             LISP NAT Traversal              February 2026


   1.  two new messages used for NAT discovery, namely Info-Request and
       Info-Reply;

   2.  the encapsulation of the Map-Register, between the xTR and the
       RTR, in an ECM header;

   3.  the Data Plane Encapsulation of the ECM-encapsulated Map-Notify
       (DP-ECM MAp-Notify), between the RTR and the xTR;

   This section describes the messages format of the Info-Request
   (Section 6.1.1), Info-Reply (Section 6.1.2), and DP-ECM Map-Notify
   (Section 6.3) messages, as well as minor changes to Map-Register and
   Map-Notify messages.

6.1.  Info-Request/Info-Reply Messages Format

   An ETR sends an Info-Request message to its configured Map-Server, to
   trigger an Info-Reply message, in order to detect whether there is a
   NAT device on the path to its Map-Server and to obtain a list of RTR
   RLOCs that can be used for LISP data plane NAT traversal.

   The Info-Request and Info-Reply are actually one single LISP control
   message (using the same type code-point), which are distinguished by
   a bit that indicates whether the message is a request or a reply and
   the presence of a NAT LCAF [I-D.ietf-lisp-rfc8060bis] in the latter.
   The rest of the message is the same and has the format depicted in
   Figure 1.

    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
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   | Type  |R|            Reserved                                 |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   ~                            Nonce                              ~
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |    Key ID     | Algorithm ID  |  Authentication Data Length   |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   ~                     Authentication Data                       ~
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                        NAT LCAF TTL                           |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |   Reserved    | EID mask-len  |        EID-prefix-AFI         |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                          EID-prefix                           |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   ~                          NAT LCAF                             ~
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+




Iannone                  Expires 20 August 2026                 [Page 7]


Internet-Draft             LISP NAT Traversal              February 2026


         Figure 1: Generic Info-Request/Info-Reply Message Format.

   Where:

   Type:  TBD (Info-Request/Info-Reply)

   Reply (R):  R-bit indicates this is a Info-Reply to an Info-Request.
      R-bit is set to 0 in an Info-Request.  R-bit is set to 1 in an
      Info-Reply.

   Reserved:  MUST be set to 0 on transmit and MUST be ignored on
      receipt.

   NAT LCAF TTL:  For Info-Request (R=0) this field MUST be set to 0 on
      transmission and MUST be ignored on reception.  For Info-Replies
      (R=1), this field expresses the time, in minutes, the recipient of
      the Info-Reply CAN store the RTR information of the NAT LCAF.

   Nonce:  As defined in Section 5.6 of [RFC9301].

   Key ID:  As defined in Section 5.6 of [RFC9301].

   Algorithm ID:  As defined in Section 5.6 of [RFC9301].

   Authentication Data Length:  As defined in Section 5.6 of [RFC9301].

   Authentication Data:  As defined in Section 5.6 of [RFC9301].

   NAT LCAF:  As defined in [I-D.ietf-lisp-rfc8060bis].  This field is
      appended only to Info-Reply messages (R=1) and is used by ETR to
      detect whether the RLOC of the Info-Request is behind a NAT
      device.

   The following sections describe in details the Info-Request and Info-
   Reply variants.

6.1.1.  Info-Request Message

   An Info-Request message is a LISP control message, its source port is
   chosen by the xTR and its destination port is set to the reserved
   LISP Control Packet port number 4342.










Iannone                  Expires 20 August 2026                 [Page 8]


Internet-Draft             LISP NAT Traversal              February 2026


    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
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   | Type  |0|            Reserved                                 |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   ~                             Nonce                             ~
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |    Key ID     | Algorithm ID  |  Authentication Data Length   |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   ~                     Authentication Data                       ~
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                         0x00000000                            |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |   Reserved    | EID mask-len  |        EID-prefix-AFI         |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                          EID-prefix                           |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                Figure 2: LISP Info-Request Message Format.

   Type:  TBD (Info-Request/Info-Reply)

   Reply (R):  MUST be set to 0 (zero).

   NAT LCAF TTL:  MUST be set to zero (0) on transmit and MUST be
      ignored on receipt.

   The rest of the fields MUST be set in the same way as for a Map-
   Register message (see Section 5.6 of [RFC9301]) and according to
   procedures described in Section 7.

6.1.2.  Info-Reply Message

   The format of the Info-Reply message indicating the presence of a NAT
   device is depicted in Figure 3, its source port is chosen by the Map-
   Server and its destination port is set to the reserved LISP Control
   Packet port number 4342.














Iannone                  Expires 20 August 2026                 [Page 9]


Internet-Draft             LISP NAT Traversal              February 2026


       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
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      | Type  |1|               Reserved                              |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      ~                             Nonce                             ~
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |            Key ID             |  Authentication Data Length   |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      ~                     Authentication Data                       ~
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |                         NAT LCAF TTL                          |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |   Reserved    | EID mask-len  |        EID-prefix-AFI         |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |                          EID-prefix                           |
   +->+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |  |           AFI = 16387         |    Rsvd1      |     Flags     |
   |  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |  |    Type = 7     |     Rsvd2   |             Length            |
   |  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   N  |        MS UDP Port Number     |      ETR UDP Port Number      |
   A  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   T  |              AFI = x          | Global ETR RLOC Address       ~
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   L  |              AFI = x          | MS RLOC Address               ~
   C  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   A  |              AFI = x          | Private ETR RLOC Address      ~
   F  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |  |              AFI = x          | RTR RLOC Address 1            ~
   |  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |  |              AFI = x          | RTR RLOC Address N            ~
   +->+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                 Figure 3: LISP Info-Reply Message Format.

   Type:  TBD (Info-Request/Info-Reply)

   Reply (R):  MUST be set to 1 (one).

   NAT LCAF TTL:  This is the time in minutes the recipient of the Info-
      Reply can store the NAT LCAF information.  MUST be different from
      0.

   NAT LCAF:  NAT LISP Canonical Address Format, as defined in
      [I-D.ietf-lisp-rfc8060bis].





Iannone                  Expires 20 August 2026                [Page 10]


Internet-Draft             LISP NAT Traversal              February 2026


   The rest of the fields MUST be set in the same way as for a Map-
   Notify message (see Section 5.7 of [RFC9301]) and according to
   procedures described in Section 7.

6.2.  Map-Register Message

   For a full description of all fields in the Map-Register message
   refer to Map-Register section in [RFC9301].  A LISP device that sends
   a Map-Register to an RTR, MUST encapsulate the Map-Register message
   using an Encapsulated Control Message (ECM) [RFC9301] and MUST set
   the M-bit in the ECM header to indicate that the message is destined
   to a Map-Server.

   The outer header source RLOC of the ECM is set to the LISP device's
   private RLOC, and the outer header source port is set to 4341.  The
   outer header destination RLOC and port are set to RTR RLOC and 4342
   respectively.  The inner header source RLOC is set to LISP device's
   private RLOC, and the inner source port is picked at random.  The
   inner header destination RLOC is set to the Map-Server RLOC, and the
   inner header destination port is set to 4342.

   In case of LISP site having several xTRs, in order to identify the
   intended recipient xTR for a Map-Notify message the xTR-ID and Site-
   ID MUST be appended to the Map-Register message.  If appended, the
   I-bit in the Map-Register message MUST be set to 1 (see [RFC9301]).
   An xTR can choose not to append the xTR-ID and Site-ID, in this case
   the RTR will consider as the intended recipient of the Map-Notify
   message the xTR identified by the source RLOC of the Map-Register
   message (i.e. the source address of the inner header of the ECM Map-
   Register).

6.3.  Map-Notify Message

   For a full description of all fields in the Map-Notify message refer
   to Map-Notify section in [RFC9301].  A Map-Server that sends a Map-
   Notify to an RTR encapsulates the Map-Notify message using an ECM
   with the E-bit set to 1 to indicate that the inner message is
   destined to an ETR.

   The outer header source RLOC of the ECM is set to the Map-Server
   RLOC, and the outer header source port is set to 4342.  The outer
   header destination RLOC and port are set to RTR's RLOC and 4342
   respectively.  The inner header source RLOC is set to the Map-Server
   RLOC, and the inner header source port is set to 4342.  The inner
   header destination RLOC is set to the LISP device's private RLOC
   copied from the Map-Register, and inner header destination port is
   set to 4342.




Iannone                  Expires 20 August 2026                [Page 11]


Internet-Draft             LISP NAT Traversal              February 2026


   If the Map-Register carried xTR-ID and Site-ID, the corresponding
   Map-Notify MUST set the I-bit to 1 and the xTR-ID and Site-ID from
   the Map-Register appended to the Map-Notify message.

6.4.  Data Plane ECM Map-Notify Message

   When an RTR receives an ECM Map-Notify message with the E-bit in the
   ECM header set to 1, it has to relay the Map-Notify to the
   registering LISP device.  After removing the ECM header and
   processing the Map-Notify message as described in Section 7.3, the
   RTR encapsulates the Map-Notify first in an ECM and then in a LISP
   data plane header and sends it to the associated LISP device.  This
   Map-Notify ECM inside a LISP data plane header is referred to as a
   Data Plane ECM Map-Notify message (or DP-ECM Map-Notify Message).





































Iannone                  Expires 20 August 2026                [Page 12]


Internet-Draft             LISP NAT Traversal              February 2026


        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
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      /|                       IPv4 or IPv6 Header                     |
    OH |                      (uses RLOC addresses)                    |
      \|                                                               |
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      /|       Source Port = 4342      |       Dest Port = xxxx        |
    UDP+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      \|           UDP Length          |        UDP Checksum           |
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      /|                                                               |
   LISP|                           LISP Header                         |
      \|                                                               |
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      /|                       IPv4 or IPv6 Header                     |
    MH |                      (uses RLOC addresses)                    |
      \|                                                               |
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      /|       Source Port = 4342      |       Dest Port = 4342        |
   UDP +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      \|           UDP Length          |        UDP Checksum           |
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   LISP|Type=8 |S|D|R|R|            Reserved                           |
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      /|                       IPv4 or IPv6 Header                     |
    IH |                  (uses RLOC or EID addresses)                 |
      \|                                                               |
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      /|       Source Port = 4342      |       Dest Port = 4342        |
    UDP+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      \|           UDP Length          |        UDP Checksum           |
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    LCM|                     LISP Map-Notify Message                   ~
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                    Figure 4: DP-ECM Map-Notify Message.

   In a DP-ECM Map-Notify, the outer header source RLOC is set to the
   RTR's RLOC that was used in the associated ECM Map-Register.  This is
   previously cached by the RTR.  The outer header source port is set to
   4342.  The outer header destination RLOC and port are filled based on
   the translated global RLOC and port of the registering LISP device
   previously stored locally at the RTR.  The middle ECM header (MH)
   source RLOC is set to the RTR RLOC, and the source port is set to
   4342, the destination RLOC is set to the LISP device's private RLOC
   copied from the Map-Register, and destination port is set to 4342.
   The inner Map-Notify is unchanged, just forwarded, hence its header



Iannone                  Expires 20 August 2026                [Page 13]


Internet-Draft             LISP NAT Traversal              February 2026


   is as set by the Map-Server, namely the source address is the Map-
   Server's RLOC, the inner header source port is 4342, the destination
   address is the LISP device's private RLOC, and the destination port
   is 4342.

7.  Protocol Operations

   There are two main steps in the NAT traversal procedure.  First, the
   ETR's translated global RLOC needs to be discovered.  Second, the NAT
   translation table needs to be updated to accept incoming connections
   and the RTR needs to be informed of the ETR's translated global RLOC,
   including the translated ephemeral port number(s) at which the RTR
   can reach the LISP device.

7.1.  xTR Processing

   If an ETR is configured to perform NAT discovery and traversal, when
   it needs to register an RLOC in the mapping system, it has first to
   detect whether the RLOC is behind a NAT device.  For this purpose,
   the ETR sends an Info-Request message to its Map-Server in order to
   discover the ETR's translated global RLOC as it is visible to the
   Map-Server.  The ETR uses the private to-be-registered RLOC as the
   source RLOC of the message.  The Map-Server, after authenticating the
   message, responds with an Info-Reply message.  The Map-Server
   includes the source RLOC and port from the Info-Request message in
   the Global ETR RLOC Address and ETR UDP Port Number fields of the
   NAT-Traversal LCAF appended to the Info-Reply.  The Map Server also
   includes the destination RLOC and port number of the Info-Request
   message in the MS RLOC Address and MS UDP Port Number fields of the
   NAT LCAF.  In addition, the Map-Server provides the list of RTR RLOCs
   that the ETR may use for NAT traversal services.  The source port of
   the Info-Reply is set to 4342 and the destination port is copied from
   the source port of the triggering Info-Request message.

   Upon receiving and authenticating the Info-Reply message, the ETR
   compares the source RLOC and source port used for the Info-Request
   message with the Global ETR RLOC Address and ETR UDP Port Number
   fields in the NAT LCAF in the Info-Reply message.  If the two are
   identical, indicating there is no NAT on the path identified by an
   info-Request and an Info-Reply, the ETR registers the associated RLOC
   with its Map-Server as described in [RFC9301].  Otherwise, the ETR
   concludes that the to-be-registered RLOC is a private address behind
   a NAT and that it requires an RTR for NAT traversal services in order
   to be reachable at that RLOC.  The Info-Reply will contain a NAT
   LCAF, whose content the ETR MUST register in its local EID-to-RLOC
   Database.  This entry CAN be stored the number of minutes indicated
   in the NAT LCAF TTL field of the Info-Reply message.  If NAT is
   detected but the NAT LCAF does not contain any RTR, then NAT



Iannone                  Expires 20 August 2026                [Page 14]


Internet-Draft             LISP NAT Traversal              February 2026


   traversal cannot be accomplished.  The ETR still stores the content
   in the EID-to-RLOC Database for up to NAT LCAF TTL minutes, but it
   MUST also create a log message to signal that the RLOC cannot be
   registered because of an empty RTR set and MUST NOT use the RLOC for
   LISP operation.

   In the case where an xTR has multiple RLOCs, Info-Requests SHOULD be
   sent per each RLOC, so to perform per-RLOC NAT discovery.  NAT
   discovery can be disabled in deployments where it is known to not
   include NAT devices.  Unless the xTR is not willing to receive
   traffic via all RLOCs, NAT traversal SHOULD accomplished per each
   RLOC that has been detected as being a private address behind a NAT.
   This is required to establish the state in the NAT device for that
   RLOC.

   It is worth noting that a STUN MAY also be used to do NAT detection
   and to discover the NAT-translated public IP address and port number
   for the ETR behind NAT.  If STUN is used, the list of RTR devices
   that can be used by the xTR for NAT traversal have to be provisioned
   via other means which are outside the scope of this document.

7.1.1.  ETR Processing

   Once an ETR has detected its RLOC is behind a NAT, based on local
   policy, the ETR selects one (or more) RTR(s), from the RTR RLOCs
   provided in the Info-Reply message, as both control and data plane
   proxy.  Next, it needs to initializes state in the NAT in order to
   receive LISP data traffic on UDP port 4341 from the selected RTR(s).
   To do so, the ETR sends an ECM-encapsulated Map-Register to the
   selected RTR(s).  The Map-Register message is created as specified in
   [RFC9301].  More specifically, the source RLOC of the Map-Register is
   set to ETR's private RLOC, while the destination RLOC is set to the
   ETR's Map-Server RLOC, and destination port is set to 4342.  The ETR
   MUST set the P-bit (proxy Map-Reply) and the M-bit (want-Map-Notify)
   in Map-Register both to 1, and MUST include the selected RTR RLOC(s)
   as the locators in the Map-Register message.















Iannone                  Expires 20 August 2026                [Page 15]


Internet-Draft             LISP NAT Traversal              February 2026


   The ETR MAY also include its private RLOCs as locators in the Map-
   Register, including weight and priorities, but MUST set the R-bit
   (reachability bit) in the locator record to 0.  This enables the RTR
   to perform load balancing when forwarding data to an xTR with several
   RLOCs behind a NAT.  The R-bit MUST be set to 1 for all RTR locators
   included in the Map-Register.  The ETR MAY also set the I-bit in the
   Map-Register message to 1 and include its xTR-ID and Site-ID in the
   corresponding fields.  In the ECM header of this Map-Register, the
   source RLOC is set to ETR's private RLOC and the source port is set
   to 4341, while the destination RLOC is the RTR's RLOC and the
   destination port is set to LISP control port 4342.  The M-bit in the
   ECM header MUST be set to 1, to indicate that this ECM Map-Register
   is to be forwarded to a Map-Server.

   This ECM Map-Register is then sent to the RTR, its processing is
   described in Section 7.3.

   Upon receiving DP-ECM Map-Notify from the RTR, the ETR MUST strip the
   outer LISP data header, and process the inner ECM Map-Notify message
   as described in [RFC9301].  When decapsulating, in accordance to
   [RFC9300], the ETR checks its EID-to-RLOC Database.  In case of a DP-
   ECM, the inner header destination address is not an EID but the same
   private RLOC as the outer header, yet, since this RLOC is part of a
   NAT LCAF and the source port is 4342, the inner messages is
   considered a LISP control message and processed according to
   [RFC9301].

   If ETR did send its xTR-ID and Site-ID in the Map-Register message
   and receives a DP-ECM Map-Notify with different xTR-ID and/or Site-
   ID, it MUST log this as an error.  The ETR MUST discard such DP-ECM
   Map-Notify message.

   At this point the registration and state initialization is complete
   and the xTR can use the RTR for both control and data plane proxy.
   The state created in the NAT is used by the xTR behind the NAT to
   send and receive LISP control packets to/from the RTR, as well as for
   receiving LISP data packets from the RTR.

   The ETR MUST periodically send ECM Map-Register messages to its RTR
   in order to both refresh its registration to the RTR and the Map-
   Server as for [RFC9301], as well as a keep-alive to preserve the
   state in the NAT device.  [RFC2663] points out that the period for
   sending the keep-alive messages can be set to a default value of two
   minutes, however since shorter timeouts may exist in some NAT
   deployments, the interval for sending periodic ECM Map-Registers has
   to be configured accordingly.





Iannone                  Expires 20 August 2026                [Page 16]


Internet-Draft             LISP NAT Traversal              February 2026


   When a Map-Request for a LISP device behind a NAT is received by its
   Map-Server, the Map-Server responds with a Map-Reply including RTR's
   RLOC as the locator for the requested EID.  As a result, all LISP
   data traffic destined for the ETR's EID behind the NAT is
   encapsulated to its RTR.  The RTR re-encapsulates the LISP data
   packets to the ETR's translated global RLOC and port number so the
   data can pass through the NAT device and reach the ETR.  As a result,
   the ETR receives LISP data traffic with outer header destination port
   set to 4341 as specified in [RFC9301].

7.1.2.  ITR Processing

   If ITRs have only private RLOCs, they cannot directly send Map-
   Request and receive Map-Reply messages for EID mapping lookups, since
   the Map-Requests (creating state in the NAT) are sent to Map-
   Resolvers, but Map-Replies come back from ETRs or Map-Servers, for
   which there is no state in the NAT device, which will drop the
   packets.

   The ITR behind a NAT can use its RTR(s) RLOC(s) as locator(s) for all
   destination EIDs that it wishes to send data to.  The ITR
   encapsulates the LISP traffic in a LISP data header with outer header
   destination set to RTR RLOC and outer header destination port set to
   4341.  This creates a secondary state in the NAT device.  It is
   RECOMMENDED that the ITR sets the outer header source port in all
   LISP data packets to a random but static port number in order to
   avoid creating excessive state in the NAT device.  By using the RTR
   as proxy, the ITR does not need to send Map-Requests for finding EID-
   to-RLOC mappings.  However, if the ITR is multi-homed and has at
   least one RLOC not behind a NAT, it can choose to send Map-Requests
   using non-private RLOCs.  For this, the ITR specifies in the ITR-RLOC
   field of the Map-Request the list of RLOCs that are not behind NAT
   that can receive Map-Reply messages.  If all RLOCs of an ITR are
   behind the NAT and use the same RTR, then the xTR can even map the
   EID prefix 0/0 to its RTR RLOC(s) in its EID-to-RLOC Map-Cache.

   It should be noted that sending packets directly to destination RLOCs
   through the interface behind NAT will result in creating additional
   state in the NAT device.  Furthermore, outgoing packets use a direct
   path while the incoming packets are forwarded through the RTR.

   Periodic ECM Map-Register and corresponding DP-ECM Map-Notify
   messages between xTR and RTR, can serve the purpose of RLOC probes as
   of [RFC9301], except that the LISP device behind a NAT only can probe
   the RTR's RLOCs.






Iannone                  Expires 20 August 2026                [Page 17]


Internet-Draft             LISP NAT Traversal              February 2026


   If the ITR and ETR of a site are not collocated, the RTR RLOC need to
   be configured in the ITR via an out-of-band mechanism.  Other
   procedures specified here would still apply.

7.2.  Map-Server Processing

   When a Map-Server receives an Info-Request message, it responds with
   an Info-Reply message by copying back the same message, but setting
   the R-bit to 1.  Furthermore, it appends the NAT LCAF with the
   mapping between private and public addresses.  Map-Server fills the
   NAT LCAF (LCAF Type = 7) fields according to Section 4.4 of
   [I-D.ietf-lisp-rfc8060bis], in particular, it copies the source RLOC
   and port number of the Info-Request message to the Global ETR RLOC
   Address and ETR UDP Port Number fields of the NAT LCAF and includes a
   list of RTR RLOCs that the ETR may use for NAT traversal services for
   the EID-Prefix communicated in the Info-Request message.  In case
   that there is no list of RTRs in the NAT LCAF, this means that there
   is no NAT traversal service for the specific EID.  The Info-Reply
   message source port is 4342, and destination port and destination
   address is taken from the source port and source address of the
   triggering Info-Request.

   Upon receiving an ECM Map-Register message, with the M-bit set, the
   Map-Server processes the inner Map-Register message and generates the
   resulting Map-Notify as described in [RFC9301].  If in the Map-
   Register message the I-bit is set, the Map-Server also locally stores
   the xTR-ID and Site-ID from the Map-Register, and sets the I-bit in
   the corresponding Map-Notify message and includes the same xTR-ID and
   Site-ID in the Map-Notify.  The Map-Server then encapsulates the Map-
   Notify in an ECM header and sets the E-bit in the ECM header to 1.
   This indicates that the ECM Map-Notify is to be processed by an RTR
   and forwarded to an ETR.  The ECM Map-Notify is then sent to the RTR
   RLOC and port number from which the ECM Map-Register has been
   received.

7.3.  RTR Processing

7.3.1.  RTR Control Plane Operations

   Upon receiving an ECM Map-Register with the M-bit set in the ECM
   header, the RTR creates an EID-to-RLOC Map-Cache entry for the EID-
   prefix that is specified in the inner Map-Register message.  The EID-
   to-RLOC Map-Cache entry MUST include the source RLOC, the source port
   number, which are the translated global RLOC and port number visible
   to the RTR, the destination RLOC (RTR's own RLOC) of the outer
   header, as well as the source RLOC (xTR's private RLOC), the EID
   mapping record present in the inner Map-Register message (see
   [RFC9301] for details), and, if present, the xTR-ID and the Site-ID.



Iannone                  Expires 20 August 2026                [Page 18]


Internet-Draft             LISP NAT Traversal              February 2026


   The RTR can later use these fields for sending DP-ECM Map-Notify back
   to the ETR.  The Nonce field MUST also be stored and used for
   security purposes and is matched with the Nonce field in the
   corresponding Map-Notify message.  This EID-to-RLOC Map-Cache entry
   is marked as "pending", until the corresponding Map-Notify message is
   received and in this state MUST NOT be used to send data packets.

   xTRs with multiple RLOCs behind the NAT, can list them in the RLOC
   Record in the Map-Register with reachability bit set to zero (R=0),
   the RTR CAN store such private RLOCs, but MUST NOT use private RLOCs
   for which no explicit ECM Map-Register using it as source address in
   the inner header has been received.  This is because without an ECM
   Map-Register there is no state in the NAT device that allow correct
   delivery of the returning packets.  Furthermore, the EID-to-RLOC Map-
   Cache entry does not contain the translated global RLOC and port
   number visible to the RTR.  However, an ECM Map-Register message MAY
   be used to update priority and weight of private RLOCs for which an
   ECM Map-Register has been already received, even if the message is
   not originating from that RLOC, but is originated from the same xTR,
   identified by the unique xTR-ID.

   A Map-Register originating from a unique xTR-ID will always overwrite
   previously stored information for that xTR-ID, but it does not modify
   the information indicated by any other xTR-ID serving the same EID
   prefix.  As a result, in the case of a renumbering or xTR reboot, the
   xTR can use its unique xTR-ID in a Map-Register, overwriting the
   previously stored information for that xTR.  Using this method, the
   xTR can, for instance, immediately remove any private RLOC from the
   RTR EID-to-RLOC Map-Cache that is no longer present in the locator
   record of the ECM Map-Register, for which NAT state is most probably
   non-existing anymore.

   After filling the local EID-to-RLOC Map-Cache entry, the RTR strips
   the outer header and extracts the Map-Register message, encapsulated
   in a new ECM header with the E-bit set to 0, and M-bit set to 1, and
   sends the ECM Map-Register to destination Map-Server.  Map-Server
   responds with an ECM Map-Notify message to the RTR as described
   Section 7.2.

   Upon receiving an ECM Map-Notify message with E-bit set to 1 in the
   ECM header and the Nonce of a pending EID-to-RLOC Map-Cache entry,
   the RTR is notified that the Map-Register message was accepted by the
   Map-Server.  The RTR MUST verify that the returned information is the
   same as seen in the ECM Map-Register, if not the message MUST be
   silently dropped.  If the information is correct, at this point the
   RTR can change the state of the associated EID-to-RLOC Map-Cache
   entry to "active" for the duration of the TTL indicated in the Map-
   Notify message.



Iannone                  Expires 20 August 2026                [Page 19]


Internet-Draft             LISP NAT Traversal              February 2026


   The RTR then uses the information in the associated EID-to-RLOC Map-
   Cache entry to create a DP-ECM Map-Notify message, where the outer
   header destination RLOC and port number are set to the ETR's
   translated global RLOC and port number.  If more than one ETR
   translated RLOC and port exists in the EID-to-RLOC Map-Cache entry
   for the same EID prefix specified in the Map-Notify, the RTR uses the
   xTR-ID from the Map-Notify to identify which ETR is the correct
   destination for the DP-ECM Map-Notify.  The RTR sets the LISP data
   plane outer header source RLOC to RTR's RLOC from the EID-to-RLOC
   Map-Cache entry and the outer header source port is set to 4342.
   Then it set the ECM header using source and destination port 4342,
   destination address the ETR private RLOC and as source address the
   RTR RLOC.  Finally, the RTR sends the DP-ECM Map-Notify to the ETR.

   LISP defines several mechanisms to signal updated mappings in the
   data-plane [RFC9300] and in the control plane [RFC9301].  If the Map-
   Register / Map-Notify modifies and existing EID-to-RLOC Map-Cache
   entry, the RTR can use these mechanisms to signal the change to
   devices using the RTR to send traffic to the xTRs behind a NAT
   device.

7.3.2.  RTR Data Plane Forwarding

   An RTR processes LISP data plane packets according to [RFC9300].  In
   the case where the destination EID is a previously registered EID
   behind a NAT device, the RTR strips the LISP data header and re-
   encapsulate the packet in a new LISP data header.  The outer header
   RLOCs and UDP ports are then filled based on the matching EID-to-RLOC
   Map-Cache entry for the associated destination EID prefix.  The RTR
   uses the RTR RLOC from the EID-to-RLOC Map-Cache entry as the outer
   header source RLOC.  The outer header source port is set to 4342.
   The RTR sets the outer header destination RLOC and outer header
   destination port based on the ETR translated global RLOC and port
   stored in the Map-Cache entry.  Then the RTR forwards the LISP data
   packet.

8.  Security Considerations

   These specifications leverage on mechanism defined in [RFC9300],
   [RFC9301], and [I-D.ietf-lisp-rfc8060bis], as such security
   considerations in those documents apply here as well.

   To protect origin authentication and integrity of control plane
   messages the LISP-SEC [RFC9303] MUST be used.

   Info-Request and Info-Reply messages have similar header structure
   like Map-Register and Map-Notify.  In particular, the first part of
   the messages are the same, only the payload changes (the part after



Iannone                  Expires 20 August 2026                [Page 20]


Internet-Draft             LISP NAT Traversal              February 2026


   the "Authentication Data" field).  As such authentication and
   integrity can be performed in the same way as for Map-Register and
   Map-Notify messages, hence the procedures described in Section 5.6 of
   [RFC9301] MUST be used with a pre-shared key between the xTR and the
   Map-Server.

   Similarly, Map-Register and Map-Notify MUST also be verified for
   authentication and integrity using pre-shared key between the xTR and
   the Map-Server as for [RFC9301].

   The pre-shared key for authentication and integrity verification of
   the Info-Request/Info-Reply messages SHOULD be different from the
   pre-shared key used for authentication and integrity verification of
   the Map-Request/Map-Reply messages.

   For the authentication and integrity protection of the RTR, the
   Encapsulated Control Message LISP-SEC Extensions defined in
   Section 6.1 of [RFC9303] MUST be used, employing two different sets
   of pre-shared keys, one between the RTR and the ETR and one between
   the RTR and the Map-Server.  [RFC9303] defines how to protect the
   ECM-encapsulated Map-Request/Map-reply messages.  The exact same
   operations can be used to protect ECM-encapsulated Map-Register/Map-
   Notify messages.  In this way, ETR and RTR can authenticate each
   other and verify the integrity of messages.  RTR and Map-Server can
   do exactly the same, authenticating each other and verifying the
   integrity of messages.

   Concerning the shared key among the various LISP entities,
   considerations in Section 7.5 of [RFC9303] apply.

   Mapping lookups, through Map-Request/Map-Reply messages exchange,
   performed by the RTR(s) and the xTR(s) MUST be protected using LISP-
   SEC [RFC9303].

   The RTR MUST re-encapsulate traffic only when the source or the
   destination are EIDs registered with the procedures described in this
   document and authenticated using LISP-SEC [RFC9303], which protects
   against the adverse use of an RTR for EID spoofing.

9.  Backward Compatibility with early version of this document

   Early versions of this document did not make use of DP-ECM
   encapsulation for the Map-Notify messages from RTRs to xTRs.
   Instead, a simple LISP Data plane encapsulation was used, which was
   marked with the IID field set to 0xFFFFFF so to hand over the packet
   directly from the LISP data plane to the LISP control plane.
   However, these choices come with the following drawbacks:




Iannone                  Expires 20 August 2026                [Page 21]


Internet-Draft             LISP NAT Traversal              February 2026


   *  Without ECM encapsulation, the receiving xTR has no means to
      authenticate and verify the integrity of the message coming from
      an RTR, since the inner Map-Notify only authenticates the Map-
      Server.

   *  The use of the IID 0xFFFFFF as shortcut through the protocol stack
      may lead to skip security checks and may be considered as an
      attack vector.  Decapsulating the LISP data plane packet and re-
      injecting it in the protocol stack, may appear less efficient but
      allows to make sure that the inner packet is checked against any
      security and/or filtering policy configured on the xTR.

   Early versions of this document also used to put an additional
   16-bits field at the end of the Info-Request message to mark the end
   of the message.  Rationale was: If this AFI field is 0 nothing
   follows, if this field is set to 16387, then a NAT LCAF is present.
   However, such field is pointless, since the UDP header encapsulating
   the LISP control messages has a field indicating the length of the
   message.

   For security reasons, as described in Section 8, the ECM
   encapsulation has been added in order to enable authetication of Map-
   Notify messages sent by RTRs to xTRs, the use of the 0xFFFFFF IID has
   been dropped, and Info-Request messages do not terminate with a null
   field.

   Implementations using early versions of this document are not
   compatible with the current specifications.  For security reasons it
   is RECOMMENDED to use implementations that support DP-ECM.  New LISP
   NAT traversal deployments MUST use implementations that support DP-
   ECM Map-Notify messages.

10.  IANA Considerations

   IANA is requested to allocate one codepoint from the "LISP Packet
   Types" registry, to be used to identify Info-Request/Info-Reply
   messages.  The new entry should be defined as in Table 1.

    +===============+==============================+=================+
    | Code          | Message                      | Reference       |
    +===============+==============================+=================+
    | 7 (suggested) | LISP Info-Request/Info-Reply | [This Document] |
    +---------------+------------------------------+-----------------+

                                 Table 1






Iannone                  Expires 20 August 2026                [Page 22]


Internet-Draft             LISP NAT Traversal              February 2026


11.  Acknowledgments

   The authors would like to thank Padma Pillay-Esnault, Noel Chiappa,
   Alberto Rodriguez Natal, Lorand Jakab, Dominik Klein, Matthias
   Hartmann, and Michael Menth for their previous work, feedback and
   helpful suggestions.

12.  References

12.1.  Normative References

   [I-D.ietf-lisp-rfc8060bis]
              Retana, A., Farinacci, D., Snijders, J., and A. Rodriguez-
              Natal, "LISP Canonical Address Format (LCAF)", Work in
              Progress, Internet-Draft, draft-ietf-lisp-rfc8060bis-03, 7
              January 2026, <https://datatracker.ietf.org/doc/html/
              draft-ietf-lisp-rfc8060bis-03>.

   [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/rfc/rfc2119>.

   [RFC2663]  Srisuresh, P. and M. Holdrege, "IP Network Address
              Translator (NAT) Terminology and Considerations",
              RFC 2663, DOI 10.17487/RFC2663, August 1999,
              <https://www.rfc-editor.org/rfc/rfc2663>.

   [RFC3022]  Srisuresh, P. and K. Egevang, "Traditional IP Network
              Address Translator (Traditional NAT)", RFC 3022,
              DOI 10.17487/RFC3022, January 2001,
              <https://www.rfc-editor.org/rfc/rfc3022>.

   [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/rfc/rfc8174>.

   [RFC9300]  Farinacci, D., Fuller, V., Meyer, D., Lewis, D., and A.
              Cabellos, Ed., "The Locator/ID Separation Protocol
              (LISP)", RFC 9300, DOI 10.17487/RFC9300, October 2022,
              <https://www.rfc-editor.org/rfc/rfc9300>.

   [RFC9301]  Farinacci, D., Maino, F., Fuller, V., and A. Cabellos,
              Ed., "Locator/ID Separation Protocol (LISP) Control
              Plane", RFC 9301, DOI 10.17487/RFC9301, October 2022,
              <https://www.rfc-editor.org/rfc/rfc9301>.





Iannone                  Expires 20 August 2026                [Page 23]


Internet-Draft             LISP NAT Traversal              February 2026


   [RFC9303]  Maino, F., Ermagan, V., Cabellos, A., and D. Saucez,
              "Locator/ID Separation Protocol Security (LISP-SEC)",
              RFC 9303, DOI 10.17487/RFC9303, October 2022,
              <https://www.rfc-editor.org/rfc/rfc9303>.

12.2.  Informative References

   [RFC8445]  Keranen, A., Holmberg, C., and J. Rosenberg, "Interactive
              Connectivity Establishment (ICE): A Protocol for Network
              Address Translator (NAT) Traversal", RFC 8445,
              DOI 10.17487/RFC8445, July 2018,
              <https://www.rfc-editor.org/rfc/rfc8445>.

   [RFC8489]  Petit-Huguenin, M., Salgueiro, G., Rosenberg, J., Wing,
              D., Mahy, R., and P. Matthews, "Session Traversal
              Utilities for NAT (STUN)", RFC 8489, DOI 10.17487/RFC8489,
              February 2020, <https://www.rfc-editor.org/rfc/rfc8489>.

   [RFC8656]  Reddy, T., Ed., Johnston, A., Ed., Matthews, P., and J.
              Rosenberg, "Traversal Using Relays around NAT (TURN):
              Relay Extensions to Session Traversal Utilities for NAT
              (STUN)", RFC 8656, DOI 10.17487/RFC8656, February 2020,
              <https://www.rfc-editor.org/rfc/rfc8656>.

Appendix A.  LISP NAT Traversal Example

   In what follows there is an example of an ETR initiating a
   registration of a new RLOC to its Map-Server, when the RLOC is behind
   a NAT (Appendix A.1).  A second example shows how data communication
   between a LISP site behind a NAT and a second LISP site works
   (Appendix A.2).

A.1.  EID Prefix Registration Example

   In this example, the ETR (Site1-ETR) is configured with the local
   RLOC of 172.16.1.2.  The NAT's global (external) addresses are from
   192.0.2.1/25 prefix.  The Map-Server is at 203.0.113.169.  And one
   potential RTR has an IP address of 203.0.113.1.  The Site1-ETR has an
   EID Prefix of 198.51.100.0/24.

   The steps to register the EID-Prefix of Site1-ETR in the MAP Server
   are as follows:

   1.   Site1-ETR receives the private IP address, 172.16.1.2 as its
        RLOC, for instance via DHCP.






Iannone                  Expires 20 August 2026                [Page 24]


Internet-Draft             LISP NAT Traversal              February 2026


   2.   Site1-ETR sends an Info-Request message with the destination
        RLOC of the Map-Server, 203.0.113.169, and source RLOC of
        172.16.1.2.  This packet has the destination port set to 4342
        and the source port is set to (for example) 5001.

   3.   The NAT device translates the source IP from 172.16.1.2 to
        192.0.2.1, and source port to (for example) 20001 global
        ephemeral source port.

   4.   The Map-Server receives and responds to this Info-Request with
        an Info-Reply message.  This Info-Reply has the destination
        address set to Site1-ETR's translated address of 192.0.2.1 and
        the source address is the Map-Server's RLOC, namely
        203.0.113.169.  The destination port is 20001 and the source
        port is 4342.  Map-Server includes a copy of the source address
        and port of the Info-Request message (192.0.2.1:20001), and a
        list of RTR RLOCs including RTR RLOC 203.0.113.1 in the Info-
        Reply contents.

   5.   The NAT translates the Info-Reply packet's destination IP from
        192.0.2.1 to 172.16.1.2, and translates the destination port
        from 20001 to 5001, and forwards the Info-Reply to Site1-ETR at
        172.16.1.2.

   6.   Site1-ETR detects that it is behind a NAT by comparing its local
        RLOC (172.16.1.2) with the Global ETR RLOC Address in the Info-
        Reply (192.0.2.1) . Then, Site1-ETR picks the RTR 203.0.113.1
        from the list of RTR RLOCs in the Info-Reply.  Site1-ETR stores
        the RTR RLOC in a default EID-to-RLOC Map-Cache entry to
        periodically send ECM Map-Registers to.

   7.   The ETR sends an ECM encapsulated Map-Register to RTR at
        203.0.113.1.  The outer header source RLOC of this Map-Register
        is set to 172.16.1.2 and the outer header source port is set to
        4341.  The outer header destination RLOC and port are set to RTR
        RLOC at 203.0.113.1 and 4342 respectively.  The M-bit in ECM
        header is set to 1.  The inner header destination RLOC is set to
        ETR's Map-Server 203.0.113.169, and the inner header destination
        port is set to 4342.  The inner header source RLOC is set to
        ETR's local RLOC 172.16.1.2 and the source port is set to (for
        example) 5002.  In the Map-Register message the RTR RLOC
        203.0.113.1 appears as the locator set for the ETR's EID prefix
        (198.51.100.0/24).  In this example, the ETR also sets the Proxy
        bit in the Map-Register to 1, and sets the I-bit to 1, and
        includes its xTR-ID and Site-ID in the Map-Register.






Iannone                  Expires 20 August 2026                [Page 25]


Internet-Draft             LISP NAT Traversal              February 2026


   8.   The NAT translates the source RLOC in the ECM header of the Map-
        Register, by changing it from 172.16.1.2 to 192.0.2.1, and
        translates the source port in the ECM header from 4341 to (for
        example) 20002, and forwards the Map-Register to RTR.

   9.   The RTR receives the Map-Register and creates an EID-to-RLOC
        Map-Cache entry with the ETR's xTR-ID, EID prefix, and the
        source RLOC and port of the ECM header of the Map-Register as
        the locator (198.51.100.0/24 is mapped to 192.0.2.1:20002).  RTR
        also caches the inner header source RLOC of the Map-Register
        namely 172.16.1.2, and the outer header destination RLOC of the
        ECM header in the Map-Register (this would be RTR's RLOC
        203.0.113.1 ) to use for sending back a DP-ECM Map-Notify.  RTR
        then removes the outer header, adds a new ECM header with M=0,
        and forwards the Map-Register to the destination Map-Server.

   10.  The Map-Server receives the ECM Map-Register, removes the ECM
        header, and processes it according to [RFC9301].  After
        registering the ETR, Map-Server responds with an ECM Map-Notify
        with the E-bit set to 1 in the ECM header.  Since the I-bit is
        set in the Map-Register, the Map-Server also sets the I-bit in
        the Map-Notify and copies the xTR-ID and Site-ID from the Map-
        Register to the Map-Notify.  The source address of this Map-
        Notify is set to 203.0.113.169.  The destination is copied from
        the local source address of the Map Register (172.16.1.2), and
        both source and destination ports are set to 4342.

   11.  The RTR receives the ECM Map-Notify.  It decapsulated the
        message stripping the ECM header, then re-encapsulates in a new
        ECM header and a LISP data plane header and sends the resulting
        DP-ECM Map-Notify to Site1-ETR with a matching xTR-ID.  The
        outer header source RLOC and port of the DP-ECM Map-Notify are
        set to 203.0.113.1:4342.  The outer header destination RLOC and
        port are retrieved from previously cached Map-Cache entry in
        step 9, namely 192.0.2.1:20002.  The ECM header source RLOC and
        port of are set to 203.0.113.1:4342, while destination RLOC and
        port are the local RLOC 172.16.1.2 and 4342 respectively.  At
        this point RTR marks ETR's EID prefix as "active" status and
        forwards the DP-ECM Map-Notify to ETR.

   12.  The NAT device translates the destination RLOC and port of the
        Data-Map-Notify to 172.16.1.2:4341 and forwards the packet to
        ETR.








Iannone                  Expires 20 August 2026                [Page 26]


Internet-Draft             LISP NAT Traversal              February 2026


   13.  The Site1-ETR receives the packet with a destination port 4341,
        and processes the packet as a data plane packet.  Then, since
        the inner header is an ECM with destination address the private
        RLOC and destination port number 4342, the packet is processed
        by the LISP control plane.  At this point ETR's registration to
        the RTR is complete.

A.2.  Data Communication Example

   Assume a requesting ITR in a second LISP site (Site2-ITR) has an RLOC
   of 192.0.2.129/25.  The following is an example of an EID behind
   Site2-ITR sending a data packet to an EID behind the Site1-ETR.

   1.  The ITR sends a Map-Request which arrives via the LISP mapping
       system to the ETR's Map Server.

   2.  The Map-Server sends a Map-Reply on behalf of the ETR, using the
       RTR's RLOC (203.0.113.1) in the Map-Reply's Locator Set.

   3.  The ITR encapsulates a LISP data packet with ITR's local RLOC
       (192.0.2.129/25) as the source RLOC and the RTR as the
       destination RLOC (203.0.113.1) in the outer header.

   4.  The RTR decapsulates the packet, evaluates the inner header
       against its EID-to-RLOC Map-Cache and then re-encapsulates the
       packet.  The new outer header's source RLOC is the RTR's RLOC
       203.0.113.1 and the new outer header's destination RLOC is the
       Global NAT address 192.0.2.1.  The destination port of the packet
       is set to 20002 (discovered above during the registration phase)
       and the source port is 4342.

   5.  The NAT translates the LISP data packet's destination IP from to
       192.0.2.1 to 172.16.1.2, and translates the destination port from
       20002 to 4341, and forwards the LISP data packet to the ETR at
       172.16.1.2.

   6.  For the reverse path the ITR uses its local EID-to-RLOC Map-Cache
       entry with the RTR RLOC as the default locator and encapsulates
       the LISP data packets using RTR RLOC, and 4341 as destination
       RLOC and port.

Author's Address

   Luigi Iannone (editor)
   Huawei Technologies France S.A.S.U.
   18, Quai du Point du Jour
   92100 Boulogne-Billancourt
   France



Iannone                  Expires 20 August 2026                [Page 27]


Internet-Draft             LISP NAT Traversal              February 2026


   Email: luigi.iannone@huawei.com


















































Iannone                  Expires 20 August 2026                [Page 28]