LISP for Satellite Networks
Dino Farinacci
lispers.net
San Jose
CA
USA
farinacci@gmail.com
Victor Moreno
Independent
Mountain View
CA
USA
victor@magooit.com
Padma Pillay-Esnault
Independent
Santa Clara
CA
USA
padma.ietf@gmail.com
This specification describes how the LISP architecture and protocols can be used over satellite network systems. The LISP overlay runs on earth using the satellite network system in space as the underlay.

Introduction
This specification describes how a LISP overlay structure can run on top of a satellite network underlay. The approach is similar to how [I-D.haindl-lisp-gb-atn] is used in Aeronautical Telecommunications Networks and [I-D.farinacci-lisp-mobile-network] is used in cellular networks.
This satellite deployment use-case requires no changes to the LISP architecture or standard protocol specifications. In addition, any LISP implementations that run on a device with an existing satellite interface does not need to be upgraded.
Even though an overlay should not concern itself with the operation of an underlay, the requirements from [I-D.lhan-problems-requirements-satellite-net] are considered but outside the scope of this document.
The LISP overlay requirements are:
1. There will be no EID state in the satellite network underlay.
2. The satellite underlay is completely unaware of the overlay running over it.
3. The overlay requires the underlay network to deliver packets to RLOC addresses.
4. The underlay network can transport IPv4 or IPv6 packets and can be dual-stack.
5. When path optimization in the underlay is available, an RLOC-record can be a source route of satellite hops.
The diagram below illustrates a 4 satellite system where each have Inter-Satellite-Links (ISLs) for connectivity between them and edge satellites with RF links to Ground Stations. The EID connectivity to the xTRs is achieved via typical IP network connectivity where EIDs can be directly connected, one or more switch hops away, one or more router hops away, or any combination.

Overlay on Earth, Underlay in Space

                          in space (underlay)
    +--------------------------------------------------------------+
    |                                                              |
    |     sat     ISL     sat     ISL     sat     ISL     sat      |
    |    ))*((  -------  ))*((  -------  ))*((  -------  ))*((     |
    |      |                                               |       |
    |      |                                               |       |
    |      |up/down RF-link                 up/down RF-link|       |
    |      |                                               |       |
    |      |                                               |       |
    +------|-----------------------------------------------|-------+
           |                                               |
           |                                               |
           |               on earth (overlay)              |
    +------|-----------------------------------------------|-------+
    |      |                                               |       |
    |    GS-xTR             [mapping system]            GS-xTR     |
    |     /  \                                           /  \      |
    |    /    \                                         /    \     |
    |   /      \                                       /      \    |
    |  /        \                                     /        \   |
    | EIDs ... EIDs                                  EIDs ... EIDs |
    |                                                              |
    +--------------------------------------------------------------+

The LISP mapping system runs on the earth-resident Internet and requires reachability by xTRs before LISP encapsulation can occur over the satellite network underlay.
EIDs are known only to the overlay xTR nodes. EIDs are not routable or require state in the satellite network. This provides great value for scaling and EID mobility.

Definition of Terms
Inter-Satellite-Links (ISLs): are phased-array laser wireless links that transmit within or across orbits in space to other satellites. They are different than satellite downlinks which are RF links to Ground-Stations.
xTR: is a LISP data-plane device. xTR is the general term for ITR, ETR, or RTR. The formal and authoritative definition is in [RFC9300]. When a LISP xTR runs on a ground station device, it is called a GS-xTR.
Ground-Station (GS): is a device on the ground that has wireless links to a satellite node in space [I-D.lhan-problems-requirements-satellite-net]. When a Ground-Station is an LISP xTR, it encapsulates and decapsulates packets sent and received on satellite links according to the forwarding procedures in [RFC9300] and [RFC9301]. A GS can also be part of the satellite network system but isn't deployed as a GS-xTR. In this scenario, the GS is part of the underlay and assumes the satellite network system, with its attached ground stations, deliver RLOC addressed packets. When a satellite is in relay mode (not using ISLs), a LISP RTR can be used to support traffic engineering where a GS-ITR encapsulates through a single satellite hop to a GS-RTR which decapsulates and re-encapsulates through another single satellite hop to a GS-ETR. See [I-D.ietf-lisp-te] for details, and how LISP-TE can also be used with multiple satellite hops.
source-GS-xTR: is the LISP ITR which does a mapping system lookup to obtain and cache the destination-RLOC for the destination-EID. It then encapsulates the packet and sends it on the uplink whatever satellite that is in coverage range.
destination-GS-xTR: is the LISP ETR which receives a LISP encapsulated packet on the downlink from the satellite that is in coverage range over it. The outer header is stripped and packet is delivered to local EID on the ground.
EID: defined as an Endpoint-ID in [RFC9300]. An EID is assigned to devices that reside behind GS-xTRs and are registered to the LISP mapping system with a satellite network address which is used as an RLOC.
RLOC: defined as a Routing Locator in [RFC9300]. Within the scope of this specification, the RLOC is the satellite network address of a GS-xTR where the satellite network knows how to forward packets to this RLOC address.

Overview
Here is how a packet flow sequence occurs from a source-EID to a destination-EID when the underlay is a satellite network:
1. source-EID originates an IP packet to a destination-EID. The addresses in the packet are EIDs.
2. The packet travels to the GS-xTR (source-GS-xTR) via traditional IP routing.
3. The source-GS-xTR does a map-cache lookup for destination-EID to obtain the RLOC for the destination-GS-xTR.
4. If map-cache lookup fails, a mapping system lookup is performed for destination-EID.
5. The source-GS-xTR LISP encapsulates the packet and sends it on the uplink to the satellite. The RLOC addresses in the outer header are source-GS-xTR and destination-GS-xTR.
6. The satellite network delivers the packet to Ground-Station addressed as destination-GS-xTR.
7. The destination-GS-xTR decapsulates the LISP packet by stripping the outer header and delivering the packet to the destination-EID on the ground.

Mapping System
The LISP mapping system holds EID-to-RLOC-set mappings. They are kept up to date by GS-xTRs and all the mechanisms from [RFC9301] are available for use. The mappings can contain RLOCs that are not GS-xTRs thereby allowing load-splitting between both satellite and terrestrial paths. The RLOC-set can also contain multicast RLOCs that can be reachable via satellite or terrestrial paths.
All of IPv4, IPv6, and MAC EIDs can be registered to the mapping system to create multi-address-family L3 overlays as well as L2 overlays on the satellite underlay. That is, GS-xTR RLOCs can be used with these EID address types.
Even though the satellite network is deployed to offer global Internet services, it may just carry routes and connectivity to GS- xTR addresses (their RLOC addresses). If this is the case, the LISP critical infrastructure may not be reachable by the satellite network or the satellite nodes themselves. Therefore, the mapping system can be deployed in GS-xTRs which can be reached by the satellite network.
This specification recommends the mapping system reside on earth and if the satellite network does offer global Internet connectivity, the mapping system can reside anywhere on earth. So even for rural based deployments of GS-xTRs, where the only connectivity is through a satellite interface link, the LISP critical infrastructure is always reachable.
When satellite connectivity changes from a GS-xTR within its coverage range, the RLOC of the GS-xTR does not change. Therefore, there is no need to update the mapping system when this happens. This provides more scale to the total system since the LISP overlay is providing a level of indirection.

EID Mobility
EID-mobility [I-D.ietf-lisp-eid-mobility] is supported so devices can roam to other xTRs and are found by mapping system updates for remote xTRs encapsulating to the EID. GS-xTRs learn EIDs on the ground dynamically via the mechanisms in [I-D.ietf-lisp-eid-mobility].

Satellite RLOCs and Underlay Routing
The address format of a GS-xTR RLOC depends on the design of the satellite network system. The LISP RLOC formatting is flexible to accommodate new address types such as GPS coordinate based addressing or other forms of satellite addressing such as described in Section 7. The only requirement is that they are routable by the satellite network system.
If the satellite network supports IP forwarding and IP addresses are assigned to the RF-links on the GS-xTRs, then the satellite network just needs to make these "attachment point addresses" routable in the satellite network routing system. And if the satellite network desires to scale the route state in its routing system, it can use prefix aggregation, a local design matter to the satellite network routing system. When this is the case, the RLOC is a standard AFI encoded IPv4 or IPv6 address.
If the satellite network underlay supports a source-routing mechanism, the same approach can be used as a LISP overlay on a terrestrial underlay running Segment Routing [RFC8754]. The source-route is encoded in an RLOC-record stored in the mapping system that is formatted as a list of satellite hop addresses.

Satellite Opportunistic Forwarding
A satellite constellation network could perform packet forwarding with little or no control-plane. Using GPS (lat, long, alt) coordinate addressing, a satellte router could route packets physically closer to a destination GS-xTR. This technique uses opportunistic forwarding where decisions are made at the instant a satellite router receives a packet and needs to choose an ISL interface to get the packet closer to the destination.
The satellite router uses a packet header that contains the destination GPS address for the GS-xTR. The source GS-xTR prepends this header on the packet before it sends it on the RF uplink to the nearest satellite overhead. The satellte router can decide to send the packet to a next-hop satellite in the same orbit or to a next-hop satellite in an adjacent orbit, as long as the packet is getting closer to the destination GPS address. A satellite router decides the proximity of adjacent orbits to determine if the packet is actually getting closer to the destination GPS address.
For a given implementation, satellite routers in the same orbit or in adjacent orbits, which have good signal quality, exchange hello messages to advertise their position with a GPS address (lat, long, alt). These messages are very small in size and are sent periodically with second-granular frequency. This indicates to a satellite router, which direction to send the packet to get it closer to its GPS address location.

Underlay Performance
The RLOC probing procedures in [RFC9301] can provide underlay telemetry measurement [I-D.farinacci-lisp-telemetry] so the overlay can tell how well the satellite network is performing. And if the underlay under performs or telemetry metrics change, the GS-xTR can select another RLOC, possibly to a terrestrial RLOC.

Security Considerations
There are no specific security considerations at this time for this use-case. However, existing LISP security functionality documented in [RFC9301], [RFC9303], [I-D.ietf-lisp-eid-anonymity], and [I-D.farinacci-lisp-ecdsa-auth] can be used when the LISP overlay runs over a satellite network underlay.
Data-plane encryption can be used to make the satellite underlay more secure. See LISP Data-Plane Confidentiality [RFC8061] for more details. This solution can work when packets take multiple satellite hops and/or Ground-Station hops.

IANA Considerations
There are no requests for IANA at this time.

Test and Deployment Experience
This section will describe the various LISP deployment combinations as well as progress updates of testing LISP over SpaceX's Starlink satellite network [STARLINK].
In the following sections, the mapping system is running in a cloud provider VM and is accessible by all LISP xTRs in all the testing scenarios. The LISP RTR also runs in the VM which is providing NAT- traversal services as well as LISP to non-LISP connectivity [RFC6832] via LISP-NAT.

GS-xTRs Direct (non-NAT)

Each GS-xTR is one-hop away on WiFi Network

                            satellite(s)
                               /   \
                              /     \
                             /       \
                            /         \
                        dish           dish
                         |               |
                         |               |
                     wifi-router      wifi-router
                         ^                ^
                        / \              / \
                      GS-xTR            GS-xTR

This test has not been performed at this time since we are seeking more Starlink participants. This section will be updated in the next document revision. We are not sure we will be able to test this case since the Starlink provided wifi-routers are doing NAT translation.

GS-xTRs Direct (NAT)

Each GS-xTR is one-hop away on WiFi Network

                            satellite(s)
                            /    |      \
                           /     |       \
                          /      |        \
                         /       |         \
                     dish       dish        dish
                      /          |             \
                     /           |              \
           wifi-router       colo-pop           wifi-router
               ^                 |                  ^
              / \                |                 / \
             GS-xTR          LISP-RTR            GS-xTR

This test has not been performed at this time since we are seeking more Starlink participants. This section will be updated in the next document revision. When this occurs, packets will flow from GS-xTR to RTR to GS-xTR since NAT-traversal is occurring in the wifi- routers. The LISP-RTR is many hops away from the colocation-pop router, which has a direct connection to the satellite dish.
Starlink only supports a carrier-grade NAT (CGNAT) solution so the Decentralized-NAT procedures in [I-D.farinacci-lisp-lispers-net-nat] have been challenging to get the above configuration to work.

GS-xTR to LISP-xTR (NAT)

GS-xTR on WiFi Network to LISP-xTR in VM

              satellite(s)
                 /   \
                /     \
               /       \                      LISP-RTR
              /         \                         |
          dish           dish                     |
            |             |                +-------------+
            |             |                | Terrestrial |
        wifi-router    colocation-pop ---- |  Internet   | ---- LISP-xTR
            ^                              +-------------+
           / \
          GS-xTR

In this deployment scenario, the GS-xTR is a laptop, assigned an EID and communicating with the EID assigned to an xTR running in a cloud VM. Since NAT-traversal is used on the wifi-routers, packets flow through the LISP-RTR.
There are cases where Decentralized-NAT [I-D.farinacci-lisp-lispers-net-nat] can work from GS-xTR to LISP-xTR so packet flow does not traverse a third-party device like a LISP-RTR. Testing experience has revealed that Cloud Providers implement more standard NAT functionality versus limited translation functionality of a CGNAT.
The laptop is assigned EID 240.1.1.1 and LISP-xTR is assigned EID 240.11.11.11. Here is ping output initiated from the laptop:

   laptop -> ping -c 5 240.11.11.11
   PING 240.11.11.11 (240.11.11.11): 56 data bytes
   64 bytes from 240.11.11.11: icmp_seq=0 ttl=62 time=xx ms
   64 bytes from 240.11.11.11: icmp_seq=1 ttl=62 time=xx ms
   64 bytes from 240.11.11.11: icmp_seq=2 ttl=62 time=xx ms
   64 bytes from 240.11.11.11: icmp_seq=3 ttl=62 time=xx ms
   64 bytes from 240.11.11.11: icmp_seq=4 ttl=62 time=xx ms

   --- 240.11.11.11 ping statistics ---
   5 packets transmitted, 5 packets received, 0.0% packet loss

GS-xTR Direct to non-LISP Host (NAT and Interwork)

GS-xTR and Host one-hop away on WiFi Network

                            satellite(s)
                            /    |     \
                           /     |      \
                          /      |       \
                         /       |        \
                     dish       dish      dish
                      /          |           \
                     /           |            \
           wifi-router       colo-pop         wifi-router
               ^                 |                ^
              / \                |               / \
             GS-xTR          LISP-RTR        non-LISP-Host

This test has not been performed at this time since we are seeking more Starlink participants. This section will be updated in the next document revision. When this occurs, packets will flow from GS-xTR to RTR to non-LISP-Host since both NAT-traversal and LISP-NAT support is required. The LISP-RTR is many hops away from the colo-pop router, which has a direct connection to the satellite dish.

GS-xTR to non-LISP Host (NAT and Interwork)

GS-xTR on WiFi to non-LISP-Host in VM

            satellite(s)
               /   \
              /     \
             /       \                      LISP-RTR
            /         \                         |
        dish           dish                     |
          |             |                +-------------+
          |             |                | Terrestrial |
      wifi-router    colocation-pop ---- |  Internet   | ---- non-LISP-Host
          ^                              +-------------+
         / \
        GS-xTR

In this deployment scenario, the GS-xTR is a laptop, assigned an EID and communicating with the non-EID assigned to non-LISP Host running in a cloud VM. When this occurs, packets will flow from GS-xTR to RTR to non-LISP-Host since both NAT-traversal and LISP-NAT support is required.
The laptop is assigned EID 240.1.1.1 and non-LISP-Host is the Google DNS server 8.8.8.8. Here is ping output initiated from the laptop:

   laptop -> ping -c 5 -S 240.1.1.1 8.8.8.8
   PING 8.8.8.8 (8.8.8.8) from 240.1.1.1: 56 data bytes
   64 bytes from 8.8.8.8: icmp_seq=0 ttl=43 time=xx ms
   64 bytes from 8.8.8.8: icmp_seq=1 ttl=43 time=xx ms
   64 bytes from 8.8.8.8: icmp_seq=2 ttl=43 time=xx ms
   64 bytes from 8.8.8.8: icmp_seq=3 ttl=43 time=xx ms
   64 bytes from 8.8.8.8: icmp_seq=4 ttl=43 time=xx ms

   --- 8.8.8.8 ping statistics ---
   5 packets transmitted, 5 packets received, 0.0% packet loss

This may be a likely connectivity option since not all equipment connected to the satellite network will be LISP GS-xTRs.

EID-Mobility Direct (non-NAT)

Each GS-xTR is one-hop away on WiFi Network

                            satellite(s)
                               /   \
                              /     \
                             /       \
                            /         \
                        dish           dish
                         |               |
                         |               |
                     wifi-router      wifi-router
                         ^                ^
                        / \              / \
                      GS-xTR            GS-xTR
                       |  |              |  |
                    EID1  EID2  ...   EID2  EID3

This test has not been performed yet. In this test a device assigned with EID2 will be able to roam across GS-xTRs and keep connections up and running between EID1 and EID3. This can also happen when EID2 talks to a non-LISP host (via an RTR running LISP-NAT interworking services).
In this test scenario, EIDs are assigned to devices that reside behind GS-xTRs (via wireless or wired links) and do not run LISP. The GS-xTRs, which run LISP, encapsulate/decapsulate packets on behalf of the host devices. The GS-xTR RLOC addresses are routable by the satellite network (like in the previous test scenarios) allowing for the host devices to communicate while the satellite network keeps no state about EID addresses.

GS-xTRs Direct ISLs

Each GS-xTR is one-hop away on WiFi Network

       satellite ---(ISL)--- satellite ---(ISL)--- satellite
           |                     |                     |
           |                     |                     |
           |                     |                     |
           |                     |                     |
          dish                  dish                  dish
           |                     |                     |
           |                     |                     |
       wifi-router           colo-pop              wifi-router
           ^                     |                     ^
          / \                    |                    / \
        GS-xTR               LISP-RTR               GS-xTR

This test has not been performed. It will be tested when the satellite network has proven it can support ISL links and satellite routing reliably.

GS-xTR Laptop on Overlay and Underlay (NAT no Interwork)

GS-xTR on WiFi dual function

            satellite(s)
               /   \                                     overlay
              /     \                                  +-----------+
             /       \                        xTR ---- | LISP site | (240.11.11.11)
        dish           dish                    |       +-----------+
          |             |                      |
          |             |                +-------------+
      wifi-router    colocation-pop ---- |  Internet   | ---- non-LISP-Host
          ^                              +-------------+        underlay
         / \                                                    (8.8.8.8)
        GS-xTR

The GS-xTR sends packet natively for non-EID destination 8.8.8.8:

dino-macbook -> ping -c 5 8.8.8.8
PING 8.8.8.8 (8.8.8.8): 56 data bytes
64 bytes from 8.8.8.8: icmp_seq=0 ttl=56 time=25.741 ms
64 bytes from 8.8.8.8: icmp_seq=1 ttl=56 time=17.197 ms
64 bytes from 8.8.8.8: icmp_seq=2 ttl=56 time=17.870 ms
64 bytes from 8.8.8.8: icmp_seq=3 ttl=56 time=21.806 ms
64 bytes from 8.8.8.8: icmp_seq=4 ttl=56 time=16.966 ms

--- 8.8.8.8 ping statistics ---
5 packets transmitted, 5 packets received, 0.0% packet loss
round-trip min/avg/max/stddev = 16.966/19.916/25.741/3.400 ms

The GS-xTR sends encapsulated packets for EID destination 240.11.11.11:

dino-macbook -> ping -c 5 240.11.11.11
PING 240.11.11.11 (240.11.11.11): 56 data bytes
64 bytes from 240.11.11.11: icmp_seq=0 ttl=62 time=288.063 ms
64 bytes from 240.11.11.11: icmp_seq=1 ttl=62 time=325.043 ms
64 bytes from 240.11.11.11: icmp_seq=2 ttl=62 time=152.507 ms
64 bytes from 240.11.11.11: icmp_seq=3 ttl=62 time=191.567 ms
64 bytes from 240.11.11.11: icmp_seq=4 ttl=62 time=231.620 ms

--- 240.11.11.11 ping statistics ---
5 packets transmitted, 5 packets received, 0.0% packet loss
round-trip min/avg/max/stddev = 152.507/237.760/325.043/62.591 ms

dino-macbook -> mc 240.11.11.11

LISP Map-Cache for localhost:8080, hostname dino-macbook.lan, release 0.593

EID [1]240.11.11.11/32, uptime 0:00:39, ttl 1440m
  RLOC 18.237.14.154:43799, state unreach-state since 0:00:22, a-xtr1@tp-43799
    packet-count: 2, packet-rate: 0 pps, byte-count: 168, bit-rate: 0.0 mbps
    rtts [-1, -1, -1], hops [?/?, ?/?, ?/?], latencies [?/?, ?/?, ?/?]
  RLOC 34.217.110.112, state up-state since 0:00:39, RTR
    packet-count: 17, packet-rate: 0 pps, byte-count: 1428, bit-rate: 0.0 mbps
    rtts [0.121, -1, -1], hops [26/22, ?/?, ?/?], latencies [0.083/0.034, ?/?, ?/?]

Normative References

Informative References
[STARLINK]

High-Level SpaceX Starlink Technology Description
SpaceX
September 2022
https://www.starlink.com/technology
[I-D.haindl-lisp-gb-atn]
[I-D.farinacci-lisp-mobile-network]
[I-D.lhan-problems-requirements-satellite-net]
[RFC9300]
[RFC9301]
[I-D.ietf-lisp-te]
[I-D.ietf-lisp-eid-mobility]
[RFC8754]
[I-D.farinacci-lisp-telemetry]
[RFC9303]
[I-D.ietf-lisp-eid-anonymity]
[I-D.farinacci-lisp-ecdsa-auth]
[RFC8061]
[RFC6832]
[I-D.farinacci-lisp-lispers-net-nat]

Acknowledgments
The authors would like to thank the LISP working group for their review of this specification. A special thank you goes to Lin Han for email discussions on this topic.

Document Change Log

Changes to draft-farinacci-lisp-satellite-network-05
- Submitted August 2024.
- Update references and docment timer.

Changes to draft-farinacci-lisp-satellite-network-04
- Submitted February 2024.
- Update references and docment timer.

Changes to draft-farinacci-lisp-satellite-network-03
- Submitted August 2023.
- Add section about how an overlay interacts with a satellite underlay when it provides packet routing on ISLs using opportunitic forwarding with GPS addressing.

Changes to draft-farinacci-lisp-satellite-network-02
- Submitted February 2023.
- Add references to proposed standard documents.
- Refer to lispsers.net Decentralized-NAT for testing direct xTR to xTR.
- Added test case where the GS-xTR is both on the underlay and the LISP overlay.

Changes to draft-farinacci-lisp-satellite-network-01
- Submitted September 2022.
- Added text about how the mapping system is used in a rural location when the only Internet link available is the satellite link.
- Added the Test and Deployment Experience section to document what has been tested so far.

Changes to draft-farinacci-lisp-satellite-network-00
- Initial posting April 2022.