draft-ietf-v6ops-cpe-simple-security-05.txt   draft-ietf-v6ops-cpe-simple-security-06.txt 
IPv6 Operations j. woodyatt, Ed. IPv6 Operations j. woodyatt, Ed.
Internet-Draft Apple Internet-Draft Apple
Intended status: Informational April 17, 2009 Intended status: Informational June 16, 2009
Expires: October 19, 2009 Expires: December 18, 2009
Recommended Simple Security Capabilities in Customer Premises Equipment Recommended Simple Security Capabilities in Customer Premises Equipment
for Providing Residential IPv6 Internet Service for Providing Residential IPv6 Internet Service
draft-ietf-v6ops-cpe-simple-security-05 draft-ietf-v6ops-cpe-simple-security-06
Status of this Memo Status of this Memo
This Internet-Draft is submitted to IETF in full conformance with the This Internet-Draft is submitted to IETF in full conformance with the
provisions of BCP 78 and BCP 79. provisions of BCP 78 and BCP 79.
Internet-Drafts are working documents of the Internet Engineering Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF), its areas, and its working groups. Note that Task Force (IETF), its areas, and its working groups. Note that
other groups may also distribute working documents as Internet- other groups may also distribute working documents as Internet-
Drafts. Drafts.
skipping to change at page 1, line 33 skipping to change at page 1, line 33
and may be updated, replaced, or obsoleted by other documents at any and may be updated, replaced, or obsoleted by other documents at any
time. It is inappropriate to use Internet-Drafts as reference time. It is inappropriate to use Internet-Drafts as reference
material or to cite them other than as "work in progress." material or to cite them other than as "work in progress."
The list of current Internet-Drafts can be accessed at The list of current Internet-Drafts can be accessed at
http://www.ietf.org/ietf/1id-abstracts.txt. http://www.ietf.org/ietf/1id-abstracts.txt.
The list of Internet-Draft Shadow Directories can be accessed at The list of Internet-Draft Shadow Directories can be accessed at
http://www.ietf.org/shadow.html. http://www.ietf.org/shadow.html.
This Internet-Draft will expire on October 19, 2009. This Internet-Draft will expire on December 18, 2009.
Copyright Notice Copyright Notice
Copyright (c) 2009 IETF Trust and the persons identified as the Copyright (c) 2009 IETF Trust and the persons identified as the
document authors. All rights reserved. document authors. All rights reserved.
This document is subject to BCP 78 and the IETF Trust's Legal This document is subject to BCP 78 and the IETF Trust's Legal
Provisions Relating to IETF Documents in effect on the date of Provisions Relating to IETF Documents in effect on the date of
publication of this document (http://trustee.ietf.org/license-info). publication of this document (http://trustee.ietf.org/license-info).
Please review these documents carefully, as they describe your rights Please review these documents carefully, as they describe your rights
skipping to change at page 2, line 15 skipping to change at page 2, line 15
Table of Contents Table of Contents
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 3 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.1. Special Language . . . . . . . . . . . . . . . . . . . . . 3 1.1. Special Language . . . . . . . . . . . . . . . . . . . . . 3
2. Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 2. Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
2.1. Basic Sanitation . . . . . . . . . . . . . . . . . . . . . 5 2.1. Basic Sanitation . . . . . . . . . . . . . . . . . . . . . 5
2.2. Internet Layer Protocols . . . . . . . . . . . . . . . . . 5 2.2. Internet Layer Protocols . . . . . . . . . . . . . . . . . 5
2.3. Transport Layer Protocols . . . . . . . . . . . . . . . . 6 2.3. Transport Layer Protocols . . . . . . . . . . . . . . . . 6
3. Detailed Recommendations . . . . . . . . . . . . . . . . . . . 6 3. Detailed Recommendations . . . . . . . . . . . . . . . . . . . 6
3.1. Stateless Filters . . . . . . . . . . . . . . . . . . . . 6 3.1. Stateless Filters . . . . . . . . . . . . . . . . . . . . 7
3.2. Connection-free Filters . . . . . . . . . . . . . . . . . 7 3.2. Connection-free Filters . . . . . . . . . . . . . . . . . 8
3.2.1. Upper-layer Transport Protocols . . . . . . . . . . . 8 3.2.1. Internet Control and Management . . . . . . . . . . . 8
3.2.2. UDP Filters . . . . . . . . . . . . . . . . . . . . . 8 3.2.2. Upper-layer Transport Protocols . . . . . . . . . . . 8
3.2.3. Teredo-specific Filters . . . . . . . . . . . . . . . 10 3.2.3. UDP Filters . . . . . . . . . . . . . . . . . . . . . 9
3.2.4. IPsec and Internet Key Exchange (IKE) . . . . . . . . 10 3.2.4. 6to4 Tunnels . . . . . . . . . . . . . . . . . . . . . 10
3.2.5. Other Virtual Private Network Protocols . . . . . . . 11 3.2.5. Teredo-specific Filters . . . . . . . . . . . . . . . 10
3.2.6. IPsec and Internet Key Exchange (IKE) . . . . . . . . 11
3.2.7. Other Virtual Private Network Protocols . . . . . . . 11
3.3. Connection-oriented Filters . . . . . . . . . . . . . . . 11 3.3. Connection-oriented Filters . . . . . . . . . . . . . . . 11
3.3.1. TCP Filters . . . . . . . . . . . . . . . . . . . . . 11 3.3.1. TCP Filters . . . . . . . . . . . . . . . . . . . . . 12
3.3.2. SCTP Filters . . . . . . . . . . . . . . . . . . . . . 14 3.3.2. SCTP Filters . . . . . . . . . . . . . . . . . . . . . 15
3.3.3. DCCP Filters . . . . . . . . . . . . . . . . . . . . . 17 3.3.3. DCCP Filters . . . . . . . . . . . . . . . . . . . . . 18
3.4. Passive Listeners . . . . . . . . . . . . . . . . . . . . 20 3.3.4. Level 3 Multihoming Shim Protocol for IPv6 (SHIM6) . . 21
4. Summary of Recommendations . . . . . . . . . . . . . . . . . . 20 3.4. Passive Listeners . . . . . . . . . . . . . . . . . . . . 21
5. Contributors . . . . . . . . . . . . . . . . . . . . . . . . . 25 4. Summary of Recommendations . . . . . . . . . . . . . . . . . . 21
6. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 26 5. Contributors . . . . . . . . . . . . . . . . . . . . . . . . . 26
7. Security Considerations . . . . . . . . . . . . . . . . . . . 26 6. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 27
8. References . . . . . . . . . . . . . . . . . . . . . . . . . . 27 7. Security Considerations . . . . . . . . . . . . . . . . . . . 28
8.1. Normative References . . . . . . . . . . . . . . . . . . . 27 8. References . . . . . . . . . . . . . . . . . . . . . . . . . . 28
8.2. Informative References . . . . . . . . . . . . . . . . . . 28 8.1. Normative References . . . . . . . . . . . . . . . . . . . 28
Appendix A. Change Log . . . . . . . . . . . . . . . . . . . . . 29 8.2. Informative References . . . . . . . . . . . . . . . . . . 30
Appendix A. Change Log . . . . . . . . . . . . . . . . . . . . . 31
A.1. draft-ietf-v6ops-cpe-simple-security-00 to A.1. draft-ietf-v6ops-cpe-simple-security-00 to
draft-ietf-v6ops-cpe-simple-security-01 . . . . . . . . . 29 draft-ietf-v6ops-cpe-simple-security-01 . . . . . . . . . 31
A.2. draft-ietf-v6ops-cpe-simple-security-01 to A.2. draft-ietf-v6ops-cpe-simple-security-01 to
draft-ietf-v6ops-cpe-simple-security-02 . . . . . . . . . 29 draft-ietf-v6ops-cpe-simple-security-02 . . . . . . . . . 32
A.3. draft-ietf-v6ops-cpe-simple-security-02 to A.3. draft-ietf-v6ops-cpe-simple-security-02 to
draft-ietf-v6ops-cpe-simple-security-03 . . . . . . . . . 30 draft-ietf-v6ops-cpe-simple-security-03 . . . . . . . . . 32
A.4. draft-ietf-v6ops-cpe-simple-security-03 to A.4. draft-ietf-v6ops-cpe-simple-security-03 to
draft-ietf-v6ops-cpe-simple-security-04 . . . . . . . . . 30 draft-ietf-v6ops-cpe-simple-security-04 . . . . . . . . . 32
A.5. draft-ietf-v6ops-cpe-simple-security-04 to A.5. draft-ietf-v6ops-cpe-simple-security-04 to
draft-ietf-v6ops-cpe-simple-security-05 . . . . . . . . . 30 draft-ietf-v6ops-cpe-simple-security-05 . . . . . . . . . 33
Author's Address . . . . . . . . . . . . . . . . . . . . . . . . . 31 A.6. draft-ietf-v6ops-cpe-simple-security-05 to
draft-ietf-v6ops-cpe-simple-security-06 . . . . . . . . . 34
Author's Address . . . . . . . . . . . . . . . . . . . . . . . . . 34
1. Introduction 1. Introduction
In "Local Network Protection for IPv6" [RFC4864], IETF recommends In "Local Network Protection for IPv6" [RFC4864], IETF recommends
'simple security' capabilities for gateway devices that enable 'simple security' capabilities for gateway devices that enable
delivery of Internet services in residential and small office delivery of Internet services in residential and small office
settings. The principle goal of these capabilties is to improve settings. The principle goal of these capabilities is to improve
security of the IPv6 Internet without increasing the perceived security of the IPv6 Internet without increasing the perceived
complexity for users who just want to accomplish useful work. complexity for users who just want to accomplish useful work.
There is, at best, a constructive tension between the desires of There is, at best, a constructive tension between the desires of
users for transparent end-to-end connectivity on the one hand, and users for transparent end-to-end connectivity on the one hand, and
the need for local-area network administrators to detect and prevent the need for local-area network administrators to detect and prevent
intrusion by unauthorized public Internet users on the other. The intrusion by unauthorized public Internet users on the other. The
specific recommendations in this document are intended to promote specific recommendations in this document are intended to promote
optimal local-area network security while retaining full end-to-end optimal local-area network security while retaining full end-to-end
transparency for users, and to highlight reasonable limitations on transparency for users, and to highlight reasonable limitations on
skipping to change at page 4, line 15 skipping to change at page 4, line 15
network, i.e. the public Internet. This document is concerned with network, i.e. the public Internet. This document is concerned with
the behavior of packet filters that police the flow of traffic the behavior of packet filters that police the flow of traffic
between the interior and exterior networks of residential Internet between the interior and exterior networks of residential Internet
gateways. gateways.
The operational goals of security capabilities in Internet gateways The operational goals of security capabilities in Internet gateways
are described with more detail in "Local Network Protection for IPv6" are described with more detail in "Local Network Protection for IPv6"
[RFC4864], but they can be summarized as follows. [RFC4864], but they can be summarized as follows.
o Check all traffic to and from the public Internet for basic o Check all traffic to and from the public Internet for basic
sanity, e.g. anti-spoofing and "martian" filters. sanity, e.g. anti-spoofing and "martian" [RFC4949] filters.
o Allow tracking of application usage by source and destination o Allow tracking of application usage by source and destination
transport addresses. transport addresses.
o Provide a barrier against untrusted external influences on the o Provide a barrier against untrusted external influences on the
interior network by requiring filter state to be activated by interior network by requiring filter state to be activated by
traffic originating at interior network nodes. traffic originating at interior network nodes.
o Allow manually configured exceptions to the stateful filtering o Allow manually configured exceptions to the stateful filtering
rules according to network administration policy. rules according to network administration policy.
skipping to change at page 5, line 10 skipping to change at page 5, line 10
advance knowledge of their addresses. While consensus within the advance knowledge of their addresses. While consensus within the
Internet engineering community has emerged that such protocols are Internet engineering community has emerged that such protocols are
necessary to implement in residential IPv6 gateways, the best current necessary to implement in residential IPv6 gateways, the best current
practice has not yet been established. practice has not yet been established.
2.1. Basic Sanitation 2.1. Basic Sanitation
In addition to the functions required of all Internet routers In addition to the functions required of all Internet routers
[RFC4294], residential gateways are expected to have basic stateless [RFC4294], residential gateways are expected to have basic stateless
filters for prohibiting certains kinds of traffic with invalid filters for prohibiting certains kinds of traffic with invalid
headers, e.g. martian packets, spoofs, routing header type code zero, headers, e.g. "martian" packets, spoofs, routing header type code
etc. zero, etc. (See Section 3.1 for details.)
Internet gateways that route multicast traffic are expected to
implement appropriate filters for scoped multicast addresses.
Conversely, simple Internet gateways are not expected to prohibit the Conversely, simple Internet gateways are not expected to prohibit the
development of new applications. In particular, packets with end-to- development of new applications. In particular, packets with end-to-
end network security and routing extension headers for mobility are end network security and routing extension headers for mobility are
expected to pass Internet gateways freely. expected to pass Internet gateways freely.
Finally, Internet gateways that route multicast traffic are expected
to implement appropriate filters for multicast to limit the scope of
multicast groups that span the demarcation between residential
networks and service provider networks.
2.2. Internet Layer Protocols 2.2. Internet Layer Protocols
In managed, enterprise networks, virtual private networking tunnels In managed, enterprise networks, virtual private networking tunnels
are typically regarded as an additional attack surface. and they are are typically regarded as an additional attack surface. and they are
often restricted or prohibited from traversing firewalls for that often restricted or prohibited from traversing firewalls for that
reason. However, it would be inappropriate to restrict virtual reason. However, it would be inappropriate to restrict virtual
private networking tunnels by default in unmanaged, residential private networking tunnels by default in unmanaged, residential
network usage scenarios. Therefore, this document recommends the network usage scenarios. Therefore, this document recommends the
DEFAULT operating mode for residential IPv6 simple security is to DEFAULT operating mode for residential IPv6 simple security is to
permit all virtual private networking tunnel protocols to pass permit all virtual private networking tunnel protocols to pass
skipping to change at page 6, line 10 skipping to change at page 6, line 12
procedure described in sections 5.2.1 and 5.2.2 of [RFC4380]. (Note: procedure described in sections 5.2.1 and 5.2.2 of [RFC4380]. (Note:
this is a necessary addition to the "automatic sunset" provision in this is a necessary addition to the "automatic sunset" provision in
section 5.5 of [RFC4380] because it's all too common that nested section 5.5 of [RFC4380] because it's all too common that nested
IPv4/NAT gateways are deployed unintentionally in residential IPv4/NAT gateways are deployed unintentionally in residential
settings and without consideration for Internet architectural settings and without consideration for Internet architectural
implications.) implications.)
2.3. Transport Layer Protocols 2.3. Transport Layer Protocols
IPv6 simple security functions are principally concerned with the IPv6 simple security functions are principally concerned with the
stateful filtering of transport layers like User Datagram Protocol stateful filtering of Internet Control and Management Protocol (ICMP)
(UDP) [RFC0768] (and Lightweight User Datagram Protocol (UDP-Lite) [RFC4884] and transport layers like User Datagram Protocol (UDP)
[RFC0768] (and Lightweight User Datagram Protocol (UDP-Lite)
[RFC3828]), Transport Control Protocol (TCP) [RFC0793], the Stream [RFC3828]), Transport Control Protocol (TCP) [RFC0793], the Stream
Control Transmission Protocol (SCTP) [RFC4960], the Datagram Control Transmission Protocol (SCTP) [RFC4960], the Datagram
Congestion Control Protocol (DCCP) [RFC4340], and potentially any Congestion Control Protocol (DCCP) [RFC4340], and potentially any
standards-track transport protocols to be defined in the future. standards-track transport protocols to be defined in the future.
The general operating principle is that transport layer traffic is The general operating principle is that transport layer traffic is
only permitted into the interior network of a residential IPv6 not forwarded into the interior network of a residential IPv6 gateway
gateway when it has been solicited explicitly by interior nodes. All unless it has been solicited explicitly by interior nodes, e.g. by
other traffic is expected to be discarded or rejected with an ICMPv6 matching the reverse path for previously forwarded outbound traffic,
error message to indicate the traffic is administratively prohibited. or by matching manually 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 3. Detailed Recommendations
This section describes the specific recommendations made by this This section describes the specific recommendations made by this
document in full detail. They are summarized into a convenient list document in full detail. They are summarized into a convenient list
in Section 4. in Section 4.
Some recommended filters are to be applied to all traffic that passes Some recommended filters are to be applied to all traffic that passes
through residential Internet gateways regardless of the direction through residential Internet gateways regardless of the direction
they are to be forwarded. However, most filters are expected to be they are to be forwarded. However, most filters are expected to be
skipping to change at page 6, line 50 skipping to change at page 7, line 11
nodes on the interior network. The initiator of a flow is the first nodes on the interior network. The initiator of a flow is the first
node to send a packet in the context of a given transport node to send a packet in the context of a given transport
association, e.g. a TCP connection, et cetera. association, e.g. a TCP connection, et cetera.
3.1. Stateless Filters 3.1. Stateless Filters
Certain kinds of IPv6 packets MUST NOT be forwarded in either Certain kinds of IPv6 packets MUST NOT be forwarded in either
direction by residential Internet gateways regardless of network direction by residential Internet gateways regardless of network
state. These include packets with multicast source addresses, state. These include packets with multicast source addresses,
packets to destinations with certain non-routable and/or reserved packets to destinations with certain non-routable and/or reserved
prefixes, and packets with deprecated extension headers. prefixes and packets with deprecated extension headers.
Other stateless filters are recommended to guard against spoofing, to Other stateless filters are recommended to guard against spoofing, to
enforce multicast scope boundaries, and to isolate certain local enforce multicast scope boundaries, and to isolate certain local
network services from the public Internet. network services from the public Internet.
R1: Packets bearing in their outer IPv6 headers multicast source R1: Packets which bear in their outer IPv6 headers multicast source
addresses MUST NOT be forwarded or transmitted on any interface. addresses MUST NOT be forwarded or transmitted on any interface.
R2: Packets bearing in their outer IPv6 headers multicast destination R2: Packets which bear in their outer IPv6 headers multicast
addresses of equal or narrower scope than the configured scope destination addresses of equal or narrower scope (see section 2.7 of
boundary level of the gateway MUST NOT be forwarded in any direction. IP Version 6 Addressing Architecture [RFC4291]) than the configured
The DEFAULT scope boundary level SHOULD be organization-local scope. 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
admininistrator.
R3: Packets bearing deprecated extension headers prior to their first R3: 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 addresses with IPv4-Mapped, IPv4-Compatible, Documentation and
ORCHID prefixes.
R4: Packets bearing deprecated extension headers prior to their first
upper-layer-protocol header SHOULD NOT be forwarded or transmitted on upper-layer-protocol header SHOULD NOT be forwarded or transmitted on
any interface. In particular, all packets with routing extension any interface. In particular, all packets with routing extension
header type 0 [RFC2460] preceding the first upper-layer-protocol header type 0 [RFC2460] preceding the first upper-layer-protocol
header MUST NOT be forwarded. header MUST NOT be forwarded. (See [RFC5095] for additional
background.)
R4: Outbound packets MUST NOT be forwarded if the source address in R5: Outbound packets MUST NOT be forwarded if the source address in
their outer IPv6 header does not have a unicast prefix configured for their outer IPv6 header does not have a unicast prefix configured for
use by globally reachable nodes on the interior network. use by globally reachable nodes on the interior network.
R5: Inbound packets MUST NOT be forwarded if the source address in R6: Inbound packets MUST NOT be forwarded if the source address in
their outer IPv6 header has a global unicast prefix assigned for use their outer IPv6 header has a global unicast prefix assigned for use
by globally reachable nodes on the interior network. by globally reachable nodes on the interior network.
R6: By DEFAULT, packets with unique local source and/or destination R7: By DEFAULT, packets with unique local source and/or destination
addresses [RFC4193] SHOULD NOT be forwarded to or from the exterior addresses [RFC4193] SHOULD NOT be forwarded to or from the exterior
network. network.
R7: By DEFAULT, inbound non-recursive DNS queries received on R8: By DEFAULT, inbound non-recursive DNS queries received on
exterior interfaces MUST NOT be processed by any integrated DNS proxy exterior interfaces MUST NOT be processed by any integrated DNS proxy
resolving server. resolving server.
R8: Inbound DHCP discovery packets received on exterior interfaces R9: Inbound DHCP discovery packets received on exterior interfaces
MUST NOT be processed by any integrated DHCP server. MUST NOT be processed by any integrated DHCP server.
3.2. Connection-free Filters 3.2. Connection-free Filters
Some Internet applications use connection-free transport protocols Some Internet applications use connection-free transport protocols
with no release semantics, e.g. UDP. These protocols pose a special with no release semantics, e.g. UDP. These protocols pose a special
difficulty for stateful packet filters because most of the difficulty for stateful packet filters because most of the
application state is not carried at the transport level. State application state is not carried at the transport level. State
records are created when communication is initiated and abandoned records are created when communication is initiated and abandoned
when no further communication is detected after some period of time. when no further communication is detected after some period of time.
3.2.1. Upper-layer Transport Protocols 3.2.1. Internet Control and Management
Recommendations for filtering ICMPv6 messages in firewall devices are
described separately in [RFC4890] and apply generally to residential
gateways as to any class of router. No additional recommendations
are made here.
3.2.2. Upper-layer Transport Protocols
Residential IPv6 gateways are not expected to prohibit the use of Residential IPv6 gateways are not expected to prohibit the use of
applications to be developed using future upper-layer transport applications to be developed using future upper-layer transport
protocols. In particular, transport protocols not otherwise protocols. In particular, transport protocols not otherwise
discussed in subsequent sections of this document are expected to be discussed in subsequent sections of this document are expected to be
treated consistently, i.e. as having connection-free semantics and no treated consistently, i.e. as having connection-free semantics and no
special requirements to inspect the transport headers. special requirements to inspect the transport headers.
In general, upper-layer transport filter state records are expected In general, upper-layer transport filter state records are expected
to be created when an interior endpoint sends a packet to an exterior to be created when an interior endpoint sends a packet to an exterior
address. The filter allocates (or reuses) a record for the duration address. The filter allocates (or reuses) a record for the duration
of communications, with an idle timer to delete the state record when of communications, with an idle timer to delete the state record when
no further communications are detected. no further communications are detected.
R9: Filter state records for generic upper-layer transport protocols R10: Filter state records for generic upper-layer transport protocols
MUST BE indexable by a 3-tuple comprising the interior node address, MUST BE indexable by a 3-tuple comprising the interior node address,
the exterior node address and the upper-layer transport protocol the exterior node address and the upper-layer transport protocol
identifier. identifier.
R10: Filter state records for generic upper-layer transport protocols R11: Filter state records for generic upper-layer transport protocols
MUST NOT be deleted or recycled until an idle timer not less than two MUST NOT be deleted or recycled until an idle timer not less than two
minutes has expired without having forwarded a packet matching the minutes has expired without having forwarded a packet matching the
state in some configurable amount of time. By DEFAULT, the idle state in some configurable amount of time. By DEFAULT, the idle
timer for such state records is five minutes. timer for such state records is five minutes.
3.2.2. UDP Filters 3.2.3. UDP Filters
"NAT Behaviorial Requirements for UDP" [RFC4787] defines the "Network Address Translation (NAT) Behavioral Requirements for
terminology and best current practice for stateful filtering of UDP Unicast UDP" [RFC4787] defines the terminology and best current
applications in IPv4 with NAT, which serves as the model for practice for stateful filtering of UDP applications in IPv4 with NAT,
behaviorial requirements for simple UDP security in IPv6 gateways, which serves as the model for behavioral requirements for simple UDP
notwithstanding the requirements related specifically to network security in IPv6 gateways, notwithstanding the requirements related
address translation. specifically to network address translation.
An interior endpoint initiates a UDP exchange through a stateful An interior endpoint initiates a UDP exchange through a stateful
packet filter by sending a packet to an exterior address. The filter packet filter by sending a packet to an exterior address. The filter
allocates (or reuses) a filter state record for the duration of the allocates (or reuses) a filter state record for the duration of the
exchange. The state record defines the interior and exterior IP exchange. The state record defines the interior and exterior IP
addresses and ports used between all packets in the exchange. addresses and ports used between all packets in the exchange.
State records for UDP exchanges remain active while they are in use State records for UDP exchanges remain active while they are in use
and only abandoned after an idle period of some time. and only abandoned after an idle period of some time.
R11: A state record for a UDP exchange where both interior and R12: A state record for a UDP exchange where both interior and
exterior ports are outside the well-known port range (ports 0-1023) exterior 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 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 the UDP state record idle timer MAY be configurable. The DEFAULT is
five minutes. five minutes.
R12: A state record for a UDP exchange where one or both of the R13: A state record for a UDP exchange where one or both of the
interior and exterior ports are in the well-known port range (ports interior and exterior ports are in the well-known port range (ports
0-1023) MAY expire after a period of idle time shorter than two 0-1023) MAY expire after a period of idle time shorter than two
minutes to facilitate the operation of the IANA-registered service minutes to facilitate the operation of the IANA-registered service
assigned to the port in question. assigned to the port in question.
As [RFC4787] notes, outbound refresh is necessary for allowing the As [RFC4787] notes, outbound refresh is necessary for allowing the
interior endpoint to keep the state record alive. Inbound refresh interior endpoint to keep the state record alive. Inbound refresh
may be useful for applications with no outbound UDP traffic. may be useful for applications with no outbound UDP traffic.
However, allowing inbound refresh can allow an attacker in the However, allowing inbound refresh can allow an attacker in the
exterior or a misbehaving application to keep a state record alive exterior or a misbehaving application to keep a state record alive
indefinitely. This could be a security risk. Also, if the process indefinitely. This could be a security risk. Also, if the process
is repeated with different ports, over time, it could use up all the is repeated with different ports, over time, it could use up all the
state record memory and resources in the filter. state record memory and resources in the filter.
R13: A state record for a UDP exchange MUST be refreshed when a R14: A state record for a UDP exchange MUST be refreshed when a
packet is forwarded from the interior to the exterior, and it MAY be packet is forwarded from the interior to the exterior, and it MAY be
refreshed when a packet is forwarded in the reverse direction. refreshed when a packet is forwarded in the reverse direction.
As described in section 5.5 of [RFC4787], the connection-free As described in section 5.5 of [RFC4787], the connection-free
semantics of UDP pose a difficulty for packet filters in trying to semantics of UDP pose a difficulty for packet filters in trying to
recognize which packets comprise an application flow and which are recognize which packets comprise an application flow and which are
unsolicited. Various strategies have been used in IPv4/NAT gateways unsolicited. Various strategies have been used in IPv4/NAT gateways
with differing effects. with differing effects.
R14: If application transparency is most important, then a stateful R15: If application transparency is most important, then a stateful
packet filter SHOULD have "Endpoint independent filter" behavior for packet filter SHOULD have "Endpoint independent filter" behavior for
UDP. If a more stringent filtering behavior is most important, then UDP. If a more stringent filtering behavior is most important, then
a filter SHOULD have "Address dependent filtering" behavior. The a filter SHOULD have "Address dependent filtering" behavior. The
filtering behavior MAY be an option configurable by the network filtering behavior MAY be an option configurable by the network
administrator, and it MAY be independent of the filtering behavior administrator, and it MAY be independent of the filtering behavior
for TCP and other protocols. for TCP and other protocols. Filtering behavior SHOULD by endpoint
independent by DEFAULT in gateways intended for provisioning without
service-provider management.
Applications mechanisms may depend on the reception of ICMP error Applications mechanisms may depend on the reception of ICMP error
messages triggered by the transmission of UDP messages. One such messages triggered by the transmission of UDP messages. One such
mechanism is path MTU discovery. mechanism is path MTU discovery.
R15: If a gateway forwards a UDP exchange, it MUST also forward ICMP R16: If a gateway forwards a UDP exchange, it MUST also forward ICMP
Destination Unreachable messages containing UDP headers that match Destination Unreachable messages containing UDP headers that match
the exchange state record. the exchange state record.
R16: Receipt of any sort of ICMP message MUST NOT terminate the state R17: Receipt of any sort of ICMP message MUST NOT terminate the state
record for a UDP exchange. record for a UDP exchange.
R17: UDP-Lite exchanges [RFC3828] SHOULD be handled in the same way R18: UDP-Lite exchanges [RFC3828] SHOULD be handled in the same way
as UDP exchanges, except that the upper-layer transport protocol as UDP exchanges, except that the upper-layer transport protocol
identifier for UDP-Lite is not the same as UDP, and therefore UDP identifier for UDP-Lite is not the same as UDP, and therefore UDP
packets MUST NOT match UDP-Lite state records, and vice versa. packets MUST NOT match UDP-Lite state records, and vice versa.
3.2.3. Teredo-specific Filters 3.2.4. 6to4 Tunnels
Typical dual-stack IPv4/IPv6 residential gateways use private IPv4
address ranges and network address/port translation on a single IPv4
address assigned by the service provider. The use of private
addresses prevents interior hosts from using 6to4 [RFC3068] tunnels.
3.2.5. Teredo-specific Filters
Transitional residential IPv6 gateways that also feature integrated Transitional residential IPv6 gateways that also feature integrated
IPv4/NAT gateways require special filtering for Teredo tunnels. IPv4/NAT gateways require special filtering for Teredo tunnels.
R18: Where a globally routed IPv6 prefix is advertised on an interior R19: Where a globally routed IPv6 prefix is advertised on an interior
interface and IPv4 Internet service is provided with NAT [RFC4787], interface and IPv4 Internet service is provided with NAT [RFC4787],
the Teredo qualification procedure (see section 5.2.1 and 5.2.2 of the Teredo qualification procedure (see section 5.2.1 and 5.2.2 of
[RFC4380]) for clients in the interior SHOULD be prohibited by the [RFC4380]) for clients in the interior SHOULD be prohibited by the
IPv4/NAT stateful filter. This SHOULD be done by blocking outbound IPv4/NAT stateful filter. This SHOULD be done by blocking outbound
UDP initiations to port 3544, the port reserved by IANA for Teredo UDP initiations to port 3544, the port reserved by IANA for Teredo
servers. servers.
3.2.4. IPsec and Internet Key Exchange (IKE) 3.2.6. IPsec and Internet Key Exchange (IKE)
Internet protocol security (IPsec) offers greater flexibility and Internet protocol security (IPsec) offers greater flexibility and
better overall security than the simple security of stateful packet better overall security than the simple security of stateful packet
filtering at network perimeters. Therefore, residential IPv6 filtering at network perimeters. Therefore, residential IPv6
gateways need not prohibit IPsec traffic flows. gateways need not prohibit IPsec traffic flows.
R19: In their DEFAULT operating mode, IPv6 gateways MUST NOT prohibit R20: In their DEFAULT operating mode, IPv6 gateways MUST NOT prohibit
the forwarding of packets, to and from legitimate node addresses, the forwarding of packets, to and from legitimate node addresses,
with destination extension headers of type "Authenticated Header with destination extension headers of type "Authenticated Header
(AH)" [RFC4302] in their outer IP extension header chain. (AH)" [RFC4302] in their outer IP extension header chain.
R20: In their DEFAULT operating mode, IPv6 gateways MUST NOT prohibit R21: In their DEFAULT operating mode, IPv6 gateways MUST NOT prohibit
the forwarding of packets, to and from legitimate node addresses, the forwarding of packets, to and from legitimate node addresses,
with an upper layer protocol of type "Encapsulating Security Payload with an upper layer protocol of type "Encapsulating Security Payload
(ESP)" [RFC4303] in their outer IP extension header chain. (ESP)" [RFC4303] in their outer IP extension header chain.
R21: In their DEFAULT operating mode, IPv6 gateways MUST NOT prohibit R22: In their DEFAULT operating mode, IPv6 gateways MUST NOT prohibit
the forwarding of any UDP packets, to and from legitimate node the forwarding of any UDP packets, to and from legitimate node
addresses, with a destination port of 500, i.e. the port reserved by addresses, with a destination port of 500, i.e. the port reserved by
IANA for the Internet Key Exchange Protocol [RFC4306]. IANA for the Internet Key Exchange Protocol [RFC4306].
R22: In all operating modes, IPv6 gateways SHOULD use filter state R23: In all operating modes, IPv6 gateways SHOULD use filter state
records for Encapsulating Security Payload (ESP) [RFC4303] that are records for Encapsulating Security Payload (ESP) [RFC4303] that are
indexable by a 3-tuple comprising the interior node address, the indexable by a 3-tuple comprising the interior node address, the
exterior node address and the ESP protocol identifier. In exterior node address and the ESP protocol identifier. In
particular, the IPv4/NAT method of indexing state records also by particular, the IPv4/NAT method of indexing state records also by
security parameters index (SPI) SHOULD NOT be used. Likewise, any security parameters index (SPI) SHOULD NOT be used. Likewise, any
mechanism that depends on detection of Internet Key Exchange (IKE) mechanism that depends on detection of Internet Key Exchange (IKE)
[RFC4306] initiations SHOULD NOT be used. [RFC4306] initiations SHOULD NOT be used.
3.2.5. Other Virtual Private Network Protocols 3.2.7. Other Virtual Private Network Protocols
Residential IPv6 gateways are not expected to prohibit the use of Residential IPv6 gateways are not expected to prohibit the use of
virtual private networks in residential usage scenarios. virtual private networks in residential usage scenarios.
R23: In their DEFAULT operating mode, IPv6 gateways MUST NOT prohibit R24: In their DEFAULT operating mode, IPv6 gateways MUST NOT prohibit
the forwarding, to and from legitimate node addresses, with upper the forwarding, to and from legitimate node addresses, with upper
layer protocol of type IP version 6, and SHOULD NOT prohibit the layer protocol of type IP version 6, and SHOULD NOT prohibit the
forwarding of other tunneled networking protocols commonly used for forwarding of other tunneled networking protocols commonly used for
virtual private networking, e.g. IP version 4, Generic Routing virtual private networking, e.g. IP version 4, Generic Routing
Encapsulation, etcetera. Encapsulation, etcetera.
3.3. Connection-oriented Filters 3.3. Connection-oriented Filters
Most Internet applications use connection-oriented transport Most Internet applications use connection-oriented transport
protocols with orderly release semantics. These protocols include protocols with orderly release semantics. These protocols include
skipping to change at page 11, line 52 skipping to change at page 12, line 34
cross in the network. Upon receiving the other end's SYN packet, 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 each end responds with a SYN-ACK packet, which also cross in the
network. The connection is established at each endpoint once the network. The connection is established at each endpoint once the
SYN-ACK packets are received. SYN-ACK packets are received.
To provide stateful packet filtering service for TCP, it is necessary To provide stateful packet filtering service for TCP, it is necessary
for a filter to receive, process and forward all packets for a for a filter to receive, process and forward all packets for a
connection that conform to valid transitions of the TCP state machine connection that conform to valid transitions of the TCP state machine
(Fig. 6, [RFC0793]). (Fig. 6, [RFC0793]).
R24: All valid sequences of TCP packets (defined in [RFC0793]) MUST R25: All valid sequences of TCP packets (defined in [RFC0793]) MUST
be forwarded for outbound connections and explicitly permitted be forwarded for outbound connections and explicitly permitted
inbound connections. In particular, both the normal TCP 3-way inbound connections. In particular, both the normal TCP 3-way
handshake mode of operation and the simultaneous-open modes of handshake mode of operation and the simultaneous-open modes of
operation MUST be supported. operation MUST be supported.
It is possible to reconstruct enough of the state of a TCP connection It is possible to reconstruct enough of the state of a TCP connection
to allow forwarding between an interior and exterior node even when to allow forwarding between an interior and exterior node even when
the filter starts operating after TCP enters the established state. the filter starts operating after TCP enters the established state.
In this case, because the filter has not seen the TCP window-scale 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 option, it is not possible for the filter to enforce the TCP window
invariant by dropping out-of-window segments. invariant by dropping out-of-window segments.
R25: The TCP window invariant MUST NOT be enforced on connections for R26: The TCP window invariant MUST NOT be enforced on connections for
which the filter did not detect whether the window-scale option (see which the filter did not detect whether the window-scale option (see
[RFC1323]) was sent in the 3-way handshake or simultaneous open. [RFC1323]) was sent in the 3-way handshake or simultaneous open.
A stateful filter can allow an existing state record to be reused by A stateful filter can allow an existing state record to be reused by
an externally initiated connection if its security policy permits. an externally initiated connection if its security policy permits.
Several different policies are possible as described in "Network Several different policies are possible as described in "Network
Address Translation (NAT) Behavioral Requirements for Unicast UDP Address Translation (NAT) Behavioral Requirements for Unicast UDP
[RFC4787] and extended in "NAT Behaviorial Requirements for TCP" [RFC4787] and extended in "NAT Behavioral Requirements for TCP"
[RFC5382]. [RFC5382].
R26: If application transparency is most important, then a stateful R27: If application transparency is most important, then a stateful
packet filter SHOULD have "Endpoint independent filter" behavior for packet filter SHOULD have "Endpoint independent filter" behavior for
TCP. If a more stringent filtering behavior is most important, then TCP. If a more stringent filtering behavior is most important, then
a filter SHOULD have "Address dependent filtering" behavior. The a filter SHOULD have "Address dependent filtering" behavior. The
filtering behavior MAY be an option configurable by the network filtering behavior MAY be an option configurable by the network
administrator, and it MAY be independent of the filtering behavior administrator, and it MAY be independent of the filtering behavior
for UDP and other protocols. for UDP and other protocols. Filtering behavior SHOULD by endpoint
independent by DEFAULT in gateways intended for provisioning without
service-provider management.
If an inbound SYN packet is filtered, either because a corresponding If an inbound SYN packet is filtered, either because a corresponding
state record does not exist or because of the filter's normal state record does not exist or because of the filter's normal
behavior, a filter has two basic choices: to discard the packet behavior, a filter has two basic choices: to discard the packet
silently, or to signal an error to the sender. Signaling an error silently, or to signal an error to the sender. Signaling an error
through ICMP messages allows the sender to detect that the SYN did through ICMP messages allows the sender to detect that the SYN did
not reach the intended destination. Discarding the packet, on the not reach the intended destination. Discarding the packet, on the
other hand, allows applications to perform simultaneous-open more other hand, allows applications to perform simultaneous-open more
reliably. A more detailed discussion of this issue can be found in 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 [RFC5382], but the basic outcome of it is that filters need to wait
on signaling errors until simultaneous-open will not be impaired. on signaling errors until simultaneous-open will not be impaired.
R27: By DEFAULT, a gateway MUST respond with an ICMP Destination R28: By DEFAULT, a gateway MUST respond with an ICMP Destination
Unreachable error (administratively prohibited) to any unsolicited Unreachable error (administratively prohibited) to any unsolicited
inbound SYN packet after waiting at least 6 seconds without first inbound SYN packet after waiting at least 6 seconds without first
forwarding the associated outbound SYN or SYN/ACK from the interior forwarding the associated outbound SYN or SYN/ACK from the interior
peer. peer.
A TCP filter maintains state associated with in-progress and A TCP filter maintains state associated with in-progress and
established connections. Because of this, a filter is susceptible to established connections. Because of this, a filter is susceptible to
a resource-exhaustion attack whereby an attacker (or virus) on the a resource-exhaustion attack whereby an attacker (or virus) on the
interior attempts to cause the filter to exhaust its capacity for interior attempts to cause the filter to exhaust its capacity for
creating state records. To defend against such attacks, a filter creating state records. To defend against such attacks, a filter
skipping to change at page 13, line 47 skipping to change at page 14, line 31
The "established connection idle-timeout" for a stateful packet The "established connection idle-timeout" for a stateful packet
filter is defined as the minimum time a TCP connection in the filter is defined as the minimum time a TCP connection in the
established phase must remain idle before the filter considers the established phase must remain idle before the filter considers the
associated state record a candidate for collection. The "transitory associated state record a candidate for collection. The "transitory
connection idle-timeout" for a filter is defined as the minimum time connection idle-timeout" for a filter is defined as the minimum time
a TCP connection in the partially-open or closing phases must remain a TCP connection in the partially-open or closing phases must remain
idle before the filter considers the associated state record a idle before the filter considers the associated state record a
candidate for collection. TCP connections in the TIME_WAIT state are candidate for collection. TCP connections in the TIME_WAIT state are
not affected by the "transitory connection idle-timeout" parameter. not affected by the "transitory connection idle-timeout" parameter.
R28: If a gateway cannot determine whether the endpoints of a TCP R29: If a gateway cannot determine whether the endpoints of a TCP
connection are active, then it MAY abandon the state record if it has connection are active, then it MAY abandon the state record if it has
been idle for some time. In such cases, the value of the been idle for some time. In such cases, the value of the
"established connection idle-timeout" MUST NOT be less than two hours "established connection idle-timeout" MUST NOT be less than two hours
four minutes, as discussed in [RFC5382]. The value of the four minutes, as discussed in [RFC5382]. The value of the
"transitory connection idle-timeout" MUST NOT be less than four "transitory connection idle-timeout" MUST NOT be less than four
minutes. The value of the idle-timeouts MAY be configurable by the minutes. The value of the idle-timeouts MAY be configurable by the
network administrator. network administrator.
Behavior for handing RST packets, or connections in the TIME_WAIT Behavior for handing RST packets, or connections in the TIME_WAIT
state is left unspecified. A gateway MAY hold state for a connection state is left unspecified. A gateway MAY hold state for a connection
skipping to change at page 14, line 36 skipping to change at page 15, line 21
example due to a timeout expiring, the filter MAY send a TCP RST example due to a timeout expiring, the filter MAY send a TCP RST
packet to each endpoint on behalf of the other. Sending a RST packet to each endpoint on behalf of the other. Sending a RST
notification allows endpoint applications to recover more quickly, notification allows endpoint applications to recover more quickly,
however, notifying endpoints might not always be possible if, for however, notifying endpoints might not always be possible if, for
example, state records are lost due to power interruption. example, state records are lost due to power interruption.
Several TCP mechanisms depend on the reception of ICMP error messages Several TCP mechanisms depend on the reception of ICMP error messages
triggered by the transmission of TCP segments. One such mechanism is triggered by the transmission of TCP segments. One such mechanism is
path MTU discovery, which is required for correct operation of TCP. path MTU discovery, which is required for correct operation of TCP.
R29: If a gateway forwards a TCP connection, it MUST also forward R30: If a gateway forwards a TCP connection, it MUST also forward
ICMP Destination Unreachable messages containing TCP headers that ICMP Destination Unreachable messages containing TCP headers that
match the connection state record. match the connection state record.
R30: Receipt of any sort of ICMP message MUST NOT terminate the state R31: Receipt of any sort of ICMP message MUST NOT terminate the state
record for a TCP connection. record for a TCP connection.
3.3.2. SCTP Filters 3.3.2. SCTP Filters
Because Stream Control Transmission Protocol (SCTP) [RFC4960] Because Stream Control Transmission Protocol (SCTP) [RFC4960]
connections can be terminated at multiple network addresses, IPv6 connections can be terminated at multiple network addresses, IPv6
simple security functions cannot achieve full transparency for SCTP simple security functions cannot achieve full transparency for SCTP
applications. In multipath traversal scenarios, full transparency applications. In multipath traversal scenarios, full transparency
requires coordination between all the packet filter processes in the requires coordination between all the packet filter processes in the
various paths between the endpoint network addresses. Such various paths between the endpoint network addresses. Such
skipping to change at page 15, line 38 skipping to change at page 16, line 23
of the peers in simultaneous-open mode of operation will send an of the peers in simultaneous-open mode of operation will send an
ERROR or ABORT chunk along with the INIT-ACK chunk. The association ERROR or ABORT chunk along with the INIT-ACK chunk. The association
is established at each endpoint once an INIT-ACK chunks is is established at each endpoint once an INIT-ACK chunks is
receivedA at one end without an ERROR or ABORT chunk. receivedA at one end without an ERROR or ABORT chunk.
To provide stateful packet filtering service for SCTP, it is To provide stateful packet filtering service for SCTP, it is
necessary for a filter to receive, process and forward all packets necessary for a filter to receive, process and forward all packets
for an association that conform to valid transitions of the SCTP for an association that conform to valid transitions of the SCTP
state machine (Fig. 3, [RFC4960]). state machine (Fig. 3, [RFC4960]).
R31: All valid sequences of SCTP packets (defined in [RFC4960]) MUST R32: All valid sequences of SCTP packets (defined in [RFC4960]) MUST
be forwarded for outbound associations and explicitly permitted be forwarded for outbound associations and explicitly permitted
inbound associations. In particular, both the normal SCTP inbound associations. In particular, both the normal SCTP
association establishment and simultaneous-open modes of operation association establishment and simultaneous-open modes of operation
MUST be supported. MUST be supported.
If an inbound INIT packet is filtered, either because a corresponding If an inbound INIT packet is filtered, either because a corresponding
state record does not exist or because of the filter's normal state record does not exist or because of the filter's normal
behavior, a filter has two basic choices: to discard the packet behavior, a filter has two basic choices: to discard the packet
silently, or to signal an error to the sender. Signaling an error silently, or to signal an error to the sender. Signaling an error
through ICMP messages allows the sender to detect that the INIT through ICMP messages allows the sender to detect that the INIT
packet did not reach the intended destination. Discarding the packet did not reach the intended destination. Discarding the
packet, on the other hand, allows applications to perform packet, on the other hand, allows applications to perform
simultaneous-open more reliably. Delays in signaling errors can simultaneous-open more reliably. Delays in signaling errors can
prevent the impairment of simultaneous-open mode of operation. prevent the impairment of simultaneous-open mode of operation.
R32: By DEFAULT, a gateway MUST respond with an ICMP Destination R33: By DEFAULT, a gateway MUST respond with an ICMP Destination
Unreachable error (administratively prohibited) to any unsolicited Unreachable error (administratively prohibited) to any unsolicited
inbound INIT packet after waiting at least 6 seconds without first inbound INIT packet after waiting at least 6 seconds without first
forwarding the associated outbound INIT from the interior peer. forwarding the associated outbound INIT from the interior peer.
An SCTP filter maintains state associated with in-progress and An SCTP filter maintains state associated with in-progress and
established associations. Because of this, a filter is susceptible established associations. Because of this, a filter is susceptible
to a resource-exhaustion attack whereby an attacker (or virus) on the to a resource-exhaustion attack whereby an attacker (or virus) on the
interior attempts to cause the filter to exhaust its capacity for interior attempts to cause the filter to exhaust its capacity for
creating state records. To defend against such attacks, a filter creating state records. To defend against such attacks, a filter
needs to abandon unused state records after a sufficiently long needs to abandon unused state records after a sufficiently long
skipping to change at page 17, line 6 skipping to change at page 17, line 40
The "established association idle-timeout" for a stateful packet The "established association idle-timeout" for a stateful packet
filter is defined as the minimum time an SCTP association in the filter is defined as the minimum time an SCTP association in the
established phase must remain idle before the filter considers the established phase must remain idle before the filter considers the
corresponding state record a candidate for collection. The corresponding state record a candidate for collection. The
"transitory association idle-timeout" for a filter is defined as the "transitory association idle-timeout" for a filter is defined as the
minimum time an SCTP association in the partially-open or closing minimum time an SCTP association in the partially-open or closing
phases must remain idle before the filter considers the corresponding phases must remain idle before the filter considers the corresponding
state record a candidate for collection. state record a candidate for collection.
R33: If a gateway cannot determine whether the endpoints of an SCTP R34: If a gateway cannot determine whether the endpoints of an SCTP
association are active, then it MAY abandon the state record if it 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 has been idle for some time. In such cases, the value of the
"established association idle-timeout" MUST NOT be less than two "established association idle-timeout" MUST NOT be less than two
hours four minutes. The value of the "transitory association idle- hours four minutes. The value of the "transitory association idle-
timeout" MUST NOT be less than four minutes. The value of the idle- timeout" MUST NOT be less than four minutes. The value of the idle-
timeouts MAY be configurable by the network administrator. timeouts MAY be configurable by the network administrator.
Behavior for handling ERROR and ABORT packets is left unspecified. A Behavior for handling ERROR and ABORT packets is left unspecified. A
gateway MAY hold state for an association after its closing phases gateway MAY hold state for an association after its closing phases
have completed to accommodate retransmissions of its final SHUTDOWN have completed to accommodate retransmissions of its final SHUTDOWN
skipping to change at page 17, line 41 skipping to change at page 18, line 26
left unspecified. When a gateway abandons a live association, for left unspecified. When a gateway abandons a live association, for
example due to a timeout expiring, the filter MAY send an ABORT example due to a timeout expiring, the filter MAY send an ABORT
packet to each endpoint on behalf of the other. Sending an ABORT packet to each endpoint on behalf of the other. Sending an ABORT
notification allows endpoint applications to recover more quickly, notification allows endpoint applications to recover more quickly,
however, notifying endpoints might not always be possible if, for however, notifying endpoints might not always be possible if, for
example, state records are lost due to power interruption. example, state records are lost due to power interruption.
Several SCTP mechanisms depend on the reception of ICMP error Several SCTP mechanisms depend on the reception of ICMP error
messages triggered by the transmission of SCTP packets. messages triggered by the transmission of SCTP packets.
R34: If a gateway forwards an SCTP association, it MUST also forward R35: If a gateway forwards an SCTP association, it MUST also forward
ICMP Destination Unreachable messages containing SCTP headers that ICMP Destination Unreachable messages containing SCTP headers that
match the association state record. match the association state record.
R35: Receipt of any sort of ICMP message MUST NOT terminate the state R36: Receipt of any sort of ICMP message MUST NOT terminate the state
record for an SCTP association. record for an SCTP association.
3.3.3. DCCP Filters 3.3.3. DCCP Filters
The connection semantics described in Datagram Congestion Control The connection semantics described in Datagram Congestion Control
Protocol (DCCP) [RFC4340] are very similar to those of TCP. An Protocol (DCCP) [RFC4340] are very similar to those of TCP. An
interior endpoint initiates a DCCP connection through a stateful interior endpoint initiates a DCCP connection through a stateful
packet filter by sending a DCCP-Request packet. Simultaneous open is packet filter by sending a DCCP-Request packet. Simultaneous open is
not defined for DCCP. not defined for DCCP.
In order to provide stateful packet filtering service for DCCP, it is In order to provide stateful packet filtering service for DCCP, it is
necessary for a filter to receive, process and forward all packets necessary for a filter to receive, process and forward all packets
for a connection that conform to valid transitions of the DCCP state for a connection that conform to valid transitions of the DCCP state
machine (Section 8, [RFC4340]). machine (Section 8, [RFC4340]).
R36: All valid sequences of DCCP packets (defined in [RFC4340]) MUST R37: All valid sequences of DCCP packets (defined in [RFC4340]) MUST
be forwarded for all connections to exterior servers and those be forwarded for all connections to exterior servers and those
connections to interior servers with explicitly permitted service connections to interior servers with explicitly permitted service
codes. codes.
It is possible to reconstruct enough of the state of a DCCP It is possible to reconstruct enough of the state of a DCCP
connection to allow forwarding between an interior and exterior node connection to allow forwarding between an interior and exterior node
even when the filter starts operating after DCCP enters the OPEN even when the filter starts operating after DCCP enters the OPEN
state. Also, a filter can allow an existing state record to be state. Also, a filter can allow an existing state record to be
reused by an externally initiated connection if its security policy reused by an externally initiated connection if its security policy
permits. As with TCP, several different policies are possible, with permits. As with TCP, several different policies are possible, with
a good discussion of the issue involved presented in Network Address a good discussion of the issue involved presented in Network Address
Translation (NAT) Behavioral Requirements for Unicast UDP [RFC4787] Translation (NAT) Behavioral Requirements for Unicast UDP [RFC4787]
and extended in NAT Behaviorial Requirements for TCP [RFC5382]. and extended in NAT Behavioral Requirements for TCP [RFC5382].
If an inbound DCCP-Request packet is filtered, either because a If an inbound DCCP-Request packet is filtered, either because a
corresponding state record does not already exist for it or because corresponding state record does not already exist for it or because
of the filter's normal behavior of refusing connections not of the filter's normal behavior of refusing connections not
explicitly permitted, then a filter has two basic choices: to discard explicitly permitted, then a filter has two basic choices: to discard
the packet silently, or to signal an error to the sender. Signaling the packet silently, or to signal an error to the sender. Signaling
an error through ICMP messages allows the sender to detect that the an error through ICMP messages allows the sender to detect that the
DCCP-Request did not reach the intended destination. Discarding the DCCP-Request did not reach the intended destination. Discarding the
packet, on the other hand, only delays the failure to connect and packet, on the other hand, only delays the failure to connect and
provides no measurable security. provides no measurable security.
skipping to change at page 19, line 22 skipping to change at page 20, line 6
The "open connection idle-timeout" for a stateful packet filter is The "open connection idle-timeout" for a stateful packet filter is
defined as the minimum time a DCCP connection in the open state must defined as the minimum time a DCCP connection in the open state must
remain idle before the filter considers the associated state record a remain idle before the filter considers the associated state record a
candidate for collection. The "transitory connection idle-timeout" candidate for collection. The "transitory connection idle-timeout"
for a filter is defined as the minimum time a DCCP connection in the for a filter is defined as the minimum time a DCCP connection in the
partially-open or closing phases must remain idle before the filter partially-open or closing phases must remain idle before the filter
considers the associated state record a candidate for collection. considers the associated state record a candidate for collection.
DCCP connections in the TIMEWAIT state are not affected by the DCCP connections in the TIMEWAIT state are not affected by the
"transitory connection idle-timeout" parameter. "transitory connection idle-timeout" parameter.
R37: A gateway MAY abandon a DCCP state record if it has been idle R38: A gateway MAY abandon a DCCP state record if it has been idle
for some time. In such cases, the value of the "established for some time. In such cases, the value of the "established
connection idle-timeout" MUST NOT be less than two hours four connection idle-timeout" MUST NOT be less than two hours four
minutes. The value of the "transitory connection idle-timeout" MUST minutes. The value of the "transitory connection idle-timeout" MUST
NOT be less than eight minutes. The value of the idle-timeouts MAY NOT be less than eight minutes. The value of the idle-timeouts MAY
be configurable by the network administrator. be configurable by the network administrator.
Behavior for handing DCCP-Reset packets, or connections in the Behavior for handing DCCP-Reset packets, or connections in the
TIMEWAIT state is left unspecified. A gateway MAY hold state for a TIMEWAIT state is left unspecified. A gateway MAY hold state for a
connection in TIMEWAIT state to accommodate retransmissions of the connection in TIMEWAIT state to accommodate retransmissions of the
last DCCP-Reset. However, since the TIMEWAIT state is commonly last DCCP-Reset. However, since the TIMEWAIT state is commonly
skipping to change at page 20, line 11 skipping to change at page 20, line 44
packet to each endpoint on behalf of the other. Sending a DCCP-Reset packet to each endpoint on behalf of the other. Sending a DCCP-Reset
notification allows endpoint applications to recover more quickly, notification allows endpoint applications to recover more quickly,
however, notifying endpoints might not always be possible if, for however, notifying endpoints might not always be possible if, for
example, state records are lost due to power interruption. example, state records are lost due to power interruption.
Several DCCP mechanisms depend on the reception of ICMP error Several DCCP mechanisms depend on the reception of ICMP error
messages triggered by the transmission of DCCP packets. One such messages triggered by the transmission of DCCP packets. One such
mechanism is path MTU discovery, which is required for correct mechanism is path MTU discovery, which is required for correct
operation. operation.
R38: If a gateway forwards a DCCP connection, it MUST also forward R39: If a gateway forwards a DCCP connection, it MUST also forward
ICMP Destination Unreachable messages containing DCCP headers that ICMP Destination Unreachable messages containing DCCP headers that
match the connection state record. match the connection state record.
R39: Receipt of any sort of ICMP message MUST NOT terminate the state R40: Receipt of any sort of ICMP message MUST NOT terminate the state
record for a DCCP connection. record for a DCCP connection.
3.3.4. Level 3 Multihoming Shim Protocol for IPv6 (SHIM6)
IPv6 simple security is applicable to residential networks with only
one default router, i.e. a single residential gateway to exactly one
Internet service provider. The use of Level 3 Multihoming Shim
Protocol for IPv6 (SHIM6) [I-D.ietf-shim6-proto] as a site multi-
homing solution is not generally compatible with IPv6 simple
security.
Residential gateways that are capable of site multi-homing
simultaneously on more than one exterior network link SHOULD
reference addresses in SHIM6 headers when comparing and creating
filter state corresponding to interior endpoint hosts.
3.4. Passive Listeners 3.4. Passive Listeners
Some applications expect to solicit traffic from exterior nodes Some applications expect to solicit traffic from exterior nodes
without any advance knowledge of the exterior address. This without any advance knowledge of the exterior address. This
requirement is met by IPv4/NAT gateways typically by the use of requirement is met by IPv4/NAT gateways typically by the use of
either [I-D.cheshire-nat-pmp] or [UPnP-IGD]. either [I-D.cheshire-nat-pmp] or [UPnP-IGD].
One proposal that has been offered as an Internet Draft is the One proposal that has been offered as an Internet Draft is the
Application Listener Discovery Protocol [I-D.woodyatt-ald]. It Application Listener Discovery Protocol [I-D.woodyatt-ald]. It
remains to be seen whether the Internet Gateway Device profile of the remains to be seen whether the Internet Gateway Device profile of the
skipping to change at page 21, line 5 skipping to change at page 22, line 5
requirements of [RFC3979], [RFC4879] and [RFC5378]. requirements of [RFC3979], [RFC4879] and [RFC5378].
4. Summary of Recommendations 4. Summary of Recommendations
This section collects all of the recommendations made in this This section collects all of the recommendations made in this
document into a convenient list. document into a convenient list.
R1 Packets bearing in their outer IPv6 headers multicast source R1 Packets bearing in their outer IPv6 headers multicast source
addresses MUST NOT be forwarded or transmitted on any interface. addresses MUST NOT be forwarded or transmitted on any interface.
R2 Packets bearing in their outer IPv6 headers multicast destination R2 Packets which bear in their outer IPv6 headers multicast
addresses of equal or narrower scope that the configured scope destination addresses of equal or narrower scope (see section 2.7
boundary level of the gateway MUST NOT be forwarded in any of IP Version 6 Addressing Architecture [RFC4291]) than the
direction. The DEFAULT scope boundary level SHOULD be configured scope boundary level of the gateway MUST NOT be
organization-local scope. forwarded in any direction. The DEFAULT scope boundary level
SHOULD be organization-local scope, and it SHOULD be configurable
by the network admininistrator.
R3 Packets bearing deprecated extension headers prior to their first R3 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 addresses with IPv4-Mapped, IPv4-Compatible,
Documentation and ORCHID prefixes.
R4 Packets bearing deprecated extension headers prior to their first
upper-layer-protocol header SHOULD NOT be forwarded or transmitted upper-layer-protocol header SHOULD NOT be forwarded or transmitted
on any interface. In particular, all packets with routing on any interface. In particular, all packets with routing
extension header type 0 [RFC2460] preceding the first upper-layer- extension header type 0 [RFC2460] preceding the first upper-layer-
protocol header MUST NOT be forwarded. protocol header MUST NOT be forwarded. (See [RFC5095] for
additional background.)
R4 Outbound packets MUST NOT be forwarded if the source address in R5 Outbound packets MUST NOT be forwarded if the source address in
their outer IPv6 header does not have a unicast prefix assigned their outer IPv6 header does not have a unicast prefix assigned
for use by globally reachable nodes on the interior network. for use by globally reachable nodes on the interior network.
R5 Inbound packets MUST NOT be forwarded if the source address in R6 Inbound packets MUST NOT be forwarded if the source address in
their outer IPv6 header has a global unicast prefix assigned for their outer IPv6 header has a global unicast prefix assigned for
use by globally reachable nodes on the interior network. use by globally reachable nodes on the interior network.
R6 By DEFAULT, packets with unique local source and/or destination R7 By DEFAULT, packets with unique local source and/or destination
addresses [RFC4193] SHOULD NOT be forwarded to or from the addresses [RFC4193] SHOULD NOT be forwarded to or from the
exterior network. exterior network.
R7 By DEFAULT, inbound non-recursive DNS queries received on exterior R8 By DEFAULT, inbound non-recursive DNS queries received on exterior
interfaces MUST NOT be processed by any integrated DNS proxy interfaces MUST NOT be processed by any integrated DNS proxy
resolving server. resolving server.
R8 Inbound DHCP discovery packets received on exterior interfaces R9 Inbound DHCP discovery packets received on exterior interfaces
MUST NOT be processed by any integrated DHCP server. MUST NOT be processed by any integrated DHCP server.
R9 Filter state records for generic upper-layer transport protocols R10 Filter state records for generic upper-layer transport protocols
MUST BE indexable by a 3-tuple comprising the interior node MUST BE indexable by a 3-tuple comprising the interior node
address, the exterior node address and the upper-layer transport address, the exterior node address and the upper-layer transport
protocol identifier. protocol identifier.
R10 Filter state records for generic upper-layer transport protocols R11 Filter state records for generic upper-layer transport protocols
MUST NOT be deleted or recycled until an idle timer not less than MUST NOT be deleted or recycled until an idle timer not less than
two minutes has expired without having forwarded a packet matching two minutes has expired without having forwarded a packet matching
the state in some configurable amount of time. By DEFAULT, the the state in some configurable amount of time. By DEFAULT, the
idle timer for such state records is five minutes. idle timer for such state records is five minutes.
R11 A state record for a UDP exchange where both interior and R12 A state record for a UDP exchange where both interior and
exterior ports are outside the well-known port range (ports exterior ports are outside the well-known port range (ports
0-1023) MUST NOT expire in less than two minutes of idle time. 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 value of the UDP state record idle timer MAY be configurable.
The DEFAULT is five minutes. The DEFAULT is five minutes.
R12 A state record for a UDP exchange where one or both of the R13 A state record for a UDP exchange where one or both of the
interior and exterior ports are in the well-known port range interior and exterior ports are in the well-known port range
(ports 0-1023) MAY expire after a period of idle time shorter than (ports 0-1023) MAY expire after a period of idle time shorter than
two minutes to facilitate the operation of the IANA-registered two minutes to facilitate the operation of the IANA-registered
service assigned to the port in question. service assigned to the port in question.
R13 A state record for a UDP exchange MUST be refreshed when a R14 A state record for a UDP exchange MUST be refreshed when a
packet is forwarded from the interior to the exterior, and it MAY packet is forwarded from the interior to the exterior, and it MAY
be refreshed when a packet is forwarded in the reverse direction. be refreshed when a packet is forwarded in the reverse direction.
R14 If application transparency is most important, then a stateful R15 If application transparency is most important, then a stateful
packet filter SHOULD have "Endpoint independent filter" behavior packet filter SHOULD have "Endpoint independent filter" behavior
for UDP. If a more stringent filtering behavior is most for UDP. If a more stringent filtering behavior is most
important, then a filter SHOULD have "Address dependent filtering" important, then a filter SHOULD have "Address dependent filtering"
behavior. The filtering behavior MAY be an option configurable by behavior. The filtering behavior MAY be an option configurable by
the network administrator, and it MAY be independent of the the network administrator, and it MAY be independent of the
filtering behavior for TCP and other protocols. filtering behavior for TCP and other protocols. Filtering
behavior SHOULD by endpoint independent by DEFAULT in gateways
intended for provisioning without service-provider management.
R15 If a gateway forwards a UDP exchange, it MUST also forward ICMP R16 If a gateway forwards a UDP exchange, it MUST also forward ICMP
Destination Unreachable messages containing UDP headers that match Destination Unreachable messages containing UDP headers that match
the exchange state record. the exchange state record.
R16 Receipt of any sort of ICMP message MUST NOT terminate the state R17 Receipt of any sort of ICMP message MUST NOT terminate the state
record for a UDP exchange. record for a UDP exchange.
R17 UDP-Lite exchanges [RFC3828] SHOULD be handled in the same way R18 UDP-Lite exchanges [RFC3828] SHOULD be handled in the same way
as UDP exchanges, except that the upper-layer transport protocol as UDP exchanges, except that the upper-layer transport protocol
identifier for UDP-Lite is not the same as UDP, and therefore UDP identifier for UDP-Lite is not the same as UDP, and therefore UDP
packets MUST NOT match UDP-Lite state records, and vice versa. packets MUST NOT match UDP-Lite state records, and vice versa.
R18 Where a globally routed IPv6 prefix is advertised on an interior R19 Where a globally routed IPv6 prefix is advertised on an interior
interface and IPv4 Internet service is provided with NAT interface and IPv4 Internet service is provided with NAT
[RFC4787], the Teredo qualification procedure (see section 5.2.1 [RFC4787], the Teredo qualification procedure (see section 5.2.1
and 5.2.2 of [RFC4380]) for clients in the interior MUST be and 5.2.2 of [RFC4380]) for clients in the interior MUST be
prohibited by the IPv4/NAT stateful filter. This SHOULD be done prohibited by the IPv4/NAT stateful filter. This SHOULD be done
by blocking outbound UDP initiations to port 3544, the port by blocking outbound UDP initiations to port 3544, the port
reserved by IANA for Teredo servers. reserved by IANA for Teredo servers.
R19 In their DEFAULT operating mode, IPv6 gateways MUST NOT prohibit R20 In their DEFAULT operating mode, IPv6 gateways MUST NOT prohibit
the forwarding of packets, to and from legitimate node addresses, the forwarding of packets, to and from legitimate node addresses,
with destination extension headers of type "Authenticated Header with destination extension headers of type "Authenticated Header
(AH)" [RFC4302] in their outer IP extension header chain. (AH)" [RFC4302] in their outer IP extension header chain.
R20 In their DEFAULT operating mode, IPv6 gateways MUST NOT prohibit R21 In their DEFAULT operating mode, IPv6 gateways MUST NOT prohibit
the forwarding of packets, to and from legitimate node addresses, the forwarding of packets, to and from legitimate node addresses,
with an upper layer protocol of type "Encapsulating Security with an upper layer protocol of type "Encapsulating Security
Payload (ESP)" [RFC4303] in their outer IP extension header chain. Payload (ESP)" [RFC4303] in their outer IP extension header chain.
R21 In their DEFAULT operating mode, IPv6 gateways MUST NOT prohibit R22 In their DEFAULT operating mode, IPv6 gateways MUST NOT prohibit
the forwarding of any UDP packets, to and from legitimate node the forwarding of any UDP packets, to and from legitimate node
addresses, with a destination port of 500, i.e. the port reserved addresses, with a destination port of 500, i.e. the port reserved
by IANA for the Internet Key Exchange Protocol [RFC4306]. by IANA for the Internet Key Exchange Protocol [RFC4306].
R22 In their DEFAULT operating mode, IPv6 gateways MUST NOT prohibit R23 In their DEFAULT operating mode, IPv6 gateways MUST NOT prohibit
the forwarding, to and from legitimate node addresses, with upper the forwarding, to and from legitimate node addresses, with upper
layer protocol of type IP version 6, and SHOULD NOT prohibit the layer protocol of type IP version 6, and SHOULD NOT prohibit the
forwarding of other tunneled networking protocols commonly used forwarding of other tunneled networking protocols commonly used
for virtual private networking, e.g. IP version 4, Generic for virtual private networking, e.g. IP version 4, Generic
Routing Encapsulation, etcetera. Routing Encapsulation, etcetera.
R23 In all operating modes, IPv6 gateways SHOULD use filter state R24 In all operating modes, IPv6 gateways SHOULD use filter state
records for Encapsulating Security Payload (ESP) [RFC4303] that records for Encapsulating Security Payload (ESP) [RFC4303] that
are indexable by a 3-tuple comprising the interior node address, are indexable by a 3-tuple comprising the interior node address,
the exterior node address and the ESP protocol identifier. In the exterior node address and the ESP protocol identifier. In
particular, the IPv4/NAT method of indexing state records also by particular, the IPv4/NAT method of indexing state records also by
security parameters index (SPI) SHOULD NOT be used. Likewise, any security parameters index (SPI) SHOULD NOT be used. Likewise, any
mechanism that depends on detection of Internet Key Exchange (IKE) mechanism that depends on detection of Internet Key Exchange (IKE)
[RFC4306] initiations SHOULD NOT be used. [RFC4306] initiations SHOULD NOT be used.
R24 All valid sequences of TCP packets (defined in [RFC0793]) MUST R25 All valid sequences of TCP packets (defined in [RFC0793]) MUST
be forwarded for outbound connections and explicitly permitted be forwarded for outbound connections and explicitly permitted
inbound connections. In particular, both the normal TCP 3-way inbound connections. In particular, both the normal TCP 3-way
handshake mode of operation and the simultaneous-open modes of handshake mode of operation and the simultaneous-open modes of
operation MUST be supported. operation MUST be supported.
R25 The TCP window invariant MUST NOT be enforced on connections for R26 The TCP window invariant MUST NOT be enforced on connections for
which the filter did not detect whether the window-scale option which the filter did not detect whether the window-scale option
(see [RFC1323]) was sent in the 3-way handshake or simultaneous (see [RFC1323]) was sent in the 3-way handshake or simultaneous
open. open.
R26 If application transparency is most important, then a stateful R27 If application transparency is most important, then a stateful
packet filter SHOULD have "Endpoint independent filter" behavior packet filter SHOULD have "Endpoint independent filter" behavior
for TCP. If a more stringent filtering behavior is most for TCP. If a more stringent filtering behavior is most
important, then a filter SHOULD have "Address dependent filtering" important, then a filter SHOULD have "Address dependent filtering"
behavior. The filtering behavior MAY be an option configurable by behavior. The filtering behavior MAY be an option configurable by
the network administrator, and it MAY be independent of the the network administrator, and it MAY be independent of the
filtering behavior for UDP and other protocols. filtering behavior for UDP and other protocols. Filtering
behavior SHOULD by endpoint independent by DEFAULT in gateways
intended for provisioning without service-provider management.
R27 By DEFAULT, a gateway MUST respond with an ICMP Destination R28 By DEFAULT, a gateway MUST respond with an ICMP Destination
Unreachable error (administratively prohibited) to any unsolicited Unreachable error (administratively prohibited) to any unsolicited
inbound SYN packet after waiting at least 6 seconds without first inbound SYN packet after waiting at least 6 seconds without first
forwarding the associated outbound SYN or SYN/ACK from the forwarding the associated outbound SYN or SYN/ACK from the
interior peer. interior peer.
R28 If a gateway cannot determine whether the endpoints of a TCP R29 If a gateway cannot determine whether the endpoints of a TCP
connection are active, then it MAY abandon the state record if it connection are active, then it MAY abandon the state record if it
has been idle for some time. In such cases, the value of the has been idle for some time. In such cases, the value of the
"established connection idle-timeout" MUST NOT be less than two "established connection idle-timeout" MUST NOT be less than two
hours four minutes, as discussed in [RFC5382]. The value of the hours four minutes, as discussed in [RFC5382]. The value of the
"transitory connection idle-timeout" MUST NOT be less than four "transitory connection idle-timeout" MUST NOT be less than four
minutes. The value of the idle-timeouts MAY be configurable by minutes. The value of the idle-timeouts MAY be configurable by
the network administrator. the network administrator.
R29 If a gateway forwards a TCP connection, it MUST also forward R30 If a gateway forwards a TCP connection, it MUST also forward
ICMP Destination Unreachable messages containing TCP headers that ICMP Destination Unreachable messages containing TCP headers that
match the connection state record. match the connection state record.
R30 Receipt of any sort of ICMP message MUST NOT terminate the state R31 Receipt of any sort of ICMP message MUST NOT terminate the state
record for a TCP connection. record for a TCP connection.
R31 All valid sequences of SCTP packets (defined in [RFC4960]) MUST R32 All valid sequences of SCTP packets (defined in [RFC4960]) MUST
be forwarded for outbound associations and explicitly permitted be forwarded for outbound associations and explicitly permitted
inbound associations. In particular, both the normal SCTP inbound associations. In particular, both the normal SCTP
association establishment and simultaneous-open modes of operation association establishment and simultaneous-open modes of operation
MUST be supported. MUST be supported.
R32 By DEFAULT, a gateway MUST respond with an ICMP Destination R33 By DEFAULT, a gateway MUST respond with an ICMP Destination
Unreachable error (administratively prohibited) to any unsolicited Unreachable error (administratively prohibited) to any unsolicited
inbound INIT packet after waiting at least 6 seconds without first inbound INIT packet after waiting at least 6 seconds without first
forwarding the associated outbound INIT from the interior peer. forwarding the associated outbound INIT from the interior peer.
R33 A gateway MUST NOT signal an error for an unsolicited inbound
INIT packet for at least 6 seconds after the packet is received.
If during this interval the gateway receives and forwards an
outbound INIT packet for the association, the the gateway MUST
discard the original unsolicited inbound INIT packet without
signaling an error. Otherwise, the gateway SHOULD send an ICMP
Destination Unreachable error, code 1 (administratively
prohibited) for the original INIT-- unless sending any response
violates the security policy of the network administrator.
R34 If a gateway cannot determine whether the endpoints of an SCTP R34 If a gateway cannot determine whether the endpoints of an SCTP
association are active, then it MAY abandon the state record if it 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 has been idle for some time. In such cases, the value of the
"established association idle-timeout" MUST NOT be less than two "established association idle-timeout" MUST NOT be less than two
hours four minutes. The value of the "transitory association hours four minutes. The value of the "transitory association
idle-timeout" MUST NOT be less than four minutes. The value of idle-timeout" MUST NOT be less than four minutes. The value of
the idle-timeouts MAY be configurable by the network the idle-timeouts MAY be configurable by the network
administrator. administrator.
R35 If a gateway forwards an SCTP association, it MUST also forward R35 If a gateway forwards an SCTP association, it MUST also forward
skipping to change at page 25, line 47 skipping to change at page 27, line 4
5. Contributors 5. Contributors
Comments and criticisms during the development of this document were Comments and criticisms during the development of this document were
received from the following IETF participants: received from the following IETF participants:
Fred Baker Fred Baker
Norbert Bollow Norbert Bollow
Brian Carpenter Brian Carpenter
RA(C)mi DesprA(C)s
Fabrice Fontaine
Jun-ichiro itojun Hagino Jun-ichiro itojun Hagino
Thomas Herbst Thomas Herbst
Christian Huitema Christian Huitema
Joel Jaeggli
Cullen Jennings Cullen Jennings
Suresh Krishnan Suresh Krishnan
Erik Kline Erik Kline
Kurt Erik Lindqvist Kurt Erik Lindqvist
Iljitsch van Beijnum Keith Moore
Robert Moskowitz
Teemu Savolainen
Hemant Singh
Yaron Sheffer Yaron Sheffer
Iljitsch van Beijnum
Dan Wing Dan Wing
Much of the text describing the detailed requirements for TCP and UDP The editor thanks them all for their contributions.
filtering is derived or transposed from [RFC4787] and [RFC5382], and
some form of attribution here may therefore be appopriate. 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, deserve substantial credit
for the form of the present document, as well.
6. IANA Considerations 6. IANA Considerations
This memo includes no request to IANA. This memo includes no request to IANA.
7. Security Considerations 7. Security Considerations
The IPv6 stateful filtering behavior described in this document is The IPv6 stateful filtering behavior described in this document is
intended to be similar in function to the filtering behavior of intended to be similar in function to the filtering behavior of
commonly use IPv4/NAT gateways, which have been widely sold as a commonly use IPv4/NAT gateways, which have been widely sold as a
security tool for residential and small-offce/home-office networks. security tool for residential and small-office/home-office networks.
As noted in the security considerations section of [RFC2993], the As noted in the security considerations section of [RFC2993], the
true impact of these tools may be a reduction in security. It may be true impact of these tools may be a reduction in security. It may be
generally assumed that the impacts discussed there related to generally assumed that the impacts discussed there related to
filtering (and not translation) are to be expected with the simple filtering (and not translation) are to be expected with the simple
IPv6 security mechanisms described here. IPv6 security mechanisms described here.
In particular, it's worth noting that stateful filters create the In particular, it's worth noting that stateful filters create the
illusion of a security barrier, but without the managed intent of a illusion of a security barrier, but without the managed intent of a
firewall. Appropriate security mechanisms implemented in the end firewall. Appropriate security mechanisms implemented in the end
nodes, in conjunction with the [RFC4864] local network protection nodes, in conjunction with the [RFC4864] local network protection
skipping to change at page 27, line 36 skipping to change at page 29, line 10
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
Requirement Levels", BCP 14, RFC 2119, March 1997. Requirement Levels", BCP 14, RFC 2119, March 1997.
[RFC2460] Deering, S. and R. Hinden, "Internet Protocol, Version 6 [RFC2460] Deering, S. and R. Hinden, "Internet Protocol, Version 6
(IPv6) Specification", RFC 2460, December 1998. (IPv6) Specification", RFC 2460, December 1998.
[RFC3828] Larzon, L-A., Degermark, M., Pink, S., Jonsson, L-E., and [RFC3828] Larzon, L-A., Degermark, M., Pink, S., Jonsson, L-E., and
G. Fairhurst, "The Lightweight User Datagram Protocol G. Fairhurst, "The Lightweight User Datagram Protocol
(UDP-Lite)", RFC 3828, July 2004. (UDP-Lite)", RFC 3828, July 2004.
[RFC3879] Huitema, C. and B. Carpenter, "Deprecating Site Local
Addresses", RFC 3879, September 2004.
[RFC3979] Bradner, S., "Intellectual Property Rights in IETF [RFC3979] Bradner, S., "Intellectual Property Rights in IETF
Technology", BCP 79, RFC 3979, March 2005. Technology", BCP 79, RFC 3979, March 2005.
[RFC4193] Hinden, R. and B. Haberman, "Unique Local IPv6 Unicast [RFC4193] Hinden, R. and B. Haberman, "Unique Local IPv6 Unicast
Addresses", RFC 4193, October 2005. Addresses", RFC 4193, October 2005.
[RFC4291] Hinden, R. and S. Deering, "IP Version 6 Addressing
Architecture", RFC 4291, February 2006.
[RFC4302] Kent, S., "IP Authentication Header", RFC 4302, [RFC4302] Kent, S., "IP Authentication Header", RFC 4302,
December 2005. December 2005.
[RFC4303] Kent, S., "IP Encapsulating Security Payload (ESP)", [RFC4303] Kent, S., "IP Encapsulating Security Payload (ESP)",
RFC 4303, December 2005. RFC 4303, December 2005.
[RFC4306] Kaufman, C., "Internet Key Exchange (IKEv2) Protocol", [RFC4306] Kaufman, C., "Internet Key Exchange (IKEv2) Protocol",
RFC 4306, December 2005. RFC 4306, December 2005.
[RFC4340] Kohler, E., Handley, M., and S. Floyd, "Datagram [RFC4340] Kohler, E., Handley, M., and S. Floyd, "Datagram
skipping to change at page 28, line 17 skipping to change at page 29, line 45
Network Address Translations (NATs)", RFC 4380, Network Address Translations (NATs)", RFC 4380,
February 2006. February 2006.
[RFC4787] Audet, F. and C. Jennings, "Network Address Translation [RFC4787] Audet, F. and C. Jennings, "Network Address Translation
(NAT) Behavioral Requirements for Unicast UDP", BCP 127, (NAT) Behavioral Requirements for Unicast UDP", BCP 127,
RFC 4787, January 2007. RFC 4787, January 2007.
[RFC4879] Narten, T., "Clarification of the Third Party Disclosure [RFC4879] Narten, T., "Clarification of the Third Party Disclosure
Procedure in RFC 3979", BCP 79, RFC 4879, April 2007. Procedure in RFC 3979", BCP 79, RFC 4879, April 2007.
[RFC4884] Bonica, R., Gan, D., Tappan, D., and C. Pignataro,
"Extended ICMP to Support Multi-Part Messages", RFC 4884,
April 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", [RFC4960] Stewart, R., "Stream Control Transmission Protocol",
RFC 4960, September 2007. 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.
[RFC5378] Bradner, S. and J. Contreras, "Rights Contributors Provide [RFC5378] Bradner, S. and J. Contreras, "Rights Contributors Provide
to the IETF Trust", BCP 78, RFC 5378, November 2008. to the IETF Trust", BCP 78, RFC 5378, November 2008.
8.2. Informative References 8.2. Informative References
[I-D.cheshire-nat-pmp] [I-D.cheshire-nat-pmp]
Cheshire, S., "NAT Port Mapping Protocol (NAT-PMP)", Cheshire, S., "NAT Port Mapping Protocol (NAT-PMP)",
draft-cheshire-nat-pmp-03 (work in progress), April 2008. draft-cheshire-nat-pmp-03 (work in progress), April 2008.
[I-D.ietf-shim6-proto]
Nordmark, E. and M. Bagnulo, "Shim6: Level 3 Multihoming
Shim Protocol for IPv6", draft-ietf-shim6-proto-12 (work
in progress), February 2009.
[I-D.woodyatt-ald] [I-D.woodyatt-ald]
Woodyatt, J., "Application Listener Discovery (ALD) for Woodyatt, J., "Application Listener Discovery (ALD) for
IPv6", draft-woodyatt-ald-03 (work in progress), IPv6", draft-woodyatt-ald-03 (work in progress),
July 2008. July 2008.
[RFC1122] Braden, R., "Requirements for Internet Hosts - [RFC1122] Braden, R., "Requirements for Internet Hosts -
Communication Layers", STD 3, RFC 1122, October 1989. Communication Layers", STD 3, RFC 1122, October 1989.
[RFC1337] Braden, B., "TIME-WAIT Assassination Hazards in TCP", [RFC1337] Braden, B., "TIME-WAIT Assassination Hazards in TCP",
RFC 1337, May 1992. RFC 1337, May 1992.
[RFC1918] Rekhter, Y., Moskowitz, R., Karrenberg, D., Groot, G., and [RFC1918] Rekhter, Y., Moskowitz, R., Karrenberg, D., Groot, G., and
E. Lear, "Address Allocation for Private Internets", E. Lear, "Address Allocation for Private Internets",
BCP 5, RFC 1918, February 1996. BCP 5, RFC 1918, February 1996.
[RFC2993] Hain, T., "Architectural Implications of NAT", RFC 2993, [RFC2993] Hain, T., "Architectural Implications of NAT", RFC 2993,
November 2000. November 2000.
[RFC3068] Huitema, C., "An Anycast Prefix for 6to4 Relay Routers",
RFC 3068, June 2001.
[RFC4080] Hancock, R., Karagiannis, G., Loughney, J., and S. Van den [RFC4080] Hancock, R., Karagiannis, G., Loughney, J., and S. Van den
Bosch, "Next Steps in Signaling (NSIS): Framework", Bosch, "Next Steps in Signaling (NSIS): Framework",
RFC 4080, June 2005. RFC 4080, June 2005.
[RFC4294] Loughney, J., "IPv6 Node Requirements", RFC 4294, [RFC4294] Loughney, J., "IPv6 Node Requirements", RFC 4294,
April 2006. April 2006.
[RFC4864] Van de Velde, G., Hain, T., Droms, R., Carpenter, B., and [RFC4864] Van de Velde, G., Hain, T., Droms, R., Carpenter, B., and
E. Klein, "Local Network Protection for IPv6", RFC 4864, E. Klein, "Local Network Protection for IPv6", RFC 4864,
May 2007. May 2007.
[RFC4949] Shirey, R., "Internet Security Glossary, Version 2",
RFC 4949, August 2007.
[RFC5189] Stiemerling, M., Quittek, J., and T. Taylor, "Middlebox [RFC5189] Stiemerling, M., Quittek, J., and T. Taylor, "Middlebox
Communication (MIDCOM) Protocol Semantics", RFC 5189, Communication (MIDCOM) Protocol Semantics", RFC 5189,
March 2008. March 2008.
[RFC5382] Guha, S., Biswas, K., Ford, B., Sivakumar, S., and P. [RFC5382] Guha, S., Biswas, K., Ford, B., Sivakumar, S., and P.
Srisuresh, "NAT Behavioral Requirements for TCP", BCP 142, Srisuresh, "NAT Behavioral Requirements for TCP", BCP 142,
RFC 5382, October 2008. RFC 5382, October 2008.
[UPnP-IGD] [UPnP-IGD]
UPnP Forum, "Universal Plug and Play Internet Gateway UPnP Forum, "Universal Plug and Play Internet Gateway
skipping to change at page 32, line 5 skipping to change at page 34, line 5
o Inserted R32 into the summary, which had been skipped. o Inserted R32 into the summary, which had been skipped.
o Removed "alongside an IPv4 private address" and inserted "globally o Removed "alongside an IPv4 private address" and inserted "globally
routed" before the first use of the word "prefix" in R18. routed" before the first use of the word "prefix" in R18.
o Qualify an assertion with "some" in the informative section about o Qualify an assertion with "some" in the informative section about
TCP filters. TCP filters.
o Updated obsolete references to RFC 3989 and RFC 4748. o Updated obsolete references to RFC 3989 and RFC 4748.
A.6. draft-ietf-v6ops-cpe-simple-security-05 to
draft-ietf-v6ops-cpe-simple-security-06
o Corrected some typographical spelling errors.
o Added more names to the contributors section and attempted to
provide better attribution for the editors of previous RFCs.
o Add normative reference to [RFC5095].
o Editorial improvement to Section 2.3.
o Added DEFAULT recommendation for R14 and R26 to use Endpoint-
independent filtering in gateways intended for provisioning
without service-provider management.
o Added informative reference to [RFC4949].
o Added normative references for ICMP6 [RFC4884] and [RFC4890].
o Added normative references to [RFC3879] and [RFC5156] and inserted
new R3 to forbid forwarding packets for addresses forbidden on the
public Internet.
o Removed erroneous recommendation about SCTP INIT from summary
list, which had already been removed from the detailed section in
an earlier revision.
o Added a section describing the irrelevance of 6to4 and an
informative reference to [RFC3068].
o Added normative reference to [RFC4291], and word-smithed R2 to add
a brief discussion about multicast scope boundaries.
o Added a section and an information reference for SHIM6 explaining
why it's incompatible with IPv6 simple security.
Author's Address Author's Address
james woodyatt (editor) james woodyatt (editor)
Apple Inc. Apple Inc.
1 Infinite Loop 1 Infinite Loop
Cupertino, CA 95014 Cupertino, CA 95014
US US
Email: jhw@apple.com Email: jhw@apple.com
 End of changes. 118 change blocks. 
154 lines changed or deleted 298 lines changed or added

This html diff was produced by rfcdiff 1.35. The latest version is available from http://tools.ietf.org/tools/rfcdiff/