summaryrefslogtreecommitdiff
path: root/doc/rfc/rfc9301.txt
blob: 3c05745ddaa21da7565df56ea3e2434799b58d61 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
1133
1134
1135
1136
1137
1138
1139
1140
1141
1142
1143
1144
1145
1146
1147
1148
1149
1150
1151
1152
1153
1154
1155
1156
1157
1158
1159
1160
1161
1162
1163
1164
1165
1166
1167
1168
1169
1170
1171
1172
1173
1174
1175
1176
1177
1178
1179
1180
1181
1182
1183
1184
1185
1186
1187
1188
1189
1190
1191
1192
1193
1194
1195
1196
1197
1198
1199
1200
1201
1202
1203
1204
1205
1206
1207
1208
1209
1210
1211
1212
1213
1214
1215
1216
1217
1218
1219
1220
1221
1222
1223
1224
1225
1226
1227
1228
1229
1230
1231
1232
1233
1234
1235
1236
1237
1238
1239
1240
1241
1242
1243
1244
1245
1246
1247
1248
1249
1250
1251
1252
1253
1254
1255
1256
1257
1258
1259
1260
1261
1262
1263
1264
1265
1266
1267
1268
1269
1270
1271
1272
1273
1274
1275
1276
1277
1278
1279
1280
1281
1282
1283
1284
1285
1286
1287
1288
1289
1290
1291
1292
1293
1294
1295
1296
1297
1298
1299
1300
1301
1302
1303
1304
1305
1306
1307
1308
1309
1310
1311
1312
1313
1314
1315
1316
1317
1318
1319
1320
1321
1322
1323
1324
1325
1326
1327
1328
1329
1330
1331
1332
1333
1334
1335
1336
1337
1338
1339
1340
1341
1342
1343
1344
1345
1346
1347
1348
1349
1350
1351
1352
1353
1354
1355
1356
1357
1358
1359
1360
1361
1362
1363
1364
1365
1366
1367
1368
1369
1370
1371
1372
1373
1374
1375
1376
1377
1378
1379
1380
1381
1382
1383
1384
1385
1386
1387
1388
1389
1390
1391
1392
1393
1394
1395
1396
1397
1398
1399
1400
1401
1402
1403
1404
1405
1406
1407
1408
1409
1410
1411
1412
1413
1414
1415
1416
1417
1418
1419
1420
1421
1422
1423
1424
1425
1426
1427
1428
1429
1430
1431
1432
1433
1434
1435
1436
1437
1438
1439
1440
1441
1442
1443
1444
1445
1446
1447
1448
1449
1450
1451
1452
1453
1454
1455
1456
1457
1458
1459
1460
1461
1462
1463
1464
1465
1466
1467
1468
1469
1470
1471
1472
1473
1474
1475
1476
1477
1478
1479
1480
1481
1482
1483
1484
1485
1486
1487
1488
1489
1490
1491
1492
1493
1494
1495
1496
1497
1498
1499
1500
1501
1502
1503
1504
1505
1506
1507
1508
1509
1510
1511
1512
1513
1514
1515
1516
1517
1518
1519
1520
1521
1522
1523
1524
1525
1526
1527
1528
1529
1530
1531
1532
1533
1534
1535
1536
1537
1538
1539
1540
1541
1542
1543
1544
1545
1546
1547
1548
1549
1550
1551
1552
1553
1554
1555
1556
1557
1558
1559
1560
1561
1562
1563
1564
1565
1566
1567
1568
1569
1570
1571
1572
1573
1574
1575
1576
1577
1578
1579
1580
1581
1582
1583
1584
1585
1586
1587
1588
1589
1590
1591
1592
1593
1594
1595
1596
1597
1598
1599
1600
1601
1602
1603
1604
1605
1606
1607
1608
1609
1610
1611
1612
1613
1614
1615
1616
1617
1618
1619
1620
1621
1622
1623
1624
1625
1626
1627
1628
1629
1630
1631
1632
1633
1634
1635
1636
1637
1638
1639
1640
1641
1642
1643
1644
1645
1646
1647
1648
1649
1650
1651
1652
1653
1654
1655
1656
1657
1658
1659
1660
1661
1662
1663
1664
1665
1666
1667
1668
1669
1670
1671
1672
1673
1674
1675
1676
1677
1678
1679
1680
1681
1682
1683
1684
1685
1686
1687
1688
1689
1690
1691
1692
1693
1694
1695
1696
1697
1698
1699
1700
1701
1702
1703
1704
1705
1706
1707
1708
1709
1710
1711
1712
1713
1714
1715
1716
1717
1718
1719
1720
1721
1722
1723
1724
1725
1726
1727
1728
1729
1730
1731
1732
1733
1734
1735
1736
1737
1738
1739
1740
1741
1742
1743
1744
1745
1746
1747
1748
1749
1750
1751
1752
1753
1754
1755
1756
1757
1758
1759
1760
1761
1762
1763
1764
1765
1766
1767
1768
1769
1770
1771
1772
1773
1774
1775
1776
1777
1778
1779
1780
1781
1782
1783
1784
1785
1786
1787
1788
1789
1790
1791
1792
1793
1794
1795
1796
1797
1798
1799
1800
1801
1802
1803
1804
1805
1806
1807
1808
1809
1810
1811
1812
1813
1814
1815
1816
1817
1818
1819
1820
1821
1822
1823
1824
1825
1826
1827
1828
1829
1830
1831
1832
1833
1834
1835
1836
1837
1838
1839
1840
1841
1842
1843
1844
1845
1846
1847
1848
1849
1850
1851
1852
1853
1854
1855
1856
1857
1858
1859
1860
1861
1862
1863
1864
1865
1866
1867
1868
1869
1870
1871
1872
1873
1874
1875
1876
1877
1878
1879
1880
1881
1882
1883
1884
1885
1886
1887
1888
1889
1890
1891
1892
1893
1894
1895
1896
1897
1898
1899
1900
1901
1902
1903
1904
1905
1906
1907
1908
1909
1910
1911
1912
1913
1914
1915
1916
1917
1918
1919
1920
1921
1922
1923
1924
1925
1926
1927
1928
1929
1930
1931
1932
1933
1934
1935
1936
1937
1938
1939
1940
1941
1942
1943
1944
1945
1946
1947
1948
1949
1950
1951
1952
1953
1954
1955
1956
1957
1958
1959
1960
1961
1962
1963
1964
1965
1966
1967
1968
1969
1970
1971
1972
1973
1974
1975
1976
1977
1978
1979
1980
1981
1982
1983
1984
1985
1986
1987
1988
1989
1990
1991
1992
1993
1994
1995
1996
1997
1998
1999
2000
2001
2002
2003
2004
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
2025
2026
2027
2028
2029
2030
2031
2032
2033
2034
2035
2036
2037
2038
2039
2040
2041
2042
2043
2044
2045
2046
2047
2048
2049
2050
2051
2052
2053
2054
2055
2056
2057
2058
2059
2060
2061
2062
2063
2064
2065
2066
2067
2068
2069
2070
2071
2072
2073
2074
2075
2076
2077
2078
2079
2080
2081
2082
2083
2084
2085
2086
2087
2088
2089
2090
2091
2092
2093
2094
2095
2096
2097
2098
2099
2100
2101
2102
2103
2104
2105
2106
2107
2108
2109
2110
2111
2112
2113
2114
2115
2116
2117
2118
2119
2120
2121
2122
2123
2124
2125
2126
2127
2128
2129
2130
2131
2132
2133
2134
2135
2136
2137
2138
2139
2140
2141
2142
2143
2144
2145
2146
2147
2148
2149
2150
2151
2152
2153
2154
2155
2156
2157
2158
2159
2160
2161
2162
2163
2164
2165
2166
2167
2168
2169
2170
2171
2172
2173
2174
2175
2176
2177
2178
2179
2180
2181
2182
2183
2184
2185
2186
2187
2188
2189
2190
2191
2192
2193
2194
2195
2196
2197
2198
2199
2200
2201
2202
2203
2204
2205
2206
2207
2208
2209
2210
2211
2212
2213
2214
2215
2216
2217
2218
2219
2220
2221
2222
2223
2224
2225
2226
2227
2228
2229
2230
2231
2232
2233
2234
2235
2236
2237
2238
2239
2240
2241
2242
2243
2244
2245
2246
2247
2248
2249
2250
2251
2252
2253
2254
2255
2256
2257
2258
2259
2260
2261
2262
2263
2264
2265
2266
2267
2268
2269
2270
2271
2272
2273
2274
2275
2276
2277
2278
2279
2280
2281
2282
2283
2284
2285
2286
2287
2288
2289
2290
2291
2292
2293
2294
2295
2296
2297
2298
2299
2300
2301
2302
2303
2304
2305
2306
2307
2308
2309
2310
2311
2312
2313
2314
2315
2316
2317
2318
2319
2320
2321
2322
2323
2324
2325
2326
2327
2328
2329
2330
2331
2332
2333
2334
2335
2336
2337
2338
2339
2340
2341
2342
2343
2344
2345
2346
2347
2348
2349
2350
2351
2352
2353
2354
2355
2356
Internet Engineering Task Force (IETF)                      D. Farinacci
Request for Comments: 9301                                   lispers.net
Obsoletes: 6830, 6833                                           F. Maino
Category: Standards Track                                  Cisco Systems
ISSN: 2070-1721                                                V. Fuller
                                             vaf.net Internet Consulting
                                                        A. Cabellos, Ed.
                                    Universitat Politecnica de Catalunya
                                                            October 2022


          Locator/ID Separation Protocol (LISP) Control Plane

Abstract

   This document describes the control plane and Mapping Service for the
   Locator/ID Separation Protocol (LISP), implemented by two types of
   LISP-speaking devices -- the LISP Map-Resolver and LISP Map-Server --
   that provide a simplified "front end" for one or more Endpoint IDs
   (EIDs) to Routing Locator mapping databases.

   By using this control plane service interface and communicating with
   Map-Resolvers and Map-Servers, LISP Ingress Tunnel Routers (ITRs) and
   Egress Tunnel Routers (ETRs) are not dependent on the details of
   mapping database systems; this behavior facilitates modularity with
   different database designs.  Since these devices implement the "edge"
   of the LISP control plane infrastructure, connecting EID addressable
   nodes of a LISP site, the implementation and operational complexity
   of the overall cost and effort of deploying LISP is reduced.

   This document obsoletes RFCs 6830 and 6833.

Status of This Memo

   This is an Internet Standards Track document.

   This document is a product of the Internet Engineering Task Force
   (IETF).  It represents the consensus of the IETF community.  It has
   received public review and has been approved for publication by the
   Internet Engineering Steering Group (IESG).  Further information on
   Internet Standards is available in Section 2 of RFC 7841.

   Information about the current status of this document, any errata,
   and how to provide feedback on it may be obtained at
   https://www.rfc-editor.org/info/rfc9301.

Copyright Notice

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

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

Table of Contents

   1.  Introduction
     1.1.  Scope of Applicability
   2.  Requirements Notation
   3.  Definitions of Terms
   4.  Basic Overview
   5.  LISP IPv4 and IPv6 Control Plane Packet Formats
     5.1.  LISP Control Packet Type Allocations
     5.2.  Map-Request Message Format
     5.3.  EID-to-RLOC UDP Map-Request Message
     5.4.  Map-Reply Message Format
     5.5.  EID-to-RLOC UDP Map-Reply Message
     5.6.  Map-Register Message Format
     5.7.  Map-Notify and Map-Notify-Ack Message Formats
     5.8.  Encapsulated Control Message Format
   6.  Changing the Contents of EID-to-RLOC Mappings
     6.1.  Solicit-Map-Request (SMR)
   7.  Routing Locator Reachability
     7.1.  RLOC-Probing Algorithm
   8.  Interactions with Other LISP Components
     8.1.  ITR EID-to-RLOC Mapping Resolution
     8.2.  EID-Prefix Configuration and ETR Registration
     8.3.  Map-Server Processing
     8.4.  Map-Resolver Processing
       8.4.1.  Anycast Operation
   9.  Security Considerations
   10. Privacy Considerations
   11. Changes Related to RFCs 6830 and 6833
   12. IANA Considerations
     12.1.  LISP UDP Port Numbers
     12.2.  LISP Packet Type Codes
     12.3.  LISP Map-Reply EID-Record Action Codes
     12.4.  LISP Address Type Codes
     12.5.  LISP Algorithm ID Numbers
     12.6.  LISP Bit Flags
   13. References
     13.1.  Normative References
     13.2.  Informative References
   Acknowledgments
   Authors' Addresses

1.  Introduction

   The Locator/ID Separation Protocol [RFC9300] (see also [RFC9299])
   specifies an architecture and mechanism for dynamic tunneling by
   logically separating the addresses currently used by IP in two
   separate namespaces: Endpoint IDs (EIDs), used within sites; and
   Routing Locators (RLOCs), used on the transit networks that make up
   the Internet infrastructure.  To achieve this separation, LISP
   defines protocol mechanisms for mapping from EIDs to RLOCs.  In
   addition, LISP assumes the existence of a database to store and
   propagate those mappings across Mapping System nodes.  Several such
   databases have been proposed; among them are the Content distribution
   Overlay Network Service for LISP-NERD (a Not-so-novel EID-to-RLOC
   Database) [RFC6837], LISP Alternative Logical Topology (LISP-ALT)
   [RFC6836], and LISP Delegated Database Tree (LISP-DDT) [RFC8111].

   The LISP Mapping Service defines two types of LISP-speaking devices:
   the Map-Resolver, which accepts Map-Requests from an Ingress Tunnel
   Router (ITR) and "resolves" the EID-to-RLOC mapping using a mapping
   database; and the Map-Server, which learns authoritative EID-to-RLOC
   mappings from an Egress Tunnel Router (ETR) and publishes them in a
   database.

   This LISP control plane and Mapping Service can be used by many
   different encapsulation-based or translation-based data planes,
   including but not limited to those defined in LISP [RFC9300], the
   LISP Generic Protocol Extension (LISP-GPE) [RFC9305], Virtual
   eXtensible Local Area Networks (VXLANs) [RFC7348], VXLAN-GPE
   [NVO3-VXLAN-GPE], GRE [RFC2890], the GPRS Tunneling Protocol (GTP)
   [GTP-3GPP], Identifier-Locator Addressing (ILA) [INTAREA-ILA], and
   Segment Routing (SRv6) [RFC8402].

   Conceptually, LISP Map-Servers share some of the same basic
   configuration and maintenance properties as Domain Name System (DNS)
   servers [RFC1035]; likewise, Map-Resolvers are conceptually similar
   to DNS caching resolvers.  With this in mind, this specification
   borrows familiar terminology (resolver and server) from the DNS
   specifications.

   Note that this document doesn't assume any particular database
   mapping infrastructure to illustrate certain aspects of Map-Server
   and Map-Resolver operations.  The Mapping Service interface can (and
   likely will) be used by ITRs and ETRs to access other mapping
   database systems as the LISP infrastructure evolves.

   LISP is not intended to address problems of connectivity and scaling
   on behalf of arbitrary communicating parties.  Relevant situations
   are described in Section 1.1 of [RFC9300].

   This document obsoletes [RFC6830] and [RFC6833].

1.1.  Scope of Applicability

   LISP was originally developed to address the Internet-wide route
   scaling problem [RFC4984].  While there are a number of approaches of
   interest for that problem, as LISP has been developed and refined, a
   large number of other uses for LISP have been found and are being
   implemented.  As such, the design and development of LISP have
   changed so as to focus on these use cases.  The common property of
   these uses is a large set of cooperating entities seeking to
   communicate over the public Internet or other large underlay IP
   infrastructures while keeping the addressing and topology of the
   cooperating entities separate from the underlay and Internet
   topology, routing, and addressing.

   When communicating over the public Internet, deployers MUST consider
   the following guidelines:

   1.  LISP Security (LISP-SEC) MUST be implemented [RFC9303].  This
       means that the S-bit MUST be set in the Map-Reply (Section 5.4),
       Map-Register (Section 5.6), and Encapsulated Control Messages
       (ECMs) (Section 5.8).

   2.  Implementations SHOULD use 'HMAC-SHA256-128+HKDF-SHA256' as the
       Algorithm ID (Section 12.5) in the Map-Register message
       (Section 5.6) and MUST NOT use 'None' or 'HMAC-SHA-1-96-None' as
       the Algorithm ID (Section 12.5) in the Map-Register message
       (Section 5.6).

2.  Requirements Notation

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

   Map-Server:  A network infrastructure component that learns of EID-
      Prefix mapping entries from an ETR, via the registration mechanism
      described below, or some other authoritative source if one exists.
      A Map-Server publishes these EID-Prefixes in a mapping database.

   Map-Request:  A control plane message that queries the Mapping System
      to resolve an EID.  A LISP Map-Request can also be sent to an RLOC
      to test for reachability and to exchange security keys between an
      encapsulator and a decapsulator.  This type of Map-Request is also
      known as an RLOC-Probe Request.

   Map-Reply:  A control plane message returned in response to a Map-
      Request sent to the Mapping System when resolving an EID.  A LISP
      Map-Reply can also be returned by a decapsulator in response to a
      Map-Request sent by an encapsulator to test for reachability.
      This type of Map-Reply is known as an RLOC-Probe Reply.

   Encapsulated Map-Request:  A LISP Map-Request carried within an ECM.
      This Map-Request has an additional LISP header prepended.  Sent to
      UDP destination port 4342.  The "outer" addresses are routable IP
      addresses, also known as RLOCs.  Used by an ITR when sending to a
      Map-Resolver and by a Map-Server when forwarding a Map-Request to
      an ETR.

   Map-Resolver:  A network infrastructure component that accepts LISP
      Encapsulated (ECM) Map-Requests, typically from an ITR, and
      determines whether or not the destination IP address is part of
      the EID namespace; if it is not, a Negative Map-Reply is returned.
      Otherwise, the Map-Resolver finds the appropriate EID-to-RLOC
      mapping by consulting a mapping database system.

   Negative Map-Reply:  A LISP Map-Reply that contains an empty Locator-
      Set.  Returned in response to a Map-Request if the destination EID
      is not registered in the Mapping System, is policy-denied, or
      fails authentication.

   Map-Register message:  A LISP message sent by an ETR to a Map-Server
      to register its associated EID-Prefixes.  In addition to the set
      of EID-Prefixes to register, the message includes one or more
      RLOCs to reach ETR(s).  The Map-Server uses these RLOCs when
      forwarding Map-Requests (reformatted as Encapsulated Map-
      Requests).  An ETR MAY request that the Map-Server answer Map-
      Requests on its behalf by setting the "proxy Map-Reply" flag
      (P-bit) in the message.

   Map-Notify message:  A LISP message sent by a Map-Server to an ETR to
      confirm that a Map-Register has been received and processed.  An
      ETR requests that a Map-Notify be returned by setting the "want-
      map-notify" flag (M-bit) in the Map-Register message.  Unlike a
      Map-Reply, a Map-Notify uses UDP port 4342 for both source and
      destination.  Map-Notify messages are also sent to ITRs by Map-
      Servers when there are RLOC-Set changes.

   For definitions of other terms, notably Ingress Tunnel Router (ITR),
   Egress Tunnel Router (ETR), and Re-encapsulating Tunnel Router (RTR),
   refer to the LISP data plane specification [RFC9300].

4.  Basic Overview

   A Map-Server is a device that publishes EID-Prefixes in a LISP
   mapping database on behalf of a set of ETRs.  When it receives a Map-
   Request (typically originating from an ITR), it consults the mapping
   database to find an ETR that can answer with the set of RLOCs for an
   EID-Prefix.  To publish its EID-Prefixes, an ETR periodically sends
   Map-Register messages to the Map-Server.  A Map-Register message
   contains a list of EID-Prefixes plus a set of RLOCs that can be used
   to reach the ETRs.

   When LISP-ALT [RFC6836] is used as the mapping database, a Map-Server
   connects to the ALT network and acts as a "last-hop" ALT-Router.
   Intermediate ALT-Routers forward Map-Requests to the Map-Server that
   advertises a particular EID-Prefix, and the Map-Server forwards them
   to the owning ETR, which responds with Map-Reply messages.

   When LISP-DDT [RFC8111] is used as the mapping database, a Map-Server
   sends the final Map-Referral messages from the Delegated Database
   Tree.

   A Map-Resolver receives Encapsulated Map-Requests from its client
   ITRs and uses a mapping database system to find the appropriate ETR
   to answer those requests.  On a LISP-ALT network, a Map-Resolver acts
   as a "first-hop" ALT-Router.  It has Generic Routing Encapsulation
   (GRE) tunnels configured to other ALT-Routers and uses BGP to learn
   paths to ETRs for different prefixes in the LISP-ALT database.  The
   Map-Resolver uses this path information to forward Map-Requests over
   the ALT to the correct ETRs.  On a LISP-DDT network [RFC8111], a Map-
   Resolver maintains a referral cache and acts as a "first-hop" DDT
   node.  The Map-Resolver uses the referral information to forward Map-
   Requests.

   Note that while it is conceivable that a Map-Resolver could cache
   responses to improve performance, issues surrounding cache management
   would need to be resolved so that doing so would be reliable and
   practical.  In this specification, Map-Resolvers will operate only in
   a non-caching mode, decapsulating and forwarding Encapsulated Map-
   Requests received from ITRs.  Any specification of caching
   functionality is out of scope for this document.

   Note that a single device can implement the functions of both a Map-
   Server and a Map-Resolver, and in many cases, the functions will be
   co-located in that way.  Also, there can be ALT-only nodes and DDT-
   only nodes, when LISP-ALT and LISP-DDT are used, respectively,
   connecting Map-Resolvers and Map-Servers together to make up the
   Mapping System.

5.  LISP IPv4 and IPv6 Control Plane Packet Formats

   The following UDP packet formats are used by the LISP control plane.

        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
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
       |Version|  IHL  |Type of Service|          Total Length         |
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
       |         Identification        |Flags|      Fragment Offset    |
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
       |  Time to Live | Protocol = 17 |         Header Checksum       |
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
       |                    Source Routing Locator                     |
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
       |                 Destination Routing Locator                   |
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
     / |           Source Port         |         Dest Port             |
   UDP +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
     \ |           UDP Length          |        UDP Checksum           |
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
       |                                                               |
       |                         LISP Message                          |
       |                                                               |
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                  Figure 1: IPv4 UDP LISP Control Message

        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
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
       |Version| Traffic Class |           Flow Label                  |
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
       |         Payload Length        | Next Header=17|   Hop Limit   |
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
       |                                                               |
       +                                                               +
       |                                                               |
       +                     Source Routing Locator                    +
       |                                                               |
       +                                                               +
       |                                                               |
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
       |                                                               |
       +                                                               +
       |                                                               |
       +                  Destination Routing Locator                  +
       |                                                               |
       +                                                               +
       |                                                               |
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
     / |           Source Port         |         Dest Port             |
   UDP +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
     \ |           UDP Length          |        UDP Checksum           |
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
       |                                                               |
       |                         LISP Message                          |
       |                                                               |
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                  Figure 2: IPv6 UDP LISP Control Message

   When a UDP Map-Request, Map-Register, or Map-Notify (when used as a
   notification message) is sent, the UDP source port is chosen by the
   sender and the destination UDP port number is set to 4342.  When a
   UDP Map-Reply, Map-Notify (when used as an acknowledgment to a Map-
   Register), or Map-Notify-Ack is sent, the source UDP port number is
   set to 4342 and the destination UDP port number is copied from the
   source port of either the Map-Request or the invoking data packet.
   Implementations MUST be prepared to accept packets when either the
   source port or destination UDP port is set to 4342 due to NATs
   changing port number values.

   The 'UDP Length' field will reflect the length of the UDP header and
   the LISP Message payload.  LISP is expected to be deployed by
   cooperating entities communicating over underlays.  Deployers are
   expected to set the MTU according to the specific deployment
   guidelines to prevent fragmentation of either the inner packet or the
   outer encapsulated packet.  For deployments not aware of the underlay
   restrictions on the path MTU, the message size MUST be limited to 576
   bytes for IPv4 or 1280 bytes for IPv6 -- considering the entire IP
   packet -- as outlined in [RFC8085].

   The UDP checksum is computed and set to non-zero for all messages
   sent to or from port 4342.  It MUST be checked on receipt, and if the
   checksum fails, the control message MUST be dropped [RFC1071].

   The format of control messages includes the UDP header so the
   checksum and length fields can be used to protect and delimit message
   boundaries.

5.1.  LISP Control Packet Type Allocations

   This section defines the LISP control message formats and summarizes
   for IANA the LISP Type codes assigned by this document.  For
   completeness, the summary below includes the LISP Shared Extension
   Message assigned by [RFC9304].  Message type definitions are:

      +===================================+======+==================+
      | Message                           | Code | Codepoint        |
      +===================================+======+==================+
      | Reserved                          | 0    | b'0000'          |
      +-----------------------------------+------+------------------+
      | LISP Map-Request                  | 1    | b'0001'          |
      +-----------------------------------+------+------------------+
      | LISP Map-Reply                    | 2    | b'0010'          |
      +-----------------------------------+------+------------------+
      | LISP Map-Register                 | 3    | b'0011'          |
      +-----------------------------------+------+------------------+
      | LISP Map-Notify                   | 4    | b'0100'          |
      +-----------------------------------+------+------------------+
      | LISP Map-Notify-Ack               | 5    | b'0101'          |
      +-----------------------------------+------+------------------+
      | LISP DDT Map-Referral             | 6    | b'0110'          |
      +-----------------------------------+------+------------------+
      | Unassigned                        | 7    | b'0111'          |
      +-----------------------------------+------+------------------+
      | LISP Encapsulated Control Message | 8    | b'1000'          |
      +-----------------------------------+------+------------------+
      | Unassigned                        | 9-14 | b'1001'- b'1110' |
      +-----------------------------------+------+------------------+
      | LISP Shared Extension Message     | 15   | b'1111'          |
      +-----------------------------------+------+------------------+

                                  Table 1

   Protocol designers experimenting with new message formats are
   recommended to use the LISP Shared Extension Message Type described
   in [RFC9304].

   All LISP control plane messages use Address Family Identifiers (AFIs)
   [AFN] or LISP Canonical Address Format (LCAF) entries [RFC8060] to
   encode either fixed-length or variable-length addresses.  This
   includes explicit fields in each control message or part of EID-
   Records or RLOC-Records in commonly formatted messages.  LISP control
   plane messages that include an unrecognized AFI MUST be dropped, and
   the event MUST be logged.

   The LISP control plane describes how other data planes can encode
   messages to support the soliciting of Map-Requests as well as RLOC-
   Probing procedures.

5.2.  Map-Request Message Format

        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 |A|M|P|S|p|s|R|R|  Rsvd   |L|D|   IRC   | Record Count  |
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
       |                         Nonce . . .                           |
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
       |                         . . . Nonce                           |
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
       |         Source-EID-AFI        |   Source EID Address  ...     |
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
       |         ITR-RLOC-AFI 1        |    ITR-RLOC Address 1  ...    |
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
       |                              ...                              |
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
       |         ITR-RLOC-AFI n        |    ITR-RLOC Address n  ...    |
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
     / |   Reserved    | EID mask-len  |        EID-Prefix-AFI         |
   Rec +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
     \ |                       EID-Prefix  ...                         |
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
       |                   Map-Reply Record  ...                       |
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

   Packet field descriptions:

   Type:  1 (Map-Request)

   A:  This is an authoritative bit.  It is set to 1 when an ITR wants
      the destination site to return the Map-Reply rather than the
      mapping database system returning a Map-Reply and is set to 0
      otherwise.

   M:  This is the map-data-present bit.  When set, it indicates that a
      Map-Reply Record segment is included in the Map-Request.

   P:  This is the probe-bit, which indicates that a Map-Request MUST be
      treated as a Locator reachability probe.  The receiver MUST
      respond with a Map-Reply with the probe-bit set, indicating that
      the Map-Reply is a Locator reachability probe reply, with the
      nonce copied from the Map-Request.  See "RLOC-Probing Algorithm"
      (Section 7.1) for more details.  This RLOC-Probe Map-Request MUST
      NOT be sent to the Mapping System.  If a Map-Resolver or Map-
      Server receives a Map-Request with the probe-bit set, it MUST drop
      the message.

   S:  This is the Solicit-Map-Request (SMR) bit.  See
      "Solicit-Map-Request (SMR)" (Section 6.1) for details.

   p:  This is the Proxy Ingress Tunnel Router (PITR) bit.  This bit is
      set to 1 when a PITR sends a Map-Request.  The use of this bit is
      deployment specific.

   s:  This is the SMR-invoked bit.  This bit is set to 1 when an xTR is
      sending a Map-Request in response to a received SMR-based Map-
      Request.

   R:  This reserved and unassigned bit MUST be set to 0 on transmit and
      MUST be ignored on receipt.

   Rsvd:  This field MUST be set to 0 on transmit and MUST be ignored on
      receipt.

   L:  This is the local-xtr bit.  It is used by an xTR in a LISP site
      to tell other xTRs in the same site that it is part of the RLOC-
      Set for the LISP site.  The L-bit is set to 1 when the RLOC is the
      sender's IP address.

   D:  This is the dont-map-reply bit.  It is used in the SMR procedure
      described in Section 6.1.  When an xTR sends an SMR message, it
      doesn't need a Map-Reply returned.  When this bit is set, the
      receiver of the Map-Request does not return a Map-Reply.

   IRC:  This 5-bit field is the ITR-RLOC Count, which encodes the
      additional number of ('ITR-RLOC-AFI', 'ITR-RLOC Address') fields
      present in this message.  At least one (ITR-RLOC-AFI, ITR-RLOC
      Address) pair MUST be encoded.  Multiple 'ITR-RLOC Address' fields
      are used, so a Map-Replier can select which destination address to
      use for a Map-Reply.  The IRC value ranges from 0 to 31.  For a
      value of 0, there is 1 ITR-RLOC address encoded; for a value of 1,
      there are 2 ITR-RLOC addresses encoded, and so on up to 31, which
      encodes a total of 32 ITR-RLOC addresses.

   Record Count:  This is the number of records in this Map-Request
      message.  A record is comprised of the portion of the packet that
      is labeled 'Rec' above and occurs the number of times equal to
      Record Count.  For this version of the protocol, a receiver MUST
      accept and process Map-Requests that contain one or more records,
      but a sender MUST only send Map-Requests containing one record.

   Nonce:  This is an 8-octet random value created by the sender of the
      Map-Request.  This nonce will be returned in the Map-Reply.  The
      nonce is used as an index to identify the corresponding Map-
      Request when a Map-Reply message is received.  The nonce MUST be
      generated by a properly seeded pseudo-random source; for example,
      see [RFC4086].

   Source-EID-AFI:  This is the address family of the 'Source EID
      Address' field.

   Source EID Address:  This is the EID of the source host that
      originated the packet that caused the Map-Request.  When Map-
      Requests are used for refreshing a Map-Cache entry or for RLOC-
      Probing, an AFI value of 0 is used, and this field is of zero
      length.

   ITR-RLOC-AFI:  This is the address family of the 'ITR-RLOC Address'
      field that follows this field.

   ITR-RLOC Address:  This is used to give the ETR the option of
      selecting the destination address from any address family for the
      Map-Reply message.  This address MUST be a routable RLOC address
      of the sender of the Map-Request message.

   EID mask-len:  This is the mask length for the EID-Prefix.

   EID-Prefix-AFI:  This is the address family of the EID-Prefix
      according to [AFN] and [RFC8060].

   EID-Prefix:  This prefix address length is 4 octets for an IPv4
      address family and 16 octets for an IPv6 address family when the
      EID-Prefix-AFI is 1 or 2, respectively.  For other AFIs [AFN], the
      address length varies, and for the LCAF AFI, the format is defined
      in [RFC8060].  When a Map-Request is sent by an ITR because a data
      packet is received for a destination where there is no mapping
      entry, the EID-Prefix is set to the destination IP address of the
      data packet, and the 'EID mask-len' field is set to 32 or 128 for
      IPv4 or IPv6, respectively.  When an xTR wants to query a site
      about the status of a mapping it already has cached, the EID-
      Prefix used in the Map-Request has the same mask length as the
      EID-Prefix returned from the site when it sent a Map-Reply
      message.

   Map-Reply Record:  When the M-bit is set, this field is the size of a
      single "Record" in the Map-Reply format.  This Map-Reply record
      contains the EID-to-RLOC mapping entry associated with the source
      EID.  This allows the ETR that will receive this Map-Request to
      cache the data if it chooses to do so.  It is important to note
      that this mapping has not been validated by the Mapping System.

5.3.  EID-to-RLOC UDP Map-Request Message

   A Map-Request is sent from an ITR when it needs a mapping for an EID,
   wants to test an RLOC for reachability, or wants to refresh a mapping
   before Time to Live (TTL) expiration.  For the initial case, the
   destination IP address used for the Map-Request is the data packet's
   destination address (i.e., the destination EID) that had a mapping
   cache lookup failure.  For the latter two cases, the destination IP
   address used for the Map-Request is one of the RLOC addresses from
   the Locator-Set of the Map-Cache entry.  The source address is either
   an IPv4 or IPv6 RLOC address, depending on whether the Map-Request is
   using an IPv4 or IPv6 header, respectively.  In all cases, the UDP
   source port number for the Map-Request message is a 16-bit value
   selected by the ITR/PITR, and the UDP destination port number is set
   to the well-known destination port number 4342.  A successful Map-
   Reply, which is one that has a nonce that matches an outstanding Map-
   Request nonce, will update the cached set of RLOCs associated with
   the EID-Prefix range.

   One or more Map-Request ('ITR-RLOC-AFI', 'ITR-RLOC Address') fields
   MUST be filled in by the ITR.  The number of fields (minus 1) encoded
   MUST be placed in the 'IRC' field.  The ITR MAY include all locally
   configured Locators in this list or just provide one Routing Locator
   Address from each address family it supports.  If the ITR erroneously
   provides no ITR-RLOC addresses, the Map-Replier MUST drop the Map-
   Request.

   Map-Requests can also be LISP encapsulated using UDP destination
   port 4342 with a LISP Type value set to "Encapsulated Control
   Message", when sent from an ITR to a Map-Resolver.  Likewise, Map-
   Requests are LISP encapsulated the same way from a Map-Server to an
   ETR.  Details on Encapsulated Map-Requests and Map-Resolvers can be
   found in Section 5.8.

   Map-Requests MUST be rate limited to 1 per second per EID-Prefix.
   After 10 retransmits without receiving the corresponding Map-Reply,
   the sender MUST wait 30 seconds.

   An ITR that is configured with mapping database information (i.e., it
   is also an ETR) MAY optionally include those mappings in a Map-
   Request.  When an ETR configured to accept and verify such
   "piggybacked" mapping data receives such a Map-Request and it does
   not have this mapping in the Map-Cache, it MUST originate a
   "verifying Map-Request" through the mapping database to validate the
   "piggybacked" mapping data.

5.4.  Map-Reply Message Format

        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=2 |P|E|S|          Reserved               | Record Count  |
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
       |                         Nonce . . .                           |
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
       |                         . . . Nonce                           |
   +-> +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |   |                          Record TTL                           |
   |   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   R   | Locator Count | EID mask-len  | ACT |A|      Reserved         |
   e   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   c   | Rsvd  |  Map-Version Number   |       EID-Prefix-AFI          |
   o   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   r   |                          EID-Prefix                           |
   d   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |  /|    Priority   |    Weight     |  M Priority   |   M Weight    |
   | L +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   | o |        Unused Flags     |L|p|R|           Loc-AFI             |
   | c +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |  \|                             Locator                           |
   +-> +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

   Packet field descriptions:

   Type:  2 (Map-Reply)

   P:  This is the probe-bit, which indicates that the Map-Reply is in
      response to a Locator reachability probe Map-Request.  The 'Nonce'
      field must contain a copy of the nonce value from the original
      Map-Request.  See "RLOC-Probing Algorithm" (Section 7.1) for more
      details.  When the probe-bit is set to 1 in a Map-Reply message,
      the A-bit in each EID-Record included in the message MUST be set
      to 1; otherwise, it MUST be silently discarded.

   E:  This bit indicates that the ETR that sends this Map-Reply message
      is advertising that the site is enabled for the Echo-Nonce Locator
      reachability algorithm.  See Section 10.1 ("Echo-Nonce Algorithm")
      of [RFC9300] for more details.

   S:  This is the Security bit.  When set to 1, the following
      authentication information will be appended to the end of the Map-
      Reply.  Details can be found in [RFC9303].

    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
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |    AD Type    |       Authentication Data Content . . .       |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

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

   Record Count:  This is the number of records in this reply message.
      A record is comprised of that portion of the packet labeled
      'Record' above and occurs the number of times equal to Record
      Count.  Note that the reply count can be larger than the requested
      count, for instance, when more-specific prefixes are present.

   Nonce:  This 64-bit value from the Map-Request is echoed in this
      'Nonce' field of the Map-Reply.

   Record TTL:  This is the time in minutes the recipient of the Map-
      Reply can store the mapping.  If the TTL is 0, the entry MUST be
      removed from the cache immediately.  If the value is 0xffffffff,
      the recipient can decide locally how long to store the mapping.

   Locator Count:  This is the number of Locator entries in the given
      Record.  A Locator entry comprises what is labeled above as 'Loc'.
      The Locator count can be 0, indicating that there are no Locators
      for the EID-Prefix.

   EID mask-len:  This is the mask length for the EID-Prefix.

   ACT:  This 3-bit field describes Negative Map-Reply actions.  In any
      other message type, these bits are set to 0 and ignored on
      receipt.  These bits are used only when the 'Locator Count' field
      is set to 0.  The action bits are encoded only in Map-Reply
      messages.  They are used to tell an ITR or PITR why an empty
      Locator-Set was returned from the Mapping System and how it stores
      the Map-Cache entry.  See Section 12.3 for additional information.

      (0) No-Action:  The Map-Cache is kept alive, and no packet
          encapsulation occurs.

      (1) Natively-Forward:  The packet is not encapsulated or dropped
          but natively forwarded.

      (2) Send-Map-Request:  The Map-Cache entry is created and flagged
          so that any packet matching this entry invokes sending a Map-
          Request.

      (3) Drop/No-Reason:  A packet that matches this Map-Cache entry is
          dropped.  An ICMP Destination Unreachable message SHOULD be
          sent.

      (4) Drop/Policy-Denied:  A packet that matches this Map-Cache
          entry is dropped.  The reason for the Drop action is that a
          Map-Request for the target EID is being policy-denied by
          either an xTR or the Mapping System.

      (5) Drop/Auth-Failure:  A packet that matches this Map-Cache entry
          is dropped.  The reason for the Drop action is that a Map-
          Request for the target EID fails an authentication
          verification check by either an xTR or the Mapping System.

   A:  The Authoritative bit MAY only be set to 1 by an ETR.  A Map-
      Server generating Map-Reply messages as a proxy MUST NOT set the
      A-bit to 1.  This bit indicates to the requesting ITRs if the Map-
      Reply was originated by a LISP node managed at the site that owns
      the EID-Prefix.

   Map-Version Number:  When this 12-bit value in an EID-Record of a
      Map-Reply message is non-zero, see [RFC9302] for details.

   EID-Prefix-AFI:  This is the address family of the EID-Prefix
      according to [AFN] and [RFC8060].

   EID-Prefix:  This prefix is 4 octets for an IPv4 address family and
      16 octets for an IPv6 address family.

   Priority:  Each RLOC is assigned a unicast Priority.  Lower values
      are preferable.  When multiple RLOCs have the same Priority, they
      may be used in a load-split fashion.  A value of 255 means the
      RLOC MUST NOT be used for unicast forwarding.

   Weight:  When priorities are the same for multiple RLOCs, the Weight
      indicates how to balance unicast traffic between them.  Weight is
      encoded as a relative weight of total unicast packets that match
      the mapping entry.  For example, if there are 4 Locators in a
      Locator-Set, where the Weights assigned are 30, 20, 20, and 10,
      the first Locator will get 37.5% of the traffic, the second and
      third Locators will each get 25% of the traffic, and the fourth
      Locator will get 12.5% of the traffic.  If all Weights for a
      Locator-Set are equal, the receiver of the Map-Reply will decide
      how to load-split the traffic.  See Section 12 ("Routing Locator
      Hashing") of [RFC9300] for a suggested hash algorithm to
      distribute the load across Locators with the same Priority and
      equal Weight values.

   M Priority:  Each RLOC is assigned a multicast Priority used by an
      ETR in a receiver multicast site to select an ITR in a source
      multicast site for building multicast distribution trees.  A value
      of 255 means the RLOC MUST NOT be used for joining a multicast
      distribution tree.  For more details, see [RFC6831].

   M Weight:  When priorities are the same for multiple RLOCs, the
      Weight indicates how to balance building multicast distribution
      trees across multiple ITRs.  The Weight is encoded as a relative
      weight (similar to the unicast Weights) of the total number of
      trees built to the source site identified by the EID-Prefix.  If
      all Weights for a Locator-Set are equal, the receiver of the Map-
      Reply will decide how to distribute multicast state across ITRs.
      For more details, see [RFC6831].

   Unused Flags:  These are set to 0 when sending and ignored on
      receipt.

   L:  When this bit is set, the Locator is flagged as a local Locator
      to the ETR that is sending the Map-Reply.  When a Map-Server is
      doing proxy Map-Replying for a LISP site, the L-bit is set to 0
      for all Locators in this Locator-Set.

   p:  When this bit is set, an ETR informs the RLOC-Probing ITR that
      the Routing Locator Address for which this bit is set is the one
      being RLOC-Probed and may be different from the source address of
      the Map-Reply.  An ITR that RLOC-Probes a particular Locator MUST
      use this Locator for retrieving the data structure used to store
      the fact that the Locator is reachable.  The p-bit is set for a
      single Locator in the same Locator-Set.  If an implementation sets
      more than one p-bit erroneously, the receiver of the Map-Reply
      MUST select the first set p-bit Locator.  The p-bit MUST NOT be
      set for Locator-Set records sent in Map-Request and Map-Register
      messages.

   R:  This is set when the sender of a Map-Reply has a route to the
      Locator in the Locator data record.  This receiver may find this
      useful to know if the Locator is up but not necessarily reachable
      from the receiver's point of view.

   Locator:  This is an IPv4 or IPv6 address (as encoded by the 'Loc-
      AFI' field) assigned to an ETR and used by an ITR as a destination
      RLOC address in the outer header of a LISP encapsulated packet.
      Note that the destination RLOC address of a LISP encapsulated
      packet MAY be an anycast address.  A source RLOC of a LISP
      encapsulated packet can be an anycast address as well.  The source
      or destination RLOC MUST NOT be the broadcast address
      (255.255.255.255 or any subnet broadcast address known to the
      router) and MUST NOT be a link-local multicast address.  The
      source RLOC MUST NOT be a multicast address.  The destination RLOC
      SHOULD be a multicast address if it is being mapped from a
      multicast destination EID.

   Map-Replies MUST be rate limited.  It is RECOMMENDED that a Map-Reply
   for the same destination RLOC be sent to no more than one packet
   every 3 seconds.

   The Record format, as defined here, is used both in the Map-Reply and
   Map-Register messages; this includes all the field definitions.

5.5.  EID-to-RLOC UDP Map-Reply Message

   A Map-Reply returns an EID-Prefix with a mask length that is less
   than or equal to the EID being requested.  The EID being requested is
   either from the destination field of an IP header of a Data-Probe or
   the EID of a record of a Map-Request.  The RLOCs in the Map-Reply are
   routable IP addresses of all ETRs for the LISP site.  Each RLOC
   conveys status reachability but does not convey path reachability
   from a requester's perspective.  Separate testing of path
   reachability is required.  See "RLOC-Probing Algorithm" (Section 7.1)
   for details.

   Note that a Map-Reply MAY contain different EID-Prefix granularity
   (prefix + mask length) than the Map-Request that triggers it.  This
   might occur if a Map-Request were for a prefix that had been returned
   by an earlier Map-Reply.  In such a case, the requester updates its
   cache with the new prefix information and granularity.  For example,
   a requester with two cached EID-Prefixes that are covered by a Map-
   Reply containing one less-specific prefix replaces the entry with the
   less-specific EID-Prefix.  Note that the reverse, replacement of one
   less-specific prefix with multiple more-specific prefixes, can also
   occur, not by removing the less-specific prefix but rather by adding
   the more-specific prefixes that, during a lookup, will override the
   less-specific prefix.

   When an EID moves out of a LISP site [EID-MOBILITY], the database
   Mapping System may have overlapping EID-Prefixes.  Or when a LISP
   site is configured with multiple sets of ETRs that support different
   EID-Prefix mask lengths, the database Mapping System may have
   overlapping EID-Prefixes.  When overlapping EID-Prefixes exist, a
   Map-Request with an EID that best matches any EID-Prefix MUST be
   returned in a single Map-Reply message.  For instance, if an ETR had
   database mapping entries for EID-Prefixes:

     2001:db8::/32
     2001:db8:1::/48
     2001:db8:1:1::/64
     2001:db8:1:2::/64

   A Map-Request for EID 2001:db8:1:1::1 would cause a Map-Reply with a
   record count of 1 to be returned with a mapping record EID-Prefix of
   2001:db8:1:1::/64.

   A Map-Request for EID 2001:db8:1:5::5 would cause a Map-Reply with a
   record count of 3 to be returned with mapping records for EID-
   Prefixes 2001:db8:1::/48, 2001:db8:1:1::/64, and 2001:db8:1:2::/64,
   filling out the /48 with more-specific prefixes that exist in the
   Mapping System.

   Note that not all overlapping EID-Prefixes need to be returned but
   only the more-specific entries (note in the second example above that
   2001:db8::/32 was not returned for requesting EID 2001:db8:1:5::5)
   for the matching EID-Prefix of the requesting EID.  When more than
   one EID-Prefix is returned, all SHOULD use the same TTL value so they
   can all time out at the same time.  When a more-specific EID-Prefix
   is received later, its TTL value in the Map-Reply record can be
   stored even when other less-specific entries exist.  When a less-
   specific EID-Prefix is received later, its Map-Cache expiration time
   SHOULD be set to the minimum expiration time of any more-specific
   EID-Prefix in the Map-Cache.  This is done so the integrity of the
   EID-Prefix set is wholly maintained and so no more-specific entries
   are removed from the Map-Cache while keeping less-specific entries.

   For scalability, it is expected that aggregation of EID addresses
   into EID-Prefixes will allow one Map-Reply to satisfy a mapping for
   the EID addresses in the prefix range, thereby reducing the number of
   Map-Request messages.

   Map-Reply records can have an empty Locator-Set.  A Negative Map-
   Reply is a Map-Reply with an empty Locator-Set.  Negative Map-Replies
   convey special actions by the Map-Reply sender to the ITR or PITR
   that have solicited the Map-Reply.  There are two primary
   applications for Negative Map-Replies.  The first is for a Map-
   Resolver to instruct an ITR or PITR when a destination is for a LISP
   site versus a non-LISP site, and the other is to source quench Map-
   Requests that are sent for non-allocated EIDs.

   For each Map-Reply record, the list of Locators in a Locator-Set MUST
   be sorted in order of ascending IP address where an IPv4 Routing
   Locator Address is considered numerically "less than" an IPv6 Routing
   Locator Address.

   When sending a Map-Reply message, the destination address is copied
   from one of the 'ITR-RLOC' fields from the Map-Request.  The ETR can
   choose a Routing Locator Address from one of the address families it
   supports.  For Data-Probes, the destination address of the Map-Reply
   is copied from the source address of the Data-Probe message that is
   invoking the reply.  The source address of the Map-Reply is one of
   the chosen local IP addresses; this allows Unicast Reverse Path
   Forwarding (uRPF) checks to succeed in the upstream service provider.
   The destination port of a Map-Reply message is copied from the source
   port of the Map-Request or Data-Probe, and the source port of the
   Map-Reply message is set to the well-known UDP port 4342.

5.6.  Map-Register Message Format

   This section specifies the encoding format for the Map-Register
   message.  The message is sent in UDP with a destination UDP port of
   4342 and a randomly selected UDP source port number.

   The fields below are used in multiple control messages.  They are
   defined for Map-Register, Map-Notify, and Map-Notify-Ack message
   types.

   The Map-Register message format is:

        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=3 |P|S|I|        Reserved       |E|T|a|R|M| Record Count  |
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
       |                         Nonce . . .                           |
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
       |                         . . . Nonce                           |
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
       |    Key ID     | Algorithm ID  |  Authentication Data Length   |
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
       ~                     Authentication Data                       ~
   +-> +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |   |                          Record TTL                           |
   |   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   R   | Locator Count | EID mask-len  | ACT |A|      Reserved         |
   e   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   c   | Rsvd  |  Map-Version Number   |        EID-Prefix-AFI         |
   o   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   r   |                          EID-Prefix                           |
   d   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |  /|    Priority   |    Weight     |  M Priority   |   M Weight    |
   | L +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   | o |        Unused Flags     |L|p|R|           Loc-AFI             |
   | c +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |  \|                             Locator                           |
   +-> +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

   Packet field descriptions:

   Type:  3 (Map-Register)

   P:  This is the proxy Map-Reply bit.  When set to 1, the ETR sending
      the Map-Register message is requesting the Map-Server to proxy a
      Map-Reply.  The Map-Server will send non-authoritative Map-Replies
      on behalf of the ETR.

   S:  This is the security-capable bit.  When set, the procedures from
      [RFC9303] are supported.

   I:  This is the ID-present bit.  This bit is set to 1 to indicate
      that a 128-bit 'xTR-ID' field and a 64-bit 'Site-ID' field are
      present at the end of the Map-Register message.  If an xTR is
      configured with an xTR-ID and Site-ID, it MUST set the I-bit to 1
      and include its xTR-ID and Site-ID in the Map-Register messages it
      generates.  The combination of Site-ID plus xTR-ID uniquely
      identifies an xTR in a LISP domain and serves to track its last
      seen nonce.

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

   E:  This is the Map-Register EID-notify bit.  This is used by a
      First-Hop Router that discovers a dynamic EID.  This EID-notify-
      based Map-Register is sent by the First-Hop Router to a same site
      xTR that propagates the Map-Register to the Mapping System.  The
      site xTR keeps state to later Map-Notify the First-Hop Router
      after the EID has moved away.  See [EID-MOBILITY] for a detailed
      use case.

   T:  This is the use TTL for timeout bit.  When set to 1, the xTR
      wants the Map-Server to time out registrations based on the value
      in the 'Record TTL' field of this message.  Otherwise, the default
      timeout described in Section 8.2 is used.

   a:  This is the merge-request bit.  When set to 1, the xTR requests
      to merge RLOC-Records from different xTRs registering the same
      EID-Record.  See Signal-Free Multicast [RFC8378] for one use-case
      example.

   R:  This reserved and unassigned bit MUST be set to 0 on transmit and
      MUST be ignored on receipt.

   M:  This is the want-map-notify bit.  When set to 1, an ETR is
      requesting a Map-Notify message to be returned in response to
      sending a Map-Register message.  The Map-Notify message sent by a
      Map-Server is used to acknowledge receipt of a Map-Register
      message.

   Record Count:  This is the number of records in this Map-Register
      message.  A record is comprised of that portion of the packet
      labeled 'Record' above and occurs the number of times equal to
      Record Count.

   Nonce:  This 8-octet 'Nonce' field is incremented each time a Map-
      Register message is sent.  When a Map-Register acknowledgment is
      requested, the nonce is returned by Map-Servers in Map-Notify
      messages.  Since the entire Map-Register message is authenticated,
      the 'Nonce' field serves to protect against Map-Register replay
      attacks.  An ETR that registers to the Mapping System SHOULD store
      the last nonce sent in persistent storage, so when it restarts, it
      can continue using an incrementing nonce.  If the ETR cannot
      support saving the nonce, then when it restarts, it MUST use a new
      authentication key to register to the Mapping System.  A Map-
      Server MUST track and save in persistent storage the last nonce
      received for each ETR xTR-ID and key pair.  If a Map-Register is
      received with a nonce value that is not greater than the saved
      nonce, it MUST drop the Map-Register message and SHOULD log the
      fact that a replay attack could have occurred.

   Key ID:  This is a key-id value that identifies a pre-shared secret
      between an ETR and a Map-Server.  Per-message keys are derived
      from the pre-shared secret to authenticate the origin and protect
      the integrity of the Map-Register.  The Key ID allows rotating
      between multiple pre-shared secrets in a nondisruptive way.  The
      pre-shared secret MUST be unique per each LISP Site-ID.

   Algorithm ID:  This field identifies the Key Derivation Function
      (KDF) and Message Authentication Code (MAC) algorithms used to
      derive the key and to compute the Authentication Data of a Map-
      Register.  This 8-bit field identifies the KDF and MAC algorithm
      pair.  See Section 12.5 for codepoint assignments.

   Authentication Data Length:  This is the length in octets of the
      'Authentication Data' field that follows this field.  The length
      of the 'Authentication Data' field is dependent on the MAC
      algorithm used.  The length field allows a device that doesn't
      know the MAC algorithm to correctly parse the packet.

   Authentication Data:  This is the output of the MAC algorithm placed
      in this field after the MAC computation.  The MAC output is
      computed as follows:

      1.  The KDF algorithm is identified by the 'Algorithm ID' field
          according to the table in Section 12.5.  Implementations of
          this specification MUST implement HMAC-SHA-256-128 [RFC4868]
          and SHOULD implement HMAC-SHA-256-128+HKDF-SHA256 [RFC5869].

      2.  The MAC algorithm is identified by the 'Algorithm ID' field
          according to the table in Section 12.5.

      3.  The pre-shared secret used to derive the per-message key is
          represented by PSK[Key ID], that is, the pre-shared secret
          identified by the Key ID.

      4.  The derived per-message key is computed as: per-msg-
          key=KDF(nonce+PSK[Key ID],s).  Where the nonce is the value in
          the 'Nonce' field of the Map-Register, "+" denotes
          concatenation and "s" (the salt) is a string that corresponds
          to the message type being authenticated.  For Map-Register
          messages, it is equal to "Map-Register Authentication".
          Similarly, for Map-Notify and Map-Notify-Ack messages, it is
          "Map-Notify Authentication" and "Map-Notify-Ack
          Authentication", respectively.  For those Algorithm IDs
          defined in Section 12.5 that specify a 'none' KDF, the per-
          message key is computed as: per-msg-key = PSK[Key ID].  This
          means that the same key is used across multiple protocol
          messages.

      5.  The MAC output is computed using the MAC algorithm and the
          per-msg-key over the entire Map-Register payload (from and
          including the LISP message type field through the end of the
          last RLOC-Record) with the authenticated data field preset to
          0.

   The definition of the rest of the Map-Register can be found in the
   EID-Record description in Section 5.4.  When the I-bit is set, the
   following fields are added to the end of the Map-Register message:

   xTR-ID:  'xTR-ID' is a 128-bit field at the end of the Map-Register
      message, starting after the final Record in the message.  The xTR-
      ID is used to uniquely identify an xTR.  The same xTR-ID value
      MUST NOT be used in two different xTRs in the scope of the Site-
      ID.

   Site-ID:  'Site-ID' is a 64-bit field at the end of the Map-Register
      message, following the xTR-ID.  The Site-ID is used to uniquely
      identify to which site the xTR that sent the message belongs.
      This document does not specify a strict meaning for the 'Site-ID'
      field.  Informally, it provides an indication that a group of xTRs
      have some relationship, either administratively, topologically, or
      otherwise.

5.7.  Map-Notify and Map-Notify-Ack Message Formats

   This section specifies the encoding format for the Map-Notify and
   Map-Notify-Ack messages.  The messages are sent inside a UDP packet
   with source and destination UDP ports equal to 4342.

   The Map-Notify and Map-Notify-Ack message formats are:

        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=4/5|             Reserved                 | Record Count  |
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
       |                         Nonce . . .                           |
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
       |                         . . . Nonce                           |
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
       |    Key ID     | Algorithm ID  |  Authentication Data Length   |
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
       ~                     Authentication Data                       ~
   +-> +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |   |                          Record TTL                           |
   |   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   R   | Locator Count | EID mask-len  | ACT |A|      Reserved         |
   e   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   c   | Rsvd  |  Map-Version Number   |         EID-Prefix-AFI        |
   o   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   r   |                          EID-Prefix                           |
   d   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |  /|    Priority   |    Weight     |  M Priority   |   M Weight    |
   | L +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   | o |        Unused Flags     |L|p|R|           Loc-AFI             |
   | c +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |  \|                             Locator                           |
   +-> +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

   Packet field descriptions:

   Type:  4/5 (Map-Notify/Map-Notify-Ack)

   The Map-Notify message has the same contents as a Map-Register
   message.  See "Map-Register Message Format" (Section 5.6) for field
   descriptions and "Map-Reply Message Format" (Section 5.4) for EID-
   Record and RLOC-Record descriptions.

   The fields of the Map-Notify are copied from the corresponding Map-
   Register to acknowledge its correct processing.  In the Map-Notify,
   the 'Authentication Data' field is recomputed using the corresponding
   per-message key and according to the procedure defined in the
   previous section.  The Map-Notify message can also be used in an
   unsolicited manner.  This topic is out of scope for this document.
   See [LISP-PUBSUB] for details.

   After sending a Map-Register, if a Map-Notify is not received after 1
   second, the transmitter MUST retransmit the original Map-Register
   with an exponential backoff (base of 2, that is, the next backoff
   timeout interval is doubled); the maximum backoff is 1 minute.  Map-
   Notify messages are only transmitted upon the reception of a Map-
   Register with the M-bit set; Map-Notify messages are not
   retransmitted.  The only exception to this is for unsolicited Map-
   Notify messages; see below.

   A Map-Server sends an unsolicited Map-Notify message (one that is not
   used as an acknowledgment to a Map-Register message) only in
   conformance with Section 3.1 ("Congestion Control Guidelines") of
   [RFC8085] and Section 3.3 ("Reliability Guidelines") of [RFC8085].  A
   Map-Notify is retransmitted until a Map-Notify-Ack is received by the
   Map-Server with the same nonce used in the Map-Notify message.  An
   implementation SHOULD retransmit up to 3 times at 3-second
   retransmission intervals, after which time the retransmission
   interval is exponentially backed off (base of 2, that is, the next
   backoff timeout interval is doubled) for another 3 retransmission
   attempts.  Map-Notify-Ack messages are only transmitted upon the
   reception of an unsolicited Map-Notify; Map-Notify-Ack messages are
   not retransmitted.

   The Map-Notify-Ack message has the same contents as a Map-Notify
   message.  It is used to acknowledge the receipt of an unsolicited
   Map-Notify and, once the Authentication Data is validated, allows the
   sender to stop retransmitting a Map-Notify with the same nonce and
   (validated) Authentication Data.  The fields of the Map-Notify-Ack
   are copied from the corresponding Map-Notify message to acknowledge
   its correct processing.  The 'Authentication Data' field is
   recomputed using the corresponding per-message key and according to
   the procedure defined in the previous section.

   Upon reception of a Map-Register, Map-Notify, or Map-Notify-Ack, the
   receiver verifies the Authentication Data.  If the Authentication
   Data fails to validate, the message is dropped without further
   processing.

5.8.  Encapsulated Control Message Format

   An Encapsulated Control Message (ECM) is used to encapsulate control
   packets sent between xTRs and the mapping database system or internal
   to the mapping database system.

        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 = xxxx      |       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 = xxxx      |       Dest Port = yyyy        |
   UDP +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
     \ |           UDP Length          |        UDP Checksum           |
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   LCM |                      LISP Control Message                     |
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

   Packet header descriptions:

   OH:   This is the outer IPv4 or IPv6 header, which uses RLOC
         addresses in the source and destination header address fields.

   UDP:  This is the outer UDP header with destination port 4342.  The
         source port is randomly allocated.  The checksum field MUST be
         non-zero.

   LISP:  Type 8 is defined to be a "LISP Encapsulated Control Message",
         and what follows is either an IPv4 or IPv6 header, as encoded
         by the first 4 bits after the 'Reserved' field, or the
         'Authentication Data' field [RFC9303] if the S-bit (see below)
         is set.

   Type:  8 (Encapsulated Control Message (ECM))

   S:    This is the Security bit.  When set to 1, the field following
         the 'Reserved' field will have the following Authentication
         Data format and follow the procedures from [RFC9303].

    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
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |    AD Type    |       Authentication Data Content . . .       |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

   D:    This is the DDT-bit.  When set to 1, the sender is requesting a
         Map-Referral message to be returned.  Details regarding this
         procedure are described in [RFC8111].

   R:    This reserved and unassigned bit MUST be set to 0 on transmit
         and MUST be ignored on receipt.

   IH:   This is the inner IPv4 or IPv6 header, which can use either
         RLOC or EID addresses in the header address fields.  When a
         Map-Request is encapsulated in this packet format, the
         destination address in this header is an EID.

   UDP:  This is the inner UDP header, where the port assignments depend
         on the control packet being encapsulated.  When the control
         packet is a Map-Request or Map-Register, the source port is
         selected by the ITR/PITR and the destination port is 4342.
         When the control packet is a Map-Reply, the source port is 4342
         and the destination port is assigned from the source port of
         the invoking Map-Request.  Port number 4341 MUST NOT be
         assigned to either port.  The checksum field MUST be non-zero.

   LCM:  The format is one of the control message formats described in
         Section 5.  Map-Request messages are allowed to be control
         plane (ECM) encapsulated.  When Map-Requests are sent for RLOC-
         Probing purposes (i.e., the probe-bit is set), they MUST NOT be
         sent inside Encapsulated Control Messages.  PIM Join/Prune
         messages [RFC6831] are also allowed to be control plane (ECM)
         encapsulated.

6.  Changing the Contents of EID-to-RLOC Mappings

   In the LISP architecture, ITRs/PITRs use a local Map-Cache to store
   EID-to-RLOC mappings for forwarding.  When an ETR updates a mapping,
   a mechanism is required to inform ITRs/PITRs that are using such
   mappings.

   The LISP data plane defines several mechanisms to update mappings
   [RFC9300].  This document specifies the Solicit-Map-Request (SMR), a
   control plane push-based mechanism.  An additional control plane
   mechanism based on the Publish/Subscribe paradigm is specified in
   [LISP-PUBSUB].

6.1.  Solicit-Map-Request (SMR)

   Soliciting a Map-Request is a selective way for ETRs, at the site
   where mappings change, to control the rate they receive requests for
   Map-Reply messages.  SMRs are also used to tell remote ITRs to update
   the mappings they have cached.

   Since ETRs are not required to keep track of remote ITRs that have
   cached their mappings, they do not know which ITRs need to have their
   mappings updated.  As a result, an ETR will solicit Map-Requests to
   those sites to which it has been sending LISP encapsulated data
   packets for the last minute, and when an ETR is also acting as an
   ITR, it will send an SMR to an ITR to which it has recently sent
   encapsulated data.

   An SMR message is simply a bit set in a Map-Request message.  An ITR
   or PITR will send a Map-Request (SMR-invoked Map-Request) when it
   receives an SMR message.  While the SMR message is sent through the
   data plane, the SMR-invoked Map-Request MUST be sent through the
   Mapping System (not directly).

   Both the SMR sender and the SMR responder MUST rate limit these
   messages.  It is RECOMMENDED that the SMR sender rate limit a Map-
   Request for the same destination RLOC to no more than one packet
   every 3 seconds.  It is RECOMMENDED that the SMR responder rate limit
   a Map-Request for the same EID-Prefix to no more than once every 3
   seconds.

   When an ITR receives an SMR message for which it does not have a
   cached mapping for the EID in the SMR message, it SHOULD NOT send an
   SMR-invoked Map-Request.  This scenario can occur when an ETR sends
   SMR messages to all Locators in the Locator-Set it has stored in its
   Map-Cache but the remote ITRs that receive the SMR may not be sending
   packets to the site.  There is no point in updating the ITRs until
   they need to send, in which case they will send Map-Requests to
   obtain a Map-Cache entry.

7.  Routing Locator Reachability

   This document defines several control plane mechanisms for
   determining RLOC reachability.  Please note that additional data
   plane reachability mechanisms are defined in [RFC9300].

   1.  An ITR may receive an ICMP Network Unreachable or Host
       Unreachable message for an RLOC it is using.  This indicates that
       the RLOC is likely down.  Note that trusting ICMP messages may
       not be desirable, but neither is ignoring them completely.
       Implementations are encouraged to follow current best practices
       in treating these conditions [OPSEC-ICMP-FILTER].

   2.  When an ITR participates in the routing protocol that operates in
       the underlay routing system, it can determine that an RLOC is
       down when no Routing Information Base (RIB) entry exists that
       matches the RLOC IP address.

   3.  An ITR may receive an ICMP Port Unreachable message from a
       destination host.  This occurs if an ITR attempts to use
       interworking [RFC6832] and LISP-encapsulated data is sent to a
       non-LISP-capable site.

   4.  An ITR may receive a Map-Reply from an ETR in response to a
       previously sent Map-Request.  The RLOC source of the Map-Reply is
       likely up, since the ETR was able to send the Map-Reply to the
       ITR.  Please note that in some scenarios the RLOC -- from the
       outer header -- can be a spoofable field.

   5.  An ITR/ETR pair can use the 'RLOC-Probing' mechanism described
       below.

   When ITRs receive ICMP Network Unreachable or Host Unreachable
   messages as a method to determine unreachability, they will refrain
   from using Locators that are described in Locator lists of Map-
   Replies.  However, using this approach is unreliable because many
   network operators turn off generation of ICMP Destination Unreachable
   messages.

   If an ITR does receive an ICMP Network Unreachable or Host
   Unreachable message, it MAY originate its own ICMP Destination
   Unreachable message destined for the host that originated the data
   packet the ITR encapsulated.

   This assumption does create a dependency: Locator unreachability is
   detected by the receipt of ICMP Host Unreachable messages.  When a
   Locator has been determined to be unreachable, it is not used for
   active traffic; this is the same as if it were listed in a Map-Reply
   with Priority 255.

   The ITR can test the reachability of the unreachable Locator by
   sending periodic Map-Requests.  Both Map-Requests and Map-Replies
   MUST be rate limited; see Sections 5.3 and 5.4 for information about
   rate limiting.  Locator reachability testing is never done with data
   packets, since that increases the risk of packet loss for end-to-end
   sessions.

7.1.  RLOC-Probing Algorithm

   RLOC-Probing is a method that an ITR or PITR can use to determine the
   reachability status of one or more Locators that it has cached in a
   Map-Cache entry.  The probe-bit of the Map-Request and Map-Reply
   messages is used for RLOC-Probing.

   RLOC-Probing is done in the control plane on a timer basis, where an
   ITR or PITR will originate a Map-Request destined to a Routing
   Locator Address from one of its own Routing Locator Addresses.  A
   Map-Request used as an RLOC-Probe is NOT encapsulated and NOT sent to
   a Map-Server or to the mapping database system as one would when
   requesting mapping data.  The EID-Record encoded in the Map-Request
   is the EID-Prefix of the Map-Cache entry cached by the ITR or PITR.
   The ITR MAY include a mapping data record for its own database
   mapping information that contains the local EID-Prefixes and RLOCs
   for its site.  RLOC-Probes are sent periodically using a jittered
   timer interval.

   When an ETR receives a Map-Request message with the probe-bit set, it
   returns a Map-Reply with the probe-bit set.  The source address of
   the Map-Reply is set to the IP address of the outgoing interface the
   Map-Reply destination address routes to.  The Map-Reply SHOULD
   contain mapping data for the EID-Prefix contained in the Map-Request.
   This provides the opportunity for the ITR or PITR that sent the RLOC-
   Probe to get mapping updates if there were changes to the ETR's
   database mapping entries.

   There are advantages and disadvantages of RLOC-Probing.  The main
   benefit of RLOC-Probing is that it can handle many failure scenarios,
   allowing the ITR to determine when the path to a specific Locator is
   reachable or has become unreachable, thus providing a robust
   mechanism for switching to using another Locator from the cached
   Locator.  RLOC-Probing can also provide rough Round-Trip Time (RTT)
   estimates between a pair of Locators, which can be useful for network
   management purposes as well as for selecting low-delay paths.  The
   major disadvantage of RLOC-Probing is in the number of control
   messages required and the amount of bandwidth used to obtain those
   benefits, especially if the requirement for failure detection times
   is very small.

8.  Interactions with Other LISP Components

8.1.  ITR EID-to-RLOC Mapping Resolution

   An ITR is configured with one or more Map-Resolver addresses.  These
   addresses are "Locators" (or RLOCs) and MUST be routable on the
   underlying core network; they MUST NOT need to be resolved through
   LISP EID-to-RLOC mapping, as that would introduce a circular
   dependency.  When using a Map-Resolver, an ITR does not need to
   connect to any other database Mapping System.

   An ITR sends an Encapsulated Map-Request to a configured Map-Resolver
   when it needs an EID-to-RLOC mapping that is not found in its local
   Map-Cache.  Using the Map-Resolver greatly reduces both the
   complexity of the ITR implementation and the costs associated with
   its operation.

   In response to an Encapsulated Map-Request, the ITR can expect one of
   the following:

   *  An immediate Negative Map-Reply (with action code "Natively-
      Forward" and a 15-minute TTL) from the Map-Resolver if the Map-
      Resolver can determine that the requested EID does not exist.  The
      ITR saves the EID-Prefix returned in the Map-Reply in its cache,
      marks it as non-LISP-capable, and knows not to attempt LISP
      encapsulation for destinations matching it.

   *  A Negative Map-Reply (with action code "Natively-Forward") from a
      Map-Server that is authoritative (within the LISP deployment
      (Section 1.1)) for an EID-Prefix that matches the requested EID
      but that does not have an actively registered, more-specific EID-
      Prefix.  In this case, the requested EID is said to match a "hole"
      in the authoritative EID-Prefix.  If the requested EID matches a
      more-specific EID-Prefix that has been delegated by the Map-Server
      but for which no ETRs are currently registered, a 1-minute TTL is
      returned.  If the requested EID matches a non-delegated part of
      the authoritative EID-Prefix, then it is not a LISP EID and a
      15-minute TTL is returned.  See Section 8.2 for a discussion of
      aggregate EID-Prefixes and details regarding Map-Server EID-Prefix
      matching.

   *  A LISP Map-Reply from the ETR that owns the EID-to-RLOC mapping or
      possibly from a Map-Server answering on behalf of the ETR.  See
      Section 8.4 for more details on Map-Resolver message processing.

   Note that an ITR may be configured to both use a Map-Resolver and
   participate in a LISP-ALT logical network.  In such a situation, the
   ITR SHOULD send Map-Requests through the ALT network for any EID-
   Prefix learned via ALT BGP.  Such a configuration is expected to be
   very rare, since there is little benefit to using a Map-Resolver if
   an ITR is already using LISP-ALT.  There would be, for example, no
   need for such an ITR to send a Map-Request to a possibly non-existent
   EID (and rely on Negative Map-Replies) if it can consult the ALT
   database to verify that an EID-Prefix is present before sending that
   Map-Request.

8.2.  EID-Prefix Configuration and ETR Registration

   An ETR publishes its EID-Prefixes on a Map-Server by sending LISP
   Map-Register messages.  A Map-Register message includes
   Authentication Data, so prior to sending a Map-Register message, the
   ETR and Map-Server MUST be configured with a pre-shared secret used
   to derive Map-Register authentication keys.  A Map-Server's
   configuration SHOULD also include a list of the EID-Prefixes for
   which each ETR is authoritative.  Upon receipt of a Map-Register from
   an ETR, a Map-Server accepts only EID-Prefixes that are configured
   for that ETR.  Failure to implement such a check would leave the
   Mapping System vulnerable to trivial EID-Prefix hijacking attacks.

   In addition to the set of EID-Prefixes defined for each ETR that may
   register, a Map-Server is typically also configured with one or more
   aggregate prefixes that define the part of the EID numbering space
   assigned to it.  When LISP-ALT is the database in use, aggregate EID-
   Prefixes are implemented as discard routes and advertised into ALT
   BGP.  The existence of aggregate EID-Prefixes in a Map-Server's
   database means that it may receive Map-Requests for EID-Prefixes that
   match an aggregate but do not match a registered prefix; Section 8.3
   describes how this is handled.

   Map-Register messages are sent periodically from an ETR to a Map-
   Server with a suggested interval between messages of one minute.  A
   Map-Server SHOULD time out and remove an ETR's registration if it has
   not received a valid Map-Register message within the past
   three minutes.  When first contacting a Map-Server after restart or
   changes to its EID-to-RLOC database mappings, an ETR MAY initially
   send Map-Register messages at an increased frequency, up to one every
   20 seconds.  This "quick registration" period is limited to
   five minutes in duration.

   An ETR MAY request that a Map-Server explicitly acknowledge receipt
   and processing of a Map-Register message by setting the "want-map-
   notify" (M-bit) flag.  A Map-Server that receives a Map-Register with
   this flag set will respond with a Map-Notify message.  Typical use of
   this flag by an ETR would be to set it for Map-Register messages sent
   during the initial "quick registration" with a Map-Server but then
   set it only occasionally during steady-state maintenance of its
   association with that Map-Server.  Note that the Map-Notify message
   is sent to UDP destination port 4342, not to the source port
   specified in the original Map-Register message.

   Note that a one-minute minimum registration interval during
   maintenance of an ETR-Map-Server association places a lower bound on
   how quickly and how frequently a mapping database entry can be
   updated.  This may have implications for what sorts of mobility can
   be supported directly by the Mapping System; shorter registration
   intervals or other mechanisms might be needed to support faster
   mobility in some cases.  For a discussion on one way that faster
   mobility may be implemented for individual devices, please see
   [LISP-MN].

   An ETR MAY also request, by setting the "proxy Map-Reply" flag
   (P-bit) in the Map-Register message, that a Map-Server answer Map-
   Requests instead of forwarding them to the ETR.  See Section 7.1 for
   details on how the Map-Server sets certain flags (such as those
   indicating whether the message is authoritative and how returned
   Locators SHOULD be treated) when sending a Map-Reply on behalf of an
   ETR.  When an ETR requests proxy reply service, it SHOULD include all
   RLOCs for all ETRs for the EID-Prefix being registered, along with
   the routable flag ("R-bit") setting for each RLOC.  The Map-Server
   includes all of this information in Map-Reply messages that it sends
   on behalf of the ETR.  This differs from a non-proxy registration,
   since the latter need only provide one or more RLOCs for a Map-Server
   to use for forwarding Map-Requests; the registration information is
   not used in Map-Replies, so it being incomplete is not incorrect.

   An ETR that uses a Map-Server to publish its EID-to-RLOC mappings
   does not need to participate further in the mapping database
   protocol(s).  When using a LISP-ALT mapping database, for example,
   this means that the ETR does not need to implement GRE or BGP, which
   greatly simplifies its configuration and reduces its cost of
   operation.

   Note that use of a Map-Server does not preclude an ETR from also
   connecting to the mapping database (i.e., it could also connect to
   the LISP-ALT network), but doing so doesn't seem particularly useful,
   as the whole purpose of using a Map-Server is to avoid the complexity
   of the mapping database protocols.

8.3.  Map-Server Processing

   Once a Map-Server has EID-Prefixes registered by its client ETRs, it
   can accept and process Map-Requests for them.

   In response to a Map-Request, the Map-Server first checks to see if
   the destination EID matches a configured EID-Prefix.  If there is no
   match, the Map-Server returns a Negative Map-Reply with action code
   "Natively-Forward" and a 15-minute TTL.  This can occur if a Map-
   Request is received for a configured aggregate EID-Prefix for which
   no more-specific EID-Prefix exists; it indicates the presence of a
   non-LISP "hole" in the aggregate EID-Prefix.

   Next, the Map-Server checks to see if any ETRs have registered the
   matching EID-Prefix.  If none are found, then the Map-Server returns
   a Negative Map-Reply with action code "Natively-Forward" and a
   1-minute TTL.

   If the EID-Prefix is either registered or not registered to the
   Mapping System and there is a policy in the Map-Server to have the
   requester drop packets for the matching EID-Prefix, then a Drop/
   Policy-Denied action is returned.  If the EID-Prefix is registered or
   not registered and there is an authentication failure, then a Drop/
   Auth-Failure action is returned.  If either of these actions results
   as a temporary state in policy or authentication, then a Send-Map-
   Request action with a 1-minute TTL MAY be returned to allow the
   requester to retry the Map-Request.

   If any of the registered ETRs for the EID-Prefix have requested proxy
   reply service, then the Map-Server answers the request instead of
   forwarding it.  It returns a Map-Reply with the EID-Prefix, RLOCs,
   and other information learned through the registration process.

   If none of the ETRs have requested proxy reply service, then the Map-
   Server re-encapsulates and forwards the resulting Encapsulated Map-
   Request to one of the registered ETRs.  It does not otherwise alter
   the Map-Request, so any Map-Reply sent by the ETR is returned to the
   RLOC in the Map-Request, not to the Map-Server.  Unless also acting
   as a Map-Resolver, a Map-Server should never receive Map-Replies; any
   such messages SHOULD be discarded without response, perhaps
   accompanied by the logging of a diagnostic message if the rate of
   Map-Replies is suggestive of malicious traffic.

8.4.  Map-Resolver Processing

   Upon receipt of an Encapsulated Map-Request, a Map-Resolver
   decapsulates the enclosed message and then searches for the requested
   EID in its local database of mapping entries (statically configured
   or learned from associated ETRs if the Map-Resolver is also a Map-
   Server offering proxy reply service).  If it finds a matching entry,
   it returns a LISP Map-Reply with the known mapping.

   If the Map-Resolver does not have the mapping entry and if it can
   determine that the EID is not in the mapping database (for example,
   if LISP-ALT is used, the Map-Resolver will have an ALT forwarding
   table that covers the full EID space), it immediately returns a
   Negative Map-Reply with action code "Natively-Forward" and a
   15-minute TTL.  To minimize the number of negative cache entries
   needed by an ITR, the Map-Resolver SHOULD return the least-specific
   prefix that both matches the original query and does not match any
   EID-Prefix known to exist in the LISP-capable infrastructure.

   If the Map-Resolver does not have sufficient information to know
   whether the EID exists, it needs to forward the Map-Request to
   another device that has more information about the EID being
   requested.  To do this, it forwards the unencapsulated Map-Request,
   with the original ITR RLOC as the source, to the mapping database
   system.  Using LISP-ALT, the Map-Resolver is connected to the ALT
   network and sends the Map-Request to the next ALT hop learned from
   its ALT BGP neighbors.  The Map-Resolver does not send any response
   to the ITR; since the source RLOC is that of the ITR, the ETR or Map-
   Server that receives the Map-Request over the ALT and responds will
   do so directly to the ITR.

8.4.1.  Anycast Operation

   A Map-Resolver can be set up to use "anycast", where the same address
   is assigned to multiple Map-Resolvers and is propagated through IGP
   routing, to facilitate the use of a topologically close Map-Resolver
   by each ITR.

   ETRs MAY have anycast RLOC addresses that are registered as part of
   their RLOC-Set to the Mapping System.  However, registrations MUST
   use their unique RLOC addresses, distinct authentication keys, or
   different xTR-IDs to identify security associations with the Map-
   Servers.

9.  Security Considerations

   A LISP threat analysis can be found in [RFC7835].  Here, we highlight
   security considerations that apply when LISP is deployed in
   environments such as those specified in Section 1.1, where the
   following assumptions hold:

   1.  The Mapping System is secure and trusted, and for the purpose of
       these security considerations, the Mapping System is considered
       as one trusted element.

   2.  The ETRs have a preconfigured trust relationship with the Mapping
       System, including some form of shared secret.  The Mapping System
       is aware of which EIDs an ETR can advertise.  How those keys and
       mappings are established is out of scope for this document.

   3.  LISP-SEC [RFC9303] MUST be implemented.  Network operators should
       carefully weigh how the LISP-SEC threat model applies to their
       particular use case or deployment.  If they decide to ignore a
       particular recommendation, they should make sure the risk
       associated with the corresponding threats is well understood.

   The Map-Request/Map-Reply message exchange can be exploited by an
   attacker to mount DoS and/or amplification attacks.  Attackers can
   send Map-Requests at high rates to overload LISP nodes and increase
   the state maintained by such nodes or consume CPU cycles.  Such
   threats can be mitigated by systematically applying filters and rate
   limiters.

   The Map-Request/Map-Reply message exchange can also be exploited to
   inject forged mappings directly into the ITR EID-to-RLOC Map-Cache.
   This can lead to traffic being redirected to the attacker; see
   further details in [RFC7835].  In addition, valid ETRs in the system
   can perform overclaiming attacks.  In this case, attackers can claim
   to own an EID-Prefix that is larger than the prefix owned by the ETR.
   Such attacks can be addressed by using LISP-SEC [RFC9303].  The LISP-
   SEC protocol defines a mechanism for providing origin authentication,
   integrity protection, and prevention of 'man-in-the-middle' and
   'prefix overclaiming' attacks on the Map-Request/Map-Reply exchange.
   In addition, and while beyond the scope of securing an individual
   Map-Server or Map-Resolver, it should be noted that LISP-SEC can be
   complemented by additional security mechanisms defined by the Mapping
   System infrastructure.  For instance, BGP-based LISP-ALT [RFC6836]
   can take advantage of standards work on adding security to BGP, while
   LISP-DDT [RFC8111] defines its own additional security mechanisms.

   To publish an authoritative EID-to-RLOC mapping with a Map-Server
   using the Map-Register message, an ETR includes Authentication Data
   that is a MAC of the entire message using a key derived from the pre-
   shared secret.  An implementation SHOULD support HMAC-SHA256-
   128+HKDF-SHA256 [RFC5869].  The Map-Register message includes
   protection against replay attacks by a man in the middle.  However,
   there is a potential attack where a compromised ETR could overclaim
   the prefix it owns and successfully register it on its corresponding
   Map-Server.  To mitigate this, as noted in Section 8.2, a Map-Server
   MUST verify that all EID-Prefixes registered by an ETR match the
   configuration stored on the Map-Server.

   Deployments concerned about manipulations of Map-Request and Map-
   Reply messages and malicious ETR EID-Prefix overclaiming MUST drop
   LISP control plane messages that do not contain LISP-SEC material
   (S-bit, EID-AD, OTK-AD, PKT-AD).  See Section 3 of [RFC9303] for
   definitions of "EID-AD", "OTK-AD", and "PKT-AD".

   Mechanisms to encrypt, support privacy, and prevent eavesdropping and
   packet tampering for messages exchanged between xTRs, between xTRs
   and the Mapping System, and between nodes that make up the Mapping
   System SHOULD be deployed.  Examples of this are DTLS [RFC9147] or
   "lisp-crypto" [RFC8061].

10.  Privacy Considerations

   As noted by [RFC6973], privacy is a complex issue that greatly
   depends on the specific protocol use case and deployment.  As noted
   in Section 1.1 of [RFC9300], LISP focuses on use cases where entities
   communicate over the public Internet while keeping separate
   addressing and topology.  Here, we detail the privacy threats
   introduced by the LISP control plane; the analysis is based on the
   guidelines detailed in [RFC6973].

   LISP can use long-lived identifiers (EIDs) that survive mobility
   events.  Such identifiers bind to the RLOCs of the nodes.  The RLOCs
   represent the topological location with respect to the specific LISP
   deployments.  In addition, EID-to-RLOC mappings are typically
   considered public information within the LISP deployment when control
   plane messages are not encrypted and can be eavesdropped while Map-
   Request messages are sent to the corresponding Map-Resolvers or Map-
   Register messages to Map-Servers.

   In this context, attackers can correlate the EID with the RLOC and
   track the corresponding user topological location and/or mobility.
   This can be achieved by off-path attackers, if they are
   authenticated, by querying the Mapping System.  Deployments concerned
   about this threat can use access control lists or stronger
   authentication mechanisms [ECDSA-AUTH] in the Mapping System to make
   sure that only authorized users can access this information (data
   minimization).  Use of ephemeral EIDs [EID-ANONYMITY] to achieve
   anonymity is another mechanism to lessen persistency and identity
   tracking.

11.  Changes Related to RFCs 6830 and 6833

   For implementation considerations, the following major changes have
   been made to this document since [RFC6830] and [RFC6833] were
   published:

   *  The 16-bit 'Key ID' field of the Map-Register and Map-Notify
      messages as defined in [RFC6830] has been split into an 8-bit 'Key
      ID' field and an 8-bit 'Algorithm ID' field.  Note that this
      change also applies to the Map-Notify-Ack message defined by this
      document.  See Sections 5.6 and 5.7.

   *  This document defines a Map-Notify-Ack message to provide
      reliability for Map-Notify messages.  Any receiver of a Map-Notify
      message must respond with a Map-Notify-Ack message.  Map-Servers
      who are senders of Map-Notify messages must queue the Map-Notify
      contents until they receive a Map-Notify-Ack with the nonce used
      in the Map-Notify message.  Note that implementations for Map-
      Notify-Ack support already exist and predate this document.

   *  This document has incorporated the codepoint for the Map-Referral
      message from the LISP-DDT specification [RFC8111] to indicate that
      a Map-Server must send the final Map-Referral message when it
      participates in the LISP-DDT Mapping System procedures.

   *  Bits L and D have been added to the Map-Request message.  See
      Section 5.3 for details.

   *  Bits S, I, E, T, a, R, and M have been added to the Map-Register
      message.  See Section 5.6 for details.

   *  The nonce and the Authentication Data in the Map-Register message
      each behave differently; see Section 5.6 for details.

   *  This document adds two new action values that are in an EID-Record
      that appears in Map-Reply, Map-Register, Map-Notify, and Map-
      Notify-Ack messages.  These new action values are Drop/Policy-
      Denied and Drop/Auth-Failure.  See Section 5.4 for details.

12.  IANA Considerations

   This section provides guidance to IANA regarding registration of
   values related to this LISP control plane specification, in
   accordance with BCP 26 [RFC8126].

   *  LISP IANA registry allocations should not be made for purposes
      unrelated to LISP routing or transport protocols.

   *  The following policies are used here with the meanings defined in
      BCP 26 [RFC8126]: "Specification Required", "IETF Review",
      "Experimental Use", and "First Come First Served".

   There are three namespaces (listed in the sub-sections below) in LISP
   that have been registered (see [RFC9299].

12.1.  LISP UDP Port Numbers

   IANA allocated UDP port number 4342 for the LISP control plane.  IANA
   has updated the description for UDP port 4342 to reflect the
   following:

   +==============+=============+===========+==============+===========+
   | Service Name | Port        | Transport | Description  | Reference |
   |              | Number      | Protocol  |              |           |
   +==============+=============+===========+==============+===========+
   | lisp-control | 4342        | udp       | LISP Control | RFC 9301  |
   |              |             |           | Packets      |           |
   +--------------+-------------+-----------+--------------+-----------+

                                  Table 2

12.2.  LISP Packet Type Codes

   IANA is now authoritative for LISP Packet Type definitions, so they
   have replaced the registry references to [RFC6830] with references to
   this document.

   Based on deployment experience related to [RFC6830], the Map-Notify-
   Ack message (message type 5) is defined in this document.  IANA has
   registered it in the "LISP Packet Types" registry.

                +=====================+======+===========+
                | Message             | Code | Reference |
                +=====================+======+===========+
                | LISP Map-Notify-Ack | 5    | RFC 9301  |
                +---------------------+------+-----------+

                                 Table 3

12.3.  LISP Map-Reply EID-Record Action Codes

   New ACT values can be allocated through IETF Review or IESG Approval.
   Four values have already been allocated by [RFC6830].  IANA has
   replaced the reference pointing to [RFC6830] to point to this
   document.  This specification changes the Action name of value 3 from
   "Drop" to "Drop/No-Reason".  It also adds the following new ACT
   values.

    +=======+===============+=============================+===========+
    | Value | Action        | Description                 | Reference |
    +=======+===============+=============================+===========+
    | 4     | Drop/Policy-  | A packet matching this Map- | RFC 9301  |
    |       | Denied        | Cache entry is dropped      |           |
    |       |               | because the target EID is   |           |
    |       |               | policy-denied by the xTR or |           |
    |       |               | the Mapping System.         |           |
    +-------+---------------+-----------------------------+-----------+
    | 5     | Drop/Auth-    | A packet matching this Map- | RFC 9301  |
    |       | Failure       | Cache entry is dropped      |           |
    |       |               | because the Map-Request for |           |
    |       |               | the target EID fails an     |           |
    |       |               | authentication check by the |           |
    |       |               | xTR or the Mapping System.  |           |
    +-------+---------------+-----------------------------+-----------+

                   Table 4: LISP Map-Reply Action Values

   In addition, LISP has a number of flag fields and reserved fields,
   such as the flags of the LISP header fields [RFC9300].  New bits for
   flags in these fields can be implemented after IETF Review or IESG
   Approval, but these need not be managed by IANA.

12.4.  LISP Address Type Codes

   LISP Canonical Address Format (LCAF) [RFC8060] has an 8-bit Type
   field that defines LISP-specific encodings for AFI value 16387.  LCAF
   encodings are used for specific use cases where different address
   types for EID-Records and RLOC-Records are required.

   The "LISP Canonical Address Format (LCAF) Types" registry is used for
   LCAF types.  The registry for LCAF types uses the Specification
   Required policy [RFC8126].  Initial values for the registry as well
   as further information can be found in [RFC8060].

   Therefore, there is no longer a need for the "LISP Address Type
   Codes" registry requested by [RFC6830].  Per this document, the
   registry has been closed.

12.5.  LISP Algorithm ID Numbers

   In [RFC6830], a request for a "LISP Key ID Numbers" registry was
   submitted.  Per this document, IANA has renamed the registry to "LISP
   Algorithm ID Numbers" and listed this document as the registry
   reference.

   The following Algorithm ID values are defined by this specification,
   as used in any packet type that references an 'Algorithm ID' field:

     +=============================+========+===========+===========+
     | Name                        | Number | MAC       | KDF       |
     +=============================+========+===========+===========+
     | None                        | 0      | None      | None      |
     +-----------------------------+--------+-----------+-----------+
     | HMAC-SHA-1-96-None          | 1      | [RFC2404] | None      |
     +-----------------------------+--------+-----------+-----------+
     | HMAC-SHA-256-128-None       | 2      | [RFC4868] | None      |
     +-----------------------------+--------+-----------+-----------+
     | HMAC-SHA256-128+HKDF-SHA256 | 3      | [RFC4868] | [RFC4868] |
     +-----------------------------+--------+-----------+-----------+

                                 Table 5

   Number values are in the range of 0 to 255.  Values are assigned on a
   First Come First Served basis.

12.6.  LISP Bit Flags

   This document asks IANA to create a registry for allocation of bits
   in several headers of the LISP control plane, namely in Map-Request
   messages, Map-Reply messages, Map-Register messages, and Encapsulated
   Control Messages.  Bit allocations are also requested for EID-Records
   and RLOC-Records.  The registry created should be named "LISP Control
   Plane Header Bits".  A subregistry needs to be created per each
   message and EID-Record.  The name of each subregistry is indicated
   below, along with its format and allocation of bits defined in this
   document.  Any additional bit allocations require a specification, in
   accordance with policies defined in [RFC8126].

   Subregistry: Map-Request Header Bits (Section 5.2):

    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 |A|M|P|S|p|s|R|R|  Rsvd   |L|D|   IRC   | Record Count  |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

   +===========+===============+==============+========================+
   | Spec Name | IANA Name     | Bit Position | Description            |
   +===========+===============+==============+========================+
   | A         | Map-Request-A | 4            | Authoritative Bit      |
   +-----------+---------------+--------------+------------------------+
   | M         | Map-Request-M | 5            | Map Data Present Bit   |
   +-----------+---------------+--------------+------------------------+
   | P         | Map-Request-P | 6            | RLOC-Probe Request     |
   |           |               |              | Bit                    |
   +-----------+---------------+--------------+------------------------+
   | S         | Map-Request-S | 7            | Solicit Map-Request    |
   |           |               |              | (SMR) Bit              |
   +-----------+---------------+--------------+------------------------+
   | p         | Map-Request-p | 8            | Proxy-ITR Bit          |
   +-----------+---------------+--------------+------------------------+
   | s         | Map-Request-s | 9            | Solicit Map-Request    |
   |           |               |              | Invoked Bit            |
   +-----------+---------------+--------------+------------------------+
   | L         | Map-Request-L | 17           | Local xTR Bit          |
   +-----------+---------------+--------------+------------------------+
   | D         | Map-Request-D | 18           | Don't Map-Reply Bit    |
   +-----------+---------------+--------------+------------------------+

                   Table 6: LISP Map-Request Header Bits

   Subregistry: Map-Reply Header Bits (Section 5.4):

    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=2 |P|E|S|          Reserved               | Record Count  |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

    +===========+=============+==============+========================+
    | Spec Name | IANA Name   | Bit Position | Description            |
    +===========+=============+==============+========================+
    | P         | Map-Reply-P | 4            | RLOC-Probe Bit         |
    +-----------+-------------+--------------+------------------------+
    | E         | Map-Reply-E | 5            | Echo-Nonce Capable Bit |
    +-----------+-------------+--------------+------------------------+
    | S         | Map-Reply-S | 6            | Security Bit           |
    +-----------+-------------+--------------+------------------------+

                    Table 7: LISP Map-Reply Header Bits

   Subregistry: Map-Register Header Bits (Section 5.6):

    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=3 |P|S|I|        Reserved       |E|T|a|R|M| Record Count  |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

   +===========+================+==============+======================+
   | Spec Name | IANA Name      | Bit Position | Description          |
   +===========+================+==============+======================+
   | P         | Map-Register-P | 4            | Proxy Map-Reply Bit  |
   +-----------+----------------+--------------+----------------------+
   | S         | Map-Register-S | 5            | LISP-SEC Capable Bit |
   +-----------+----------------+--------------+----------------------+
   | I         | Map-Register-I | 6            | xTR-ID Present Bit   |
   +-----------+----------------+--------------+----------------------+

                  Table 8: LISP Map-Register Header Bits

   Subregistry: Encapsulated Control Message (ECM) Header Bits
   (Section 5.8):

    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=8 |S|D|E|M|            Reserved                           |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

   +===========+===========+==============+============================+
   | Spec Name | IANA Name | Bit Position | Description                |
   +===========+===========+==============+============================+
   | S         | ECM-S     | 4            | Security Bit               |
   +-----------+-----------+--------------+----------------------------+
   | D         | ECM-D     | 5            | LISP-DDT Bit               |
   +-----------+-----------+--------------+----------------------------+
   | E         | ECM-E     | 6            | Forward to ETR Bit         |
   +-----------+-----------+--------------+----------------------------+
   | M         | ECM-M     | 7            | Destined to Map-           |
   |           |           |              | Server Bit                 |
   +-----------+-----------+--------------+----------------------------+

        Table 9: LISP Encapsulated Control Message (ECM) Header Bits

   Subregistry: EID-Record Header Bits (Section 5.4):

    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
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   | Locator Count | EID mask-len  | ACT |A|      Reserved         |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

      +===========+==============+==============+===================+
      | Spec Name | IANA Name    | Bit Position | Description       |
      +===========+==============+==============+===================+
      | A         | EID-Record-A | 19           | Authoritative Bit |
      +-----------+--------------+--------------+-------------------+

                   Table 10: LISP EID-Record Header Bits

   Subregistry: RLOC-Record Header Bits (Section 5.4):

    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
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |        Unused Flags     |L|p|R|           Loc-AFI             |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

    +===========+===============+==============+======================+
    | Spec Name | IANA Name     | Bit Position | Description          |
    +===========+===============+==============+======================+
    | L         | RLOC-Record-L | 13           | Local RLOC Bit       |
    +-----------+---------------+--------------+----------------------+
    | p         | RLOC-Record-p | 14           | RLOC-Probe Reply Bit |
    +-----------+---------------+--------------+----------------------+
    | R         | RLOC-Record-R | 15           | RLOC Reachable Bit   |
    +-----------+---------------+--------------+----------------------+

                   Table 11: LISP RLOC-Record Header Bits

13.  References

13.1.  Normative References

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

   [RFC2404]  Madson, C. and R. Glenn, "The Use of HMAC-SHA-1-96 within
              ESP and AH", RFC 2404, DOI 10.17487/RFC2404, November
              1998, <https://www.rfc-editor.org/info/rfc2404>.

   [RFC4086]  Eastlake 3rd, D., Schiller, J., and S. Crocker,
              "Randomness Requirements for Security", BCP 106, RFC 4086,
              DOI 10.17487/RFC4086, June 2005,
              <https://www.rfc-editor.org/info/rfc4086>.

   [RFC4868]  Kelly, S. and S. Frankel, "Using HMAC-SHA-256, HMAC-SHA-
              384, and HMAC-SHA-512 with IPsec", RFC 4868,
              DOI 10.17487/RFC4868, May 2007,
              <https://www.rfc-editor.org/info/rfc4868>.

   [RFC5869]  Krawczyk, H. and P. Eronen, "HMAC-based Extract-and-Expand
              Key Derivation Function (HKDF)", RFC 5869,
              DOI 10.17487/RFC5869, May 2010,
              <https://www.rfc-editor.org/info/rfc5869>.

   [RFC6833]  Fuller, V. and D. Farinacci, "Locator/ID Separation
              Protocol (LISP) Map-Server Interface", RFC 6833,
              DOI 10.17487/RFC6833, January 2013,
              <https://www.rfc-editor.org/info/rfc6833>.

   [RFC8085]  Eggert, L., Fairhurst, G., and G. Shepherd, "UDP Usage
              Guidelines", BCP 145, RFC 8085, DOI 10.17487/RFC8085,
              March 2017, <https://www.rfc-editor.org/info/rfc8085>.

   [RFC8126]  Cotton, M., Leiba, B., and T. Narten, "Guidelines for
              Writing an IANA Considerations Section in RFCs", BCP 26,
              RFC 8126, DOI 10.17487/RFC8126, June 2017,
              <https://www.rfc-editor.org/info/rfc8126>.

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

   [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/info/rfc9300>.

   [RFC9302]  Iannone, L., Saucez, D., and O. Bonaventure, "Locator/ID
              Separation Protocol (LISP) Map-Versioning", RFC 9302,
              DOI 10.17487/RFC9302, October 2022,
              <https://www.rfc-editor.org/info/rfc9302>.

   [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/info/rfc9303>.

   [RFC9304]  Boucadair, M. and C. Jacquenet, "Locator/ID Separation
              Protocol (LISP): Shared Extension Message and IANA
              Registry for Packet Type Allocations", RFC 9304,
              DOI 10.17487/RFC9304, October 2022,
              <https://www.rfc-editor.org/info/rfc9304>.

13.2.  Informative References

   [AFN]      IANA, "Address Family Numbers",
              <http://www.iana.org/assignments/address-family-numbers/>.

   [ECDSA-AUTH]
              Farinacci, D. and E. Nordmark, "LISP Control-Plane ECDSA
              Authentication and Authorization", Work in Progress,
              Internet-Draft, draft-ietf-lisp-ecdsa-auth-09, 11
              September 2022, <https://datatracker.ietf.org/doc/html/
              draft-ietf-lisp-ecdsa-auth-09>.

   [EID-ANONYMITY]
              Farinacci, D., Pillay-Esnault, P., and W. Haddad, "LISP
              EID Anonymity", Work in Progress, Internet-Draft, draft-
              ietf-lisp-eid-anonymity-13, 11 September 2022,
              <https://datatracker.ietf.org/doc/html/draft-ietf-lisp-
              eid-anonymity-13>.

   [EID-MOBILITY]
              Portoles, M., Ashtaputre, V., Maino, F., Moreno, V., and
              D. Farinacci, "LISP L2/L3 EID Mobility Using a Unified
              Control Plane", Work in Progress, Internet-Draft, draft-
              ietf-lisp-eid-mobility-10, 10 July 2022,
              <https://datatracker.ietf.org/doc/html/draft-ietf-lisp-
              eid-mobility-10>.

   [GTP-3GPP] 3GPP, "General Packet Radio System (GPRS) Tunnelling
              Protocol User Plane (GTPv1-U)", TS.29.281, June 2022,
              <https://portal.3gpp.org/desktopmodules/Specifications/
              SpecificationDetails.aspx?specificationId=1699>.

   [INTAREA-ILA]
              Herbert, T. and P. Lapukhov, "Identifier-locator
              addressing for IPv6", Work in Progress, Internet-Draft,
              draft-herbert-intarea-ila-01, 5 March 2018,
              <https://datatracker.ietf.org/doc/html/draft-herbert-
              intarea-ila-01>.

   [LISP-MN]  Farinacci, D., Lewis, D., Meyer, D., and C. White, "LISP
              Mobile Node", Work in Progress, Internet-Draft, draft-
              ietf-lisp-mn-12, 24 July 2022,
              <https://datatracker.ietf.org/doc/html/draft-ietf-lisp-mn-
              12>.

   [LISP-PUBSUB]
              Rodriguez-Natal, A., Ermagan, V., Cabellos-Aparicio, A.,
              Barkai, S., and M. Boucadair, "Publish/Subscribe
              Functionality for LISP", Work in Progress, Internet-Draft,
              draft-ietf-lisp-pubsub-09, 28 June 2021,
              <https://datatracker.ietf.org/doc/html/draft-ietf-lisp-
              pubsub-09>.

   [NVO3-VXLAN-GPE]
              Maino, F., Ed., Kreeger, L., Ed., and U. Elzur, Ed.,
              "Generic Protocol Extension for VXLAN (VXLAN-GPE)", Work
              in Progress, Internet-Draft, draft-ietf-nvo3-vxlan-gpe-12,
              22 September 2021, <https://datatracker.ietf.org/doc/html/
              draft-ietf-nvo3-vxlan-gpe-12>.

   [OPSEC-ICMP-FILTER]
              Gont, F., Gont, G., and C. Pignataro, "Recommendations for
              filtering ICMP messages", Work in Progress, Internet-
              Draft, draft-ietf-opsec-icmp-filtering-04, 3 July 2013,
              <https://datatracker.ietf.org/doc/html/draft-ietf-opsec-
              icmp-filtering-04>.

   [RFC1035]  Mockapetris, P., "Domain names - implementation and
              specification", STD 13, RFC 1035, DOI 10.17487/RFC1035,
              November 1987, <https://www.rfc-editor.org/info/rfc1035>.

   [RFC1071]  Braden, R., Borman, D., and C. Partridge, "Computing the
              Internet checksum", RFC 1071, DOI 10.17487/RFC1071,
              September 1988, <https://www.rfc-editor.org/info/rfc1071>.

   [RFC2890]  Dommety, G., "Key and Sequence Number Extensions to GRE",
              RFC 2890, DOI 10.17487/RFC2890, September 2000,
              <https://www.rfc-editor.org/info/rfc2890>.

   [RFC4984]  Meyer, D., Ed., Zhang, L., Ed., and K. Fall, Ed., "Report
              from the IAB Workshop on Routing and Addressing",
              RFC 4984, DOI 10.17487/RFC4984, September 2007,
              <https://www.rfc-editor.org/info/rfc4984>.

   [RFC6830]  Farinacci, D., Fuller, V., Meyer, D., and D. Lewis, "The
              Locator/ID Separation Protocol (LISP)", RFC 6830,
              DOI 10.17487/RFC6830, January 2013,
              <https://www.rfc-editor.org/info/rfc6830>.

   [RFC6831]  Farinacci, D., Meyer, D., Zwiebel, J., and S. Venaas, "The
              Locator/ID Separation Protocol (LISP) for Multicast
              Environments", RFC 6831, DOI 10.17487/RFC6831, January
              2013, <https://www.rfc-editor.org/info/rfc6831>.

   [RFC6832]  Lewis, D., Meyer, D., Farinacci, D., and V. Fuller,
              "Interworking between Locator/ID Separation Protocol
              (LISP) and Non-LISP Sites", RFC 6832,
              DOI 10.17487/RFC6832, January 2013,
              <https://www.rfc-editor.org/info/rfc6832>.

   [RFC6836]  Fuller, V., Farinacci, D., Meyer, D., and D. Lewis,
              "Locator/ID Separation Protocol Alternative Logical
              Topology (LISP+ALT)", RFC 6836, DOI 10.17487/RFC6836,
              January 2013, <https://www.rfc-editor.org/info/rfc6836>.

   [RFC6837]  Lear, E., "NERD: A Not-so-novel Endpoint ID (EID) to
              Routing Locator (RLOC) Database", RFC 6837,
              DOI 10.17487/RFC6837, January 2013,
              <https://www.rfc-editor.org/info/rfc6837>.

   [RFC6973]  Cooper, A., Tschofenig, H., Aboba, B., Peterson, J.,
              Morris, J., Hansen, M., and R. Smith, "Privacy
              Considerations for Internet Protocols", RFC 6973,
              DOI 10.17487/RFC6973, July 2013,
              <https://www.rfc-editor.org/info/rfc6973>.

   [RFC7348]  Mahalingam, M., Dutt, D., Duda, K., Agarwal, P., Kreeger,
              L., Sridhar, T., Bursell, M., and C. Wright, "Virtual
              eXtensible Local Area Network (VXLAN): A Framework for
              Overlaying Virtualized Layer 2 Networks over Layer 3
              Networks", RFC 7348, DOI 10.17487/RFC7348, August 2014,
              <https://www.rfc-editor.org/info/rfc7348>.

   [RFC7835]  Saucez, D., Iannone, L., and O. Bonaventure, "Locator/ID
              Separation Protocol (LISP) Threat Analysis", RFC 7835,
              DOI 10.17487/RFC7835, April 2016,
              <https://www.rfc-editor.org/info/rfc7835>.

   [RFC8060]  Farinacci, D., Meyer, D., and J. Snijders, "LISP Canonical
              Address Format (LCAF)", RFC 8060, DOI 10.17487/RFC8060,
              February 2017, <https://www.rfc-editor.org/info/rfc8060>.

   [RFC8061]  Farinacci, D. and B. Weis, "Locator/ID Separation Protocol
              (LISP) Data-Plane Confidentiality", RFC 8061,
              DOI 10.17487/RFC8061, February 2017,
              <https://www.rfc-editor.org/info/rfc8061>.

   [RFC8111]  Fuller, V., Lewis, D., Ermagan, V., Jain, A., and A.
              Smirnov, "Locator/ID Separation Protocol Delegated
              Database Tree (LISP-DDT)", RFC 8111, DOI 10.17487/RFC8111,
              May 2017, <https://www.rfc-editor.org/info/rfc8111>.

   [RFC8378]  Moreno, V. and D. Farinacci, "Signal-Free Locator/ID
              Separation Protocol (LISP) Multicast", RFC 8378,
              DOI 10.17487/RFC8378, May 2018,
              <https://www.rfc-editor.org/info/rfc8378>.

   [RFC8402]  Filsfils, C., Ed., Previdi, S., Ed., Ginsberg, L.,
              Decraene, B., Litkowski, S., and R. Shakir, "Segment
              Routing Architecture", RFC 8402, DOI 10.17487/RFC8402,
              July 2018, <https://www.rfc-editor.org/info/rfc8402>.

   [RFC9147]  Rescorla, E., Tschofenig, H., and N. Modadugu, "The
              Datagram Transport Layer Security (DTLS) Protocol Version
              1.3", RFC 9147, DOI 10.17487/RFC9147, April 2022,
              <https://www.rfc-editor.org/info/rfc9147>.

   [RFC9299]  Cabellos, A. and D. Saucez, Ed., "An Architectural
              Introduction to the Locator/ID Separation Protocol
              (LISP)", RFC 9299, DOI 10.17487/RFC9299, October 2022,
              <https://www.rfc-editor.org/info/rfc9299>.

   [RFC9305]  Maino, F., Ed., Lemon, J., Agarwal, P., Lewis, D., and M.
              Smith, "Locator/ID Separation Protocol (LISP) Generic
              Protocol Extension", RFC 9305, DOI 10.17487/RFC9305,
              October 2022, <https://www.rfc-editor.org/info/rfc9305>.

Acknowledgments

   The original authors would like to thank Greg Schudel, Darrel Lewis,
   John Zwiebel, Andrew Partan, Dave Meyer, Isidor Kouvelas, Jesper
   Skriver, and members of the lisp@ietf.org mailing list for their
   feedback and helpful suggestions.

   Special thanks are due to Noel Chiappa for his extensive work and
   thought about caching in Map-Resolvers.

   The current authors would like to give a sincere thank you to the
   people who help put LISP on the Standards Track in the IETF.  They
   include Joel Halpern, Luigi Iannone, Deborah Brungard, Fabio Maino,
   Scott Bradner, Kyle Rose, Takeshi Takahashi, Sarah Banks, Pete
   Resnick, Colin Perkins, Mirja Kühlewind, Francis Dupont, Benjamin
   Kaduk, Eric Rescorla, Alvaro Retana, Alexey Melnikov, Alissa Cooper,
   Suresh Krishnan, Alberto Rodriguez-Natal, Vina Ermagan, Mohamed
   Boucadair, Brian Trammell, Sabrina Tanamal, and John Drake.  The
   contributions they offered greatly added to the security, scale, and
   robustness of the LISP architecture and protocols.

Authors' Addresses

   Dino Farinacci
   lispers.net
   San Jose, CA
   United States of America
   Email: farinacci@gmail.com


   Fabio Maino
   Cisco Systems
   San Jose, CA
   United States of America
   Email: fmaino@cisco.com


   Vince Fuller
   vaf.net Internet Consulting
   Email: vince.fuller@gmail.com


   Albert Cabellos (editor)
   Universitat Politecnica de Catalunya
   c/ Jordi Girona s/n
   08034 Barcelona
   Spain
   Email: acabello@ac.upc.edu