summaryrefslogtreecommitdiff
path: root/doc/rfc/rfc9099.txt
blob: 7b823050a1d0b1c21bd0665e45fd7b84b30eae62 (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
2357
2358
2359
2360
2361
2362
2363
2364
2365
2366
2367
2368
2369
2370
2371
2372
2373
2374
2375
2376
2377
2378
2379
2380
2381
2382
2383
2384
2385
2386
2387
2388
2389
2390
2391
2392
2393
2394
2395
2396
2397
2398
2399
2400
2401
2402
2403
2404
2405
2406
2407
2408
2409
2410
2411
2412
2413
2414
2415
2416
2417
2418
2419
2420
2421
2422
2423
2424
2425
2426
2427
2428
2429
2430
2431
2432
2433
2434
2435
2436
2437
2438
2439
2440
2441
2442
2443
2444
2445
2446
2447
2448
2449
2450
2451
2452
2453
2454
2455
2456
2457
2458
2459
2460
2461
2462
2463
2464
2465
2466
2467
2468
2469
2470
2471
2472
2473
2474
2475
2476
2477
2478
2479
2480
2481
2482
2483
2484
2485
2486
2487
2488
2489
2490
2491
2492
2493
2494
2495
2496
2497
2498
2499
2500
2501
2502
2503
2504
2505
2506
2507
2508
2509
2510
2511
2512
2513
2514
2515
2516
2517
2518
2519
2520
2521
2522
2523
2524
2525
2526
2527
2528
2529
2530
2531
2532
2533
2534
2535
2536
2537
2538
2539
2540
2541
2542
2543
2544
2545
2546
2547
2548
2549
2550
2551
2552
2553
2554
2555
2556
2557
2558
2559
2560
2561
2562
2563
2564
2565
2566
2567
2568
2569
2570
2571
2572
2573
2574
2575
2576
2577
2578
2579
2580
2581
2582
2583
2584
2585
2586
2587
2588
2589
2590
2591
2592
2593
2594
2595
2596
2597
2598
2599
2600
2601
2602
2603
2604
2605
2606
2607
2608
2609
2610
2611
2612
2613
2614
2615
2616
2617
2618
2619
2620
2621
2622
2623
2624
2625
2626
2627
2628
2629
2630
2631
2632
2633
2634
2635
2636
2637
2638
2639
2640
2641
2642
2643
2644
2645
2646
2647
2648
2649
2650
2651
2652
2653
2654
2655
2656
2657
2658
2659
2660
2661
2662
2663
2664
2665
2666
2667
2668
2669
2670
2671
2672
2673
2674
2675
2676
2677
2678
2679
2680
2681
2682
2683
2684
2685
2686
2687
2688
2689
2690
2691
2692
2693
2694
2695
2696
2697
2698
2699
2700
2701
2702
2703
2704
2705
2706
2707
2708
2709
2710
2711
2712
2713
2714
2715
2716
2717
2718
2719
2720
2721
2722
2723
2724
2725
2726
2727
2728
2729
2730
2731
2732
2733
2734
2735
2736
2737
2738
2739
2740
2741
2742
2743
2744
2745
2746
2747
2748
2749
2750
2751
2752
2753
2754
2755
2756
2757
2758
2759
2760
2761
2762
Internet Engineering Task Force (IETF)                         É. Vyncke
Request for Comments: 9099                                         Cisco
Category: Informational                                  K. Chittimaneni
ISSN: 2070-1721                                                         
                                                                 M. Kaeo
                                                    Double Shot Security
                                                                  E. Rey
                                                                    ERNW
                                                             August 2021


         Operational Security Considerations for IPv6 Networks

Abstract

   Knowledge and experience on how to operate IPv4 networks securely is
   available, whether the operator is an Internet Service Provider (ISP)
   or an enterprise internal network.  However, IPv6 presents some new
   security challenges.  RFC 4942 describes security issues in the
   protocol, but network managers also need a more practical,
   operations-minded document to enumerate advantages and/or
   disadvantages of certain choices.

   This document analyzes the operational security issues associated
   with several types of networks and proposes technical and procedural
   mitigation techniques.  This document is only applicable to managed
   networks, such as enterprise networks, service provider networks, or
   managed residential networks.

Status of This Memo

   This document is not an Internet Standards Track specification; it is
   published for informational purposes.

   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).  Not all documents
   approved by the IESG are candidates for any level of Internet
   Standard; see 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/rfc9099.

Copyright Notice

   Copyright (c) 2021 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 Simplified BSD License text as described in Section 4.e of
   the Trust Legal Provisions and are provided without warranty as
   described in the Simplified BSD License.

Table of Contents

   1.  Introduction
     1.1.  Applicability Statement
     1.2.  Requirements Language
   2.  Generic Security Considerations
     2.1.  Addressing
       2.1.1.  Use of ULAs
       2.1.2.  Point-to-Point Links
       2.1.3.  Loopback Addresses
       2.1.4.  Stable Addresses
       2.1.5.  Temporary Addresses for SLAAC
       2.1.6.  DHCP Considerations
       2.1.7.  DNS Considerations
       2.1.8.  Using a /64 per Host
       2.1.9.  Privacy Consideration of Addresses
     2.2.  Extension Headers
       2.2.1.  Order and Repetition of Extension Headers
       2.2.2.  Hop-by-Hop Options Header
       2.2.3.  Fragment Header
       2.2.4.  IP Security Extension Header
     2.3.  Link-Layer Security
       2.3.1.  Neighbor Solicitation Rate-Limiting
       2.3.2.  Router and Neighbor Advertisements Filtering
       2.3.3.  Securing DHCP
       2.3.4.  3GPP Link-Layer Security
       2.3.5.  Impact of Multicast Traffic
       2.3.6.  SEND and CGA
     2.4.  Control Plane Security
       2.4.1.  Control Protocols
       2.4.2.  Management Protocols
       2.4.3.  Packet Exceptions
     2.5.  Routing Security
       2.5.1.  BGP Security
       2.5.2.  Authenticating OSPFv3 Neighbors
       2.5.3.  Securing Routing Updates
       2.5.4.  Route Filtering
     2.6.  Logging/Monitoring
       2.6.1.  Data Sources
       2.6.2.  Use of Collected Data
       2.6.3.  Summary
     2.7.  Transition/Coexistence Technologies
       2.7.1.  Dual Stack
       2.7.2.  Encapsulation Mechanisms
       2.7.3.  Translation Mechanisms
     2.8.  General Device Hardening
   3.  Enterprises-Specific Security Considerations
     3.1.  External Security Considerations
     3.2.  Internal Security Considerations
   4.  Service Provider Security Considerations
     4.1.  BGP
       4.1.1.  Remote Triggered Black Hole Filtering
     4.2.  Transition/Coexistence Mechanism
     4.3.  Lawful Intercept
   5.  Residential Users Security Considerations
   6.  Further Reading
   7.  Security Considerations
   8.  IANA Considerations
   9.  References
     9.1.  Normative References
     9.2.  Informative References
   Acknowledgements
   Authors' Addresses

1.  Introduction

   Running an IPv6 network is new for most operators not only because
   they are not yet used to large-scale IPv6 networks but also because
   there are subtle but critical and important differences between IPv4
   and IPv6, especially with respect to security.  For example, all
   Layer 2 (L2) interactions are now done using the Neighbor Discovery
   Protocol (NDP) [RFC4861] rather than the Address Resolution Protocol
   [RFC0826].  Also, there is no Network Address Port Translation (NAPT)
   defined in [RFC2663] for IPv6 even if [RFC6296] specifies an IPv6-to-
   IPv6 Network Prefix Translation (NPTv6), which is a 1-to-1 mapping of
   IPv6 addresses.  Another important difference is that IPv6 is
   extensible with the use of extension headers.

   IPv6 networks are deployed using a variety of techniques, each of
   which have their own specific security concerns.

   This document complements [RFC4942] by listing security issues when
   operating a network (including various transition technologies).  It
   also provides operational deployment experiences where warranted.

1.1.  Applicability Statement

   This document is applicable to managed networks, i.e., when the
   network is operated by the user organization itself.  Indeed, many of
   the recommended mitigation techniques must be configured with
   detailed knowledge of the network (which are the default routers, the
   switch trunk ports, etc.).  This covers Service Providers (SPs),
   enterprise networks, and some knowledgeable home-user-managed
   residential networks.  This applicability statement especially
   applies to Sections 2.3 and 2.5.4.

1.2.  Requirements Language

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

2.  Generic Security Considerations

2.1.  Addressing

   IPv6 address allocations and overall architecture are important parts
   of securing IPv6.  Initial designs, even if intended to be temporary,
   tend to last much longer than expected.  Although IPv6 was initially
   thought to make renumbering easy, in practice, it may be extremely
   difficult to renumber without a proper IP Address Management (IPAM)
   system.  [RFC7010] introduces the mechanisms that could be utilized
   for IPv6 site renumbering and tries to cover most of the explicit
   issues and requirements associated with IPv6 renumbering.

   A key task for a successful IPv6 deployment is to prepare an
   addressing plan.  Because an abundance of address space is available,
   structuring an address plan around both services and geographic
   locations allows address space to become a basis for more structured
   security policies to permit or deny services between geographic
   regions.  [RFC6177] documents some operational considerations of
   using different prefix sizes for address assignments at end sites.

   A common question is whether companies should use Provider-
   Independent (PI) or Provider-Aggregated (PA) space [RFC7381], but,
   from a security perspective, there is little difference.  However,
   one aspect to keep in mind is who has administrative ownership of the
   address space and who is technically responsible if/when there is a
   need to enforce restrictions on routability of the space, e.g., due
   to malicious criminal activity originating from it.  Relying on PA
   address space may also increase the perceived need for address
   translation techniques, such as NPTv6; thereby, the complexity of the
   operations, including the security operations, is augmented.

   In [RFC7934], it is recommended that IPv6 network deployments provide
   multiple IPv6 addresses from each prefix to general-purpose hosts,
   and it specifically does not recommend limiting a host to only one
   IPv6 address per prefix.  It also recommends that the network give
   the host the ability to use new addresses without requiring explicit
   requests (for example, by using Stateless Address Autoconfiguration
   (SLAAC)).  Privacy extensions, as of [RFC8981], constitute one of the
   main scenarios where hosts are expected to generate multiple
   addresses from the same prefix, and having multiple IPv6 addresses
   per interface is a major change compared to the unique IPv4 address
   per interface for hosts (secondary IPv4 addresses are not common),
   especially for audits (see Section 2.6.2.3).

2.1.1.  Use of ULAs

   Unique Local Addresses (ULAs) [RFC4193] are intended for scenarios
   where interfaces are not globally reachable, despite being routed
   within a domain.  They formally have global scope, but [RFC4193]
   specifies that they must be filtered at domain boundaries.  ULAs are
   different from the addresses described in [RFC1918] and have
   different use cases.  One use of ULAs is described in [RFC4864];
   another one is for internal communication stability in networks where
   external connectivity may come and go (e.g., some ISPs provide ULAs
   in home networks connected via a cable modem).  It should further be
   kept in mind that ULA /48s from the fd00::/8 space (L=1) MUST be
   generated with a pseudorandom algorithm, per Section 3.2.1 of
   [RFC4193].

2.1.2.  Point-to-Point Links

   Section 5.1 of [RFC6164] specifies the rationale of using /127 for
   inter-router, point-to-point links to prevent the ping-pong issue
   between routers not correctly implementing [RFC4443], and it also
   prevents a denial-of-service (DoS) attack on the Neighbor Cache.  The
   previous recommendation of [RFC3627] has been obsoleted and marked
   Historic by [RFC6547].

   Some environments are also using link-local addressing for point-to-
   point links.  While this practice could further reduce the attack
   surface of infrastructure devices, the operational disadvantages also
   need to be carefully considered; see [RFC7404].

2.1.3.  Loopback Addresses

   Many operators reserve a /64 block for all loopback addresses in
   their infrastructure and allocate a /128 out of this reserved /64
   prefix for each loopback interface.  This practice facilitates
   configuration of Access Control List (ACL) rules to enforce a
   security policy for those loopback addresses.

2.1.4.  Stable Addresses

   When considering how to assign stable addresses for nodes (either by
   static configuration or by pre-provisioned DHCPv6 lease
   (Section 2.1.6)), it is necessary to take into consideration the
   effectiveness of perimeter security in a given environment.

   There is a trade-off between ease of operation (where some portions
   of the IPv6 address could be easily recognizable for operational
   debugging and troubleshooting) versus the risk of trivial scanning
   used for reconnaissance.  [SCANNING] shows that there are
   scientifically based mechanisms that make scanning for IPv6-reachable
   nodes more feasible than expected; see [RFC7707].

   Stable addresses also allow easy enforcement of a security policy at
   the perimeter based on IPv6 addresses.  For example, Manufacturer
   Usage Description (MUD) [RFC8520] is a mechanism where the perimeter
   defense can retrieve the security policy template based on the type
   of internal device and apply the right security policy based on the
   device's IPv6 address.

   The use of well-known IPv6 addresses (such as ff02::1 for all link-
   local nodes) or the use of commonly repeated addresses could make it
   easy to figure out which devices are name servers, routers, or other
   critical devices; even a simple traceroute will expose most of the
   routers on a path.  There are many scanning techniques possible and
   operators should not rely on the 'impossible to find because my
   address is random' paradigm (a.k.a. "security by obscurity") even if
   it is common practice to have the stable addresses randomly
   distributed across /64 subnets and to always use DNS (as IPv6
   addresses are hard for human brains to remember).

   While, in some environments, obfuscating addresses could be
   considered an added benefit, it should not preclude enforcement of
   perimeter rules.  Stable addresses following some logical allocation
   scheme may ease the operation (as simplicity always helps security).

   Typical deployments will have a mix of stable and non-stable
   addresses; the stable addresses being either predictable (e.g., ::25
   for a mail server) or obfuscated (i.e., appearing as a random 64-bit
   number).

2.1.5.  Temporary Addresses for SLAAC

   Historically, Stateless Address Autoconfiguration (SLAAC) makes up
   the globally unique IPv6 address based on an automatically generated
   64-bit interface identifier (IID) based on the 64-bit Extended Unique
   Identifier (EUI-64) Media Access Control (MAC) address combined with
   the /64 prefix (received in the Prefix Information Option (PIO) of
   the Router Advertisement (RA)).  The EUI-64 address is generated from
   the stable 48-bit MAC address and does not change even if the host
   moves to another network; this is of course bad for privacy, as a
   host can be traced from network (home) to network (office or Wi-Fi in
   hotels).  [RFC8064] recommends against the use of EUI-64 addresses,
   and it must be noted that most host operating systems do not use
   EUI-64 addresses anymore and rely on either [RFC8981] or [RFC8064].

   Randomly generating an interface ID, as described in [RFC8981], is
   part of SLAAC with so-called privacy extension addresses and is used
   to address some privacy concerns.  Privacy extension addresses,
   a.k.a. temporary addresses, may help to mitigate the correlation of
   activities of a node within the same network and may also reduce the
   attack exposure window.  But using privacy extension addresses as
   described in [RFC8981] might prevent the operator from building host-
   specific access control lists (ACLs).  These privacy extension
   addresses could also be used to obfuscate some malevolent activities,
   and specific user attribution/accountability procedures should be put
   in place, as described in Section 2.6.

   [RFC8064] combined with the address generation mechanism of [RFC7217]
   specifies another way to generate an address while still keeping the
   same IID for each network prefix; this allows SLAAC nodes to always
   have the same stable IPv6 address on a specific network while having
   different IPv6 addresses on different networks.

   In some specific use cases where user accountability is more
   important than user privacy, network operators may consider disabling
   SLAAC and relying only on DHCPv6; however, not all operating systems
   support DHCPv6, so some hosts will not get any IPv6 connectivity.
   Disabling SLAAC and privacy extension addresses can be done for most
   operating systems by sending RA messages with a hint to get addresses
   via DHCPv6 by setting the M-bit and disabling SLAAC by resetting all
   A-bits in all PIOs.  However, attackers could still find ways to
   bypass this mechanism if it is not enforced at the switch/router
   level.

   However, in scenarios where anonymity is a strong desire (protecting
   user privacy is more important than user attribution), privacy
   extension addresses should be used.  When mechanisms recommended by
   [RFC8064] are available, the stable privacy address is probably a
   good balance between privacy (among different networks) and security/
   user attribution (within a network).

2.1.6.  DHCP Considerations

   Some environments use DHCPv6 to provision addresses and other
   parameters in order to ensure auditability and traceability (see
   Section 2.6.1.5 for the limitations of DHCPv6 for auditability).

   A main security concern is the ability to detect and counteract rogue
   DHCP servers (Section 2.3.3).  It must be noted that, as opposed to
   DHCPv4, DHCPv6 can lease several IPv6 addresses per client.  For
   DHCPv4, the lease is bound to the 'client identifier', which may
   contain a hardware address or another type of identifier, such as a
   DNS name.  For DHCPv6, the lease is bound to the client DHCP Unique
   Identifier (DUID), which may or may not be bound to the client L2
   address.  [RFC7824] describes the privacy issues associated with the
   use of DHCPv6 by Internet users.  The anonymity profiles [RFC7844]
   are designed for clients that wish to remain anonymous to the visited
   network.  [RFC7707] recommends that DHCPv6 servers issue addresses
   randomly from a large pool.

2.1.7.  DNS Considerations

   While the security concerns of DNS are not fundamentally different
   between IPv4 and IPv6, there are specific considerations in DNS64
   [RFC6147] environments that need to be understood.  Specifically, the
   interactions and the potential of interference with DNSSEC [RFC4033]
   implementation need to be understood -- these are pointed out in more
   detail in Section 2.7.3.2.

2.1.8.  Using a /64 per Host

   An interesting approach is using a /64 per host, as proposed in
   [RFC8273], especially in a shared environment.  This allows for
   easier user attribution (typically based on the host MAC address), as
   its /64 prefix is stable, even if applications within the host can
   change their IPv6 address within this /64 prefix.

   This can also be useful for the generation of ACLs once individual
   systems (e.g., admin workstations) have their own prefixes.

2.1.9.  Privacy Consideration of Addresses

   In addition to the security aspects of IPv6 addresses, there are also
   privacy considerations: mainly because they are of global scope and
   visible globally.  [RFC7721] goes into more detail on the privacy
   considerations for IPv6 addresses by comparing the manually
   configured IPv6 address, DHCPv6, and SLAAC.

2.2.  Extension Headers

   Extension headers are an important difference between IPv4 and IPv6.
   In IPv4-based packets, it's trivial to find the upper-layer protocol
   type and protocol header, while, in IPv6, it is more complex since
   the extension header chain must be parsed completely (even if not
   processed) in order to find the upper-layer protocol header.  IANA
   has closed the existing empty "Next Header Types" registry to new
   entries and is redirecting its users to the "IPv6 Extension Header
   Types" registry, per [RFC7045].

   Extension headers have also become a very controversial topic since
   forwarding nodes that discard packets containing extension headers
   are known to cause connectivity failures and deployment problems
   [RFC7872].  Understanding the role of various extension headers is
   important, and this section enumerates the ones that need careful
   consideration.

   A clarification on how intermediate nodes should handle packets with
   existing or future extension headers is found in [RFC7045].  The
   uniform TLV format to be used for defining future extension headers
   is described in [RFC6564].  Sections 5.2 and 5.3 of [RFC8504] provide
   more information on the processing of extension headers by IPv6
   nodes.

   Vendors of filtering solutions and operations personnel responsible
   for implementing packet filtering rules should be aware that the
   'Next Header' field in an IPv6 header can both point to an IPv6
   extension header or to an upper-layer protocol header.  This has to
   be considered when designing the user interface of filtering
   solutions or during the creation of filtering rule sets.

   [IPV6-EH-FILTERING] discusses filtering rules for those extension
   headers at transit routers.

2.2.1.  Order and Repetition of Extension Headers

   While [RFC8200] recommends the order and the maximum repetition of
   extension headers, at the time of writing, there are still IPv6
   implementations that support an order of headers that is not
   recommended (such as Encapsulating Security Payload (ESP) before
   routing) or an illegal repetition of headers (such as multiple
   routing headers).  The same applies for options contained in the
   extension headers (see [IPV6-EH-PARSING]).  In some cases, it has led
   to nodes crashing when receiving or forwarding wrongly formatted
   packets.

   A firewall or edge device should be used to enforce the recommended
   order and the maximum occurrences of extension headers by dropping
   nonconforming packets.

2.2.2.  Hop-by-Hop Options Header

   In the previous IPv6 specification [RFC2460], the hop-by-hop options
   header, when present in an IPv6 packet, forced all nodes to inspect
   and possibly process this header.  This enabled denial-of-service
   attacks as most, if not all, routers cannot process this type of
   packet in hardware; they have to process these packets in software
   and, hence, this task competes with other software tasks, such as
   handling the control and management plane processing.

   Section 4.3 of [RFC8200], the current Internet Standard for IPv6, has
   taken this attack vector into account and made the processing of hop-
   by-hop options headers by intermediate routers explicitly
   configurable.

2.2.3.  Fragment Header

   The fragment header is used by the source (and only the source) when
   it has to fragment packets.  [RFC7112] and Section 4.5 of [RFC8200]
   explain why it is important that:

   *  Firewall and security devices should drop first fragments that do
      not contain the entire IPv6 header chain (including the transport-
      layer header).

   *  Destination nodes should discard first fragments that do not
      contain the entire IPv6 header chain (including the transport-
      layer header).

   If those requirements are not met, stateless filtering could be
   bypassed by a hostile party.  [RFC6980] applies a stricter rule to
   NDP by enforcing the drop of fragmented NDP packets (except for
   "Certification Path Advertisement" messages, as noted in section
   Section 2.3.2.1).  [RFC7113] describes how the RA-Guard function
   described in [RFC6105] should behave in the presence of fragmented RA
   packets.

2.2.4.  IP Security Extension Header

   The IPsec [RFC4301] extension headers (Authentication Header (AH)
   [RFC4302] and ESP [RFC4303]) are required if IPsec is to be utilized
   for network-level security.  Previously, IPv6 mandated implementation
   of IPsec, but [RFC6434] updated that recommendation by making support
   of the IPsec architecture [RFC4301] a 'SHOULD' for all IPv6 nodes
   that are also retained in the latest IPv6 Nodes Requirement standard
   [RFC8504].

2.3.  Link-Layer Security

   IPv6 relies heavily on NDP [RFC4861] to perform a variety of link
   operations, such as discovering other nodes on the link, resolving
   their link-layer addresses, and finding routers on the link.  If not
   secured, NDP is vulnerable to various attacks, such as router/
   neighbor message spoofing, redirect attacks, Duplicate Address
   Detection (DAD) DoS attacks, etc.  Many of these security threats to
   NDP have been documented in "IPv6 Neighbor Discovery (ND) Trust
   Models and Threats" [RFC3756] and in "Operational Neighbor Discovery
   Problems" [RFC6583].

   Most of the issues are only applicable when the attacker is on the
   same link, but NDP also has security issues when the attacker is off
   link; see Section 2.3.1 below.

2.3.1.  Neighbor Solicitation Rate-Limiting

   NDP can be vulnerable to remote DoS attacks, for example, when a
   router is forced to perform address resolution for a large number of
   unassigned addresses, i.e., when a prefix is scanned by an attacker
   in a fast manner.  This can keep new devices from joining the network
   or render the last-hop router ineffective due to high CPU usage.
   Easy mitigative steps include rate limiting Neighbor Solicitations,
   restricting the amount of state reserved for unresolved
   solicitations, and cleverly managing the cache/timer.

   [RFC6583] discusses the potential for off-link DoS in detail and
   suggests implementation improvements and operational mitigation
   techniques that may be used to mitigate or alleviate the impact of
   such attacks.  Here are some feasible mitigation options that can be
   employed by network operators today:

   *  Ingress filtering of unused addresses by ACL.  These require
      stable configuration of the addresses, e.g., allocating the
      addresses out of a /120 and using a specific ACL to only allow
      traffic to this /120 (of course, the actual hosts are configured
      with a /64 prefix for the link).

   *  Tuning of NDP process (where supported), e.g., enforcing limits on
      data structures, such as the number of Neighbor Cache entries in
      'incomplete' state (e.g., 256 incomplete entries per interface) or
      the rate of NA per interface (e.g., 100 NA per second).

   *  Using a /127 on a point-to-point link, per [RFC6164].

   *  Using only link-local addresses on links where there are only
      routers; see [RFC7404].

2.3.2.  Router and Neighbor Advertisements Filtering

2.3.2.1.  Router Advertisement Filtering

   Router Advertisement spoofing is a well-known, on-link attack vector
   and has been extensively documented.  The presence of rogue RAs,
   either unintentional or malicious, can cause partial or complete
   failure of operation of hosts on an IPv6 link.  For example, a node
   can select an incorrect router address, which can then be used for an
   on-path attack, or the node can assume wrong prefixes to be used for
   SLAAC.  [RFC6104] summarizes the scenarios in which rogue RAs may be
   observed and presents a list of possible solutions to the problem.
   [RFC6105] (RA-Guard) describes a solution framework for the rogue RA
   problem where network segments are designed around switching devices
   that are capable of identifying invalid RAs and blocking them before
   the attack packets actually reach the target nodes.

   However, several evasion techniques that circumvent the protection
   provided by RA-Guard have surfaced.  A key challenge to this
   mitigation technique is introduced by IPv6 fragmentation.  Attackers
   can conceal their attack by fragmenting their packets into multiple
   fragments such that the switching device that is responsible for
   blocking invalid RAs cannot find all the necessary information to
   perform packet filtering of the same packet.  [RFC7113] describes
   such evasion techniques and provides advice to RA-Guard implementers
   such that the aforementioned evasion vectors can be eliminated.

   Given that the IPv6 Fragmentation Header can be leveraged to
   circumvent some implementations of RA-Guard, [RFC6980] updates
   [RFC4861] such that use of the IPv6 Fragmentation Header is forbidden
   in all Neighbor Discovery messages, except "Certification Path
   Advertisement", thus allowing for simple and effective measures to
   counter fragmented NDP attacks.

2.3.2.2.  Neighbor Advertisement Filtering

   The Source Address Validation Improvements (savi) Working Group has
   worked on other ways to mitigate the effects of such attacks.
   [RFC7513] helps in creating bindings between a source IP address
   assigned to DHCPv4 [RFC2131] or DHCPv6 [RFC8415] and a binding anchor
   [RFC7039] on a SAVI device.  Also, [RFC6620] describes how to glean
   similar bindings when DHCP is not used.  The bindings can be used to
   filter packets generated on the local link with forged source IP
   addresses.

2.3.2.3.  Host Isolation

   Isolating hosts for the NDP traffic can be done by using a /64 per
   host, refer to Section 2.1.8, as NDP is only relevant within a /64
   on-link prefix; 3GPP (Section 2.3.4) uses a similar mechanism.

   A more drastic technique to prevent all NDP attacks is based on
   isolation of all hosts with specific configurations.  In such a
   scenario, hosts (i.e., all nodes that are not routers) are unable to
   send data-link layer frames to other hosts; therefore, no host-to-
   host attacks can happen.  This specific setup can be established on
   some switches or Wi-Fi access points.  This is not always feasible
   when hosts need to communicate with other hosts in the same subnet,
   e.g., for access to file shares.

2.3.2.4.  NDP Recommendations

   It is still recommended that RA-Guard and SAVI be employed as a first
   line of defense against common attack vectors, including
   misconfigured hosts.  This recommendation also applies when DHCPv6 is
   used, as RA messages are used to discover the default router(s) and
   for on-link prefix determination.  This line of defense is most
   effective when incomplete fragments are dropped by routers and L2
   switches, as described in Section 2.2.3.  The generated log should
   also be analyzed to identify and act on violations.

   Network operators should be aware that RA-Guard and SAVI do not work
   as expected or could even be harmful in specific network
   configurations (notably when there could be multiple routers).

   Enabling RA-Guard by default in managed networks (e.g., Wi-Fi
   networks, enterprise campus networks, etc.) should be strongly
   considered except for specific use cases, such as in the presence of
   homenet devices emitting router advertisements.

2.3.3.  Securing DHCP

   The Dynamic Host Configuration Protocol for IPv6 (DHCPv6), as
   described in [RFC8415], enables DHCP servers to pass configuration
   parameters, such as IPv6 network addresses and other configuration
   information, to IPv6 nodes.  DHCP plays an important role in most
   large networks by providing robust stateful configuration in the
   context of automated system provisioning.

   The two most common threats to DHCP clients come from malicious
   (a.k.a. rogue) or unintentionally misconfigured DHCP servers.  In
   these scenarios, a malicious DHCP server is established with the
   intent of providing incorrect configuration information to the
   clients to cause a denial-of-service attack or to mount an on-path
   attack.  While unintentional, a misconfigured DHCP server can have
   the same impact.  Additional threats against DHCP are discussed in
   the security considerations section of [RFC8415].

   DHCPv6-Shield [RFC7610] specifies a mechanism for protecting
   connected DHCPv6 clients against rogue DHCPv6 servers.  This
   mechanism is based on DHCPv6 packet filtering at the L2 device, i.e.,
   the administrator specifies the interfaces connected to DHCPv6
   servers.  However, extension headers could be leveraged to bypass
   DHCPv6-Shield unless [RFC7112] is enforced.

   It is recommended to use DHCPv6-Shield and to analyze the
   corresponding log messages.

2.3.4.  3GPP Link-Layer Security

   The 3GPP link is a point-to-point-like link that has no link-layer
   address.  This implies there can only be one end host (the mobile
   handset) and the first-hop router (i.e., a Gateway GPRS Support Node
   (GGSN) or a Packet Data Network Gateway (PGW)) on that link.  The
   GGSN/PGW never configures a non-link-local address on the link using
   the advertised /64 prefix on it; see Section 2.1.8.  The advertised
   prefix must not be used for on-link determination.  There is no need
   for address resolution on the 3GPP link, since there are no link-
   layer addresses.  Furthermore, the GGSN/PGW assigns a prefix that is
   unique within each 3GPP link that uses IPv6 Stateless Address
   Autoconfiguration.  This avoids the necessity to perform DAD at the
   network level for every address generated by the mobile host.  The
   GGSN/PGW always provides an IID to the cellular host for the purpose
   of configuring the link-local address and ensures the uniqueness of
   the IID on the link (i.e., no collisions between its own link-local
   address and the mobile host's address).

   The 3GPP link model itself mitigates most of the known NDP-related
   DoS attacks.  In practice, the GGSN/PGW only needs to route all
   traffic to the mobile host that falls under the prefix assigned to
   it.  As there is also a single host on the 3GPP link, there is no
   need to defend that IPv6 address.

   See Section 5 of [RFC6459] for a more detailed discussion on the 3GPP
   link model, NDP, and the address configuration details.  In some
   mobile networks, DHCPv6 and DHCP Prefix Delegation (DHCP-PD) are also
   used.

2.3.5.  Impact of Multicast Traffic

   IPv6 uses multicast extensively for signaling messages on the local
   link to avoid broadcast messages for on-the-wire efficiency.

   The use of multicast has some side effects on wireless networks, such
   as a negative impact on battery life of smartphones and other
   battery-operated devices that are connected to such networks.
   [RFC7772] and [RFC6775] (for specific wireless networks) discuss
   methods to rate-limit RAs and other ND messages on wireless networks
   in order to address this issue.

   The use of link-layer multicast addresses (e.g., ff02::1 for the all
   nodes link-local multicast address) could also be misused for an
   amplification attack.  Imagine a hostile node sending an ICMPv6
   ECHO_REQUEST to ff02::1 with a spoofed source address, then all link-
   local nodes will reply with ICMPv6 ECHO_REPLY packets to the source
   address.  This could be a DoS attack for the address owner.  This
   attack is purely local to the L2 network, as packets with a link-
   local destination are never forwarded by an IPv6 router.

   This is the reason why large Wi-Fi network deployments often limit
   the use of link-layer multicast, either from or to the uplink of the
   Wi-Fi access point, i.e., Wi-Fi stations are prevented to send link-
   local multicast to their direct neighboring Wi-Fi stations; this
   policy also blocks service discovery via Multicast DNS (mDNS)
   [RFC6762] and Link-Local Multicast Name Resolution (LLMNR) [RFC4795].

2.3.6.  SEND and CGA

   SEcure Neighbor Discovery (SEND), as described in [RFC3971], is a
   mechanism that was designed to secure ND messages.  This approach
   involves the use of new NDP options to carry public-key-based
   signatures.  Cryptographically Generated Addresses (CGA), as
   described in [RFC3972], are used to ensure that the sender of a
   Neighbor Discovery message is the actual "owner" of the claimed IPv6
   address.  A new NDP option, the CGA option, was introduced and is
   used to carry the public key and associated parameters.  Another NDP
   option, the RSA Signature option, is used to protect all messages
   relating to neighbor and router discovery.

   SEND protects against:

   *  Neighbor Solicitation/Advertisement Spoofing

   *  Neighbor Unreachability Detection Failure

   *  Duplicate Address Detection DoS Attack

   *  Router Solicitation and Advertisement Attacks

   *  Replay Attacks

   *  Neighbor Discovery DoS Attacks

   SEND does NOT:

   *  protect statically configured addresses

   *  protect addresses configured using fixed identifiers (i.e., EUI-
      64)

   *  provide confidentiality for NDP communications

   *  compensate for an unsecured link -- SEND does not require that the
      addresses on the link and Neighbor Advertisements correspond

   However, at this time and over a decade since their original
   specifications, CGA and SEND do not have support from widely deployed
   IPv6 devices; hence, their usefulness is limited and should not be
   relied upon.

2.4.  Control Plane Security

   [RFC6192] defines the router control plane and provides detailed
   guidance to secure it for IPv4 and IPv6 networks.  This definition is
   repeated here for the reader's convenience.  Please note that the
   definition is completely protocol-version agnostic (most of this
   section applies to IPv6 in the same way as to IPv4).

      |  Preamble: IPv6 control plane security is vastly congruent with
      |  its IPv4 equivalent, with the exception of OSPFv3
      |  authentication (Section 2.4.1) and some packet exceptions (see
      |  Section 2.4.3) that are specific to IPv6.

   Modern router architecture design maintains a strict separation of
   forwarding and router control plane hardware and software.  The
   router control plane supports routing and management functions.  It
   is generally described as the router architecture hardware and
   software components for handling packets destined to the device
   itself as well as building and sending packets originated locally on
   the device.  The forwarding plane is typically described as the
   router architecture hardware and software components responsible for
   receiving a packet on an incoming interface, performing a lookup to
   identify the packet's IP next hop and best outgoing interface towards
   the destination, and forwarding the packet through the appropriate
   outgoing interface.

   While the forwarding plane is usually implemented in high-speed
   hardware, the control plane is implemented by a generic processor
   (referred to as the routing processor (RP)) and cannot process
   packets at a high rate.  Hence, this processor can be attacked by
   flooding its input queue with more packets than it can process.  The
   control plane processor is then unable to process valid control
   packets and the router can lose IGP or BGP adjacencies, which can
   cause a severe network disruption.

   [RFC6192] provides detailed guidance to protect the router control
   plane in IPv6 networks.  The rest of this section contains simplified
   guidance.

   The mitigation techniques are:

   *  to drop illegitimate or potentially harmful control packets before
      they are queued to the RP (this can be done by a forwarding plane
      ACL) and

   *  to rate-limit the remaining packets to a rate that the RP can
      sustain.  Protocol-specific protection should also be done (for
      example, a spoofed OSPFv3 packet could trigger the execution of
      the Dijkstra algorithm; therefore, the frequency of Dijkstra
      calculations should also be rate limited).

   This section will consider several classes of control packets:

   Control protocols:
      routing protocols, such as OSPFv3, BGP, Routing Information
      Protocol Next Generation (RIPng), and, by extension, NDP and ICMP

   Management protocols:
      Secure Shell (SSH), SNMP, Network Configuration Protocol
      (NETCONF), RESTCONF, IP Flow Information Export (IPFIX), etc.

   Packet exceptions:
      normal data packets that require a specific processing, such as
      generating a packet-too-big ICMP message or processing the hop-by-
      hop options header

2.4.1.  Control Protocols

   This class includes OSPFv3, BGP, NDP, and ICMP.

   An ingress ACL to be applied on all the router interfaces for packets
   to be processed by the RP should be configured to:

   *  drop OSPFv3 (identified by Next-Header being 89) and RIPng
      (identified by UDP port 521) packets from a non-link-local address
      (except for OSPFv3 virtual links)

   *  allow BGP (identified by TCP port 179) packets from all BGP
      neighbors and drop the others

   *  allow all ICMP packets (transit and to the router interfaces)

      |  Note: Dropping OSPFv3 packets that are authenticated by IPsec
      |  could be impossible on some routers that are unable to parse
      |  the IPsec ESP or AH extension headers during ACL
      |  classification.

   Rate-limiting of the valid packets should be done; see [RFC8541] for
   a side benefit for OSPv3.  The exact configuration will depend on the
   available resources of the router (CPU, Ternary Content-Addressable
   Memory (TCAM), etc.).

2.4.2.  Management Protocols

   This class includes SSH, SNMP, RESTCONF, NETCONF, gRPC Remote
   Procedure Calls (gRPC), syslog, NTP, etc.

   An ingress ACL to be applied on all the router interfaces (or at
   ingress interfaces of the security perimeter or by using specific
   features of the platform) should be configured for packets destined
   to the RP, such as:

   *  drop packets destined to the routers, except those belonging to
      protocols that are used (for example, permit TCP 22 and drop all
      others when only SSH is used) and

   *  drop packets where the source does not match the security policy
      (for example, if SSH connections should only be originated from
      the Network Operation Center (NOC), then the ACL should permit TCP
      port 22 packets only from the NOC prefix).

   Rate-limiting of valid packets should be done.  The exact
   configuration will depend on the available router resources.

2.4.3.  Packet Exceptions

   This class covers multiple cases where a data plane packet is punted
   to the route processor because it requires specific processing:

   *  generation of an ICMP packet-too-big message when a data plane
      packet cannot be forwarded because it is too large (required to
      discover the Path MTU);

   *  generation of an ICMP hop-limit-expired message when a data plane
      packet cannot be forwarded because its hop-limit field has reached
      0 (also used by the traceroute utility);

   *  generation of an ICMP destination-unreachable message when a data
      plane packet cannot be forwarded for any reason;

   *  processing of the hop-by-hop options header; new implementations
      follow Section 4.3 of [RFC8200] where this processing is optional;
      or

   *  more specific to some router implementations, an oversized
      extension header chain that cannot be processed by the hardware
      and cannot force the packet to be punted to the RP.

   On some routers, not everything can be done by the specialized data
   plane hardware that requires some packets to be 'punted' to the
   generic RP.  This could include, for example, the processing of a
   long extension header chain in order to apply an ACL based on Layer 4
   information.  [RFC6980] and more generally [RFC7112] highlight the
   security implications of oversized extension header chains on routers
   and update the original IPv6 specifications [RFC2460] such that the
   first fragment of a packet is required to contain the entire IPv6
   header chain.  Those changes are incorporated in the IPv6 standard
   [RFC8200].

   An ingress ACL cannot mitigate a control plane attack using these
   packet exceptions.  The only protection for the RP is to rate-limit
   those packet exceptions that are forwarded to the RP.  This means
   that some data plane packets will be dropped without an ICMP message
   sent to the source, which may delay Path MTU Discovery and cause
   drops.

   In addition to limiting the rate of data plane packets queued to the
   RP, it is also important to rate-limit the generation of ICMP
   messages.  This is important both to preserve RP resources and also
   to prevent an amplification attack using the router as a reflector.
   It is worth noting that some platforms implement this rate-limiting
   in hardware.  Of course, a consequence of not generating an ICMP
   message will break some IPv6 mechanisms, such as Path MTU Discovery
   or a simple traceroute.

2.5.  Routing Security

      |  Preamble: IPv6 routing security is congruent with IPv4 routing
      |  security, with the exception of OSPv3 neighbor authentication
      |  (see Section 2.5.2).

   Routing security in general can be broadly divided into three
   sections:

   1.  authenticating neighbors/peers

   2.  securing routing updates between peers

   3.  route filtering

   [RFC5082] is also applicable to IPv6 and can ensure that routing
   protocol packets are coming from the local network; it must also be
   noted that in IPv6 all interior gateway protocols use link-local
   addresses.

   As for IPv4, it is recommended to enable a routing protocol only on
   interfaces where it is required.

2.5.1.  BGP Security

   As BGP is identical for IPv4 and IPv6 and as [RFC7454] covers all the
   security aspects for BGP in detail, [RFC7454] is also applicable to
   IPv6.

2.5.2.  Authenticating OSPFv3 Neighbors

   OSPFv3 can rely on IPsec to fulfill the authentication function.
   Operators should note that IPsec support is not standard on all
   routing platforms.  In some cases, this requires specialized hardware
   that offloads crypto over to dedicated Application-Specific
   Integrated Circuits (ASICs) or enhanced software images (both of
   which often come with added financial cost) to provide such
   functionality.  An added detail is to determine whether OSPFv3 IPsec
   implementations use AH or ESP-NULL for integrity protection.  In
   early implementations, all OSPFv3 IPsec configurations relied on AH
   since the details weren't specified in [RFC5340].  However, the
   document that specifically describes how IPsec should be implemented
   for OSPFv3 [RFC4552] states that "implementations MUST support ESP[-
   NULL] and MAY support AH" since it follows the overall IPsec
   standards wording.  OSPFv3 can also use normal ESP to encrypt the
   OSPFv3 payload to provide confidentiality for the routing
   information.

   [RFC7166] changes OSPFv3 reliance on IPsec by appending an
   authentication trailer to the end of the OSPFv3 packets.  It does not
   authenticate the specific originator of an OSPFv3 packet; rather, it
   allows a router to confirm that the packet has been issued by a
   router that had access to the shared authentication key.

   With all authentication mechanisms, operators should confirm that
   implementations can support rekeying mechanisms that do not cause
   outages.  There have been instances where any rekeying causes
   outages; therefore, the trade-off between utilizing this
   functionality needs to be weighed against the protection it provides.
   [RFC4107] documents some guidelines for crypto keys management.

2.5.3.  Securing Routing Updates

   IPv6 initially mandated the provisioning of IPsec capability in all
   nodes.  However, in the updated IPv6 Nodes Requirement standard
   [RFC8504], IPsec is a 'SHOULD' and not a 'MUST' implementation.
   Theoretically, it is possible that all communication between two IPv6
   nodes, especially routers exchanging routing information, is
   encrypted using IPsec.  However, in practice, deploying IPsec is not
   always feasible given hardware and software limitations of the
   various platforms deployed.

   Many routing protocols support the use of cryptography to protect the
   routing updates; the use of this protection is recommended.
   [RFC8177] is a YANG data model for key chains that includes rekeying
   functionality.

2.5.4.  Route Filtering

   Route filtering policies will be different depending on whether they
   pertain to edge route filtering or internal route filtering.  At a
   minimum, the IPv6 routing policy, as it pertains to routing between
   different administrative domains, should aim to maintain parity with
   IPv4 from a policy perspective, for example:

   *  filter internal-use IPv6 addresses that are not globally routable
      at the perimeter;

   *  discard routes for bogon [CYMRU] and reserved space (see
      [RFC8190]); and

   *  configure ingress route filters that validate route origin, prefix
      ownership, etc., through the use of various routing databases,
      e.g., [RADB].  [RFC8210] formally validates the origin Autonomous
      Systems (ASes) of BGP announcements.

   Some good guidance can be found at [RFC7454].

   A valid routing table can also be used to apply network ingress
   filtering (see [RFC2827]).

2.6.  Logging/Monitoring

   In order to perform forensic research in the cases of a security
   incident or detecting abnormal behavior, network operators should log
   multiple pieces of information.  In some cases, this requires a
   frequent poll of devices via a Network Management Station.

   This logging should include but is not limited to:

   *  logs of all applications using the network (including user space
      and kernel space) when available (for example, web servers that
      the network operator manages);

   *  data from IP Flow Information Export [RFC7011], also known as
      IPFIX;

   *  data from various SNMP MIBs [RFC4293] or YANG data via RESTCONF
      [RFC8040] or NETCONF [RFC6241];

   *  historical data of Neighbor Cache entries;

   *  stateful DHCPv6 [RFC8415] lease cache, especially when a relay
      agent [RFC6221] is used;

   *  Source Address Validation Improvement (SAVI) [RFC7039] events,
      especially the binding of an IPv6 address to a MAC address and a
      specific switch or router interface;

   *  firewall ACL logs;

   *  authentication server logs; and

   *  RADIUS [RFC2866] accounting records.

   Please note that there are privacy issues or regulations related to
   how these logs are collected, stored, used, and safely discarded.
   Operators are urged to check their country legislation (e.g., General
   Data Protection Regulation [GDPR] in the European Union).

   All those pieces of information can be used for:

   *  forensic (Section 2.6.2.1) investigations: who did what and when?

   *  correlation (Section 2.6.2.3): which IP addresses were used by a
      specific node (assuming the use of privacy extensions addresses
      [RFC8981])?

   *  inventory (Section 2.6.2.2): which IPv6 nodes are on my network?

   *  abnormal behavior detection (Section 2.6.2.4): unusual traffic
      patterns are often the symptoms of an abnormal behavior, which is
      in turn a potential attack (denial of service, network scan, a
      node being part of a botnet, etc.).

2.6.1.  Data Sources

   This section lists the most important sources of data that are useful
   for operational security.

2.6.1.1.  Application Logs

   Those logs are usually text files where the remote IPv6 address is
   stored in cleartext (not binary).  This can complicate the processing
   since one IPv6 address, for example, 2001:db8::1, can be written in
   multiple ways, such as:

   *  2001:DB8::1 (in uppercase),

   *  2001:0db8::0001 (with leading 0), and

   *  many other ways, including the reverse DNS mapping into a Fully
      Qualified Domain Name (FQDN) (which should not be trusted).

   [RFC5952] explains this problem in detail and recommends the use of a
   single canonical format.  This document recommends the use of
   canonical format [RFC5952] for IPv6 addresses in all possible cases.
   If the existing application cannot log using the canonical format,
   then it is recommended to use an external post-processing program in
   order to canonicalize all IPv6 addresses.

2.6.1.2.  IP Flow Information Export by IPv6 Routers

   IPFIX [RFC7012] defines some data elements that are useful for
   security:

   *  nextHeaderIPv6, sourceIPv6Address, and destinationIPv6Address

   *  sourceMacAddress and destinationMacAddress

   The IP version is the ipVersion element defined in [IANA-IPFIX].

   Moreover, IPFIX is very efficient in terms of data handling and
   transport.  It can also aggregate flows by a key, such as
   sourceMacAddress, in order to have aggregated data associated with a
   specific sourceMacAddress.  This memo recommends the use of IPFIX and
   aggregation on nextHeaderIPv6, sourceIPv6Address, and
   sourceMacAddress.

2.6.1.3.  SNMP MIB and NETCONF/RESTCONF YANG Modules Data by IPv6
          Routers

   [RFC4293] defines a Management Information Base (MIB) for the two
   address families of IP.  This memo recommends the use of:

   *  ipIfStatsTable table, which collects traffic counters per
      interface, and

   *  ipNetToPhysicalTable table, which is the content of the Neighbor
      Cache, i.e., the mapping between IPv6 and data-link layer
      addresses.

   There are also YANG modules relating to the two IP address families
   and that can be used with [RFC6241] and [RFC8040].  This memo
   recommends the use of:

   *  interfaces-state/interface/statistics from
      ietf-interfaces@2018-02-20.yang [RFC8343], which contains counters
      for interfaces, and

   *  ipv6/neighbor from ietf-ip@2018-02-22.yang [RFC8344], which is the
      content of the Neighbor Cache, i.e., the mapping between IPv6 and
      data-link layer addresses.

2.6.1.4.  Neighbor Cache of IPv6 Routers

   The Neighbor Cache of routers contains all mappings between IPv6
   addresses and data-link layer addresses.  There are multiple ways to
   collect the current entries in the Neighbor Cache, notably, but not
   limited to:

   *  using the SNMP MIB (Section 2.6.1.3), as explained above;

   *  using streaming telemetry or NETCONF [RFC6241] and RESTCONF
      [RFC8040] to collect the operational state of the Neighbor Cache;
      and

   *  connecting over a secure management channel (such as SSH) and
      explicitly requesting a Neighbor Cache dump via the Command-Line
      Interface (CLI) or another monitoring mechanism.

   The Neighbor Cache is highly dynamic, as mappings are added when a
   new IPv6 address appears on the network.  This could be quite
   frequently with privacy extension addresses [RFC8981] or when they
   are removed when the state goes from UNREACH to removed (the default
   time for a removal per Neighbor Unreachability Detection [RFC4861]
   algorithm is 38 seconds for a host using Windows 7).  This means that
   the content of the Neighbor Cache must be fetched periodically at an
   interval that does not exhaust the router resources and still
   provides valuable information (the suggested value is 30 seconds, but
   this should be verified in the actual deployment) and stored for
   later use.

   This is an important source of information because it is trivial (on
   a switch not using the SAVI [RFC7039] algorithm) to defeat the
   mapping between data-link layer address and an IPv6 address.  Put
   another way, having access to the current and past content of the
   Neighbor Cache has a paramount value for the forensic and audit
   trails.  It should also be noted that, in certain threat models, this
   information is also deemed valuable and could itself be a target.

   When using one /64 per host (Section 2.1.8) or DHCP-PD, it is
   sufficient to keep the history of the allocated prefixes when
   combined with strict source address prefix enforcement on the routers
   and L2 switches to prevent IPv6 spoofing.

2.6.1.5.  Stateful DHCPv6 Lease

   In some networks, IPv6 addresses/prefixes are managed by a stateful
   DHCPv6 server [RFC8415] that leases IPv6 addresses/prefixes to
   clients.  It is indeed quite similar to DHCP for IPv4, so it can be
   tempting to use this DHCP lease file to discover the mapping between
   IPv6 addresses/prefixes and data-link layer addresses, as is commonly
   used in IPv4 networking.

   It is not so easy in the IPv6 networks, because not all nodes will
   use DHCPv6 (there are nodes that can only do stateless
   autoconfiguration) and also because DHCPv6 clients are identified not
   by their hardware-client address, as in IPv4, but by a DHCP Unique
   Identifier (DUID).  The DUID can have several formats: the data-link
   layer address, the data-link layer address prepended with time
   information, or even an opaque number that requires correlation with
   another data source to be usable for operational security.  Moreover,
   when the DUID is based on the data-link address, this address can be
   of any client interface (such as the wireless interface, while the
   client actually uses its wired interface to connect to the network).

   If a lightweight DHCP relay agent [RFC6221] is used in a L2 switch,
   then the DHCP servers also receive the interface ID information,
   which could be saved in order to identify the interface on which the
   switch received a specific leased IPv6 address.  Also, if a 'normal'
   (not lightweight) relay agent adds the data-link layer address in the
   option for Relay Agent Remote-ID [RFC4649] [RFC6939], then the DHCPv6
   server can keep track of the data-link and leased IPv6 addresses.

   In short, the DHCPv6 lease file is less interesting than lease files
   for IPv4 networks.  If possible, it is recommended to use DHCPv6
   servers that keep the relayed data-link layer address in addition to
   the DUID in the lease file, as those servers have the equivalent
   information to IPv4 DHCP servers.

   The mapping between the data-link layer address and the IPv6 address
   can be secured by deploying switches implementing the SAVI [RFC7513]
   mechanisms.  Of course, this also requires that the data-link layer
   address be protected by using a L2 mechanism, such as [IEEE-802.1X].

2.6.1.6.  RADIUS Accounting Log

   For interfaces where the user is authenticated via a RADIUS [RFC2866]
   server, and if RADIUS accounting is enabled, then the RADIUS server
   receives accounting Acct-Status-Type records at the start and at the
   end of the connection, which include all IPv6 (and IPv4) addresses
   used by the user.  This technique can be used notably for Wi-Fi
   networks with Wi-Fi Protected Access (WPA) or other IEEE 802.1X
   [IEEE-802.1X] wired interfaces on an Ethernet switch.

2.6.1.7.  Other Data Sources

   There are other data sources for log information that must be
   collected (as currently collected in IPv4 networks):

   *  historical mappings of IPv6 addresses to users of remote access
      VPN and

   *  historical mappings of MAC addresses to switch ports in a wired
      network.

2.6.2.  Use of Collected Data

   This section leverages the data collected, as described in
   Section 2.6.1, in order to achieve several security benefits.
   Section 9.1 of [RFC7934] contains more details about host tracking.

2.6.2.1.  Forensic and User Accountability

   The forensic use case is when the network operator must locate an
   IPv6 address (and the associated port, access point/switch, or VPN
   tunnel) that was present in the network at a certain time or is
   currently in the network.

   To locate an IPv6 address in an enterprise network where the operator
   has control over all resources, the source of information can be the
   Neighbor Cache, or, if not found, the DHCP lease file.  Then, the
   procedure is:

   1.  based on the IPv6 prefix of the IPv6 address; find one or more
       routers that are used to reach this prefix (assuming that anti-
       spoofing mechanisms are used), perhaps based on an IPAM.

   2.  based on this limited set of routers, on the incident time, and
       on the IPv6 address; retrieve the data-link address from the live
       Neighbor Cache, from the historical Neighbor Cache data, or from
       SAVI events, or retrieve the data-link address from the DHCP
       lease file (Section 2.6.1.5).

   3.  based on the data-link layer address; look up the switch
       interface associated with the data-link layer address.  In the
       case of wireless LAN with RADIUS accounting (see
       Section 2.6.1.6), the RADIUS log has the mapping between the user
       identification and the MAC address.  If a Configuration
       Management Database (CMDB) is used, then it can be used to map
       the data-link layer address to a switch port.

   At the end of the process, the interface of the host originating or
   the subscriber identity associated with the activity in question has
   been determined.

   To identify the subscriber of an IPv6 address in a residential
   Internet Service Provider, the starting point is the DHCP-PD leased
   prefix covering the IPv6 address; this prefix can often be linked to
   a subscriber via the RADIUS log.  Alternatively, the Forwarding
   Information Base (FIB) of the Cable Modem Termination System (CMTS)
   or Broadband Network Gateway (BNG) indicates the Customer Premises
   Equipment (CPE) of the subscriber and the RADIUS log can be used to
   retrieve the actual subscriber.

   More generally, a mix of the above techniques can be used in most, if
   not all, networks.

2.6.2.2.  Inventory

   [RFC7707] describes the difficulties for an attacker to scan an IPv6
   network due to the vast number of IPv6 addresses per link (and why in
   some cases it can still be done).  While the huge addressing space
   can sometimes be perceived as a 'protection', it also makes the
   inventory task difficult in an IPv6 network while it was trivial to
   do in an IPv4 network (a simple enumeration of all IPv4 addresses,
   followed by a ping and a TCP/UDP port scan).  Getting an inventory of
   all connected devices is of prime importance for a secure network
   operation.

   There are many ways to do an inventory of an IPv6 network.

   The first technique is to use passive inspection, such as IPFIX.
   Using exported IPFIX information and extracting the list of all IPv6
   source addresses allows finding all IPv6 nodes that sent packets
   through a router.  This is very efficient but, alas, will not
   discover silent nodes that never transmitted packets traversing the
   IPFIX target router.  Also, it must be noted that link-local
   addresses will never be discovered by this means.

   The second way is again to use the collected Neighbor Cache content
   to find all IPv6 addresses in the cache.  This process will also
   discover all link-local addresses.  See Section 2.6.1.4.

   Another way that works only for a local network consists of sending
   an ICMP ECHO_REQUEST to the link-local multicast address ff02::1,
   which addresses all IPv6 nodes on the network.  All nodes should
   reply to this ECHO_REQUEST, per [RFC4443].

   Other techniques involve obtaining data from DNS, parsing log files,
   and leveraging service discovery, such as mDNS [RFC6762] [RFC6763].

   Enumerating DNS zones, especially looking at reverse DNS records and
   CNAMEs, is another common method employed by various tools.  As
   already mentioned in [RFC7707], this allows an attacker to prune the
   IPv6 reverse DNS tree and hence enumerate it in a feasible time.
   Furthermore, authoritative servers that allow zone transfers (i.e.,
   Authoritative Transfers (AXFRs)) may be a further information source.
   An interesting research paper has analyzed the entropy in various
   IPv6 addresses: see [ENTROPYIP].

2.6.2.3.  Correlation

   In an IPv4 network, it is easy to correlate multiple logs, for
   example, to find events related to a specific IPv4 address.  A simple
   Unix grep command is enough to scan through multiple text-based files
   and extract all lines relevant to a specific IPv4 address.

   In an IPv6 network, this is slightly more difficult because different
   character strings can express the same IPv6 address.  Therefore, the
   simple Unix grep command cannot be used.  Moreover, an IPv6 node can
   have multiple IPv6 addresses.

   In order to do correlation in IPv6-related logs, it is advised to
   have all logs in a format with only canonical IPv6 addresses
   [RFC5952].  Then, the current (or historical) Neighbor Cache data set
   must be searched to find the data-link layer address of the IPv6
   address.  Next, the current and historical Neighbor Cache data sets
   must be searched for all IPv6 addresses associated with this data-
   link layer address to derive the search set.  The last step is to
   search in all log files (containing only IPv6 addresses in canonical
   format) for any IPv6 addresses in the search set.

   Moreover, [RFC7934] recommends using multiple IPv6 addresses per
   prefix, so the correlation must also be done among those multiple
   IPv6 addresses, for example, by discovering all IPv6 addresses
   associated with the same MAC address and interface in the NDP cache
   (Section 2.6.1.4).

2.6.2.4.  Abnormal Behavior Detection

   Abnormal behavior (such as network scanning, spamming, DoS) can be
   detected in the same way as in an IPv4 network:

   *  a sudden increase of traffic detected by interface counter (SNMP)
      or by aggregated traffic from IPFIX records [RFC7012],

   *  rapid growth of ND cache size, or

   *  change in traffic pattern (number of connections per second,
      number of connections per host, etc.) observed with the use of
      IPFIX [RFC7012].

2.6.3.  Summary

   While some data sources (IPFIX, MIB, switch Content Addressable
   Memory (CAM) tables, logs, etc.) used in IPv4 are also used in the
   secure operation of an IPv6 network, the DHCPv6 lease file is less
   reliable and the Neighbor Cache is of prime importance.

   The fact that there are multiple ways to express the same IPv6
   address in a character string renders the use of filters mandatory
   when correlation must be done.

2.7.  Transition/Coexistence Technologies

   As it is expected that some networks will not run in a pure IPv6-only
   mode, the different transition mechanisms must be deployed and
   operated in a secure way.  This section proposes operational
   guidelines for the most-known and deployed transition techniques.
   [RFC4942] also contains security considerations for transition or
   coexistence scenarios.

2.7.1.  Dual Stack

   Dual stack is often the first deployment choice for network
   operators.  Dual stacking the network offers some advantages over
   other transition mechanisms.  Firstly, the impact on existing IPv4
   operations is reduced.  Secondly, in the absence of tunnels or
   address translation, the IPv4 and IPv6 traffic are native (easier to
   observe and secure) and should have the same network processing
   (network path, quality of service, etc.).  Dual stack enables a
   gradual termination of the IPv4 operations when the IPv6 network is
   ready for prime time.  On the other hand, the operators have to
   manage two network stacks with the added complexities.

   From an operational security perspective, this now means that the
   network operator has twice the exposure.  One needs to think about
   protecting both protocols now.  At a minimum, the IPv6 portion of a
   dual-stacked network should be consistent with IPv4 from a security
   policy point of view.  Typically, the following methods are employed
   to protect IPv4 networks at the edge or security perimeter:

   *  ACLs to permit or deny traffic,

   *  firewalls with stateful packet inspection, and

   *  application firewalls inspecting the application flows.

   It is recommended that these ACLs and/or firewalls be additionally
   configured to protect IPv6 communications.  The enforced IPv6
   security must be congruent with the IPv4 security policy; otherwise,
   the attacker will use the protocol version that has the more relaxed
   security policy.  Maintaining the congruence between security
   policies can be challenging (especially over time); it is recommended
   to use a firewall or an ACL manager that is dual stack, i.e., a
   system that can apply a single ACL entry to a mixed group of IPv4 and
   IPv6 addresses.

   Application firewalls work at the application layer and are oblivious
   to the IP version, i.e., they work as well for IPv6 as for IPv4 and
   the same application security policy will work for both protocol
   versions.

   Also, given the end-to-end connectivity that IPv6 provides, it is
   recommended that hosts be fortified against threats.  General device
   hardening guidelines are provided in Section 2.8.

   For many years, all host operating systems have IPv6 enabled by
   default, so it is possible even in an 'IPv4-only' network to attack
   L2-adjacent victims via their IPv6 link-local address or via a global
   IPv6 address when the attacker provides rogue RAs or a rogue DHCPv6
   service.

   [RFC7123] discusses the security implications of native IPv6 support
   and IPv6 transition/coexistence technologies on 'IPv4-only' networks
   and describes possible mitigations for the aforementioned issues.

2.7.2.  Encapsulation Mechanisms

   There are many tunnels used for specific use cases.  Except when
   protected by IPsec [RFC4301] or alternative tunnel encryption
   methods, all those tunnels have a number of security issues, as
   described in [RFC6169]:

   tunnel injection:
      A malevolent actor knowing a few pieces of information (for
      example, the tunnel endpoints and the encapsulation protocol) can
      forge a packet that looks like a legitimate and valid encapsulated
      packet that will gladly be accepted by the destination tunnel
      endpoint.  This is a specific case of spoofing.

   traffic interception:
      No confidentiality is provided by the tunnel protocols (without
      the use of IPsec or alternative encryption methods); therefore,
      anybody on the tunnel path can intercept the traffic and have
      access to the cleartext IPv6 packet.  Combined with the absence of
      authentication, an on-path attack can also be mounted.

   service theft:
      As there is no authorization, even an unauthorized user can use a
      tunnel relay for free (this is a specific case of tunnel
      injection).

   reflection attack:
      Another specific use case of tunnel injection where the attacker
      injects packets with an IPv4 destination address not matching the
      IPv6 address causing the first tunnel endpoint to re-encapsulate
      the packet to the destination.  Hence, the final IPv4 destination
      will not see the original IPv4 address but only the IPv4 address
      of the relay router.

   bypassing security policy:
      If a firewall or an Intrusion Prevention System (IPS) is on the
      path of the tunnel, then it may neither inspect nor detect
      malevolent IPv6 traffic transmitted over the tunnel.

   To mitigate the bypassing of security policies, it is often
   recommended to block all automatic tunnels in default OS
   configuration (if they are not required) by denying IPv4 packets
   matching:

   IP protocol 41:  This will block Intra-Site Automatic Tunnel
      Addressing Protocol (ISATAP) (Section 2.7.2.2), 6to4
      (Section 2.7.2.7), 6rd (Section 2.7.2.3), and 6in4
      (Section 2.7.2.1) tunnels.

   IP protocol 47:  This will block GRE (Section 2.7.2.1) tunnels.

   UDP port 3544:  This will block the default encapsulation of Teredo
      (Section 2.7.2.8) tunnels.

   Ingress filtering [RFC2827] should also be applied on all tunnel
   endpoints, if applicable, to prevent IPv6 address spoofing.

   The reflection attack cited above should also be prevented by using
   an IPv6 ACL preventing the hair pinning of the traffic.

   As several of the tunnel techniques share the same encapsulation
   (i.e., IPv4 protocol 41) and embed the IPv4 address in the IPv6
   address, there are a set of well-known looping attacks described in
   [RFC6324].  This RFC also proposes mitigation techniques.

2.7.2.1.  Site-to-Site Static Tunnels

   Site-to-site static tunnels are described in [RFC2529] and in GRE
   [RFC2784].  As the IPv4 endpoints are statically configured and are
   not dynamic, they are slightly more secure (bidirectional service
   theft is mostly impossible), but traffic interception and tunnel
   injection are still possible.  Therefore, the use of IPsec [RFC4301]
   in transport mode to protect the encapsulated IPv4 packets is
   recommended for those tunnels.  Alternatively, IPsec in tunnel mode
   can be used to transport IPv6 traffic over an untrusted IPv4 network.

2.7.2.2.  ISATAP

   ISATAP tunnels [RFC5214] are mainly used within a single
   administrative domain and to connect a single IPv6 host to the IPv6
   network.  This often implies that those systems are usually managed
   by a single entity; therefore, audit trail and strict anti-spoofing
   are usually possible, and this raises the overall security.  Even if
   ISATAP is no more often used, its security issues are relevant, per
   [KRISTOFF].

   Special care must be taken to avoid a looping attack by implementing
   the measures of [RFC6324] and [RFC6964] (especially in Section 3.6).

   IPsec [RFC4301] in transport or tunnel mode can be used to secure the
   IPv4 ISATAP traffic to provide IPv6 traffic confidentiality and
   prevent service theft.

2.7.2.3.  6rd

   While 6rd tunnels share the same encapsulation as 6to4 tunnels
   (Section 2.7.2.7), they are designed to be used within a single SP
   domain; in other words, they are deployed in a more constrained
   environment (e.g., anti-spoofing, protocol 41 filtering at the edge)
   than 6to4 tunnels and have few security issues other than lack of
   confidentiality.  The security considerations in Section 12 of
   [RFC5969] describes how to secure 6rd tunnels.

   IPsec [RFC4301] for the transported IPv6 traffic can be used if
   confidentiality is important.

2.7.2.4.  6PE, 6VPE, and LDPv6

   Organizations using MPLS in their core can also use IPv6 Provider
   Edge (6PE) [RFC4798] and IPv6 Virtual Private Extension (6VPE)
   [RFC4659] to enable IPv6 access over MPLS.  As 6PE and 6VPE are
   really similar to BGP/MPLS IP VPNs described in [RFC4364], the
   security properties of these networks are also similar to those
   described in [RFC4381] (please note that this RFC may resemble a
   published IETF work, but it is not based on an IETF review and the
   IETF disclaims any knowledge of the fitness of this RFC for any
   purpose).  They rely on:

   *  address space, routing, and traffic separation with the help of
      VRFs (only applicable to 6VPE);

   *  hiding the IPv4 core, hence, removing all attacks against
      P-routers; and

   *  securing the routing protocol between Customer Edge (CE) and
      Provider Edge (PE); in the case of 6PE and 6VPE, link-local
      addresses (see [RFC7404]) can be used, and, as these addresses
      cannot be reached from outside of the link, the security of 6PE
      and 6VPE is even higher than an IPv4 BGP/MPLS IP VPN.

   LDPv6 itself does not induce new risks; see [RFC7552].

2.7.2.5.  DS-Lite

   Dual-Stack Lite (DS-Lite) is also a translation mechanism and is
   therefore analyzed further (Section 2.7.3.3) in this document, as it
   includes IPv4 NAPT.

2.7.2.6.  Mapping of Address and Port

   With the encapsulation and translation versions of Mapping of Address
   and Port (MAP) -- abbreviated MAP-E [RFC7597] and MAP-T [RFC7599] --
   the access network is purely an IPv6 network, and MAP protocols are
   used to provide IPv4 hosts on the subscriber network access to IPv4
   hosts on the Internet.  The subscriber router does stateful
   operations in order to map all internal IPv4 addresses and Layer 4
   ports to the IPv4 address and the set of Layer 4 ports received
   through the MAP configuration process.  The SP equipment always does
   stateless operations (either decapsulation or stateless translation).
   Therefore, as opposed to Section 2.7.3.3, there is no state
   exhaustion DoS attack against the SP equipment because there is no
   state and there is no operation caused by a new Layer 4 connection
   (no logging operation).

   The SP MAP equipment should implement all the security considerations
   of [RFC7597], notably ensuring that the mapping of the IPv4 address
   and port are consistent with the configuration.  As MAP has a
   predictable IPv4 address and port mapping, the audit logs are easier
   to use, as there is a clear mapping between the IPv6 address and the
   IPv4 address and ports.

2.7.2.7.  6to4

   In [RFC3056], 6to4 tunnels require a public-routable IPv4 address in
   order to work correctly.  They can be used to provide either single
   IPv6 host connectivity to the IPv6 Internet or multiple IPv6 networks
   connectivity to the IPv6 Internet.  The 6to4 relay was historically
   the anycast address defined in [RFC3068], which has been deprecated
   by [RFC7526] and is no longer used by recent Operating Systems.  Some
   security considerations are explained in [RFC3964].

   [RFC6343] points out that if an operator provides well-managed
   servers and relays for 6to4, nonencapsulated IPv6 packets will pass
   through well-defined points (the native IPv6 interfaces of those
   servers and relays) at which security mechanisms may be applied.
   Client usage of 6to4 by default is now discouraged, and significant
   precautions are needed to avoid operational problems.

2.7.2.8.  Teredo

   Teredo tunnels [RFC4380] are mainly used in a residential environment
   because Teredo easily traverses an IPv4 NAPT device thanks to its UDP
   encapsulation.  Teredo tunnels connect a single host to the IPv6
   Internet.  Teredo shares the same issues as other tunnels: no
   authentication, no confidentiality, possible spoofing, and reflection
   attacks.

   IPsec [RFC4301] for the transported IPv6 traffic is recommended.

   The biggest threat to Teredo is probably for an IPv4-only network, as
   Teredo has been designed to easily traverse IPv4 NAT-PT devices,
   which are quite often co-located with a stateful firewall.
   Therefore, if the stateful IPv4 firewall allows unrestricted UDP
   outbound and accepts the return UDP traffic, then Teredo actually
   punches a hole in this firewall for all IPv6 traffic to and from the
   Internet.  Host policies can be deployed to block Teredo in an
   IPv4-only network in order to avoid this firewall bypass.  On the
   IPv4 firewall, all outbound UDPs should be blocked except for the
   commonly used services (e.g., port 53 for DNS, port 123 for NTP, port
   443 for QUIC, port 500 for Internet Key Exchange Protocol (IKE), port
   3478 for Session Traversal Utilities for NAT (STUN), etc.).

   Teredo is now hardly ever used and no longer enabled by default in
   most environments so it is less of a threat; however, special
   consideration must be made in cases when devices with older or
   operating systems that have not been updated may be present and by
   default were running Teredo.

2.7.3.  Translation Mechanisms

   Translation mechanisms between IPv4 and IPv6 networks are alternate
   coexistence strategies while networks transition to IPv6.  While a
   framework is described in [RFC6144], the specific security
   considerations are documented with each individual mechanism.  For
   the most part, they specifically mention interference with IPsec or
   DNSSEC deployments, how to mitigate spoofed traffic, and what some
   effective filtering strategies may be.

   While not really a transition mechanism to IPv6, this section also
   includes the discussion about the use of heavy IPv4-to-IPv4 network
   addresses and port translation to prolong the life of IPv4-only
   networks.

2.7.3.1.  Carrier-Grade NAT (CGN)

   Carrier-Grade NAT (CGN), also called NAT444 CGN or Large-Scale NAT
   (LSN) or SP NAT, is described in [RFC6264] and is utilized as an
   interim measure to extend the use of IPv4 in a large service provider
   network until the provider can deploy an effective IPv6 solution.
   [RFC6598] requested a specific IANA-allocated /10 IPv4 address block
   to be used as address space shared by all access networks using CGN.
   This has been allocated as 100.64.0.0/10.

   Section 13 of [RFC6269] lists some specific security-related issues
   caused by large-scale address sharing.  The Security Considerations
   section of [RFC6598] also lists some specific mitigation techniques
   for potential misuse of shared address space.  Some law enforcement
   agencies have identified CGN as impeding their cybercrime
   investigations (for example, see the Europol press release on CGN
   [europol-cgn]).  Many translation techniques (NAT64, DS-Lite, etc.)
   have the same security issues as CGN when one part of the connection
   is IPv4 only.

   [RFC6302] has recommendations for Internet-facing servers to also log
   the source TCP or UDP ports of incoming connections in an attempt to
   help identify the users behind such a CGN.

   [RFC7422] suggests the use of deterministic address mapping in order
   to reduce logging requirements for CGN.  The idea is to have a known
   algorithm for mapping the internal subscriber to/from public TCP and
   UDP ports.

   [RFC6888] lists common requirements for CGNs.  [RFC6967] analyzes
   some solutions to enforce policies on misbehaving nodes when address
   sharing is used.  [RFC7857] also updates the NAT behavioral
   requirements.

2.7.3.2.  NAT64/DNS64 and 464XLAT

   Stateful NAT64 translation [RFC6146] allows IPv6-only clients to
   contact IPv4 servers using unicast UDP, TCP, or ICMP.  It can be used
   in conjunction with DNS64 [RFC6147], a mechanism that synthesizes
   AAAA records from existing A records.  There is also a stateless
   NAT64 [RFC7915], which has similar security aspects but with the
   added benefit of being stateless and is thereby less prone to a state
   exhaustion attack.

   The Security Consideration sections of [RFC6146] and [RFC6147] list
   the comprehensive issues; in Section 8 of [RFC6147], there are some
   considerations on the interaction between NAT64 and DNSSEC.  A
   specific issue with the use of NAT64 is that it will interfere with
   most IPsec deployments unless UDP encapsulation is used.

   Another translation mechanism relying on a combination of stateful
   and stateless translation, 464XLAT [RFC6877], can be used to do a
   host-local translation from IPv4 to IPv6 and a network provider
   translation from IPv6 to IPv4, i.e., giving IPv4-only application
   access to an IPv4-only server over an IPv6-only network. 464XLAT
   shares the same security considerations as NAT64 and DNS64; however,
   it can be used without DNS64, avoiding the DNSSEC implications.

2.7.3.3.  DS-Lite

   Dual-Stack Lite (DS-Lite) [RFC6333] is a transition technique that
   enables a service provider to share IPv4 addresses among customers by
   combining two well-known technologies: IP in IP (IPv4-in-IPv6) and
   IPv4 NAPT.

   Security considerations, with respect to DS-Lite, mainly revolve
   around logging data, preventing DoS attacks from rogue devices (as
   the Address Family Translation Router (AFTR) [RFC6333] function is
   stateful), and restricting service offered by the AFTR only to
   registered customers.

   Section 11 of [RFC6333] and Section 2 of [RFC7785] describe important
   security issues associated with this technology.

2.8.  General Device Hardening

   With almost all devices being IPv6 enabled by default and with many
   endpoints having IPv6 connectivity to the Internet, it is critical to
   also harden those devices against attacks over IPv6.

   The same techniques used to protect devices against attacks over IPv4
   should be used for IPv6 and should include but are not limited to:

   *  restricting device access to authorized individuals;

   *  monitoring and auditing access to the device;

   *  turning off any unused services on the end node

   *  understanding which IPv6 addresses are being used to source
      traffic and changing defaults if necessary;

   *  using cryptographically protected protocols for device management
      (Secure Copy Protocol (SCP), SNMPv3, SSH, TLS, etc.);

   *  using host firewall capabilities to control traffic that gets
      processed by upper-layer protocols;

   *  applying firmware, OS, and application patches/upgrades to the
      devices in a timely manner;

   *  using multifactor credentials to authenticate to devices; and

   *  using virus scanners to detect malicious programs.

3.  Enterprises-Specific Security Considerations

   Enterprises [RFC7381] generally have robust network security policies
   in place to protect existing IPv4 networks.  These policies have been
   distilled from years of experiential knowledge of securing IPv4
   networks.  At the very least, it is recommended that enterprise
   networks have parity between their security policies for both
   protocol versions.  This section also applies to the enterprise part
   of all SP networks, i.e., the part of the network where the SP
   employees are connected.

   Security considerations in the enterprise can be broadly categorized
   into two groups: external and internal.

3.1.  External Security Considerations

   The external aspect deals with providing security at the edge or
   perimeter of the enterprise network where it meets the service
   provider's network.  This is commonly achieved by enforcing a
   security policy, either by implementing dedicated firewalls with
   stateful packet inspection or a router with ACLs.  A common default
   IPv4 policy on firewalls that could easily be ported to IPv6 is to
   allow all traffic outbound while only allowing specific traffic, such
   as established sessions, inbound (see [RFC6092]).  Section 3.2 of
   [RFC7381] also provides similar recommendations.

   Here are a few more things that could enhance the default policy:

   *  Filter internal-use IPv6 addresses at the perimeter; this will
      also mitigate the vulnerabilities listed in [RFC7359].

   *  Discard packets from and to bogon and reserved space; see [CYMRU]
      and [RFC8190].

   *  Accept certain ICMPv6 messages to allow proper operation of ND and
      Path MTU Discovery (PMTUD); see [RFC4890] or [REY_PF] for hosts.

   *  Based on the use of the network, filter specific extension headers
      by accepting only the required ones (permit list approach), such
      as ESP, AH, and not forgetting the required transport layers:
      ICMP, TCP, UDP, etc.  This filtering should be done where
      applicable at the edge and possibly inside the perimeter; see
      [IPV6-EH-FILTERING].

   *  Filter packets having an illegal IPv6 header chain at the
      perimeter (and, if possible, inside the network as well); see
      Section 2.2.

   *  Filter unneeded services at the perimeter.

   *  Implement ingress and egress anti-spoofing in the forwarding and
      control planes; see [RFC2827] and [RFC3704].

   *  Implement appropriate rate-limiters and control plane policers
      based on traffic baselines.

   Having global IPv6 addresses on all the enterprise sites is different
   than in IPv4, where [RFC1918] addresses are often used internally and
   not routed over the Internet.  [RFC7359] and [WEBER_VPN] explain that
   without careful design, there could be IPv6 leakages from Layer 3
   VPNs.

3.2.  Internal Security Considerations

   The internal aspect deals with providing security inside the
   perimeter of the network, including end hosts.  Internal networks of
   enterprises are often different, e.g., University campus, wireless
   guest access, etc., so there is no "one size fits all"
   recommendation.

   The most significant concerns here are related to Neighbor Discovery.
   At the network level, it is recommended that all security
   considerations discussed in Section 2.3 be reviewed carefully and the
   recommendations be considered in-depth as well.  Section 4.1 of
   [RFC7381] also provides some recommendations.

   As mentioned in Section 2.7.2, care must be taken when running
   automated IPv6-in-IPv4 tunnels.

   When site-to-site VPNs are used, it should be kept in mind that,
   given the global scope of IPv6 global addresses as opposed to the
   common use of IPv4 private address space [RFC1918], sites might be
   able to communicate with each other over the Internet even when the
   VPN mechanism is not available.  Hence, no traffic encryption is
   performed and traffic could be injected from the Internet into the
   site; see [WEBER_VPN].  It is recommended to filter at Internet
   connection(s) packets having a source or destination address
   belonging to the site internal prefix or prefixes; this should be
   done for ingress and egress traffic.

   Hosts need to be hardened directly through security policy to protect
   against security threats.  The host firewall default capabilities
   have to be clearly understood.  In some cases, third-party firewalls
   have no IPv6 support, whereas the native firewall installed by
   default has IPv6 support.  General device hardening guidelines are
   provided in Section 2.8.

   It should also be noted that many hosts still use IPv4 for
   transporting logs for RADIUS, DIAMETER, TACACS+, syslog, etc.
   Operators cannot rely on an IPv6-only security policy to secure such
   protocols that are still using IPv4.

4.  Service Provider Security Considerations

4.1.  BGP

   The threats and mitigation techniques are identical between IPv4 and
   IPv6.  Broadly speaking, they are:

   *  authenticating the TCP session;

   *  TTL security (which becomes hop-limit security in IPv6), as in
      [RFC5082];

   *  bogon AS filtering; see [CYMRU]; and

   *  prefix filtering.

   These are explained in more detail in Section 2.5.  Also, the
   recommendations of [RFC7454] should be considered.

4.1.1.  Remote Triggered Black Hole Filtering

   A Remote Triggered Black Hole (RTBH) [RFC5635] works identically in
   IPv4 and IPv6.  IANA has allocated the 100::/64 prefix to be used as
   the discard prefix [RFC6666].

4.2.  Transition/Coexistence Mechanism

   SPs will typically use transition mechanisms, such as 6rd, 6PE, MAP,
   and NAT64, which have been analyzed in the transition and coexistence
   (Section 2.7).

4.3.  Lawful Intercept

   The lawful intercept requirements are similar for IPv6 and IPv4
   architectures and will be subject to the laws enforced in different
   geographic regions.  The local issues with each jurisdiction can make
   this challenging and both corporate legal and privacy personnel
   should be involved in discussions pertaining to what information gets
   logged and with regard to the respective log retention policies for
   this information.

   The target of interception will usually be a residential subscriber
   (e.g., his/her PPP session, physical line, or CPE MAC address).  In
   the absence of IPv6 NAT on the CPE, IPv6 has the possibility to allow
   for intercepting the traffic from a single host (i.e., a /128 target)
   rather than the whole set of hosts of a subscriber (which could be a
   /48, /60, or /64).

   In contrast, in mobile environments, since the 3GPP specifications
   allocate a /64 per device, it may be sufficient to intercept traffic
   from the /64 rather than specific /128s (since each time the device
   establishes a data connection, it gets a new IID).

5.  Residential Users Security Considerations

   The IETF Home Networking (homenet) Working Group is working on
   standards and guidelines for IPv6 residential networks; this
   obviously includes operational security considerations, but this is
   still a work in progress.  [RFC8520] is an interesting approach on
   how firewalls could retrieve and apply specific security policies to
   some residential devices.

   Some residential users have less experience and knowledge about
   security or networking than experimented operators.  As most of the
   recent hosts (e.g., smartphones and tablets) have IPv6 enabled by
   default, IPv6 security is important for those users.  Even with an
   IPv4-only ISP, those users can get IPv6 Internet access with the help
   of Teredo (Section 2.7.2.8) tunnels.  Several peer-to-peer programs
   support IPv6, and those programs can initiate a Teredo tunnel through
   an IPv4 residential gateway, with the consequence of making the
   internal host reachable from any IPv6 host on the Internet.
   Therefore, it is recommended that all host security products
   (including personal firewalls) are configured with a dual-stack
   security policy.

   If the residential CPE has IPv6 connectivity, [RFC7084] defines the
   requirements of an IPv6 CPE and does not take a position on the
   debate of default IPv6 security policy, as defined in [RFC6092]:

   outbound only:
      Allowing all internally initiated connections and blocking all
      externally initiated ones, which is a common default security
      policy enforced by IPv4 residential gateway doing NAPT, but it
      also breaks the end-to-end reachability promise of IPv6.
      [RFC6092] lists several recommendations to design such a CPE.

   open/transparent:
      Allowing all internally and externally initiated connections,
      therefore, restoring the end-to-end nature of the Internet for
      IPv6 traffic but having a different security policy for IPv6 than
      for IPv4.

   REC-49 states that a choice must be given to the user to select one
   of those two policies [RFC6092].

6.  Further Reading

   There are several documents that describe in more detail the security
   of an IPv6 network; these documents are not written by the IETF and
   some of them are dated but are listed here for the reader's
   convenience:

   *  Guidelines for the Secure Deployment of IPv6 [NIST]

   *  North American IPv6 Task Force Technology Report - IPv6 Security
      Technology Paper [NAv6TF_Security]

   *  IPv6 Security [IPv6_Security_Book]

7.  Security Considerations

   This memo attempts to give an overview of security considerations of
   operating an IPv6 network both for an IPv6-only network and for
   networks utilizing the most widely deployed IPv4/IPv6 coexistence
   strategies.

8.  IANA Considerations

   This document has no IANA actions.

9.  References

9.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>.

   [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>.

   [RFC8200]  Deering, S. and R. Hinden, "Internet Protocol, Version 6
              (IPv6) Specification", STD 86, RFC 8200,
              DOI 10.17487/RFC8200, July 2017,
              <https://www.rfc-editor.org/info/rfc8200>.

9.2.  Informative References

   [CYMRU]    Team Cymru, "The Bogon Reference", <https://team-
              cymru.com/community-services/bogon-reference/>.

   [ENTROPYIP]
              Foremski, P., Plonka, D., and A. Berger, "Entropy/IP:
              Uncovering Structure in IPv6 Addresses", November 2016,
              <http://www.entropy-ip.com/>.

   [europol-cgn]
              Europol, "Are you sharing the same IP address as a
              criminal? Law enforcement call for the end of Carrier
              Grade Nat (CGN) to increase accountability online",
              October 2017,
              <https://www.europol.europa.eu/newsroom/news/are-you-
              sharing-same-ip-address-criminal-law-enforcement-call-for-
              end-of-carrier-grade-nat-cgn-to-increase-accountability-
              online>.

   [GDPR]     European Union, "Regulation (EU) 2016/679 of the European
              Parliament and of the Council of 27 April 2016 on the
              protection of natural persons with regard to the
              processing of personal data and on the free movement of
              such data, and repealing Directive 95/46/EC (General Data
              Protection Regulation)", Official Journal of the European
              Union, April 2016,
              <https://eur-lex.europa.eu/eli/reg/2016/679/oj>.

   [IANA-IPFIX]
              IANA, "IP Flow Information Export (IPFIX) Entities",
              <http://www.iana.org/assignments/ipfix>.

   [IEEE-802.1X]
              IEEE, "IEEE Standard for Local and Metropolitan Area
              Networks--Port-Based Network Access Control", IEEE Std 
              802.1X-2020, February 2020.

   [IPV6-EH-FILTERING]
              Gont, F. and W. Liu, "Recommendations on the Filtering of
              IPv6 Packets Containing IPv6 Extension Headers at Transit
              Routers", Work in Progress, Internet-Draft, draft-ietf-
              opsec-ipv6-eh-filtering-08, 3 June 2021,
              <https://datatracker.ietf.org/doc/html/draft-ietf-opsec-
              ipv6-eh-filtering-08>.

   [IPV6-EH-PARSING]
              Kampanakis, P., "Implementation Guidelines for parsing
              IPv6 Extension Headers", Work in Progress, Internet-Draft,
              draft-kampanakis-6man-ipv6-eh-parsing-01, 5 August 2014,
              <https://datatracker.ietf.org/doc/html/draft-kampanakis-
              6man-ipv6-eh-parsing-01>.

   [IPv6_Security_Book]
              Hogg, S. and É. Vyncke, "IPv6 Security", CiscoPress,
              ISBN 1587055945, December 2008.

   [KRISTOFF] Kristoff, J., Ghasemisharif, M., Kanich, C., and J.
              Polakis, "Plight at the End of the Tunnel: Legacy IPv6
              Transition Mechanisms in the Wild", March 2021,
              <https://dataplane.org/jtk/publications/kgkp-pam-21.pdf>.

   [NAv6TF_Security]
              Kaeo, M., Green, D., Bound, J., and Y. Pouffary, "North
              American IPv6 Task Force (NAv6TF) Technology Report "IPv6
              Security Technology Paper", July 2006,
              <http://www.ipv6forum.com/dl/white/
              NAv6TF_Security_Report.pdf>.

   [NIST]     Frankel, S., Graveman, R., Pearce, J., and M. Rooks,
              "Guidelines for the Secure Deployment of IPv6", December
              2010, <http://csrc.nist.gov/publications/nistpubs/800-119/
              sp800-119.pdf>.

   [RADB]     Merit Network, Inc., "RADb: The Internet Routing
              Registry", <https://www.radb.net/>.

   [REY_PF]   Rey, E., "Local Packet Filtering with IPv6", July 2017,
              <https://labs.ripe.net/Members/enno_rey/local-packet-
              filtering-with-ipv6>.

   [RFC0826]  Plummer, D., "An Ethernet Address Resolution Protocol: Or
              Converting Network Protocol Addresses to 48.bit Ethernet
              Address for Transmission on Ethernet Hardware", STD 37,
              RFC 826, DOI 10.17487/RFC0826, November 1982,
              <https://www.rfc-editor.org/info/rfc826>.

   [RFC1918]  Rekhter, Y., Moskowitz, B., Karrenberg, D., de Groot, G.
              J., and E. Lear, "Address Allocation for Private
              Internets", BCP 5, RFC 1918, DOI 10.17487/RFC1918,
              February 1996, <https://www.rfc-editor.org/info/rfc1918>.

   [RFC2131]  Droms, R., "Dynamic Host Configuration Protocol",
              RFC 2131, DOI 10.17487/RFC2131, March 1997,
              <https://www.rfc-editor.org/info/rfc2131>.

   [RFC2460]  Deering, S. and R. Hinden, "Internet Protocol, Version 6
              (IPv6) Specification", RFC 2460, DOI 10.17487/RFC2460,
              December 1998, <https://www.rfc-editor.org/info/rfc2460>.

   [RFC2529]  Carpenter, B. and C. Jung, "Transmission of IPv6 over IPv4
              Domains without Explicit Tunnels", RFC 2529,
              DOI 10.17487/RFC2529, March 1999,
              <https://www.rfc-editor.org/info/rfc2529>.

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

   [RFC2784]  Farinacci, D., Li, T., Hanks, S., Meyer, D., and P.
              Traina, "Generic Routing Encapsulation (GRE)", RFC 2784,
              DOI 10.17487/RFC2784, March 2000,
              <https://www.rfc-editor.org/info/rfc2784>.

   [RFC2827]  Ferguson, P. and D. Senie, "Network Ingress Filtering:
              Defeating Denial of Service Attacks which employ IP Source
              Address Spoofing", BCP 38, RFC 2827, DOI 10.17487/RFC2827,
              May 2000, <https://www.rfc-editor.org/info/rfc2827>.

   [RFC2866]  Rigney, C., "RADIUS Accounting", RFC 2866,
              DOI 10.17487/RFC2866, June 2000,
              <https://www.rfc-editor.org/info/rfc2866>.

   [RFC3056]  Carpenter, B. and K. Moore, "Connection of IPv6 Domains
              via IPv4 Clouds", RFC 3056, DOI 10.17487/RFC3056, February
              2001, <https://www.rfc-editor.org/info/rfc3056>.

   [RFC3068]  Huitema, C., "An Anycast Prefix for 6to4 Relay Routers",
              RFC 3068, DOI 10.17487/RFC3068, June 2001,
              <https://www.rfc-editor.org/info/rfc3068>.

   [RFC3627]  Savola, P., "Use of /127 Prefix Length Between Routers
              Considered Harmful", RFC 3627, DOI 10.17487/RFC3627,
              September 2003, <https://www.rfc-editor.org/info/rfc3627>.

   [RFC3704]  Baker, F. and P. Savola, "Ingress Filtering for Multihomed
              Networks", BCP 84, RFC 3704, DOI 10.17487/RFC3704, March
              2004, <https://www.rfc-editor.org/info/rfc3704>.

   [RFC3756]  Nikander, P., Ed., Kempf, J., and E. Nordmark, "IPv6
              Neighbor Discovery (ND) Trust Models and Threats",
              RFC 3756, DOI 10.17487/RFC3756, May 2004,
              <https://www.rfc-editor.org/info/rfc3756>.

   [RFC3964]  Savola, P. and C. Patel, "Security Considerations for
              6to4", RFC 3964, DOI 10.17487/RFC3964, December 2004,
              <https://www.rfc-editor.org/info/rfc3964>.

   [RFC3971]  Arkko, J., Ed., Kempf, J., Zill, B., and P. Nikander,
              "SEcure Neighbor Discovery (SEND)", RFC 3971,
              DOI 10.17487/RFC3971, March 2005,
              <https://www.rfc-editor.org/info/rfc3971>.

   [RFC3972]  Aura, T., "Cryptographically Generated Addresses (CGA)",
              RFC 3972, DOI 10.17487/RFC3972, March 2005,
              <https://www.rfc-editor.org/info/rfc3972>.

   [RFC4033]  Arends, R., Austein, R., Larson, M., Massey, D., and S.
              Rose, "DNS Security Introduction and Requirements",
              RFC 4033, DOI 10.17487/RFC4033, March 2005,
              <https://www.rfc-editor.org/info/rfc4033>.

   [RFC4107]  Bellovin, S. and R. Housley, "Guidelines for Cryptographic
              Key Management", BCP 107, RFC 4107, DOI 10.17487/RFC4107,
              June 2005, <https://www.rfc-editor.org/info/rfc4107>.

   [RFC4193]  Hinden, R. and B. Haberman, "Unique Local IPv6 Unicast
              Addresses", RFC 4193, DOI 10.17487/RFC4193, October 2005,
              <https://www.rfc-editor.org/info/rfc4193>.

   [RFC4293]  Routhier, S., Ed., "Management Information Base for the
              Internet Protocol (IP)", RFC 4293, DOI 10.17487/RFC4293,
              April 2006, <https://www.rfc-editor.org/info/rfc4293>.

   [RFC4301]  Kent, S. and K. Seo, "Security Architecture for the
              Internet Protocol", RFC 4301, DOI 10.17487/RFC4301,
              December 2005, <https://www.rfc-editor.org/info/rfc4301>.

   [RFC4302]  Kent, S., "IP Authentication Header", RFC 4302,
              DOI 10.17487/RFC4302, December 2005,
              <https://www.rfc-editor.org/info/rfc4302>.

   [RFC4303]  Kent, S., "IP Encapsulating Security Payload (ESP)",
              RFC 4303, DOI 10.17487/RFC4303, December 2005,
              <https://www.rfc-editor.org/info/rfc4303>.

   [RFC4364]  Rosen, E. and Y. Rekhter, "BGP/MPLS IP Virtual Private
              Networks (VPNs)", RFC 4364, DOI 10.17487/RFC4364, February
              2006, <https://www.rfc-editor.org/info/rfc4364>.

   [RFC4380]  Huitema, C., "Teredo: Tunneling IPv6 over UDP through
              Network Address Translations (NATs)", RFC 4380,
              DOI 10.17487/RFC4380, February 2006,
              <https://www.rfc-editor.org/info/rfc4380>.

   [RFC4381]  Behringer, M., "Analysis of the Security of BGP/MPLS IP
              Virtual Private Networks (VPNs)", RFC 4381,
              DOI 10.17487/RFC4381, February 2006,
              <https://www.rfc-editor.org/info/rfc4381>.

   [RFC4443]  Conta, A., Deering, S., and M. Gupta, Ed., "Internet
              Control Message Protocol (ICMPv6) for the Internet
              Protocol Version 6 (IPv6) Specification", STD 89,
              RFC 4443, DOI 10.17487/RFC4443, March 2006,
              <https://www.rfc-editor.org/info/rfc4443>.

   [RFC4552]  Gupta, M. and N. Melam, "Authentication/Confidentiality
              for OSPFv3", RFC 4552, DOI 10.17487/RFC4552, June 2006,
              <https://www.rfc-editor.org/info/rfc4552>.

   [RFC4649]  Volz, B., "Dynamic Host Configuration Protocol for IPv6
              (DHCPv6) Relay Agent Remote-ID Option", RFC 4649,
              DOI 10.17487/RFC4649, August 2006,
              <https://www.rfc-editor.org/info/rfc4649>.

   [RFC4659]  De Clercq, J., Ooms, D., Carugi, M., and F. Le Faucheur,
              "BGP-MPLS IP Virtual Private Network (VPN) Extension for
              IPv6 VPN", RFC 4659, DOI 10.17487/RFC4659, September 2006,
              <https://www.rfc-editor.org/info/rfc4659>.

   [RFC4795]  Aboba, B., Thaler, D., and L. Esibov, "Link-local
              Multicast Name Resolution (LLMNR)", RFC 4795,
              DOI 10.17487/RFC4795, January 2007,
              <https://www.rfc-editor.org/info/rfc4795>.

   [RFC4798]  De Clercq, J., Ooms, D., Prevost, S., and F. Le Faucheur,
              "Connecting IPv6 Islands over IPv4 MPLS Using IPv6
              Provider Edge Routers (6PE)", RFC 4798,
              DOI 10.17487/RFC4798, February 2007,
              <https://www.rfc-editor.org/info/rfc4798>.

   [RFC4861]  Narten, T., Nordmark, E., Simpson, W., and H. Soliman,
              "Neighbor Discovery for IP version 6 (IPv6)", RFC 4861,
              DOI 10.17487/RFC4861, September 2007,
              <https://www.rfc-editor.org/info/rfc4861>.

   [RFC4864]  Van de Velde, G., Hain, T., Droms, R., Carpenter, B., and
              E. Klein, "Local Network Protection for IPv6", RFC 4864,
              DOI 10.17487/RFC4864, May 2007,
              <https://www.rfc-editor.org/info/rfc4864>.

   [RFC4890]  Davies, E. and J. Mohacsi, "Recommendations for Filtering
              ICMPv6 Messages in Firewalls", RFC 4890,
              DOI 10.17487/RFC4890, May 2007,
              <https://www.rfc-editor.org/info/rfc4890>.

   [RFC4942]  Davies, E., Krishnan, S., and P. Savola, "IPv6 Transition/
              Co-existence Security Considerations", RFC 4942,
              DOI 10.17487/RFC4942, September 2007,
              <https://www.rfc-editor.org/info/rfc4942>.

   [RFC5082]  Gill, V., Heasley, J., Meyer, D., Savola, P., Ed., and C.
              Pignataro, "The Generalized TTL Security Mechanism
              (GTSM)", RFC 5082, DOI 10.17487/RFC5082, October 2007,
              <https://www.rfc-editor.org/info/rfc5082>.

   [RFC5214]  Templin, F., Gleeson, T., and D. Thaler, "Intra-Site
              Automatic Tunnel Addressing Protocol (ISATAP)", RFC 5214,
              DOI 10.17487/RFC5214, March 2008,
              <https://www.rfc-editor.org/info/rfc5214>.

   [RFC5340]  Coltun, R., Ferguson, D., Moy, J., and A. Lindem, "OSPF
              for IPv6", RFC 5340, DOI 10.17487/RFC5340, July 2008,
              <https://www.rfc-editor.org/info/rfc5340>.

   [RFC5635]  Kumari, W. and D. McPherson, "Remote Triggered Black Hole
              Filtering with Unicast Reverse Path Forwarding (uRPF)",
              RFC 5635, DOI 10.17487/RFC5635, August 2009,
              <https://www.rfc-editor.org/info/rfc5635>.

   [RFC5952]  Kawamura, S. and M. Kawashima, "A Recommendation for IPv6
              Address Text Representation", RFC 5952,
              DOI 10.17487/RFC5952, August 2010,
              <https://www.rfc-editor.org/info/rfc5952>.

   [RFC5969]  Townsley, W. and O. Troan, "IPv6 Rapid Deployment on IPv4
              Infrastructures (6rd) -- Protocol Specification",
              RFC 5969, DOI 10.17487/RFC5969, August 2010,
              <https://www.rfc-editor.org/info/rfc5969>.

   [RFC6092]  Woodyatt, J., Ed., "Recommended Simple Security
              Capabilities in Customer Premises Equipment (CPE) for
              Providing Residential IPv6 Internet Service", RFC 6092,
              DOI 10.17487/RFC6092, January 2011,
              <https://www.rfc-editor.org/info/rfc6092>.

   [RFC6104]  Chown, T. and S. Venaas, "Rogue IPv6 Router Advertisement
              Problem Statement", RFC 6104, DOI 10.17487/RFC6104,
              February 2011, <https://www.rfc-editor.org/info/rfc6104>.

   [RFC6105]  Levy-Abegnoli, E., Van de Velde, G., Popoviciu, C., and J.
              Mohacsi, "IPv6 Router Advertisement Guard", RFC 6105,
              DOI 10.17487/RFC6105, February 2011,
              <https://www.rfc-editor.org/info/rfc6105>.

   [RFC6144]  Baker, F., Li, X., Bao, C., and K. Yin, "Framework for
              IPv4/IPv6 Translation", RFC 6144, DOI 10.17487/RFC6144,
              April 2011, <https://www.rfc-editor.org/info/rfc6144>.

   [RFC6146]  Bagnulo, M., Matthews, P., and I. van Beijnum, "Stateful
              NAT64: Network Address and Protocol Translation from IPv6
              Clients to IPv4 Servers", RFC 6146, DOI 10.17487/RFC6146,
              April 2011, <https://www.rfc-editor.org/info/rfc6146>.

   [RFC6147]  Bagnulo, M., Sullivan, A., Matthews, P., and I. van
              Beijnum, "DNS64: DNS Extensions for Network Address
              Translation from IPv6 Clients to IPv4 Servers", RFC 6147,
              DOI 10.17487/RFC6147, April 2011,
              <https://www.rfc-editor.org/info/rfc6147>.

   [RFC6164]  Kohno, M., Nitzan, B., Bush, R., Matsuzaki, Y., Colitti,
              L., and T. Narten, "Using 127-Bit IPv6 Prefixes on Inter-
              Router Links", RFC 6164, DOI 10.17487/RFC6164, April 2011,
              <https://www.rfc-editor.org/info/rfc6164>.

   [RFC6169]  Krishnan, S., Thaler, D., and J. Hoagland, "Security
              Concerns with IP Tunneling", RFC 6169,
              DOI 10.17487/RFC6169, April 2011,
              <https://www.rfc-editor.org/info/rfc6169>.

   [RFC6177]  Narten, T., Huston, G., and L. Roberts, "IPv6 Address
              Assignment to End Sites", BCP 157, RFC 6177,
              DOI 10.17487/RFC6177, March 2011,
              <https://www.rfc-editor.org/info/rfc6177>.

   [RFC6192]  Dugal, D., Pignataro, C., and R. Dunn, "Protecting the
              Router Control Plane", RFC 6192, DOI 10.17487/RFC6192,
              March 2011, <https://www.rfc-editor.org/info/rfc6192>.

   [RFC6221]  Miles, D., Ed., Ooghe, S., Dec, W., Krishnan, S., and A.
              Kavanagh, "Lightweight DHCPv6 Relay Agent", RFC 6221,
              DOI 10.17487/RFC6221, May 2011,
              <https://www.rfc-editor.org/info/rfc6221>.

   [RFC6241]  Enns, R., Ed., Bjorklund, M., Ed., Schoenwaelder, J., Ed.,
              and A. Bierman, Ed., "Network Configuration Protocol
              (NETCONF)", RFC 6241, DOI 10.17487/RFC6241, June 2011,
              <https://www.rfc-editor.org/info/rfc6241>.

   [RFC6264]  Jiang, S., Guo, D., and B. Carpenter, "An Incremental
              Carrier-Grade NAT (CGN) for IPv6 Transition", RFC 6264,
              DOI 10.17487/RFC6264, June 2011,
              <https://www.rfc-editor.org/info/rfc6264>.

   [RFC6269]  Ford, M., Ed., Boucadair, M., Durand, A., Levis, P., and
              P. Roberts, "Issues with IP Address Sharing", RFC 6269,
              DOI 10.17487/RFC6269, June 2011,
              <https://www.rfc-editor.org/info/rfc6269>.

   [RFC6296]  Wasserman, M. and F. Baker, "IPv6-to-IPv6 Network Prefix
              Translation", RFC 6296, DOI 10.17487/RFC6296, June 2011,
              <https://www.rfc-editor.org/info/rfc6296>.

   [RFC6302]  Durand, A., Gashinsky, I., Lee, D., and S. Sheppard,
              "Logging Recommendations for Internet-Facing Servers",
              BCP 162, RFC 6302, DOI 10.17487/RFC6302, June 2011,
              <https://www.rfc-editor.org/info/rfc6302>.

   [RFC6324]  Nakibly, G. and F. Templin, "Routing Loop Attack Using
              IPv6 Automatic Tunnels: Problem Statement and Proposed
              Mitigations", RFC 6324, DOI 10.17487/RFC6324, August 2011,
              <https://www.rfc-editor.org/info/rfc6324>.

   [RFC6333]  Durand, A., Droms, R., Woodyatt, J., and Y. Lee, "Dual-
              Stack Lite Broadband Deployments Following IPv4
              Exhaustion", RFC 6333, DOI 10.17487/RFC6333, August 2011,
              <https://www.rfc-editor.org/info/rfc6333>.

   [RFC6343]  Carpenter, B., "Advisory Guidelines for 6to4 Deployment",
              RFC 6343, DOI 10.17487/RFC6343, August 2011,
              <https://www.rfc-editor.org/info/rfc6343>.

   [RFC6434]  Jankiewicz, E., Loughney, J., and T. Narten, "IPv6 Node
              Requirements", RFC 6434, DOI 10.17487/RFC6434, December
              2011, <https://www.rfc-editor.org/info/rfc6434>.

   [RFC6459]  Korhonen, J., Ed., Soininen, J., Patil, B., Savolainen,
              T., Bajko, G., and K. Iisakkila, "IPv6 in 3rd Generation
              Partnership Project (3GPP) Evolved Packet System (EPS)",
              RFC 6459, DOI 10.17487/RFC6459, January 2012,
              <https://www.rfc-editor.org/info/rfc6459>.

   [RFC6547]  George, W., "RFC 3627 to Historic Status", RFC 6547,
              DOI 10.17487/RFC6547, February 2012,
              <https://www.rfc-editor.org/info/rfc6547>.

   [RFC6564]  Krishnan, S., Woodyatt, J., Kline, E., Hoagland, J., and
              M. Bhatia, "A Uniform Format for IPv6 Extension Headers",
              RFC 6564, DOI 10.17487/RFC6564, April 2012,
              <https://www.rfc-editor.org/info/rfc6564>.

   [RFC6583]  Gashinsky, I., Jaeggli, J., and W. Kumari, "Operational
              Neighbor Discovery Problems", RFC 6583,
              DOI 10.17487/RFC6583, March 2012,
              <https://www.rfc-editor.org/info/rfc6583>.

   [RFC6598]  Weil, J., Kuarsingh, V., Donley, C., Liljenstolpe, C., and
              M. Azinger, "IANA-Reserved IPv4 Prefix for Shared Address
              Space", BCP 153, RFC 6598, DOI 10.17487/RFC6598, April
              2012, <https://www.rfc-editor.org/info/rfc6598>.

   [RFC6620]  Nordmark, E., Bagnulo, M., and E. Levy-Abegnoli, "FCFS
              SAVI: First-Come, First-Served Source Address Validation
              Improvement for Locally Assigned IPv6 Addresses",
              RFC 6620, DOI 10.17487/RFC6620, May 2012,
              <https://www.rfc-editor.org/info/rfc6620>.

   [RFC6666]  Hilliard, N. and D. Freedman, "A Discard Prefix for IPv6",
              RFC 6666, DOI 10.17487/RFC6666, August 2012,
              <https://www.rfc-editor.org/info/rfc6666>.

   [RFC6762]  Cheshire, S. and M. Krochmal, "Multicast DNS", RFC 6762,
              DOI 10.17487/RFC6762, February 2013,
              <https://www.rfc-editor.org/info/rfc6762>.

   [RFC6763]  Cheshire, S. and M. Krochmal, "DNS-Based Service
              Discovery", RFC 6763, DOI 10.17487/RFC6763, February 2013,
              <https://www.rfc-editor.org/info/rfc6763>.

   [RFC6775]  Shelby, Z., Ed., Chakrabarti, S., Nordmark, E., and C.
              Bormann, "Neighbor Discovery Optimization for IPv6 over
              Low-Power Wireless Personal Area Networks (6LoWPANs)",
              RFC 6775, DOI 10.17487/RFC6775, November 2012,
              <https://www.rfc-editor.org/info/rfc6775>.

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

   [RFC6888]  Perreault, S., Ed., Yamagata, I., Miyakawa, S., Nakagawa,
              A., and H. Ashida, "Common Requirements for Carrier-Grade
              NATs (CGNs)", BCP 127, RFC 6888, DOI 10.17487/RFC6888,
              April 2013, <https://www.rfc-editor.org/info/rfc6888>.

   [RFC6939]  Halwasia, G., Bhandari, S., and W. Dec, "Client Link-Layer
              Address Option in DHCPv6", RFC 6939, DOI 10.17487/RFC6939,
              May 2013, <https://www.rfc-editor.org/info/rfc6939>.

   [RFC6964]  Templin, F., "Operational Guidance for IPv6 Deployment in
              IPv4 Sites Using the Intra-Site Automatic Tunnel
              Addressing Protocol (ISATAP)", RFC 6964,
              DOI 10.17487/RFC6964, May 2013,
              <https://www.rfc-editor.org/info/rfc6964>.

   [RFC6967]  Boucadair, M., Touch, J., Levis, P., and R. Penno,
              "Analysis of Potential Solutions for Revealing a Host
              Identifier (HOST_ID) in Shared Address Deployments",
              RFC 6967, DOI 10.17487/RFC6967, June 2013,
              <https://www.rfc-editor.org/info/rfc6967>.

   [RFC6980]  Gont, F., "Security Implications of IPv6 Fragmentation
              with IPv6 Neighbor Discovery", RFC 6980,
              DOI 10.17487/RFC6980, August 2013,
              <https://www.rfc-editor.org/info/rfc6980>.

   [RFC7010]  Liu, B., Jiang, S., Carpenter, B., Venaas, S., and W.
              George, "IPv6 Site Renumbering Gap Analysis", RFC 7010,
              DOI 10.17487/RFC7010, September 2013,
              <https://www.rfc-editor.org/info/rfc7010>.

   [RFC7011]  Claise, B., Ed., Trammell, B., Ed., and P. Aitken,
              "Specification of the IP Flow Information Export (IPFIX)
              Protocol for the Exchange of Flow Information", STD 77,
              RFC 7011, DOI 10.17487/RFC7011, September 2013,
              <https://www.rfc-editor.org/info/rfc7011>.

   [RFC7012]  Claise, B., Ed. and B. Trammell, Ed., "Information Model
              for IP Flow Information Export (IPFIX)", RFC 7012,
              DOI 10.17487/RFC7012, September 2013,
              <https://www.rfc-editor.org/info/rfc7012>.

   [RFC7039]  Wu, J., Bi, J., Bagnulo, M., Baker, F., and C. Vogt, Ed.,
              "Source Address Validation Improvement (SAVI) Framework",
              RFC 7039, DOI 10.17487/RFC7039, October 2013,
              <https://www.rfc-editor.org/info/rfc7039>.

   [RFC7045]  Carpenter, B. and S. Jiang, "Transmission and Processing
              of IPv6 Extension Headers", RFC 7045,
              DOI 10.17487/RFC7045, December 2013,
              <https://www.rfc-editor.org/info/rfc7045>.

   [RFC7084]  Singh, H., Beebee, W., Donley, C., and B. Stark, "Basic
              Requirements for IPv6 Customer Edge Routers", RFC 7084,
              DOI 10.17487/RFC7084, November 2013,
              <https://www.rfc-editor.org/info/rfc7084>.

   [RFC7112]  Gont, F., Manral, V., and R. Bonica, "Implications of
              Oversized IPv6 Header Chains", RFC 7112,
              DOI 10.17487/RFC7112, January 2014,
              <https://www.rfc-editor.org/info/rfc7112>.

   [RFC7113]  Gont, F., "Implementation Advice for IPv6 Router
              Advertisement Guard (RA-Guard)", RFC 7113,
              DOI 10.17487/RFC7113, February 2014,
              <https://www.rfc-editor.org/info/rfc7113>.

   [RFC7123]  Gont, F. and W. Liu, "Security Implications of IPv6 on
              IPv4 Networks", RFC 7123, DOI 10.17487/RFC7123, February
              2014, <https://www.rfc-editor.org/info/rfc7123>.

   [RFC7166]  Bhatia, M., Manral, V., and A. Lindem, "Supporting
              Authentication Trailer for OSPFv3", RFC 7166,
              DOI 10.17487/RFC7166, March 2014,
              <https://www.rfc-editor.org/info/rfc7166>.

   [RFC7217]  Gont, F., "A Method for Generating Semantically Opaque
              Interface Identifiers with IPv6 Stateless Address
              Autoconfiguration (SLAAC)", RFC 7217,
              DOI 10.17487/RFC7217, April 2014,
              <https://www.rfc-editor.org/info/rfc7217>.

   [RFC7359]  Gont, F., "Layer 3 Virtual Private Network (VPN) Tunnel
              Traffic Leakages in Dual-Stack Hosts/Networks", RFC 7359,
              DOI 10.17487/RFC7359, August 2014,
              <https://www.rfc-editor.org/info/rfc7359>.

   [RFC7381]  Chittimaneni, K., Chown, T., Howard, L., Kuarsingh, V.,
              Pouffary, Y., and E. Vyncke, "Enterprise IPv6 Deployment
              Guidelines", RFC 7381, DOI 10.17487/RFC7381, October 2014,
              <https://www.rfc-editor.org/info/rfc7381>.

   [RFC7404]  Behringer, M. and E. Vyncke, "Using Only Link-Local
              Addressing inside an IPv6 Network", RFC 7404,
              DOI 10.17487/RFC7404, November 2014,
              <https://www.rfc-editor.org/info/rfc7404>.

   [RFC7422]  Donley, C., Grundemann, C., Sarawat, V., Sundaresan, K.,
              and O. Vautrin, "Deterministic Address Mapping to Reduce
              Logging in Carrier-Grade NAT Deployments", RFC 7422,
              DOI 10.17487/RFC7422, December 2014,
              <https://www.rfc-editor.org/info/rfc7422>.

   [RFC7454]  Durand, J., Pepelnjak, I., and G. Doering, "BGP Operations
              and Security", BCP 194, RFC 7454, DOI 10.17487/RFC7454,
              February 2015, <https://www.rfc-editor.org/info/rfc7454>.

   [RFC7513]  Bi, J., Wu, J., Yao, G., and F. Baker, "Source Address
              Validation Improvement (SAVI) Solution for DHCP",
              RFC 7513, DOI 10.17487/RFC7513, May 2015,
              <https://www.rfc-editor.org/info/rfc7513>.

   [RFC7526]  Troan, O. and B. Carpenter, Ed., "Deprecating the Anycast
              Prefix for 6to4 Relay Routers", BCP 196, RFC 7526,
              DOI 10.17487/RFC7526, May 2015,
              <https://www.rfc-editor.org/info/rfc7526>.

   [RFC7552]  Asati, R., Pignataro, C., Raza, K., Manral, V., and R.
              Papneja, "Updates to LDP for IPv6", RFC 7552,
              DOI 10.17487/RFC7552, June 2015,
              <https://www.rfc-editor.org/info/rfc7552>.

   [RFC7597]  Troan, O., Ed., Dec, W., Li, X., Bao, C., Matsushima, S.,
              Murakami, T., and T. Taylor, Ed., "Mapping of Address and
              Port with Encapsulation (MAP-E)", RFC 7597,
              DOI 10.17487/RFC7597, July 2015,
              <https://www.rfc-editor.org/info/rfc7597>.

   [RFC7599]  Li, X., Bao, C., Dec, W., Ed., Troan, O., Matsushima, S.,
              and T. Murakami, "Mapping of Address and Port using
              Translation (MAP-T)", RFC 7599, DOI 10.17487/RFC7599, July
              2015, <https://www.rfc-editor.org/info/rfc7599>.

   [RFC7610]  Gont, F., Liu, W., and G. Van de Velde, "DHCPv6-Shield:
              Protecting against Rogue DHCPv6 Servers", BCP 199,
              RFC 7610, DOI 10.17487/RFC7610, August 2015,
              <https://www.rfc-editor.org/info/rfc7610>.

   [RFC7707]  Gont, F. and T. Chown, "Network Reconnaissance in IPv6
              Networks", RFC 7707, DOI 10.17487/RFC7707, March 2016,
              <https://www.rfc-editor.org/info/rfc7707>.

   [RFC7721]  Cooper, A., Gont, F., and D. Thaler, "Security and Privacy
              Considerations for IPv6 Address Generation Mechanisms",
              RFC 7721, DOI 10.17487/RFC7721, March 2016,
              <https://www.rfc-editor.org/info/rfc7721>.

   [RFC7772]  Yourtchenko, A. and L. Colitti, "Reducing Energy
              Consumption of Router Advertisements", BCP 202, RFC 7772,
              DOI 10.17487/RFC7772, February 2016,
              <https://www.rfc-editor.org/info/rfc7772>.

   [RFC7785]  Vinapamula, S. and M. Boucadair, "Recommendations for
              Prefix Binding in the Context of Softwire Dual-Stack
              Lite", RFC 7785, DOI 10.17487/RFC7785, February 2016,
              <https://www.rfc-editor.org/info/rfc7785>.

   [RFC7824]  Krishnan, S., Mrugalski, T., and S. Jiang, "Privacy
              Considerations for DHCPv6", RFC 7824,
              DOI 10.17487/RFC7824, May 2016,
              <https://www.rfc-editor.org/info/rfc7824>.

   [RFC7844]  Huitema, C., Mrugalski, T., and S. Krishnan, "Anonymity
              Profiles for DHCP Clients", RFC 7844,
              DOI 10.17487/RFC7844, May 2016,
              <https://www.rfc-editor.org/info/rfc7844>.

   [RFC7857]  Penno, R., Perreault, S., Boucadair, M., Ed., Sivakumar,
              S., and K. Naito, "Updates to Network Address Translation
              (NAT) Behavioral Requirements", BCP 127, RFC 7857,
              DOI 10.17487/RFC7857, April 2016,
              <https://www.rfc-editor.org/info/rfc7857>.

   [RFC7872]  Gont, F., Linkova, J., Chown, T., and W. Liu,
              "Observations on the Dropping of Packets with IPv6
              Extension Headers in the Real World", RFC 7872,
              DOI 10.17487/RFC7872, June 2016,
              <https://www.rfc-editor.org/info/rfc7872>.

   [RFC7915]  Bao, C., Li, X., Baker, F., Anderson, T., and F. Gont,
              "IP/ICMP Translation Algorithm", RFC 7915,
              DOI 10.17487/RFC7915, June 2016,
              <https://www.rfc-editor.org/info/rfc7915>.

   [RFC7934]  Colitti, L., Cerf, V., Cheshire, S., and D. Schinazi,
              "Host Address Availability Recommendations", BCP 204,
              RFC 7934, DOI 10.17487/RFC7934, July 2016,
              <https://www.rfc-editor.org/info/rfc7934>.

   [RFC8040]  Bierman, A., Bjorklund, M., and K. Watsen, "RESTCONF
              Protocol", RFC 8040, DOI 10.17487/RFC8040, January 2017,
              <https://www.rfc-editor.org/info/rfc8040>.

   [RFC8064]  Gont, F., Cooper, A., Thaler, D., and W. Liu,
              "Recommendation on Stable IPv6 Interface Identifiers",
              RFC 8064, DOI 10.17487/RFC8064, February 2017,
              <https://www.rfc-editor.org/info/rfc8064>.

   [RFC8177]  Lindem, A., Ed., Qu, Y., Yeung, D., Chen, I., and J.
              Zhang, "YANG Data Model for Key Chains", RFC 8177,
              DOI 10.17487/RFC8177, June 2017,
              <https://www.rfc-editor.org/info/rfc8177>.

   [RFC8190]  Bonica, R., Cotton, M., Haberman, B., and L. Vegoda,
              "Updates to the Special-Purpose IP Address Registries",
              BCP 153, RFC 8190, DOI 10.17487/RFC8190, June 2017,
              <https://www.rfc-editor.org/info/rfc8190>.

   [RFC8210]  Bush, R. and R. Austein, "The Resource Public Key
              Infrastructure (RPKI) to Router Protocol, Version 1",
              RFC 8210, DOI 10.17487/RFC8210, September 2017,
              <https://www.rfc-editor.org/info/rfc8210>.

   [RFC8273]  Brzozowski, J. and G. Van de Velde, "Unique IPv6 Prefix
              per Host", RFC 8273, DOI 10.17487/RFC8273, December 2017,
              <https://www.rfc-editor.org/info/rfc8273>.

   [RFC8343]  Bjorklund, M., "A YANG Data Model for Interface
              Management", RFC 8343, DOI 10.17487/RFC8343, March 2018,
              <https://www.rfc-editor.org/info/rfc8343>.

   [RFC8344]  Bjorklund, M., "A YANG Data Model for IP Management",
              RFC 8344, DOI 10.17487/RFC8344, March 2018,
              <https://www.rfc-editor.org/info/rfc8344>.

   [RFC8415]  Mrugalski, T., Siodelski, M., Volz, B., Yourtchenko, A.,
              Richardson, M., Jiang, S., Lemon, T., and T. Winters,
              "Dynamic Host Configuration Protocol for IPv6 (DHCPv6)",
              RFC 8415, DOI 10.17487/RFC8415, November 2018,
              <https://www.rfc-editor.org/info/rfc8415>.

   [RFC8504]  Chown, T., Loughney, J., and T. Winters, "IPv6 Node
              Requirements", BCP 220, RFC 8504, DOI 10.17487/RFC8504,
              January 2019, <https://www.rfc-editor.org/info/rfc8504>.

   [RFC8520]  Lear, E., Droms, R., and D. Romascanu, "Manufacturer Usage
              Description Specification", RFC 8520,
              DOI 10.17487/RFC8520, March 2019,
              <https://www.rfc-editor.org/info/rfc8520>.

   [RFC8541]  Litkowski, S., Decraene, B., and M. Horneffer, "Impact of
              Shortest Path First (SPF) Trigger and Delay Strategies on
              IGP Micro-loops", RFC 8541, DOI 10.17487/RFC8541, March
              2019, <https://www.rfc-editor.org/info/rfc8541>.

   [RFC8981]  Gont, F., Krishnan, S., Narten, T., and R. Draves,
              "Temporary Address Extensions for Stateless Address
              Autoconfiguration in IPv6", RFC 8981,
              DOI 10.17487/RFC8981, February 2021,
              <https://www.rfc-editor.org/info/rfc8981>.

   [SCANNING] Barnes, R., Altmann, R., and D. Kerr, "Mapping the Great
              Void - Smarter scanning for IPv6", February 2012,
              <http://www.caida.org/workshops/isma/1202/slides/
              aims1202_rbarnes.pdf>.

   [WEBER_VPN]
              Weber, J., "Dynamic IPv6 Prefix - Problems and VPNs",
              March 2018, <https://blog.webernetz.net/wp-
              content/uploads/2018/03/TR18-Johannes-Weber-Dynamic-IPv6-
              Prefix-Problems-and-VPNs.pdf>.

Acknowledgements

   The authors would like to thank the following people for their useful
   comments (in alphabetical order): Mikael Abrahamsson, Fred Baker,
   Mustafa Suha Botsali, Mohamed Boucadair, Brian Carpenter, Tim Chown,
   Lorenzo Colitti, Roman Danyliw (IESG Review), Markus de Bruen, Lars
   Eggert (IESG review), Tobias Fiebig, Fernando Gont, Jeffry Handal,
   Lee Howard, Benjamin Kaduk (IESG review), Panos Kampanakis, Erik
   Kline, Jouni Korhonen, Warren Kumari (IESG review), Ted Lemon, Mark
   Lentczner, Acee Lindem (and his detailed nits), Jen Linkova (and her
   detailed review), Gyan S. Mishra (the Document Shepherd), Jordi
   Palet, Alvaro Retana (IESG review), Zaheduzzaman Sarker (IESG
   review), Bob Sleigh, Donald Smith, Tarko Tikan, Ole Troan, and Bernie
   Volz.

Authors' Addresses

   Éric Vyncke
   Cisco
   De Kleetlaan 6a
   1831 Diegem
   Belgium

   Phone: +32 2 778 4677
   Email: evyncke@cisco.com


   Kiran Kumar Chittimaneni

   Email: kk.chittimaneni@gmail.com


   Merike Kaeo
   Double Shot Security
   3518 Fremont Ave N 363
   Seattle,  98103
   United States of America

   Phone: +12066696394
   Email: merike@doubleshotsecurity.com


   Enno Rey
   ERNW
   Carl-Bosch-Str. 4
   69115 Heidelberg Baden-Wuertemberg
   Germany

   Phone: +49 6221 480390
   Email: erey@ernw.de