summaryrefslogtreecommitdiff
path: root/doc/rfc/rfc6092.txt
blob: fd1a54da0fea4d39dd3abdf3bee81ad58772c9fb (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
Internet Engineering Task Force (IETF)                  J. Woodyatt, Ed.
Request for Comments: 6092                                         Apple
Category: Informational                                     January 2011
ISSN: 2070-1721


              Recommended Simple Security Capabilities in
                 Customer Premises Equipment (CPE) for
              Providing Residential IPv6 Internet Service

Abstract

   This document identifies a set of recommendations for the makers of
   devices and describes how to provide for "simple security"
   capabilities at the perimeter of local-area IPv6 networks in
   Internet-enabled homes and small offices.

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 a candidate for any level of Internet
   Standard; see Section 2 of RFC 5741.

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

Copyright Notice

   Copyright (c) 2011 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
   (http://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.




Woodyatt                      Informational                     [Page 1]
^L
RFC 6092           Simple Security in IPv6 Gateway CPE      January 2011


   This document may contain material from IETF Documents or IETF
   Contributions published or made publicly available before November
   10, 2008.  The person(s) controlling the copyright in some of this
   material may not have granted the IETF Trust the right to allow
   modifications of such material outside the IETF Standards Process.
   Without obtaining an adequate license from the person(s) controlling
   the copyright in such materials, this document may not be modified
   outside the IETF Standards Process, and derivative works of it may
   not be created outside the IETF Standards Process, except to format
   it for publication as an RFC or to translate it into languages other
   than English.

Table of Contents

   1. Introduction ....................................................3
      1.1. Special Language ...........................................3
      1.2. Use of Normative Keywords ..................................3
   2. Overview ........................................................4
      2.1. Basic Sanitation ...........................................5
      2.2. Internet Layer Protocols ...................................5
      2.3. Transport Layer Protocols ..................................6
   3. Detailed Recommendations ........................................6
      3.1. Stateless Filters ..........................................7
      3.2. Connection-Free Filters ....................................8
           3.2.1. Internet Control and Management .....................8
           3.2.2. Upper-Layer Transport Protocols .....................8
           3.2.3. UDP Filters ........................................10
           3.2.4. IPsec and Internet Key Exchange (IKE) ..............11
           3.2.5. Mobility Support in IPv6 ...........................12
      3.3. Connection-Oriented Filters ...............................13
           3.3.1. TCP Filters ........................................14
           3.3.2. SCTP Filters .......................................17
           3.3.3. DCCP Filters .......................................20
           3.3.4. Level 3 Multihoming Shim Protocol for IPv6
                  (Shim6) ............................................23
      3.4. Passive Listeners .........................................23
      3.5. Management Applications ...................................24
   4. Summary of Recommendations .....................................25
   5. Contributors ...................................................31
   6. Security Considerations ........................................32
   7. References .....................................................33
      7.1. Normative References ......................................33
      7.2. Informative References ....................................35








Woodyatt                      Informational                     [Page 2]
^L
RFC 6092           Simple Security in IPv6 Gateway CPE      January 2011


1.  Introduction

   Some IPv6 gateway devices that enable delivery of Internet services
   in residential and small-office settings may be augmented with
   "simple security" capabilities as described in "Local Network
   Protection for IPv6" [RFC4864].  In general, these capabilities cause
   packets to be discarded in an attempt to make local networks and the
   Internet more secure.  However, it is worth noting that some packets
   sent by legitimate applications may also be discarded in this
   process, affecting reliability and ease of use for these
   applications.

   There is a constructive tension between the desires of users for
   transparent end-to-end connectivity on the one hand, and the need for
   local-area network administrators to detect and prevent intrusion by
   unauthorized public Internet users on the other.  This document is
   intended to highlight reasonable limitations on end-to-end
   transparency where security considerations are deemed important to
   promote local and Internet security.

   The reader is cautioned always to remember that the typical
   residential or small-office network administrator has no expertise
   whatsoever in Internet engineering.  Configuration interfaces for
   router/gateway appliances marketed toward them should be easy to
   understand and even easier to ignore.  In particular, extra care
   should be used in the design of baseline operating modes for
   unconfigured devices, since most devices will never be changed from
   their factory configurations.

1.1.  Special Language

   The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
   "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
   document are to be interpreted as described in [RFC2119].

   Additionally, the key word "DEFAULT" is to be interpreted in this
   document as pertaining to a configuration as applied by a vendor,
   prior to the administrator changing it for its initial activation.

1.2.  Use of Normative Keywords

      NOTE WELL: This document is not a standard, and conformance with
      it is not required in order to claim conformance with IETF
      standards for IPv6.  It uses the normative keywords defined in the
      previous section only for precision.

   Particular attention is drawn to recommendation REC-49, which calls
   for an easy way to set a gateway to a transparent mode of operation.



Woodyatt                      Informational                     [Page 3]
^L
RFC 6092           Simple Security in IPv6 Gateway CPE      January 2011


2.  Overview

   For the purposes of this document, residential Internet gateways are
   assumed to be fairly simple devices with a limited subset of the full
   range of possible features.  They function as default routers
   [RFC4294] for a single local-area network, e.g., an Ethernet network,
   a Wi-Fi network, or a bridge between two or more such segments.  They
   have only one interface by which they can access the Internet service
   at any one time, using any of several possible sub-IP mechanisms,
   including tunnels and transition mechanisms.

   In referring to the security capabilities of residential gateways, it
   is reasonable to distinguish between their "interior" network, i.e.,
   the local-area network, and their "exterior" networks, e.g., the
   public Internet and the networks of Internet service providers.  This
   document is concerned only with the behavior of IP packet filters
   that police the flow of traffic between the interior IPv6 network and
   the exterior IPv6 networks of residential Internet gateways.

   The operational goals of security capabilities in Internet gateways
   are described with more detail in "Local Network Protection for IPv6"
   [RFC4864], but they can be summarized as follows.

   o  Check all traffic to and from the public Internet for basic
      sanity, e.g., filter for spoofs and misdirected (sometimes called
      "Martian") packets [RFC4949].

   o  Allow tracking of application usage by source and destination
      network addresses and ports.

   o  Provide a barrier against untrusted external influences on the
      interior network by requiring filter state to be activated by
      traffic originating at interior network nodes.

   o  Allow manually configured exceptions to the stateful filtering
      rules according to network administrative policy.

   o  Isolate local network DHCPv6 and DNS resolver services from the
      public Internet.

   Prior to the widespread availability of IPv6 Internet service, homes
   and small offices often used private IPv4 network address realms
   [RFC1918] with Network Address Translation (NAT) functions deployed
   to present all the hosts on the interior network as a single host to







Woodyatt                      Informational                     [Page 4]
^L
RFC 6092           Simple Security in IPv6 Gateway CPE      January 2011


   the Internet service provider.  The stateful packet filtering
   behavior of NAT set user expectations that persist today with
   residential IPv6 service.  "Local Network Protection for IPv6"
   [RFC4864] recommends applying stateful packet filtering at
   residential IPv6 gateways that conforms to the user expectations
   already in place.

   Conventional stateful packet filters activate new states as a side
   effect of forwarding outbound flow initiations from interior network
   nodes.  This requires applications to have advance knowledge of the
   addresses of exterior nodes with which they expect to communicate.
   Several proposals are currently under consideration for allowing
   applications to solicit inbound traffic from exterior nodes without
   advance knowledge of their addresses.  While consensus within the
   Internet engineering community has emerged that such protocols are
   necessary to implement in residential IPv6 gateways, the best current
   practice has not yet been established.

2.1.  Basic Sanitation

   In addition to the functions required of all IPv6 routers [RFC4294],
   residential gateways are expected to have basic stateless filters for
   prohibiting certain kinds of traffic with invalid headers, e.g.,
   "Martian" packets, spoofs, routing header type code zero, etc.  (See
   Section 3.1 for more details.)

   Conversely, simple Internet gateways are not expected to prohibit the
   development of new applications.  In particular, packets with end-to-
   end network security and routing extension headers for mobility are
   expected to pass Internet gateways freely.

   Finally, Internet gateways that route multicast traffic are expected
   to implement appropriate filters for multicast traffic to limit the
   scope of multicast groups that span the demarcation between
   residential networks and service provider networks.

2.2.  Internet Layer Protocols

   As virtual private networking tunnels are regarded as an unacceptably
   wide attack surface, this document recommends that the DEFAULT
   operating mode for residential IPv6 simple security be to treat
   Generic Packet Tunneling [RFC2473] and similar protocols as opaque
   transport layers, i.e., inbound tunnel initiations are denied and
   outbound tunnel initiations are accepted.

   IPsec transport and tunnel modes are explicitly secured by
   definition, so this document recommends that the DEFAULT operating
   mode permit IPsec.  To facilitate the use of IPsec in support of IPv6



Woodyatt                      Informational                     [Page 5]
^L
RFC 6092           Simple Security in IPv6 Gateway CPE      January 2011


   mobility, the Internet Key Exchange (IKE) protocol [RFC5996] and the
   Host Identity Protocol (HIP) [RFC5201] should also be permitted in
   the DEFAULT operating mode.

2.3.  Transport Layer Protocols

   IPv6 simple security functions are principally concerned with the
   stateful filtering of the Internet Control Message Protocol (ICMPv6)
   [RFC4443] and transport layers like the User Datagram Protocol (UDP)
   [RFC0768], the Lightweight User Datagram Protocol (UDP-Lite)
   [RFC3828], the Transmission Control Protocol (TCP) [RFC0793], the
   Stream Control Transmission Protocol (SCTP) [RFC4960], the Datagram
   Congestion Control Protocol (DCCP) [RFC4340], and potentially any
   standards-track transport protocols to be defined in the future.

   The general operating principle is that transport layer traffic is
   not forwarded into the interior network of a residential IPv6 gateway
   unless it has been solicited explicitly by interior transport
   endpoints, e.g., by matching the reverse path for previously
   forwarded outbound traffic, or by matching configured exceptions set
   by the network administrator.  All other traffic is expected to be
   discarded or rejected with an ICMPv6 error message to indicate the
   traffic is administratively prohibited.

3.  Detailed Recommendations

   This section describes the specific recommendations made by this
   document in full detail.  Section 4 is a summary.

   Some recommended filters are to be applied to all traffic that passes
   through residential Internet gateways regardless of the direction
   they are to be forwarded.  Other recommended filters are intended to
   be sensitive to the "direction" of traffic flows.  Applied to
   bidirectional transport flows, "direction" has a specific meaning in
   this document.

   Packets are said to be "outbound" if they originate at nodes located
   in the interior network for exterior destinations, and "inbound" if
   they arrive from exterior sources with interior destinations.

   Flows are said to be "outbound" if the originator of the initial
   packet in any given transport association is an interior node and one
   or more of the participants are located in the exterior.  Flows are
   said to be "inbound" if the originator of the initial packet is an
   exterior node and one or more of the participants are nodes on the
   interior network.





Woodyatt                      Informational                     [Page 6]
^L
RFC 6092           Simple Security in IPv6 Gateway CPE      January 2011


3.1.  Stateless Filters

   Certain kinds of IPv6 packets MUST NOT be forwarded in either
   direction by residential Internet gateways regardless of network
   state.  These include packets with multicast source addresses,
   packets to destinations with certain non-routable and/or reserved
   prefixes, and packets with deprecated extension headers.

   Other stateless filters are recommended to implement ingress
   filtering (see [RFC2827] and [RFC3704]), to enforce multicast scope
   boundaries, and to isolate certain local network services from the
   public Internet.

   REC-1: Packets bearing multicast source addresses in their outer IPv6
   headers MUST NOT be forwarded or transmitted on any interface.

   REC-2: Packets bearing multicast destination addresses in their outer
   IPv6 headers of equal or narrower scope (see "IPv6 Scoped Address
   Architecture" [RFC4007]) than the configured scope boundary level of
   the gateway MUST NOT be forwarded in any direction.  The DEFAULT
   scope boundary level SHOULD be organization-local scope, and it
   SHOULD be configurable by the network administrator.

   REC-3: Packets bearing source and/or destination addresses forbidden
   to appear in the outer headers of packets transmitted over the public
   Internet MUST NOT be forwarded.  In particular, site-local addresses
   are deprecated by [RFC3879], and [RFC5156] explicitly forbids the use
   of address blocks of types IPv4-Mapped Addresses, IPv4-Compatible
   Addresses, Documentation Prefix, and Overlay Routable Cryptographic
   Hash IDentifiers (ORCHID).

   REC-4: Packets bearing deprecated extension headers prior to their
   first upper-layer-protocol header SHOULD NOT be forwarded or
   transmitted on any interface.  In particular, all packets with
   routing extension header type 0 [RFC2460] preceding the first upper-
   layer-protocol header MUST NOT be forwarded.  See [RFC5095] for
   additional background.

   REC-5: Outbound packets MUST NOT be forwarded if the source address
   in their outer IPv6 header does not have a unicast prefix configured
   for use by globally reachable nodes on the interior network.

   REC-6: Inbound packets MUST NOT be forwarded if the source address in
   their outer IPv6 header has a global unicast prefix assigned for use
   by globally reachable nodes on the interior network.






Woodyatt                      Informational                     [Page 7]
^L
RFC 6092           Simple Security in IPv6 Gateway CPE      January 2011


   REC-7: By DEFAULT, packets with unique local source and/or
   destination addresses [RFC4193] SHOULD NOT be forwarded to or from
   the exterior network.

   REC-8: By DEFAULT, inbound DNS queries received on exterior
   interfaces MUST NOT be processed by any integrated DNS resolving
   server.

   REC-9: Inbound DHCPv6 discovery packets [RFC3315] received on
   exterior interfaces MUST NOT be processed by any integrated DHCPv6
   server or relay agent.

      NOTE WELL: Nothing in this document relieves residential Internet
      gateways, when processing headers to identify valid sequences of
      upper-layer transport packets, from any of the requirements of the
      "Internet Protocol, Version 6 (IPv6) Specification" [RFC2460],
      including any and all future updates and revisions.

3.2.  Connection-Free Filters

   Some Internet applications use connection-free transport protocols
   with no release semantics, e.g., UDP.  These protocols pose a special
   difficulty for stateful packet filters because most of the
   application state is not carried at the transport level.  State
   records are created when communication is initiated and are abandoned
   when no further communication is detected after some period of time.

3.2.1.  Internet Control and Management

   Recommendations for filtering ICMPv6 messages in firewall devices are
   described separately in [RFC4890] and apply to residential gateways,
   with the additional recommendation that incoming "Destination
   Unreachable" and "Packet Too Big" error messages that don't match any
   filtering state should be dropped.

   REC-10: IPv6 gateways SHOULD NOT forward ICMPv6 "Destination
   Unreachable" and "Packet Too Big" messages containing IP headers that
   do not match generic upper-layer transport state records.

3.2.2.  Upper-Layer Transport Protocols

   Residential IPv6 gateways are not expected to prohibit the use of
   applications to be developed using future upper-layer transport
   protocols.  In particular, transport protocols not otherwise
   discussed in subsequent sections of this document are expected to be
   treated consistently, i.e., as having connection-free semantics and
   no special requirements to inspect the transport headers.




Woodyatt                      Informational                     [Page 8]
^L
RFC 6092           Simple Security in IPv6 Gateway CPE      January 2011


   In general, upper-layer transport filter state records are expected
   to be created when an interior endpoint sends a packet to an exterior
   address.  The filter allocates (or reuses) a record for the duration
   of communications, with an idle timer to delete the state record when
   no further communications are detected.

   One key aspect of how a packet filter behaves is the way it evaluates
   the exterior address of an endpoint when applying a filtering rule.
   A gateway is said to have "endpoint-independent filtering" behavior
   when the exterior address is not evaluated when matching a packet
   with a flow.  A gateway is said to have "address-dependent filtering"
   behavior when the exterior address of a packet is required to match
   the exterior address for its flow.

   REC-11: If application transparency is most important, then a
   stateful packet filter SHOULD have "endpoint-independent filtering"
   behavior for generic upper-layer transport protocols.  If a more
   stringent filtering behavior is most important, then a filter SHOULD
   have "address-dependent filtering" behavior.  The filtering behavior
   MAY be an option configurable by the network administrator, and it
   MAY be independent of the filtering behavior for other protocols.
   Filtering behavior SHOULD be endpoint independent by DEFAULT in
   gateways intended for provisioning without service-provider
   management.

   REC-12: Filter state records for generic upper-layer transport
   protocols MUST NOT be deleted or recycled until an idle timer not
   less than two minutes has expired without having forwarded a packet
   matching the state in some configurable amount of time.  By DEFAULT,
   the idle timer for such state records is five minutes.

   The Internet security community is never completely at rest.  New
   attack surfaces, and vulnerabilities in them, are typically
   discovered faster than they can be patched by normal equipment
   upgrade cycles.  It's therefore important for vendors of residential
   gateway equipment to provide automatic software updates to patch
   vulnerabilities as they are discovered.

   REC-13: Residential IPv6 gateways SHOULD provide a convenient means
   to update their firmware securely, for the installation of security
   patches and other manufacturer-recommended changes.

   Vendors can expect users and operators to have differing viewpoints
   on the maintenance of patches, with some preferring automatic update
   and some preferring manual procedures.  Those preferring automatic
   update may also prefer either to download from a vendor site or from
   one managed by their network provider.  To handle the disparity,
   vendors are advised to provide both manual and automatic options.  In



Woodyatt                      Informational                     [Page 9]
^L
RFC 6092           Simple Security in IPv6 Gateway CPE      January 2011


   the automatic case, they would do well to facilitate
   pre-configuration of the download URL and a means of validating the
   software image, such as a certificate.

3.2.3.  UDP Filters

   "Network Address Translation (NAT) Behavioral Requirements for
   Unicast UDP" [RFC4787] defines the terminology and best current
   practice for stateful filtering of UDP applications in IPv4 with NAT,
   which serves as the model for behavioral requirements for simple UDP
   security in IPv6 gateways, notwithstanding the requirements related
   specifically to network address translation.

   An interior endpoint initiates a UDP flow through a stateful packet
   filter by sending a packet to an exterior address.  The filter
   allocates (or reuses) a filter state record for the duration of the
   flow.  The state record defines the interior and exterior IP
   addresses and ports used between all packets in the flow.

   State records for UDP flows remain active while they are in use and
   are only abandoned after an idle period of some time.

   REC-14: A state record for a UDP flow where both source and
   destination ports are outside the well-known port range
   (ports 0-1023) MUST NOT expire in less than two minutes of idle time.
   The value of the UDP state record idle timer MAY be configurable.
   The DEFAULT is five minutes.

   REC-15: A state record for a UDP flow where one or both of the source
   and destination ports are in the well-known port range (ports 0-1023)
   MAY expire after a period of idle time shorter than two minutes to
   facilitate the operation of the IANA-registered service assigned to
   the port in question.

   As [RFC4787] notes, outbound refresh is necessary for allowing the
   interior endpoint to keep the state record alive.  Inbound refresh
   may be useful for applications with no outbound UDP traffic.
   However, allowing inbound refresh can allow an attacker in the
   exterior or a misbehaving application to keep a state record alive
   indefinitely.  This could be a security risk.  Also, if the process
   is repeated with different ports, over time, it could use up all the
   state record memory and resources in the filter.

   REC-16: A state record for a UDP flow MUST be refreshed when a packet
   is forwarded from the interior to the exterior, and it MAY be
   refreshed when a packet is forwarded in the reverse direction.





Woodyatt                      Informational                    [Page 10]
^L
RFC 6092           Simple Security in IPv6 Gateway CPE      January 2011


   As described in Section 5 of [RFC4787], the connection-free semantics
   of UDP pose a difficulty for packet filters in trying to recognize
   which packets comprise an application flow and which are unsolicited.
   Various strategies have been used in IPv4/NAT gateways with differing
   effects.

   REC-17: If application transparency is most important, then a
   stateful packet filter SHOULD have "endpoint-independent filtering"
   behavior for UDP.  If a more stringent filtering behavior is most
   important, then a filter SHOULD have "address-dependent filtering"
   behavior.  The filtering behavior MAY be an option configurable by
   the network administrator, and it MAY be independent of the filtering
   behavior for TCP and other protocols.  Filtering behavior SHOULD be
   endpoint independent by DEFAULT in gateways intended for provisioning
   without service-provider management.

   Application mechanisms may depend on the reception of ICMPv6 error
   messages triggered by the transmission of UDP messages.  One such
   mechanism is path MTU discovery [RFC1981].

   REC-18: If a gateway forwards a UDP flow, it MUST also forward ICMPv6
   "Destination Unreachable" and "Packet Too Big" messages containing
   UDP headers that match the flow state record.

   REC-19: Receipt of any sort of ICMPv6 message MUST NOT terminate the
   state record for a UDP flow.

   REC-20: UDP-Lite flows [RFC3828] SHOULD be handled in the same way as
   UDP flows, except that the upper-layer transport protocol identifier
   for UDP-Lite is not the same as UDP; therefore, UDP packets MUST NOT
   match UDP-Lite state records, and vice versa.

3.2.4.  IPsec and Internet Key Exchange (IKE)

   The Internet Protocol security (IPsec) suite offers greater
   flexibility and better overall security than the simple security of
   stateful packet filtering at network perimeters.  Therefore,
   residential IPv6 gateways need not prohibit IPsec traffic flows.

   REC-21: In their DEFAULT operating mode, IPv6 gateways MUST NOT
   prohibit the forwarding of packets, to and from legitimate node
   addresses, with destination extension headers of type "Authentication
   Header (AH)" [RFC4302] in their outer IP extension header chain.








Woodyatt                      Informational                    [Page 11]
^L
RFC 6092           Simple Security in IPv6 Gateway CPE      January 2011


   REC-22: In their DEFAULT operating mode, IPv6 gateways MUST NOT
   prohibit the forwarding of packets, to and from legitimate node
   addresses, with an upper-layer protocol of type "Encapsulating
   Security Payload (ESP)" [RFC4303] in their outer IP extension header
   chain.

   REC-23: If a gateway forwards an ESP flow, it MUST also forward (in
   the reverse direction) ICMPv6 "Destination Unreachable" and "Packet
   Too Big" messages containing ESP headers that match the flow state
   record.

   Internet Key Exchange (IKE) is a secure mechanism for performing
   mutual authentication, exchanging cryptographic material, and
   establishing IPsec Security Associations between peers.  Residential
   IPv6 gateways are expected to facilitate the use of IPsec security
   policies by allowing inbound IKE flows.

   REC-24: In their DEFAULT operating mode, IPv6 gateways MUST NOT
   prohibit the forwarding of any UDP packets, to and from legitimate
   node addresses, with a destination port of 500, i.e., the port
   reserved by IANA for the Internet Key Exchange (IKE) protocol
   [RFC5996].

   REC-25: In all operating modes, IPv6 gateways SHOULD use filter state
   records for Encapsulating Security Payload (ESP) [RFC4303] that are
   indexable by a 3-tuple comprising the interior node address, the
   exterior node address, and the ESP protocol identifier.  In
   particular, the IPv4/NAT method of indexing state records also by the
   security parameters index (SPI) SHOULD NOT be used.  Likewise, any
   mechanism that depends on detection of Internet Key Exchange (IKE)
   [RFC5996] initiations SHOULD NOT be used.

   The Host Identity Protocol (HIP) is a secure mechanism for
   establishing host identity and secure communications between
   authenticated hosts.  Residential IPv6 gateways need not prohibit
   inbound HIP flows.

   REC-26: In their DEFAULT operating mode, IPv6 gateways MUST NOT
   prohibit the forwarding of packets, to and from legitimate node
   addresses, with destination extension headers of type "Host Identity
   Protocol (HIP)" [RFC5201] in their outer IP extension header chain.

3.2.5.  Mobility Support in IPv6

   Mobility support in IPv6 [RFC3775] relies on the use of an
   encapsulation mechanism in flows between mobile nodes and their
   correspondent nodes, involving the use of the Type 2 IPv6 Routing
   Header, the Home Address destination header option, and the Mobility



Woodyatt                      Informational                    [Page 12]
^L
RFC 6092           Simple Security in IPv6 Gateway CPE      January 2011


   extension header.  In contrast to mobility support in IPv4, mobility
   is a standard feature of IPv6, and no security benefit is generally
   to be gained by denying communications with either interior or
   exterior mobile nodes.

   Not all usage scenarios of mobility support in IPv6 are expected to
   be compatible with IPv6 simple security.  In particular, exterior
   mobile nodes are expected to be prohibited from establishing bindings
   with interior correspondent nodes by the filtering of unsolicited
   inbound Mobility Header messages, unless they are the subject of an
   IPsec security policy.

   REC-27: The state records for flows initiated by outbound packets
   that bear a Home Address destination option [RFC3775] are
   distinguished by the addition of the home address of the flow as well
   as the interior care-of address.  IPv6 gateways MUST NOT prohibit the
   forwarding of any inbound packets bearing type 2 routing headers,
   which otherwise match a flow state record, and where A) the address
   in the destination field of the IPv6 header matches the interior
   care-of address of the flow, and B) the Home Address field in the
   Type 2 Routing Header matches the home address of the flow.

   REC-28: Valid sequences of Mobility Header [RFC3775] packets MUST be
   forwarded for all outbound and explicitly permitted inbound Mobility
   Header flows.

   REC-29: If a gateway forwards a Mobility Header [RFC3775] flow, then
   it MUST also forward, in both directions, the IPv4 and IPv6 packets
   that are encapsulated in IPv6 associated with the tunnel between the
   home agent and the correspondent node.

   REC-30: If a gateway forwards a Mobility Header [RFC3775] flow, then
   it MUST also forward (in the reverse direction) ICMPv6 "Destination
   Unreachable" and "Packet Too Big" messages containing any headers
   that match the associated flow state records.

3.3.  Connection-Oriented Filters

   Most Internet applications use connection-oriented transport
   protocols with orderly release semantics.  These protocols include
   TCP, SCTP, DCCP, and potentially any future IETF Standards-Track
   transport protocols that use such semantics.  Stateful packet filters
   track the state of individual transport flows and prohibit the
   forwarding of packets that do not match the state of an active flow
   and do not conform to a rule for the automatic creation of such
   state.





Woodyatt                      Informational                    [Page 13]
^L
RFC 6092           Simple Security in IPv6 Gateway CPE      January 2011


3.3.1.  TCP Filters

   An interior endpoint initiates a TCP flow through a stateful packet
   filter by sending a SYN packet.  The filter allocates (or reuses) a
   filter state record for the flow.  The state record defines the
   interior and exterior IP addresses and ports used for forwarding all
   packets for that flow.

   Some peer-to-peer applications use an alternate method of connection
   initiation termed "simultaneous-open" ([RFC0793], Figure 8) to
   traverse stateful filters.  In the simultaneous-open mode of
   operation, both peers send SYN packets for the same TCP flow.  The
   SYN packets cross in the network.  Upon receiving the other end's SYN
   packet, each end responds with a SYN-ACK packet, which also cross in
   the network.  The connection is established at each endpoint once the
   SYN-ACK packets are received.

   To provide stateful packet filtering service for TCP, it is necessary
   for a filter to receive, process, and forward all packets for a flow
   that conform to valid transitions of the TCP state machine
   ([RFC0793], Figure 6).

   REC-31: All valid sequences of TCP packets (defined in [RFC0793])
   MUST be forwarded for outbound flows and explicitly permitted inbound
   flows.  In particular, both the normal TCP 3-way handshake mode of
   operation and the simultaneous-open mode of operation MUST be
   supported.

   It is possible to reconstruct enough of the state of a TCP flow to
   allow forwarding between an interior and exterior node, even when the
   filter starts operating after TCP enters the established state.  In
   this case, because the filter has not seen the TCP window-scale
   option, it is not possible for the filter to enforce the TCP window
   invariant by dropping out-of-window segments.

   REC-32: The TCP window invariant MUST NOT be enforced on flows for
   which the filter did not detect whether the window-scale option (see
   [RFC1323]) was sent in the 3-way handshake or simultaneous-open.

   A stateful filter can allow an existing state record to be reused by
   an externally initiated flow if its security policy permits.  Several
   different policies are possible, as described in [RFC4787] and
   extended in [RFC5382].

   REC-33: If application transparency is most important, then a
   stateful packet filter SHOULD have "endpoint-independent filtering"
   behavior for TCP.  If a more stringent filtering behavior is most
   important, then a filter SHOULD have "address-dependent filtering"



Woodyatt                      Informational                    [Page 14]
^L
RFC 6092           Simple Security in IPv6 Gateway CPE      January 2011


   behavior.  The filtering behavior MAY be an option configurable by
   the network administrator, and it MAY be independent of the filtering
   behavior for UDP and other protocols.  Filtering behavior SHOULD be
   endpoint independent by DEFAULT in gateways intended for provisioning
   without service-provider management.

   If an inbound SYN packet is filtered, either because a corresponding
   state record does not exist or because of the filter's normal
   behavior, a filter has two basic choices: to discard the packet
   silently, or to signal an error to the sender.  Signaling an error
   through ICMPv6 messages allows the sender to detect that the SYN did
   not reach the intended destination.  Discarding the packet, on the
   other hand, allows applications to perform simultaneous-open more
   reliably.  A more detailed discussion of this issue can be found in
   [RFC5382], but the basic outcome of it is that filters need to wait
   on signaling errors until simultaneous-open will not be impaired.

   REC-34: By DEFAULT, a gateway MUST respond with an ICMPv6
   "Destination Unreachable" error code 1 (Communication with
   destination administratively prohibited) to any unsolicited inbound
   SYN packet after waiting at least 6 seconds without first forwarding
   the associated outbound SYN or SYN/ACK from the interior peer.

   A TCP filter maintains state associated with in-progress connections
   and established flows.  Because of this, a filter is susceptible to a
   resource-exhaustion attack whereby an attacker (or virus) on the
   interior attempts to cause the filter to exhaust its capacity for
   creating state records.  To defend against such attacks, a filter
   needs to abandon unused state records after a sufficiently long
   period of idleness.

   A common method used for TCP filters in IPv4/NAT gateways is to
   abandon preferentially flow state records for crashed endpoints,
   followed by closed flows and partially open flows.  A gateway can
   check if an endpoint for a session has crashed by sending a TCP keep-
   alive packet on behalf of the other endpoint and receiving a TCP RST
   packet in response.  If the gateway cannot determine whether the
   endpoint is active, then the associated state record needs to be
   retained until the TCP flow has been idle for some time.

      Note: An established TCP flow can stay idle (but live)
      indefinitely; hence, there is no fixed value for an idle-timeout
      that accommodates all applications.  However, a large idle-timeout
      motivated by recommendations in [RFC1122] and [RFC4294] can reduce
      the chances of abandoning a live flow.






Woodyatt                      Informational                    [Page 15]
^L
RFC 6092           Simple Security in IPv6 Gateway CPE      January 2011


   TCP flows can stay in the established phase indefinitely without
   exchanging packets.  Some end-hosts can be configured to send keep-
   alive packets on such idle flows; by default, such packets are sent
   every two hours, if enabled [RFC1122].  Consequently, a filter that
   waits for slightly over two hours can detect idle flows with keep-
   alive packets being sent at the default rate.  TCP flows in the
   partially open or closing phases, on the other hand, can stay idle
   for at most four minutes while waiting for in-flight packets to be
   delivered [RFC1122].

   The "established flow idle-timeout" for a stateful packet filter is
   defined as the minimum time a TCP flow in the established phase must
   remain idle before the filter considers the associated state record a
   candidate for collection.  The "transitory flow idle-timeout" for a
   filter is defined as the minimum time a TCP flow in the partially
   open or closing phases must remain idle before the filter considers
   the associated state record a candidate for collection.  TCP flows in
   the TIME-WAIT state are not affected by the "transitory flow idle-
   timeout" parameter.

   REC-35: If a gateway cannot determine whether the endpoints of a TCP
   flow are active, then it MAY abandon the state record if it has been
   idle for some time.  In such cases, the value of the "established
   flow idle-timeout" MUST NOT be less than two hours four minutes, as
   discussed in [RFC5382].  The value of the "transitory flow idle-
   timeout" MUST NOT be less than four minutes.  The value of the idle-
   timeouts MAY be configurable by the network administrator.

   Behavior for handling RST packets or TCP flows in the TIME-WAIT state
   is left unspecified.  A gateway MAY hold state for a flow in the
   TIME-WAIT state to accommodate retransmissions of the last ACK.
   However, since the TIME-WAIT state is commonly encountered by
   interior endpoints properly closing the TCP flow, holding state for a
   closed flow can limit the throughput of flows through a gateway with
   limited resources.  [RFC1337] discusses hazards associated with
   TIME-WAIT assassination.

   The handling of non-SYN packets for which there is no active state
   record is left unspecified.  Such packets can be received if the
   gateway abandons a live flow, or abandons a flow in the TIME-WAIT
   state before the four-minute TIME-WAIT period expires.  The decision
   either to discard or to respond with an ICMPv6 "Destination
   Unreachable" error code 1 (Communication with destination
   administratively prohibited) is left up to the implementation.

   Behavior for notifying endpoints when abandoning live flows is left
   unspecified.  When a gateway abandons a live flow, for example due to
   a timeout expiring, the filter MAY send a TCP RST packet to each



Woodyatt                      Informational                    [Page 16]
^L
RFC 6092           Simple Security in IPv6 Gateway CPE      January 2011


   endpoint on behalf of the other.  Sending a RST notification allows
   endpoint applications to recover more quickly; however, notifying
   endpoints might not always be possible if, for example, state records
   are lost due to power interruption.

   Several TCP mechanisms depend on the reception of ICMPv6 error
   messages triggered by the transmission of TCP segments.  One such
   mechanism is path MTU discovery, which is required for correct
   operation of TCP.

   REC-36: If a gateway forwards a TCP flow, it MUST also forward ICMPv6
   "Destination Unreachable" and "Packet Too Big" messages containing
   TCP headers that match the flow state record.

   REC-37: Receipt of any sort of ICMPv6 message MUST NOT terminate the
   state record for a TCP flow.

3.3.2.  SCTP Filters

   Because Stream Control Transmission Protocol (SCTP) [RFC4960] flows
   can be terminated at multiple network addresses, IPv6 simple security
   functions cannot achieve full transparency for SCTP applications.  In
   multipath traversal scenarios, full transparency requires
   coordination between all the packet filter processes in the various
   paths between the endpoint network addresses.  Such coordination is
   not "simple", and it is, therefore, beyond the scope of this
   recommendation.

   However, some SCTP applications are capable of tolerating the
   inherent unipath restriction of IPv6 simple security, even in
   multipath traversal scenarios.  They expect connection-oriented
   filtering behaviors similar to those for TCP, but at the level of
   SCTP associations, not stream connections.  This section describes
   specific recommendations for SCTP filtering for such traversal
   scenarios.

   An interior endpoint initiates SCTP associations through a stateful
   packet filter by sending a packet comprising a single INIT chunk.
   The filter allocates (or reuses) a filter state record for the
   association.  The state record defines the interior and exterior IP
   addresses and the observed verification tag used for forwarding
   packets in that association.

   Some peer-to-peer SCTP applications use an alternate method of
   association initiation, termed "simultaneous-open", to traverse
   stateful filters.  In the simultaneous-open mode of operation, both
   peers send INIT chunks at the same time to establish an association.
   Upon receiving the other end's INIT chunk, each end responds with an



Woodyatt                      Informational                    [Page 17]
^L
RFC 6092           Simple Security in IPv6 Gateway CPE      January 2011


   INIT-ACK packet, which is expected to traverse the same path in
   reverse.  Because only one SCTP association may exist between any two
   network addresses, one of the peers in the simultaneous-open mode of
   operation will send an ERROR or ABORT chunk along with the INIT-ACK
   chunk.  The association is established at each endpoint once an
   INIT-ACK chunk without an ERROR or ABORT chunk is received at one
   end.

   To provide stateful packet filtering service for SCTP, it is
   necessary for a filter to receive, process, and forward all packets
   for an association that conform to valid transitions of the SCTP
   state machine ([RFC4960], Figure 3).

   REC-38: All valid sequences of SCTP packets (defined in [RFC4960])
   MUST be forwarded for outbound associations and explicitly permitted
   inbound associations.  In particular, both the normal SCTP
   association establishment and the simultaneous-open mode of operation
   MUST be supported.

   If an inbound INIT packet is filtered, either because a corresponding
   state record does not exist or because of the filter's normal
   behavior, a filter has two basic choices: to discard the packet
   silently, or to signal an error to the sender.  Signaling an error
   through ICMPv6 messages allows the sender to detect that the INIT
   packet did not reach the intended destination.  Discarding the
   packet, on the other hand, allows applications to perform
   simultaneous-open more reliably.  Delays in signaling errors can
   prevent the impairment of the simultaneous-open mode of operation.

   REC-39: By DEFAULT, a gateway MUST respond with an ICMPv6
   "Destination Unreachable" error code 1 (Communication with
   destination administratively prohibited), to any unsolicited inbound
   INIT packet after waiting at least 6 seconds without first forwarding
   the associated outbound INIT from the interior peer.

   An SCTP filter maintains state associated with in-progress and
   established associations.  Because of this, a filter is susceptible
   to a resource-exhaustion attack whereby an attacker (or virus) on the
   interior attempts to cause the filter to exhaust its capacity for
   creating state records.  To defend against such attacks, a filter
   needs to abandon unused state records after a sufficiently long
   period of idleness.

   A common method used for TCP filters in IPv4/NAT gateways is to
   abandon preferentially sessions for crashed endpoints, followed by
   closed associations and partially opened associations.  A similar
   method is an option for SCTP filters in IPv6 gateways.  A gateway can
   check if an endpoint for an association has crashed by sending



Woodyatt                      Informational                    [Page 18]
^L
RFC 6092           Simple Security in IPv6 Gateway CPE      January 2011


   HEARTBEAT chunks and looking for the HEARTBEAT ACK response.  If the
   gateway cannot determine whether the endpoint is active, then the
   associated state record needs to be retained until the SCTP
   association has been idle for some time.

      Note: An established SCTP association can stay idle (but live)
      indefinitely; hence, there is no fixed value of an idle-timeout
      that accommodates all applications.  However, a large idle-timeout
      motivated by recommendations in [RFC4294] can reduce the chances
      of abandoning a live association.

   SCTP associations can stay in the ESTABLISHED state indefinitely
   without exchanging packets.  Some end-hosts can be configured to send
   HEARTBEAT chunks on such idle associations, but [RFC4960] does not
   specify (or even suggest) a default time interval.  A filter that
   waits for slightly over two hours can detect idle associations with
   HEARTBEAT packets being sent at the same rate as most hosts use for
   TCP keep-alive, which is a reasonably similar system for this
   purpose.  SCTP associations in the partially open or closing states,
   on the other hand, can stay idle for at most four minutes while
   waiting for in-flight packets to be delivered (assuming the suggested
   SCTP protocol parameter values in Section 15 of [RFC4960]).

   The "established association idle-timeout" for a stateful packet
   filter is defined as the minimum time an SCTP association in the
   established phase must remain idle before the filter considers the
   corresponding state record a candidate for collection.  The
   "transitory association idle-timeout" for a filter is defined as the
   minimum time an SCTP association in the partially open or closing
   phases must remain idle before the filter considers the corresponding
   state record a candidate for collection.

   REC-40: If a gateway cannot determine whether the endpoints of an
   SCTP association are active, then it MAY abandon the state record if
   it has been idle for some time.  In such cases, the value of the
   "established association idle-timeout" MUST NOT be less than
   two hours four minutes.  The value of the "transitory association
   idle-timeout" MUST NOT be less than four minutes.  The value of the
   idle-timeouts MAY be configurable by the network administrator.

   Behavior for handling ERROR and ABORT packets is left unspecified.  A
   gateway MAY hold state for an association after its closing phases
   have completed to accommodate retransmissions of its final SHUTDOWN
   ACK packets.  However, holding state for a closed association can
   limit the throughput of associations traversing a gateway with
   limited resources.  The discussion in [RFC1337] regarding the hazards
   of TIME-WAIT assassination is relevant.




Woodyatt                      Informational                    [Page 19]
^L
RFC 6092           Simple Security in IPv6 Gateway CPE      January 2011


   The handling of inbound non-INIT packets for which there is no active
   state record is left unspecified.  Such packets can be received if
   the gateway abandons a live flow, or abandons an association in the
   closing states before the transitory association idle-timeout
   expires.  The decision either to discard or to respond with an ICMPv6
   "Destination Unreachable" error code 1 (Communication with
   destination administratively prohibited) is left to the
   implementation.

   Behavior for notifying endpoints when abandoning live associations is
   left unspecified.  When a gateway abandons a live association, for
   example due to a timeout expiring, the filter MAY send an ABORT
   packet to each endpoint on behalf of the other.  Sending an ABORT
   notification allows endpoint applications to recover more quickly;
   however, notifying endpoints might not always be possible if, for
   example, state records are lost due to power interruption.

   Several SCTP mechanisms depend on the reception of ICMPv6 error
   messages triggered by the transmission of SCTP packets.

   REC-41: If a gateway forwards an SCTP association, it MUST also
   forward ICMPv6 "Destination Unreachable" and "Packet Too Big"
   messages containing SCTP headers that match the association state
   record.

   REC-42: Receipt of any sort of ICMPv6 message MUST NOT terminate the
   state record for an SCTP association.

3.3.3.  DCCP Filters

   The connection semantics described in the "Datagram Congestion
   Control Protocol (DCCP)" [RFC4340] are very similar to those of TCP.
   An interior endpoint initiates a DCCP flow through a stateful packet
   filter by sending a DCCP-Request packet.  Simultaneous-open is not
   defined for DCCP.

   In order to provide stateful packet filtering service for DCCP, it is
   necessary for a filter to receive, process, and forward all packets
   for a flow that conform to valid transitions of the DCCP state
   machine ([RFC4340], Section 8).

   REC-43: All valid sequences of DCCP packets (defined in [RFC4340])
   MUST be forwarded for all flows to exterior servers, and for any
   flows to interior servers that have explicitly permitted service
   codes.






Woodyatt                      Informational                    [Page 20]
^L
RFC 6092           Simple Security in IPv6 Gateway CPE      January 2011


   It is possible to reconstruct enough of the state of a DCCP flow to
   allow forwarding between an interior and exterior node, even when the
   filter starts operating after DCCP enters the OPEN state.  Also, a
   filter can allow an existing state record to be reused by an
   externally initiated flow if its security policy permits.  As with
   TCP, several different policies are possible, with a good discussion
   of the issue involved presented in [RFC4787] and extended in
   [RFC5382].

   If an inbound DCCP-Request packet is filtered, either because a
   corresponding state record does not already exist for it or because
   of the filter's normal behavior of refusing flows not explicitly
   permitted, then a filter has two basic choices: to discard the packet
   silently, or to signal an error to the sender.  Signaling an error
   through ICMPv6 messages allows the sender to detect that the
   DCCP-Request did not reach the intended destination.  Discarding the
   packet, on the other hand, only delays the failure to connect and
   provides no measurable security.

   A DCCP filter maintains state associated with in-progress connections
   and established flows.  Because of this, a filter is susceptible to a
   resource-exhaustion attack whereby an attacker (or virus) on the
   interior attempts to cause the filter to exhaust its capacity for
   creating state records.  To prevent such an attack, a filter needs to
   abandon unused state records after a sufficiently long period of
   idleness.

   A common method used for TCP filters in IPv4/NAT gateways is to
   abandon preferentially sessions for crashed endpoints, followed by
   closed TCP flows and partially open flows.  No such method exists for
   DCCP, and flows can stay in the OPEN phase indefinitely without
   exchanging packets.  Hence, there is no fixed value for an idle-
   timeout that accommodates all applications.  However, a large idle-
   timeout motivated by recommendations in [RFC4294] can reduce the
   chances of abandoning a live flow.

   DCCP flows in the partially open or closing phases can stay idle for
   at most eight minutes while waiting for in-flight packets to be
   delivered.

   The "open flow idle-timeout" for a stateful packet filter is defined
   as the minimum time a DCCP flow in the open state must remain idle
   before the filter considers the associated state record a candidate








Woodyatt                      Informational                    [Page 21]
^L
RFC 6092           Simple Security in IPv6 Gateway CPE      January 2011


   for collection.  The "transitory flow idle-timeout" for a filter is
   defined as the minimum time a DCCP flow in the partially open or
   closing phases must remain idle before the filter considers the
   associated state record a candidate for collection.  DCCP flows in
   the TIMEWAIT state are not affected by the "transitory flow idle-
   timeout" parameter.

   REC-44: A gateway MAY abandon a DCCP state record if it has been idle
   for some time.  In such cases, the value of the "open flow idle-
   timeout" MUST NOT be less than two hours four minutes.  The value of
   the "transitory flow idle-timeout" MUST NOT be less than eight
   minutes.  The value of the idle-timeouts MAY be configurable by the
   network administrator.

   Behavior for handling DCCP-Reset packets or flows in the TIMEWAIT
   state is left unspecified.  A gateway MAY hold state for a flow in
   the TIMEWAIT state to accommodate retransmissions of the last
   DCCP-Reset.  However, since the TIMEWAIT state is commonly
   encountered by interior endpoints properly closing the DCCP flow,
   holding state for a closed flow can limit the throughput of flows
   through a gateway with limited resources.  [RFC1337] discusses
   hazards associated with TIME-WAIT assassination in TCP, and similar
   hazards exist for DCCP.

   The handling of non-SYN packets for which there is no active state
   record is left unspecified.  Such packets can be received if the
   gateway abandons a live flow, or abandons a flow in the TIMEWAIT
   state before the four-minute 2MSL period (two times the maximum
   segment lifetime [RFC4340]) expires.  The decision either to discard
   or to respond with an ICMPv6 "Destination Unreachable" error code 1
   (Communication with destination administratively prohibited) is left
   up to the implementation.

   Behavior for notifying endpoints when abandoning live flows is left
   unspecified.  When a gateway abandons a live flow, for example due to
   a timeout expiring, the filter MAY send a DCCP-Reset packet to each
   endpoint on behalf of the other.  Sending a DCCP-Reset notification
   allows endpoint applications to recover more quickly; however,
   notifying endpoints might not always be possible if, for example,
   state records are lost due to power interruption.

   Several DCCP mechanisms depend on the reception of ICMPv6 error
   messages triggered by the transmission of DCCP packets.  One such
   mechanism is path MTU discovery, which is required for correct
   operation.






Woodyatt                      Informational                    [Page 22]
^L
RFC 6092           Simple Security in IPv6 Gateway CPE      January 2011


   REC-45: If an Internet gateway forwards a DCCP flow, it MUST also
   forward ICMPv6 "Destination Unreachable" and "Packet Too Big"
   messages containing DCCP headers that match the flow state record.

   REC-46: Receipt of any sort of ICMPv6 message MUST NOT terminate the
   state record for a DCCP flow.

3.3.4.  Level 3 Multihoming Shim Protocol for IPv6 (Shim6)

   While IPv6 simple security is applicable to residential networks with
   only one Internet service provider at a time, the use of the Level 3
   Multihoming Shim Protocol for IPv6 (Shim6) [RFC5533] is necessary for
   communications with some multihomed exterior destinations.  No
   special recommendations are made in this document for processing the
   Shim6 message format (protocol 140) beyond the recommendations in
   Section 3.2.2.  The content of the Shim6 payload extension header may
   be ignored.

   REC-47: Valid sequences of packets bearing Shim6 payload extension
   headers in their outer IP extension header chains MUST be forwarded
   for all outbound and explicitly permitted flows.  The content of the
   Shim6 payload extension header MAY be ignored for the purpose of
   state tracking.

3.4.  Passive Listeners

   Some applications expect to solicit traffic from exterior nodes
   without advance knowledge of the exterior addresses of their peers.
   This requirement is met by IPv4/NAT gateways, typically by the use of
   either the NAT Port Mapping Protocol [NAT-PMP] or the Universal Plug
   and Play Internet Gateway Device [UPnP-IGD] standardized device
   control protocol.  On IPv4/NAT networks connected by gateways without
   such services, applications must use techniques like Session
   Traversal Utilities for NAT (STUN) [RFC5389] to obtain and maintain
   connectivity, despite the translation and filtering effects of NAT.

   While NAT for IPv6 is unlikely to be used in most residential
   gateways, the simple security functions recommended by this document,
   and their filtering effects, are derived from comparable functions
   already in widespread use on the IPv4 Internet.  A similar barrier to
   communication at passive listeners is a natural outcome of the
   deployment of NAT for IPv6.  To avoid the need for IPv6 applications
   to use techniques like STUN for opening and maintaining dynamic
   filter state, something similar to NAT-PMP and UPnP-IGD, but without
   actually supporting NAT, could be deployed.  Alas, no consensus has
   yet emerged in the Internet engineering community as to what is most
   appropriate for residential IPv6 usage scenarios.




Woodyatt                      Informational                    [Page 23]
^L
RFC 6092           Simple Security in IPv6 Gateway CPE      January 2011


   One proposal that has been offered is the Application Listener
   Discovery Protocol [WOODYATT-ALD] document.  It remains to be seen
   whether the Internet Gateway Device profile of the Universal Plug and
   Play protocol will be extended for IPv6.  Other proposals of note
   include the Middlebox Communication Protocol [RFC5189] and the Next
   Steps in Signaling framework [RFC4080].  Until a consensus emerges
   around a specific method, the following recommendations are the best
   guidance available.

   REC-48: Internet gateways with IPv6 simple security capabilities
   SHOULD implement a protocol to permit applications to solicit inbound
   traffic without advance knowledge of the addresses of exterior nodes
   with which they expect to communicate.

   REC-49: Internet gateways with IPv6 simple security capabilities MUST
   provide an easily selected configuration option that permits a
   "transparent mode" of operation that forwards all unsolicited flows
   regardless of forwarding direction, i.e., not to use the IPv6 simple
   security capabilities of the gateway.  The transparent mode of
   operation MAY be the default configuration.

   In general, "transparent mode" will enable more flexibility and
   reliability for applications that require devices to be contacted
   inside the home directly, particularly in the absence of a protocol
   as described in REC-48.  Operating in transparent mode may come at
   the expense of security if there are IPv6 nodes in the home that do
   not have their own host-based firewall capability and require a
   firewall in the gateway in order not to be compromised.

3.5.  Management Applications

   Subscriber-managed residential gateways are unlikely ever to be
   completely zero-configuration, but their administrators will very
   often possess no particular expertise in Internet engineering.  In
   general, the specification of management interfaces for residential
   gateways is out of scope for this document, but the security of
   subscriber-managed gateways merits special attention here.

   REC-50: By DEFAULT, subscriber-managed residential gateways MUST NOT
   offer management application services to the exterior network.











Woodyatt                      Informational                    [Page 24]
^L
RFC 6092           Simple Security in IPv6 Gateway CPE      January 2011


4.  Summary of Recommendations

   This section collects all of the recommendations made in this
   document into a convenient list.

   REC-1   Packets bearing multicast source addresses in their outer
           IPv6 headers MUST NOT be forwarded or transmitted on any
           interface.

   REC-2   Packets bearing multicast destination addresses in their
           outer IPv6 headers of equal or narrower scope (see "IPv6
           Scoped Address Architecture" [RFC4007]) than the configured
           scope boundary level of the gateway MUST NOT be forwarded in
           any direction.  The DEFAULT scope boundary level SHOULD be
           organization-local scope, and it SHOULD be configurable by
           the network administrator.

   REC-3   Packets bearing source and/or destination addresses forbidden
           to appear in the outer headers of packets transmitted over
           the public Internet MUST NOT be forwarded.  In particular,
           site-local addresses are deprecated by [RFC3879], and
           [RFC5156] explicitly forbids the use of address blocks of
           types IPv4-Mapped Addresses, IPv4-Compatible Addresses,
           Documentation Prefix, and Overlay Routable Cryptographic Hash
           IDentifiers (ORCHID).

   REC-4   Packets bearing deprecated extension headers prior to their
           first upper-layer-protocol header SHOULD NOT be forwarded or
           transmitted on any interface.  In particular, all packets
           with routing extension header type 0 [RFC2460] preceding the
           first upper-layer-protocol header MUST NOT be forwarded.  See
           [RFC5095] for additional background.

   REC-5   Outbound packets MUST NOT be forwarded if the source address
           in their outer IPv6 header does not have a unicast prefix
           configured for use by globally reachable nodes on the
           interior network.

   REC-6   Inbound packets MUST NOT be forwarded if the source address
           in their outer IPv6 header has a global unicast prefix
           assigned for use by globally reachable nodes on the interior
           network.

   REC-7   By DEFAULT, packets with unique local source and/or
           destination addresses [RFC4193] SHOULD NOT be forwarded to or
           from the exterior network.





Woodyatt                      Informational                    [Page 25]
^L
RFC 6092           Simple Security in IPv6 Gateway CPE      January 2011


   REC-8   By DEFAULT, inbound DNS queries received on exterior
           interfaces MUST NOT be processed by any integrated DNS
           resolving server.

   REC-9   Inbound DHCPv6 discovery packets [RFC3315] received on
           exterior interfaces MUST NOT be processed by any integrated
           DHCPv6 server or relay agent.

   REC-10  IPv6 gateways SHOULD NOT forward ICMPv6 "Destination
           Unreachable" and "Packet Too Big" messages containing IP
           headers that do not match generic upper-layer transport state
           records.

   REC-11  If application transparency is most important, then a
           stateful packet filter SHOULD have "endpoint-independent
           filtering" behavior for generic upper-layer transport
           protocols.  If a more stringent filtering behavior is most
           important, then a filter SHOULD have "address-dependent
           filtering" behavior.  The filtering behavior MAY be an option
           configurable by the network administrator, and it MAY be
           independent of the filtering behavior for other protocols.
           Filtering behavior SHOULD be endpoint independent by DEFAULT
           in gateways intended for provisioning without service-
           provider management.

   REC-12  Filter state records for generic upper-layer transport
           protocols MUST NOT be deleted or recycled until an idle timer
           not less than two minutes has expired without having
           forwarded a packet matching the state in some configurable
           amount of time.  By DEFAULT, the idle timer for such state
           records is five minutes.

   REC-13  Residential IPv6 gateways SHOULD provide a convenient means
           to update their firmware securely, for the installation of
           security patches and other manufacturer-recommended changes.

   REC-14  A state record for a UDP flow where both source and
           destination ports are outside the well-known port range
           (ports 0-1023) MUST NOT expire in less than two minutes of
           idle time.  The value of the UDP state record idle timer MAY
           be configurable.  The DEFAULT is five minutes.

   REC-15  A state record for a UDP flow where one or both of the source
           and destination ports are in the well-known port range
           (ports 0-1023) MAY expire after a period of idle time shorter
           than two minutes to facilitate the operation of the IANA-
           registered service assigned to the port in question.




Woodyatt                      Informational                    [Page 26]
^L
RFC 6092           Simple Security in IPv6 Gateway CPE      January 2011


   REC-16  A state record for a UDP flow MUST be refreshed when a packet
           is forwarded from the interior to the exterior, and it MAY be
           refreshed when a packet is forwarded in the reverse
           direction.

   REC-17  If application transparency is most important, then a
           stateful packet filter SHOULD have "endpoint-independent
           filtering" behavior for UDP.  If a more stringent filtering
           behavior is most important, then a filter SHOULD have
           "address-dependent filtering" behavior.  The filtering
           behavior MAY be an option configurable by the network
           administrator, and it MAY be independent of the filtering
           behavior for TCP and other protocols.  Filtering behavior
           SHOULD be endpoint independent by DEFAULT in gateways
           intended for provisioning without service-provider
           management.

   REC-18  If a gateway forwards a UDP flow, it MUST also forward ICMPv6
           "Destination Unreachable" and "Packet Too Big" messages
           containing UDP headers that match the flow state record.

   REC-19  Receipt of any sort of ICMPv6 message MUST NOT terminate the
           state record for a UDP flow.

   REC-20  UDP-Lite flows [RFC3828] SHOULD be handled in the same way as
           UDP flows, except that the upper-layer transport protocol
           identifier for UDP-Lite is not the same as UDP; therefore,
           UDP packets MUST NOT match UDP-Lite state records, and vice
           versa.

   REC-21  In their DEFAULT operating mode, IPv6 gateways MUST NOT
           prohibit the forwarding of packets, to and from legitimate
           node addresses, with destination extension headers of type
           "Authentication Header (AH)" [RFC4302] in their outer IP
           extension header chain.

   REC-22  In their DEFAULT operating mode, IPv6 gateways MUST NOT
           prohibit the forwarding of packets, to and from legitimate
           node addresses, with an upper-layer protocol of type
           "Encapsulating Security Payload (ESP)" [RFC4303] in their
           outer IP extension header chain.

   REC-23  If a gateway forwards an ESP flow, it MUST also forward (in
           the reverse direction) ICMPv6 "Destination Unreachable" and
           "Packet Too Big" messages containing ESP headers that match
           the flow state record.





Woodyatt                      Informational                    [Page 27]
^L
RFC 6092           Simple Security in IPv6 Gateway CPE      January 2011


   REC-24  In their DEFAULT operating mode, IPv6 gateways MUST NOT
           prohibit the forwarding of any UDP packets, to and from
           legitimate node addresses, with a destination port of 500,
           i.e., the port reserved by IANA for the Internet Key Exchange
           (IKE) Protocol [RFC5996].

   REC-25  In all operating modes, IPv6 gateways SHOULD use filter state
           records for Encapsulating Security Payload (ESP) [RFC4303]
           that are indexable by a 3-tuple comprising the interior node
           address, the exterior node address, and the ESP protocol
           identifier.  In particular, the IPv4/NAT method of indexing
           state records also by security parameters index (SPI) SHOULD
           NOT be used.  Likewise, any mechanism that depends on
           detection of Internet Key Exchange (IKE) [RFC5996]
           initiations SHOULD NOT be used.

   REC-26  In their DEFAULT operating mode, IPv6 gateways MUST NOT
           prohibit the forwarding of packets, to and from legitimate
           node addresses, with destination extension headers of type
           "Host Identity Protocol (HIP)" [RFC5201] in their outer IP
           extension header chain.

   REC-27  The state records for flows initiated by outbound packets
           that bear a Home Address destination option [RFC3775] are
           distinguished by the addition of the home address of the flow
           as well as the interior care-of address.  IPv6 gateways MUST
           NOT prohibit the forwarding of any inbound packets bearing
           type 2 routing headers, which otherwise match a flow state
           record, and where A) the address in the destination field of
           the IPv6 header matches the interior care-of address of the
           flow, and B) the Home Address field in the Type 2 Routing
           Header matches the home address of the flow.

   REC-28  Valid sequences of Mobility Header [RFC3775] packets MUST be
           forwarded for all outbound and explicitly permitted inbound
           Mobility Header flows.

   REC-29  If a gateway forwards a Mobility Header [RFC3775] flow, then
           it MUST also forward, in both directions, the IPv4 and IPv6
           packets that are encapsulated in IPv6 associated with the
           tunnel between the home agent and the correspondent node.

   REC-30  If a gateway forwards a Mobility Header [RFC3775] flow, then
           it MUST also forward (in the reverse direction) ICMPv6
           "Destination Unreachable" and "Packet Too Big" messages
           containing any headers that match the associated flow state
           records.




Woodyatt                      Informational                    [Page 28]
^L
RFC 6092           Simple Security in IPv6 Gateway CPE      January 2011


   REC-31  All valid sequences of TCP packets (defined in [RFC0793])
           MUST be forwarded for outbound flows and explicitly permitted
           inbound flows.  In particular, both the normal TCP 3-way
           handshake mode of operation and the simultaneous-open mode of
           operation MUST be supported.

   REC-32  The TCP window invariant MUST NOT be enforced on flows for
           which the filter did not detect whether the window-scale
           option (see [RFC1323]) was sent in the 3-way handshake or
           simultaneous-open.

   REC-33  If application transparency is most important, then a
           stateful packet filter SHOULD have "endpoint-independent
           filtering" behavior for TCP.  If a more stringent filtering
           behavior is most important, then a filter SHOULD have
           "address-dependent filtering" behavior.  The filtering
           behavior MAY be an option configurable by the network
           administrator, and it MAY be independent of the filtering
           behavior for UDP and other protocols.  Filtering behavior
           SHOULD be endpoint independent by DEFAULT in gateways
           intended for provisioning without service-provider
           management.

   REC-34  By DEFAULT, a gateway MUST respond with an ICMPv6
           "Destination Unreachable" error code 1 (Communication with
           destination administratively prohibited), to any unsolicited
           inbound SYN packet after waiting at least 6 seconds without
           first forwarding the associated outbound SYN or SYN/ACK from
           the interior peer.

   REC-35  If a gateway cannot determine whether the endpoints of a TCP
           flow are active, then it MAY abandon the state record if it
           has been idle for some time.  In such cases, the value of the
           "established flow idle-timeout" MUST NOT be less than
           two hours four minutes, as discussed in [RFC5382].  The value
           of the "transitory flow idle-timeout" MUST NOT be less than
           four minutes.  The value of the idle-timeouts MAY be
           configurable by the network administrator.

   REC-36  If a gateway forwards a TCP flow, it MUST also forward ICMPv6
           "Destination Unreachable" and "Packet Too Big" messages
           containing TCP headers that match the flow state record.

   REC-37  Receipt of any sort of ICMPv6 message MUST NOT terminate the
           state record for a TCP flow.






Woodyatt                      Informational                    [Page 29]
^L
RFC 6092           Simple Security in IPv6 Gateway CPE      January 2011


   REC-38  All valid sequences of SCTP packets (defined in [RFC4960])
           MUST be forwarded for outbound associations and explicitly
           permitted inbound associations.  In particular, both the
           normal SCTP association establishment and the simultaneous-
           open mode of operation MUST be supported.

   REC-39  By DEFAULT, a gateway MUST respond with an ICMPv6
           "Destination Unreachable" error code 1 (Communication with
           destination administratively prohibited) to any unsolicited
           inbound INIT packet after waiting at least 6 seconds without
           first forwarding the associated outbound INIT from the
           interior peer.

   REC-40  If a gateway cannot determine whether the endpoints of an
           SCTP association are active, then it MAY abandon the state
           record if it has been idle for some time.  In such cases, the
           value of the "established association idle-timeout" MUST NOT
           be less than two hours four minutes.  The value of the
           "transitory association idle-timeout" MUST NOT be less than
           four minutes.  The value of the idle-timeouts MAY be
           configurable by the network administrator.

   REC-41  If a gateway forwards an SCTP association, it MUST also
           forward ICMPv6 "Destination Unreachable" and "Packet Too Big"
           messages containing SCTP headers that match the association
           state record.

   REC-42  Receipt of any sort of ICMPv6 message MUST NOT terminate the
           state record for an SCTP association.

   REC-43  All valid sequences of DCCP packets (defined in [RFC4340])
           MUST be forwarded for all flows to exterior servers, and for
           any flows to interior servers with explicitly permitted
           service codes.

   REC-44  A gateway MAY abandon a DCCP state record if it has been
           idle for some time.  In such cases, the value of the "open
           flow idle-timeout" MUST NOT be less than two hours
           four minutes.  The value of the "transitory flow idle-
           timeout" MUST NOT be less than eight minutes.  The value of
           the idle-timeouts MAY be configurable by the network
           administrator.

   REC-45  If an Internet gateway forwards a DCCP flow, it MUST also
           forward ICMPv6 "Destination Unreachable" and "Packet Too Big"
           messages containing DCCP headers that match the flow state
           record.




Woodyatt                      Informational                    [Page 30]
^L
RFC 6092           Simple Security in IPv6 Gateway CPE      January 2011


   REC-46  Receipt of any sort of ICMPv6 message MUST NOT terminate the
           state record for a DCCP flow.

   REC-47  Valid sequences of packets bearing Shim6 payload extension
           headers in their outer IP extension header chains MUST be
           forwarded for all outbound and explicitly permitted flows.
           The content of the Shim6 payload extension header MAY be
           ignored for the purpose of state tracking.

   REC-48  Internet gateways with IPv6 simple security capabilities
           SHOULD implement a protocol to permit applications to solicit
           inbound traffic without advance knowledge of the addresses of
           exterior nodes with which they expect to communicate.

   REC-49  Internet gateways with IPv6 simple security capabilities MUST
           provide an easily selected configuration option that permits
           a "transparent mode" of operation that forwards all
           unsolicited flows regardless of forwarding direction, i.e.,
           not to use the IPv6 simple security capabilities of the
           gateway.  The transparent mode of operation MAY be the
           default configuration.

   REC-50  By DEFAULT, subscriber-managed residential gateways MUST NOT
           offer management application services to the exterior
           network.

5.  Contributors

   Comments and criticisms during the development of this document were
   received from the following IETF participants:

            +-------------------+----------------------------+
            | Jari Arkko        | Ran Atkinson               |
            | Fred Baker        | Norbert Bollow             |
            | Cameron Byrne     | Brian Carpenter            |
            | Remi Despres      | Arnaud Ebalard             |
            | Fabrice Fontaine  | Jun-ichiro "itojun" Hagino |
            | Thomas Herbst     | Christian Huitema          |
            | Joel Jaeggli      | Cullen Jennings            |
            | Suresh Krishnan   | Erik Kline                 |
            | Julien Laganier   | Kurt Erik Lindqvist        |
            | Mohamed Boucadair | Keith Moore                |
            | Robert Moskowitz  | Teemu Savolainen           |
            | Hemant Singh      | Yaron Sheffer              |
            | Mark Townsley     | Iljitsch van Beijnum       |
            | Magnus Westerlund | Dan Wing                   |
            +-------------------+----------------------------+




Woodyatt                      Informational                    [Page 31]
^L
RFC 6092           Simple Security in IPv6 Gateway CPE      January 2011


   The editor thanks them all for their contributions.

   It must be noted that a substantial portion of the text describing
   the detailed requirements for TCP and UDP filtering is derived or
   transposed from [RFC4787] and [RFC5382].  The editors of those
   documents, Francois Audet and Saikat Guha, also deserve substantial
   credit for the form of the present document.

6.  Security Considerations

   The IPv6 stateful filtering behavior described in this document is
   intended to be similar in function to the filtering behavior of
   commonly used IPv4/NAT gateways, which have been widely sold as a
   security tool for residential and small-office/home-office networks.
   As noted in the Security Considerations section of [RFC2993], the
   true impact of these tools may be a reduction in security.  It may be
   generally assumed that the impacts discussed in that document related
   to filtering (and not translation) are to be expected with the simple
   IPv6 security mechanisms described here.

   In particular, it is worth noting that stateful filters create the
   illusion of a security barrier, but without the managed intent of a
   firewall.  Appropriate security mechanisms implemented in the end
   nodes, in conjunction with the [RFC4864] local network protection
   methods, function without reliance on network layer hacks and
   transport filters that may change over time.  Also, defined security
   barriers assume that threats originate in the exterior, which may
   lead to practices that result in applications being fully exposed to
   interior attack and which therefore make breaches much easier.

   The security functions described in this document may be considered
   redundant in the event that all IPv6 hosts using a particular gateway
   have their own IPv6 host firewall capabilities enabled.  At the time
   of this writing, the vast majority of commercially available
   operating systems with support for IPv6 include IPv6 host firewall
   capability.

   Also worth noting explicitly, a practical side-effect of the
   recommendations in Section 3.2.4, to allow inbound IPsec and IKE
   flows from exterior to interior, is to facilitate more transparent
   communication by the use of an unauthenticated mode of IPsec, as
   described in "Better-Than-Nothing-Security: An Unauthenticated Mode
   of IPsec" [RFC5386], and this may be a departure from expectations of
   transparency set by traditional IPv4/NAT residential gateways.

   Finally, residential gateways that implement simple security
   functions are a bastion between the interior and the exterior, and
   therefore are a target of denial-of-service attacks against the



Woodyatt                      Informational                    [Page 32]
^L
RFC 6092           Simple Security in IPv6 Gateway CPE      January 2011


   interior network itself by processes designed to consume the
   resources of the gateway, e.g., a ping or SYN flood.  Gateways should
   employ the same sorts of protection techniques as application servers
   on the Internet.

   The IETF makes no statement, expressed or implied, as to whether
   using the capabilities described in this document ultimately improves
   security for any individual users or for the Internet community as a
   whole.

7.  References

7.1.  Normative References

   [RFC0768]   Postel, J., "User Datagram Protocol", STD 6, RFC 768,
               August 1980.

   [RFC0793]   Postel, J., "Transmission Control Protocol", STD 7,
               RFC 793, September 1981.

   [RFC1323]   Jacobson, V., Braden, B., and D. Borman, "TCP Extensions
               for High Performance", RFC 1323, May 1992.

   [RFC2119]   Bradner, S., "Key words for use in RFCs to Indicate
               Requirement Levels", BCP 14, RFC 2119, March 1997.

   [RFC2460]   Deering, S. and R. Hinden, "Internet Protocol, Version 6
               (IPv6) Specification", RFC 2460, December 1998.

   [RFC3315]   Droms, R., Bound, J., Volz, B., Lemon, T., Perkins, C.,
               and M. Carney, "Dynamic Host Configuration Protocol for
               IPv6 (DHCPv6)", RFC 3315, July 2003.

   [RFC3775]   Johnson, D., Perkins, C., and J. Arkko, "Mobility Support
               in IPv6", RFC 3775, June 2004.

   [RFC3828]   Larzon, L-A., Degermark, M., Pink, S., Jonsson, L-E., and
               G. Fairhurst, "The Lightweight User Datagram Protocol
               (UDP-Lite)", RFC 3828, July 2004.

   [RFC3879]   Huitema, C. and B. Carpenter, "Deprecating Site Local
               Addresses", RFC 3879, September 2004.

   [RFC4007]   Deering, S., Haberman, B., Jinmei, T., Nordmark, E., and
               B. Zill, "IPv6 Scoped Address Architecture", RFC 4007,
               March 2005.





Woodyatt                      Informational                    [Page 33]
^L
RFC 6092           Simple Security in IPv6 Gateway CPE      January 2011


   [RFC4193]   Hinden, R. and B. Haberman, "Unique Local IPv6 Unicast
               Addresses", RFC 4193, October 2005.

   [RFC4302]   Kent, S., "IP Authentication Header", RFC 4302,
               December 2005.

   [RFC4303]   Kent, S., "IP Encapsulating Security Payload (ESP)",
               RFC 4303, December 2005.

   [RFC4340]   Kohler, E., Handley, M., and S. Floyd, "Datagram
               Congestion Control Protocol (DCCP)", RFC 4340,
               March 2006.

   [RFC4443]   Conta, A., Deering, S., and M. Gupta, "Internet Control
               Message Protocol (ICMPv6) for the Internet Protocol
               Version 6 (IPv6) Specification", RFC 4443, March 2006.

   [RFC4787]   Audet, F. and C. Jennings, "Network Address Translation
               (NAT) Behavioral Requirements for Unicast UDP", BCP 127,
               RFC 4787, January 2007.

   [RFC4890]   Davies, E. and J. Mohacsi, "Recommendations for Filtering
               ICMPv6 Messages in Firewalls", RFC 4890, May 2007.

   [RFC4960]   Stewart, R., "Stream Control Transmission Protocol",
               RFC 4960, September 2007.

   [RFC5095]   Abley, J., Savola, P., and G. Neville-Neil, "Deprecation
               of Type 0 Routing Headers in IPv6", RFC 5095,
               December 2007.

   [RFC5156]   Blanchet, M., "Special-Use IPv6 Addresses", RFC 5156,
               April 2008.

   [RFC5201]   Moskowitz, R., Nikander, P., Jokela, P., and T.
               Henderson, "Host Identity Protocol", RFC 5201,
               April 2008.

   [RFC5996]   Kaufman, C., Hoffman, P., Nir, Y., and P. Eronen,
               "Internet Key Exchange Protocol Version 2 (IKEv2)",
               RFC 5996, September 2010.










Woodyatt                      Informational                    [Page 34]
^L
RFC 6092           Simple Security in IPv6 Gateway CPE      January 2011


7.2.  Informative References

   [NAT-PMP]   Cheshire, S., Krochmal, M., and K. Sekar, "NAT Port
               Mapping Protocol (NAT-PMP)", Work in Progress,
               April 2008.

   [RFC1122]   Braden, R., "Requirements for Internet Hosts -
               Communication Layers", STD 3, RFC 1122, October 1989.

   [RFC1337]   Braden, B., "TIME-WAIT Assassination Hazards in TCP",
               RFC 1337, May 1992.

   [RFC1918]   Rekhter, Y., Moskowitz, R., Karrenberg, D., Groot, G.,
               and E. Lear, "Address Allocation for Private Internets",
               BCP 5, RFC 1918, February 1996.

   [RFC1981]   McCann, J., Deering, S., and J. Mogul, "Path MTU
               Discovery for IP version 6", RFC 1981, August 1996.

   [RFC2473]   Conta, A. and S. Deering, "Generic Packet Tunneling in
               IPv6 Specification", RFC 2473, December 1998.

   [RFC2827]   Ferguson, P. and D. Senie, "Network Ingress Filtering:
               Defeating Denial of Service Attacks which employ IP
               Source Address Spoofing", BCP 38, RFC 2827, May 2000.

   [RFC2993]   Hain, T., "Architectural Implications of NAT", RFC 2993,
               November 2000.

   [RFC3704]   Baker, F. and P. Savola, "Ingress Filtering for
               Multihomed Networks", BCP 84, RFC 3704, March 2004.

   [RFC4080]   Hancock, R., Karagiannis, G., Loughney, J., and S. Van
               den Bosch, "Next Steps in Signaling (NSIS): Framework",
               RFC 4080, June 2005.

   [RFC4294]   Loughney, J., "IPv6 Node Requirements", RFC 4294,
               April 2006.

   [RFC4864]   Van de Velde, G., Hain, T., Droms, R., Carpenter, B., and
               E. Klein, "Local Network Protection for IPv6", RFC 4864,
               May 2007.

   [RFC4949]   Shirey, R., "Internet Security Glossary, Version 2",
               RFC 4949, August 2007.






Woodyatt                      Informational                    [Page 35]
^L
RFC 6092           Simple Security in IPv6 Gateway CPE      January 2011


   [RFC5189]   Stiemerling, M., Quittek, J., and T. Taylor, "Middlebox
               Communication (MIDCOM) Protocol Semantics", RFC 5189,
               March 2008.

   [RFC5382]   Guha, S., Biswas, K., Ford, B., Sivakumar, S., and P.
               Srisuresh, "NAT Behavioral Requirements for TCP",
               BCP 142, RFC 5382, October 2008.

   [RFC5386]   Williams, N. and M. Richardson, "Better-Than-Nothing
               Security: An Unauthenticated Mode of IPsec", RFC 5386,
               November 2008.

   [RFC5389]   Rosenberg, J., Mahy, R., Matthews, P., and D. Wing,
               "Session Traversal Utilities for NAT (STUN)", RFC 5389,
               October 2008.

   [RFC5533]   Nordmark, E. and M. Bagnulo, "Shim6: Level 3 Multihoming
               Shim Protocol for IPv6", RFC 5533, June 2009.

   [UPnP-IGD]  UPnP Forum, "Universal Plug and Play Internet Gateway
               Device Standardized Device Control Protocol",
               September 2010, <http://upnp.org/specs/gw/igd2/>.

   [WOODYATT-ALD]
               Woodyatt, J., "Application Listener Discovery (ALD) for
               IPv6", Work in Progress, July 2008.

Author's Address

   James Woodyatt (editor)
   Apple Inc.
   1 Infinite Loop
   Cupertino, CA  95014
   US

   EMail: jhw@apple.com















Woodyatt                      Informational                    [Page 36]
^L