<?xml version="1.0" encoding="US-ASCII"?>

<!DOCTYPE rfc SYSTEM "rfc2629.dtd">
<?xml-stylesheet type='text/xsl' href='rfc2629.xslt' ?>

<?rfc rfcedstyle="yes"?>
<?rfc toc="yes"?>
<?rfc tocompact="yes"?>
<?rfc tocdepth="2"?>
<?rfc symrefs="yes"?>
<?rfc sortrefs="yes" ?>
<?rfc compact="yes" ?>
<?rfc subcompact="no" ?>
<!-- end of list of processing instructions -->

<rfc number="7126" seriesNo="186" category="bcp" 
     ipr="trust200902" submissionType="IETF">
  <front>
    <title abbrev="Filtering of IP-Optioned Packets">Recommendations on
    Filtering of IPv4 Packets Containing IPv4 Options</title>

    <author fullname="Fernando Gont" initials="F." surname="Gont">

      <organization abbrev="UTN-FRH / SI6 Networks">UTN-FRH / SI6
      Networks</organization>

      <address>
        <postal>
          <street>Evaristo Carriego 2644</street>

          <code>1706</code>

          <city>Haedo</city>

          <region>Provincia de Buenos Aires</region>

          <country>Argentina</country>
        </postal>

        <phone>+54 11 4650 8472</phone>

        <email>fgont@si6networks.com</email>

        <uri>http://www.si6networks.com</uri>

      </address>
    </author>

    <author fullname="RJ Atkinson" initials="R. J." surname="Atkinson">
      <organization>Consultant</organization>

      <address>
        <postal>
          <street/>

          <code>22103</code>

          <city>McLean</city>

          <region>VA</region>

          <country>USA</country>
        </postal>

        <email>rja.lists@gmail.com</email>
      </address>
    </author>

    <author fullname="Carlos Pignataro" initials="C.M."
	    surname="Pignataro">
      <organization abbrev="Cisco">Cisco Systems, Inc.</organization>

      <address>
        <postal>
          <street>7200-12 Kit Creek Road</street>

          <street/>

          <city>Research Triangle Park</city>

          <code>27709</code>

          <region>NC</region>

          <country>US</country>
        </postal>

        <email>cpignata@cisco.com</email>
      </address>
    </author>

    <date month="January" year="2014" />

    <area>Operations and Management (ops)</area>

    <workgroup>Operational Security Capabilities for IP Network Infrastructure
    (opsec)</workgroup>


<keyword>IPv4 Options</keyword>
<keyword>Filtering</keyword>
<keyword>IPv4 Option Filtering</keyword>


    <abstract>
      <t>This document provides advice on the filtering of IPv4
      packets based on the IPv4 options they contain. Additionally, it
      discusses the operational and interoperability implications of dropping
      packets based on the IP options they contain.</t>
    </abstract>
  </front>

  <middle>
    <section anchor="intro" title="Introduction">
      <t>This document discusses the filtering of IPv4 packets based
      on the IPv4 options they contain. Since various protocols may use IPv4
      options to some extent, dropping packets based on the options they
      contain may have implications on the proper functioning of such protocols.
      Therefore, this document attempts to discuss the operational and
      interoperability implications of such dropping. Additionally, it
      outlines what a network operator might do in typical enterprise or
      Service Provider environments.
      This document also draws and is partly derived from 
      <xref target="RFC6274" />, which also received review from the
      operational community.
      </t>

      <t>We note that data seems to indicate that there is a current
      widespread practice of blocking IPv4 optioned packets. There are various
      plausible approaches to minimize the potential negative effects of IPv4
      optioned packets while allowing some option semantics. One approach is
      to allow for specific options that are expected or needed, and have a default
      deny. A different approach is to deny unneeded options and have a default
      allow. Yet a third possible approach is to allow for end-to-end
      semantics by ignoring options and treating packets as un-optioned while
      in transit. Experiments and currently available data tend to support
      the first or third approaches as more realistic. Some results 
      regarding the current state of affairs with respect to dropping packets
      containing IP options can be found in <xref target="MEDINA"/> and <xref
      target="FONSECA"/>. Additionally, <xref target="BREMIER-BARR" />
      points out that the deployed Internet already has many routers that
do not process IP options.</t>

      <t>We also note that while this document provides advice on dropping
      packets on a "per IP option type", not all devices 
      (routers, security gateways, and firewalls) may provide this
      capability with such granularity. Additionally, even in cases in which
      such functionality is provided, an operator might want to specify a
      dropping policy with a coarser granularity (rather than on a "per IP
      option type" granularity), as indicated above.</t>

      <t>Finally, in scenarios in which processing of IP options by
      intermediate systems is not required, a widespread approach is to simply
      ignore IP options and process the corresponding packets as if they do
      not contain any IP options.</t>

      <section anchor="terms"
               title="Terminology and Conventions Used in This Document">
        <t>The terms "fast path", "slow path", and associated relative terms
        ("faster path" and "slower path") are loosely defined as in Section 2
        of <xref target="RFC6398"/>.</t>

<t>
   Because of the security-oriented nature of this document, we are
   deliberately including some historical citations.  The goal is to
   explicitly retain and show history, as well as remove ambiguity
   and confusion.
</t>

        <t>The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
        "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
        document are to be interpreted as described in <xref
        target="RFC2119"/>.</t>
      </section>

<section anchor="ops"
    title="Operational Focus">

<!-- [rfced] This sentence mentions "the editors";
should each of the authors of this document have the editor role?
(Currently, no one has role="editor".)
Or, should this sentence be updated to "the authors"?

Original:
   All of the recommendations in this document have been made in an
   effort to optimise for operational community consensus, as best the
   editors have been able to determine that.
-->
<!-- Carlos: It is OK as-is. The aothors are also editors -->

<!-- Fernando: I've changed editors to authors to avoid confusion -->

<t>
	All of the recommendations in this document have been made
	in an effort to optimize for operational community consensus,
	as best the authors have been able to determine that.  This
       has included not only accepting feedback from public lists,
       but also accepting off-list feedback from people at various
       network operators (e.g. Internet Service Providers, content providers, educational
       institutions, commercial firms).
</t>
</section>
    </section>

    <section anchor="general-discussion" title="IP Options">
      <t>IP options allow for the extension of the Internet Protocol. As
      specified in <xref target="RFC0791"/>, there are two cases for the
      format of an option:</t>

      <t><list style="symbols">
          <t>Case 1: A single byte of option-type.</t>

          <t>Case 2: An option-type byte, an option-length byte, and the
          actual option-data bytes.</t>
        </list></t>

      <t>IP options of Case 1 have the following syntax: <figure><artwork><![CDATA[
+-+-+-+-+-+-+-+-+- - - - - - - - -
|  option-type  |  option-data
+-+-+-+-+-+-+-+-+- - - - - - - - -
]]></artwork></figure></t>

      <t>The length of IP options of Case 1 is implicitly specified by the
      option-type byte.</t>

      <t>IP options of Case 2 have the following syntax: <figure><artwork><![CDATA[
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- - - - - - - - -
|  option-type  | option-length |  option-data
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- - - - - - - - -
]]></artwork></figure></t>

      <t>In this case, the option-length byte counts the option-type byte and
      the option-length byte, as well as the actual option-data bytes.</t>

      <t>All current and future options, except "End of Option List" (Type = 0)
      and "No Operation" (Type = 1), are of Class 2.</t>

      <t>The option-type has three fields:</t>

      <t><list style="symbols">
          <t>1 bit: copied flag.</t>

          <t>2 bits: option class.</t>

          <t>5 bits: option number.</t>
        </list></t>

      <t>The copied flag indicates whether this option should be copied to all
      fragments in the event the packet carrying it needs to be
      fragmented:</t>

      <t><list style="symbols">
          <t>0 = not copied.</t>

          <t>1 = copied.</t>
        </list></t>

      <t>The values for the option class are:</t>

      <t><list style="symbols">
          <t>0 = control.</t>

          <t>1 = reserved for future use.</t>

          <t>2 = debugging and measurement.</t>

          <t>3 = reserved for future use.</t>
        </list></t>

      <t>This format allows for the creation of new options for the extension
      of the Internet Protocol (IP).</t>

      <t>Finally, the option number identifies the syntax of the rest of the
      option.</t>

      <t>The "IP OPTION NUMBERS" registry <xref target="IANA-IP"/> contains
      the list of the currently assigned IP option numbers.</t>
    </section>

    <section anchor="general-implications"
             title="General Security Implications of IP Options">
      <section anchor="process-requirements" title="Processing Requirements">
        <t>Historically, most IP routers used a general-purpose CPU to process
        IP packets and forward them towards their destinations. This same CPU
        usually also processed network management traffic (e.g., SNMP),
        configuration commands (e.g., command line interface), and various
        routing protocols (e.g., RIP, OSPF, BGP, IS-IS) or other control
        protocols (e.g., RSVP, ICMP). In such architectures, it has been common
        for the general-purpose CPU also to perform any packet filtering that
        has been enabled on the router (or router interface). An IP router
        built using this architecture often has a significant Distributed
        Denial-of-Service (DDoS) attack risk if the router control plane (e.g.,
        CPU) is overwhelmed by a large number of IPv4 packets that contain
        IPv4 options.</t>

        <t>From about 1995 onwards, a growing number of IP routers have
        incorporated silicon specialized for IP packet processing (i.e.,
Field-Programmable Gate Array (FPGA),
        Application-Specific Integrated Circuit (ASIC)), thereby separating the function of IP packet forwarding from the
        other functions of the router. Such router architectures tend to be
        more resilient to DDoS attacks that might be seen in the global public
        Internet. Depending upon various implementation and configuration
        details, routers with a silicon packet-forwarding engine can handle
        high volumes of IP packets containing IP options without any adverse
        impact on packet-forwarding rates or on the router's control plane
        (e.g., general-purpose CPU). Some implementations have a configuration
        knob simply to forward all IP packets containing IP options at
        wire-speed in silicon, as if the IP packet did not contain any IP options
        ("ignore options &amp; forward"). Other implementations support
        wire-speed silicon-based packet filtering, thereby enabling packets
        containing certain IP options to be selectively dropped ("drop"),
        packets containing certain other IP options to have those IP options
        ignored ("ignore options &amp; forward"), and other packets containing
        different IP options to have those options processed, either on a
        general-purpose CPU or using custom logic (e.g., FPGA, ASIC), while the
        packet is being forwarded ("process option &amp; forward").</t>

        <t>Broadly speaking, any IP packet that requires processing by an IP
        router's general-purpose CPU can be a DDoS risk to that router's
        general-purpose CPU (and thus to the router itself). However, at
        present, the particular architectural and engineering details of the
        specific IP router being considered are important to understand when
        evaluating the operational security risks associated with a particular
        IP packet type or IP option type.</t>

        <t>
   Operators are urged to consider the capabilities of potential IP routers 
   for IP option filtering and handling as they make deployment decisions 
   in the future.
</t>

        <t>Additional considerations for protecting the control plane from
        packets containing IP options can be found in <xref
        target="RFC6192"/>.</t>
<t>
Finally, in addition to advice to operators, this document also 
provides advice to router, security gateway, and firewall implementers
in terms of providing the capability
to filter packets with different granularities: both
on a "per IP option type" granularity (to maximize
flexibility) as well as more coarse filters (to minimize configuration 
complexity).
</t>
      </section>
    </section>

    <section title="Advice on the Handling of Packets with Specific IP Options">
      <t>The following subsections contain a description of each of the IP
      options that have so far been specified, a discussion of possible
      interoperability implications if packets containing such options are
      dropped, and specific advice on whether to drop packets containing these
      options in a typical enterprise or Service Provider environment.</t>

      <section title="End of Option List (Type = 0)">
        <section title="Uses">
          <t>This option is used to indicate the "end of options" in those
          cases in which the end of options would not coincide with the end of
          the Internet Protocol header.</t>
        </section>

        <section title="Option Specification">
          <t>Specified in RFC 791 <xref target="RFC0791"/>.</t>
        </section>

        <section title="Threats">
          <t>No specific security issues are known for this IPv4 option.</t>
        </section>

        <section title="Operational and Interoperability Impact if Blocked">
          <t>Packets containing any IP options are likely to include an End of
          Option List. Therefore, if packets containing this option are
          dropped, it is very likely that legitimate traffic is blocked.</t>
        </section>

        <section title="Advice">
          <t>Routers, security gateways, and firewalls SHOULD NOT drop packets
          because they contain this option.</t>
        </section>
      </section>

      <section title="No Operation (Type = 1)">
        <section title="Uses">
          <t>The no-operation option is basically meant to allow the sending
          system to align subsequent options in, for example, 32-bit
          boundaries.</t>
        </section>

        <section title="Option Specification">
          <t>Specified in RFC 791 <xref target="RFC0791"/>.</t>
        </section>

        <section title="Threats">
          <t>No specific security issues are known for this IPv4 option.</t>
        </section>

        <section title="Operational and Interoperability Impact if Blocked">
          <t>Packets containing any IP options are likely to include a No
          Operation option. Therefore, if packets containing this option are
          dropped, it is very likely that legitimate traffic is blocked.</t>
        </section>

        <section title="Advice">
          <t>Routers, security gateways, and firewalls SHOULD NOT drop packets
          because they contain this option.</t>
        </section>
      </section>

      <section anchor="LSRR"
               title="Loose Source and Record Route (LSRR) (Type = 131)">
        <t>RFC 791 states that this option should appear at most once in a
        given packet. Thus, if a packet contains more than one LSRR option, it
        should be dropped, and this event should be logged (e.g., a counter
        could be incremented to reflect the packet drop). Additionally,
        packets containing a combination of LSRR and SSRR options should be
        dropped, and this event should be logged (e.g., a counter could be
        incremented to reflect the packet drop).</t>

        <section title="Uses">
          <t>This option lets the originating system specify a number of
          intermediate systems a packet must pass through to get to the
          destination host. Additionally, the route followed by the packet is
          recorded in the option. The receiving host (end-system) must use the
          reverse of the path contained in the received LSRR option.</t>

          <t>The LSSR option can be of help in debugging some network
          problems. Some Internet Service Provider (ISP) peering agreements
          require support for this option in the routers within the peer of
          the ISP.</t>
        </section>

        <section title="Option Specification">
          <t>Specified in RFC 791 <xref target="RFC0791"/>.</t>
        </section>

        <section title="Threats">
          <t>The LSRR option has well-known security implications <xref
          target="RFC6274"/>. Among other things, the option can be used
          to:</t>

          <t><list style="symbols">
              <t>Bypass firewall rules.</t>

              <t>Reach otherwise unreachable internet systems.</t>

              <t>Establish TCP connections in a stealthy way.</t>

              <t>Learn about the topology of a network.</t>

              <t>Perform bandwidth-exhaustion attacks.</t>
            </list></t>

          <t>Of these attack vectors, the one that has probably received least
          attention is the use of the LSRR option to perform bandwidth
          exhaustion attacks. The LSRR option can be used as an amplification
          method for performing bandwidth-exhaustion attacks, as an attacker
          could make a packet bounce multiple times between a number of
          systems by carefully crafting an LSRR option.</t>

          <t><list style="hanging">
              <t>This is the IPv4 version of the IPv6 amplification attack
              that was widely publicized in 2007 <xref target="Biondi2007"/>.
              The only difference is that the maximum length of the IPv4
              header (and hence the LSRR option) limits the amplification
              factor when compared to the IPv6 counterpart.</t>
            </list></t>

          <t>Additionally, some implementations have been found to fail to
          include proper sanity checks on the LSRR option, thus leading to
          security issues. These specific issues are believed to be solved in
          all modern implementations. <list style="hanging">
              <t><xref target="Microsoft1999"/> is a security advisory about a
              vulnerability arising from improper validation of the Pointer
              field of the LSRR option.</t>
            </list></t>

          <t>Finally, we note that some systems were known for providing a
          system-wide toggle to enable support for this option for those
          scenarios in which this option is required. However, improper
          implementation of such a system-wide toggle caused those systems to
          support the LSRR option even when explicitly configured not to do
          so. <list style="hanging">
              <t><xref target="OpenBSD1998"/> is a security advisory about an
              improper implementation of such a system-wide toggle in 4.4BSD
              kernels. This issue was resolved in later versions of the
              corresponding operating system.</t>
            </list></t>
        </section>

        <section title="Operational and Interoperability Impact if Blocked">
          <t>Network troubleshooting techniques that may employ the LSRR
          option (such as ping or traceroute with the appropriate arguments)
          would break when using the LSRR option. (Ping and traceroute without
          IPv4 options are not impacted.) Nevertheless, it should be noted
          that it is virtually impossible to use the LSRR option for
          troubleshooting, due to widespread dropping of packets that contain
          the option.</t>
        </section>

        <section title="Advice">
          <t>Routers, security gateways, and firewalls SHOULD implement an
          option-specific configuration knob to select whether packets with this option
          are dropped, packets with this IP option are forwarded as if they
          did not contain this IP option, or packets with this option are
          processed and forwarded as per <xref target="RFC0791"/>. The default
          setting for this knob SHOULD be "drop", and the default setting MUST
          be documented.</t>
<t>
  Please note that treating packets with LSRR as if they did not
  contain this option can result in such packets being sent to a 
  different device than the initially intended destination. With 
  appropriate ingress filtering, this should not open an attack 
  vector into the infrastructure. Nonetheless, it could result in 
  traffic that would never reach the initially intended destination. 
  Dropping these packets prevents unnecessary network traffic
  and does not make end-to-end communication any worse.
</t>
        </section>
      </section>

      <section anchor="SSRR"
               title="Strict Source and Record Route (SSRR) (Type = 137)">
        <section title="Uses">
          <t>This option allows the originating system to specify a number of
          intermediate systems a packet must pass through to get to the
          destination host. Additionally, the route followed by the packet is
          recorded in the option, and the destination host (end-system) must
          use the reverse of the path contained in the received SSRR
          option.</t>

          <t>This option is similar to the Loose Source and Record Route
          (LSRR) option, with the only difference that in the case of SSRR,
          the route specified in the option is the exact route the packet must
          take (i.e., no other intervening routers are allowed to be in the
          route).</t>

          <t>The SSRR option can be of help in debugging some network
          problems. Some ISP peering agreements
          require support for this option in the routers within the peer of
          the ISP.</t>
        </section>

        <section title="Option Specification">
          <t>Specified in RFC 791 <xref target="RFC0791"/>.</t>
        </section>

        <section title="Threats">
          <t>The SSRR option has the same security implications as the LSRR
          option. Please refer to <xref target="LSRR"/> for a discussion of
          such security implications.</t>
        </section>

        <section title="Operational and Interoperability Impact if Blocked">
          <t>Network troubleshooting techniques that may employ the SSRR
          option (such as ping or traceroute with the appropriate arguments)
          would break when using the SSRR option. (Ping and traceroute without
          IPv4 options are not impacted.) Nevertheless, it should be noted
          that it is virtually impossible to use the SSRR option for
          trouble-shooting, due to widespread dropping of packets that contain
          such option.</t>
        </section>

        <section title="Advice">
          <t>Routers, security gateways, and firewalls SHOULD implement an
          option-specific configuration knob to select whether packets with this option
          are dropped, packets with this IP option are forwarded as if they
          did not contain this IP option, or packets with this option are
          processed and forwarded as per <xref target="RFC0791"/>. The default
          setting for this knob SHOULD be "drop", and the default setting MUST
          be documented.</t>
<t>
  Please note that treating packets with SSRR as if they did not
  contain this option can result in such packets being sent to a
  different device that the initially intended destination. With
  appropriate ingress filtering this should not open an attack
  vector into the infrastructure. Nonetheless, it could result in
  traffic that would never reach the initially intended destination.
  Dropping these packets prevents unnecessary network traffic,
  and does not make end-to-end communication any worse.
</t>

        </section>
      </section>

      <section title="Record Route (Type = 7)">
        <section title="Uses">
          <t>This option provides a means to record the route that a given
          packet follows.</t>
        </section>

        <section title="Option Specification">
          <t>Specified in RFC 791 <xref target="RFC0791"/>.</t>
        </section>

        <section title="Threats">
          <t>This option can be exploited to map the topology of a network.
          However, the limited space in the IP header limits the usefulness of
          this option for that purpose.</t>
        </section>

        <section title="Operational and Interoperability Impact if Blocked">
          <t>Network troubleshooting techniques that may employ the RR option
          (such as ping with the RR option) would break when using the RR
          option. (Ping without IPv4 options is not impacted.) Nevertheless, it
          should be noted that it is virtually impossible to use such
          techniques due to widespread dropping of packets that contain RR
          options.</t>
        </section>

        <section title="Advice">
          <t>Routers, security gateways, and firewalls SHOULD implement an
          option-specific configuration knob to select whether packets with this option
          are dropped, packets with this IP option are forwarded as if they
          did not contain this IP option, or packets with this option are
          processed and forwarded as per <xref target="RFC0791"/>. The default
          setting for this knob SHOULD be "drop", and the default setting MUST
          be documented.</t>
        </section>
      </section>

      <section anchor="OPT-136"
               title="Stream Identifier (Type = 136) (obsolete)">
        <t>The Stream Identifier option originally provided a means for the
        16&nbhy;bit SATNET stream Identifier to be carried through networks that
        did not support the stream concept.</t>

        <t>However, as stated by Section 3.2.1.8 of RFC 1122 <xref
        target="RFC1122"/> and Section 4.2.2.1 of RFC 1812 <xref
        target="RFC1812"/>, this option is obsolete. Therefore, it must be
        ignored by the processing systems. See also <xref target="IANA-IP"/>
        and <xref target="RFC6814" />.</t>

        <t>RFC 791 states that this option appears at most once in a given
        datagram. Therefore, if a packet contains more than one instance of
        this option, it should be dropped, and this event should be logged
        (e.g., a counter could be incremented to reflect the packet drop).</t>

        <section title="Uses">
          <t>This option is obsolete. There is no current use for this
          option.</t>
        </section>

        <section title="Option Specification">
          <t>Specified in RFC 791 <xref target="RFC0791"/>, and deprecated in
          RFC 1122 <xref target="RFC1122"/> and RFC 1812 <xref
          target="RFC1812"/>. This option has been formally obsoleted by <xref
          target="RFC6814"/>.</t>
        </section>

        <section title="Threats">
          <t>No specific security issues are known for this IPv4 option.</t>
        </section>

        <section title="Operational and Interoperability Impact if Blocked">
          <t>None.</t>
        </section>

        <section title="Advice">
          <t>Routers, security gateways, and firewalls SHOULD drop IP packets
          containing a Stream Identifier option.</t>
        </section>
      </section>

      <section title="Internet Timestamp (Type = 68)">
        <section title="Uses">
<t>
   This option provides a means for recording the time at which each
   system (or a specified set of systems) processed this datagram,
   and it may optionally record the addresses of the systems providing
   the timestamps.
</t>
        </section>

        <section title="Option Specification">
          <t>Specified by RFC 791 <xref target="RFC0791"/>.</t>
        </section>

        <section title="Threats">
          <t>The timestamp option has a number of security implications <xref
          target="RFC6274"/>. Among them are:</t>

          <t><list style="symbols">
              <t>It allows an attacker to obtain the current time of the
              systems that process the packet, which the attacker may find
              useful in a number of scenarios.</t>

              <t>It may be used to map the network topology in a similar way
              to the IP Record Route option.</t>

              <t>It may be used to fingerprint the operating system in use by
              a system processing the datagram.</t>

              <t>It may be used to fingerprint physical devices by analyzing
              the clock skew.</t>
            </list></t>

          <t><xref target="Kohno2005"/> describes a technique for
          fingerprinting devices by measuring the clock skew. It exploits,
          among other things, the timestamps that can be obtained by means of
          the ICMP timestamp request messages <xref target="RFC0791"/>.
          However, the same fingerprinting method could be implemented with
          the aid of the Internet Timestamp option.</t>
        </section>

        <section title="Operational and Interoperability Impact if Blocked">
          <t>
   Network troubleshooting techniques that may employ the Internet
   Timestamp option (such as ping with the Timestamp option) would break
   when using the Timestamp option. (Ping without IPv4 options is not
   impacted.)  Nevertheless, it should be noted that it is virtually
   impossible to use such techniques due to widespread dropping of
   packets that contain Internet Timestamp options.
</t>
        </section>

        <section title="Advice">
          <t>Routers, security gateways, and firewalls SHOULD drop IP packets
          containing an Internet Timestamp option.</t>
        </section>
      </section>

      <section title="Router Alert (Type = 148)">
        <section title="Uses">
          <t>The Router Alert option has the semantic "routers should examine
          this packet more closely, if they participate in the functionality
          denoted by the Value of the option".</t>
        </section>

        <section title="Option Specification">
          <t>The Router Alert option is defined in RFC 2113 <xref
          target="RFC2113"/> and later updates to it have been clarified by
          RFC 5350 <xref target="RFC5350"/>. It contains a 16-bit Value
          governed by an IANA registry (see <xref target="RFC5350"/>).</t>
        </section>

        <section title="Threats">
          <t>The security implications of the Router Alert option have been
          discussed in detail in <xref target="RFC6398"/>. Basically, the
          Router Alert option might be exploited to perform a DoS attack by exhausting CPU resources at the processing
          routers.</t>
        </section>

        <section title="Operational and Interoperability Impact if Blocked">
          <t>Applications that employ the Router Alert option (such as RSVP
          <xref target="RFC2205"/>) would break.</t>
        </section>

        <section title="Advice">
          <t>This option SHOULD be allowed only in controlled environments,
          where the option can be used safely. <xref target="RFC6398"/>
          identifies some such environments. In unsafe environments, packets
          containing this option SHOULD be dropped.</t>

          <t>A given router, security gateway, or firewall system has no way
          of knowing a priori whether this option is valid in its operational
          environment. Therefore, routers, security gateways, and firewalls
          SHOULD, by default, ignore the Router Alert option. Additionally,
          routers, security gateways, and firewalls SHOULD have a
          configuration setting that governs their reaction in the presence of
          packets containing the Router Alert option. This configuration
          setting SHOULD allow to honor and process the option, ignore the
          option, or drop packets containing this option.</t>
        </section>
      </section>

      <section anchor="OPT-11" title="Probe MTU (Type = 11) (obsolete)">
        <section title="Uses">
          <t>This option originally provided a mechanism to discover the
          Path-MTU. It has been declared obsolete.</t>
        </section>

        <section title="Option Specification">
          <t>This option was originally defined in RFC 1063 <xref
          target="RFC1063"/> and was obsoleted with RFC 1191 <xref
          target="RFC1191"/>. This option is now obsolete, as RFC 1191
          obsoletes RFC 1063 without using IP options.</t>
        </section>

        <section title="Threats">
          <t>
This option is obsolete.
   This option could have been exploited to cause a host to set its Path MTU (PMTU)
   estimate to an inordinately low or an inordinately high value,
   thereby causing performance problems.
</t>
        </section>

        <section title="Operational and Interoperability Impact if Blocked">
          <t>None <list style="hanging">
              <t>This option is NOT employed with the modern "Path MTU
              Discovery" (PMTUD) mechanism <xref target="RFC1191"/>, which
              employs special ICMP messages (Type 3, Code 4) in combination
              with the IP DF bit. Packetization Layer PMTUD (PLPMTUD) <xref target="RFC4821"/> can perform
              PMTUD without the need for any special packets.</t>
            </list></t>
        </section>

        <section title="Advice">
          <t>Routers, security gateways, and firewalls SHOULD drop IP packets
          that contain a Probe MTU option.</t>
        </section>
      </section>

      <section anchor="OPT-12" title="Reply MTU (Type = 12) (obsolete)">
        <section title="Uses">
          <t>This option originally provided a mechanism to discover the
          Path-MTU. It is now obsolete.</t>
        </section>

        <section title="Option Specification">
          <t>This option was originally defined in RFC 1063 <xref
          target="RFC1063"/> and was obsoleted with RFC 1191 <xref
          target="RFC1191"/>. This option is now obsolete, as RFC 1191
          obsoletes RFC 1063 without using IP options.</t>
        </section>

        <section title="Threats">
          <t>
This option is obsolete.
   This option could have been exploited to cause a host to set its PMTU
   estimate to an inordinately low or an inordinately high value,
   thereby causing performance problems.
</t>
        </section>

        <section title="Operational and Interoperability Impact if Blocked">
          <t>None <list style="hanging">
              <t>This option is NOT employed with the modern "Path MTU
              Discovery" (PMTUD) mechanism <xref target="RFC1191"/>, which
              employs special ICMP messages (Type 3, Code 4) in combination
              with the IP DF bit. PLPMTUD <xref target="RFC4821"/> can perform
              PMTUD without the need of any special packets.</t>
            </list></t>
        </section>

        <section title="Advice">
          <t>Routers, security gateways, and firewalls SHOULD drop IP packets
          that contain a Reply MTU option.</t>
        </section>
      </section>

      <section anchor="OPT-82" title="Traceroute (Type = 82)">
        <section title="Uses">
          <t>This option originally provided a mechanism to trace the path to
          a host.</t>
        </section>

        <section title="Option Specification">
          <t>This option was originally specified by RFC 1393 <xref
          target="RFC1393"/> as "experimental", and it was never widely
          deployed on the public Internet. This option has been formally
          obsoleted by <xref target="RFC6814"/>.</t>
        </section>

        <section title="Threats">
          <t>
This option is obsolete.
Because this option required each router in the path both to
   provide special processing and to send an ICMP message, it 
   could have been exploited to perform a DoS
   attack by exhausting CPU resources at the processing routers.
</t>
        </section>

        <section title="Operational and Interoperability Impact if Blocked">
          <t>None</t>
        </section>

        <section title="Advice">
          <t>Routers, security gateways, and firewalls SHOULD drop IP packets
          that contain a Traceroute option.</t>
        </section>
      </section>

      <section anchor="OPT-130" title="DoD Basic Security Option (Type = 130)">
        <section title="Uses">


          <t>This option <xref target="RFC1108"/>
          is used by Multi-Level Secure (MLS) end-systems and
          intermediate systems in specific environments to:</t>

          <t><list style="symbols">
              <t>transmit from source to destination in a network standard
              representation the common security labels required by computer
              security models <xref target="Landwehr81"/>,</t>

              <t>validate the datagram as appropriate for transmission from
              the source and delivery to the destination, and,</t>

              <t>ensure that the route taken by the datagram is protected to
              the level required by all protection authorities indicated on
              the datagram.</t>
            </list></t>

          <t>The DoD Basic Security Option (BSO) was implemented in
          IRIX <xref target="IRIX2008"/> and is currently implemented in a
          number of operating systems (e.g., Security-Enhanced Linux <xref
          target="SELinux2008"/>, Solaris <xref target="Solaris2008"/>, and
          Cisco IOS <xref target="Cisco-IPSO"/>). It is also currently
          deployed in a number of high-security networks.

These networks are typically either in physically secure
          locations, protected by military/governmental communications
          security equipment, or both. Such networks are typically built using
          commercial off-the-shelf (COTS) IP routers and Ethernet switches,
          but they are not normally interconnected with the global public Internet.
          

      MLS systems are much more widely deployed now 
      than they were at the time the then-IESG decided to remove IPSO 
(IP Security Options)
      from the IETF Standards Track.  Since nearly all MLS systems
      also support IPSO BSO and IPSO ESO, this option is believed
      to have more deployment now than when the IESG removed this
      option from the IETF Standards Track.


          <xref
          target="RFC5570"/> describes a similar option recently defined for
          IPv6 and has much more detailed explanations of how sensitivity
          label options are used in real-world deployments.</t>
        </section>

        <section title="Option Specification">
          <t>It is specified by RFC 1108 <xref target="RFC1108"/>, which
          obsoleted RFC 1038 <xref target="RFC1038"/> (which in turn obsoleted
          the Security Option defined in RFC 791 <xref
          target="RFC0791"/>).</t>

          <t><list style="hanging">
              <t>RFC 791 <xref target="RFC0791"/> defined the "Security
              Option" (Type = 130), which used the same option type as the DoD
              Basic Security option discussed in this section. Later, RFC 1038
              <xref target="RFC1038"/> revised the IP security options, and in
              turn was obsoleted by RFC 1108 <xref target="RFC1108"/>. The
              "Security Option" specified in RFC 791 is considered obsolete by
              Section 3.2.1.8 of RFC 1122 <xref target="RFC1122"/> and Section
              4.2.2.1 of RFC 1812 <xref target="RFC1812"/>, and therefore the
              discussion in this section is focused on the DoD Basic Security
              option specified by RFC 1108 <xref target="RFC1108"/>.</t>
            </list></t>

          <t>Section 4.2.2.1 of RFC 1812 states that routers "SHOULD implement
          [this option]".</t>

          <t><list style="hanging">
<t>
        Some private IP networks consider IP router-based
        per-interface selective filtering of packets based 
        on (a) the presence of an IPSO option (including BSO 
        and ESO) and (b) the contents of that IPSO 
        option to be important for operational security reasons.
        The recent IPv6 Common                 
              Architecture Label IPv6 Security Option (CALIPSO) specification discusses
        this in additional detail, albeit in an IPv6 context 
        <xref target="RFC5570"/>.
</t><t>
        Such private IP networks commonly are built using both
        commercial and open-source products -- for hosts, guards,
        firewalls, switches, routers, etc. Some commercial IP
        routers support this option, as do some IP routers that 
        are built on top of MLS operating 
        systems (e.g., on top of Trusted Solaris <xref target="Solaris2008"/> or 
        Security-Enhanced Linux <xref target="SELinux2008"/>).
</t><t>
        For example, many Cisco routers that run Cisco IOS include 
        support for selectively filtering packets that contain the
        IP Security Options (IPSO) with per-interface granularity.
        This capability has been present in many Cisco routers 
        since the early 1990s <xref target="Cisco-IPSO-Cmds"/>. Some government-sector products reportedly also support the IP Security 
        Options (IPSO), for example, CANEWARE <xref target="RFC4949"/>.
</t><t>
        Support for the IPSO Basic Security Option also is 
        included in the "IPsec Configuration Policy Information 
        Model" <xref target="RFC3585"/> and in the "IPsec Security Policy 
        Database Configuration MIB" <xref target="RFC4807"/>. Section 4.6.1
        of the IP Security Domain of Interpretation <xref target="RFC2407"/>
        includes support for labeled IPsec security associations
        compatible with the IP Security Options.
(Note: RFC 2407 was
      obsoleted by <xref target="RFC4306"/>, which was obsoleted by <xref target="RFC5996"/>.)
</t>


            </list></t>
        </section>

        <section title="Threats">
          <t>Presence of this option in a packet does not by itself create any
          specific new threat. Packets with this option ought not normally be
          seen on the global public Internet.</t>
        </section>

        <section title="Operational and Interoperability Impact if Blocked">
          <t>If packets with this option are blocked or if the option is
          stripped from the packet during transmission from source to
          destination, then the packet itself is likely to be dropped by the
          receiver because it is not properly labeled. In some cases, the
          receiver might receive the packet but associate an incorrect
          sensitivity label with the received data from the packet whose BSO
          was stripped by an intermediate router or firewall. Associating an
          incorrect sensitivity label can cause the received information
          either to be handled as more sensitive than it really is
          ("upgrading") or as less sensitive than it really is
          ("downgrading"), either of which is problematic.</t>
        </section>

        <section title="Advice">
<t>
A given IP router, security gateway, or firewall has no way to know
a priori what environment it has been deployed into.  Even closed IP
deployments generally use exactly the same commercial routers, security
gateways, and firewalls that are used in the public Internet.  
</t><t>
Since operational problems result in environments where this option is
needed if either the option is dropped or IP packets containing this option
are dropped, but no harm results if the option is carried in environments
where it is not needed, the default configuration SHOULD NOT (a) modify
or remove this IP option or (b) drop an IP packet because the IP packet
contains this option.
</t><t>
A given IP router, security gateway, or firewall MAY be configured to drop  
this option or to drop IP packets containing this option in an environment
known to not use this option.
</t><t>
For auditing reasons, routers, security gateways, and firewalls SHOULD
be capable of logging the numbers of packets containing the BSO on a
per-interface basis.  Also, routers, security gateways, and firewalls
SHOULD be capable of dropping packets based on the BSO presence as
well as the BSO values.
</t>

        </section>
      </section>

      <section title="DoD Extended Security Option (Type = 133)">
        <section title="Uses">
          <t>This option permits additional security labeling information,
          beyond that present in the Basic Security Option (<xref
          target="OPT-130"/>), to be supplied in an IP datagram to meet the
          needs of registered authorities.</t>
        </section>

        <section title="Option Specification">
          <t>The DoD Extended Security Option (ESO) is specified by RFC 1108
          <xref target="RFC1108"/>.</t>

          <t><list style="hanging">
<t>
        Some private IP networks consider IP router-based
        per-interface selective filtering of packets based 
        on (a) the presence of an IPSO option (including BSO 
        and ESO) and (b) based on the contents of that IPSO 
        option to be important for operational security reasons.
        The recent IPv6 CALIPSO option specification discusses
        this in additional detail, albeit in an IPv6 context 
        <xref target="RFC5570"/>.
</t><t>
        Such private IP networks commonly are built using both
        commercial and open-source products -- for hosts, guards,
        firewalls, switches, routers, etc. Some commercial IP
        routers support this option, as do some IP routers that
        are built on top of MLS operating 
        systems (e.g., on top of Trusted Solaris <xref target="Solaris2008"/> or 
        Security-Enhanced Linux <xref target="SELinux2008"/>).
</t><t>
        For example, many Cisco routers that run Cisco IOS include 
        support for selectively filtering packets that contain the
        IP Security Options (IPSO) with per-interface granularity.
        This capability has been present in many Cisco routers 
        since the early 1990s <xref target="Cisco-IPSO-Cmds"/>. Some government 
        sector products reportedly also support the IP Security 
        Options (IPSO), for example, CANEWARE <xref target="RFC4949"/>.
</t><t>
        Support for the IPSO Extended Security Option also is 
        included in the "IPsec Configuration Policy Information 
        Model" <xref target="RFC3585"/> and in the "IPsec Security Policy 
        Database Configuration MIB" <xref target="RFC4807"/>. Section 4.6.1
        of the IP Security Domain of Interpretation <xref target="RFC2407"/>
        includes support for labeled IPsec security associations
        compatible with the IP Security Options.
</t>
            </list></t>
        </section>

        <section title="Threats">
          <t>Presence of this option in a packet does not by itself create any
          specific new threat. Packets with this option ought not normally be
          seen on the global public Internet.</t>
        </section>

        <section title="Operational and Interoperability Impact if Blocked">
          <t>If packets with this option are blocked or if the option is
          stripped from the packet during transmission from source to
          destination, then the packet itself is likely to be dropped by the
          receiver because it is not properly labeled. In some cases, the
          receiver might receive the packet but associate an incorrect
          sensitivity label with the received data from the packet whose ESO
          was stripped by an intermediate router or firewall. Associating an
          incorrect sensitivity label can cause the received information
          either to be handled as more sensitive than it really is
          ("upgrading") or as less sensitive than it really is
          ("downgrading"), either of which is problematic.</t>
        </section>

        <section title="Advice">
<t>
A given IP router, security gateway, or firewall has no way to know
a priori what environment it has been deployed into.  Even closed IP 
deployments generally use exactly the same commercial routers, security
gateways, and firewalls that are used in the public Internet.  
</t><t>   
Since operational problems result in environments where this option is
needed if either the option is dropped or IP packets containing this option
are dropped, but no harm results if the option is carried in environments 
where it is not needed, the default configuration SHOULD NOT (a) modify
or remove this IP option or (b) drop an IP packet because the IP packet
contains this option.
</t><t>
A given IP router, security gateway, or firewall MAY be configured to drop
this option or to drop IP packets containing this option in an environment
known to not use this option.
</t><t>
For auditing reasons, routers, security gateways, and firewalls SHOULD
be capable of logging the numbers of packets containing the ESO on a
per-interface basis.  Also, routers, security gateways, and firewalls
SHOULD be capable of dropping packets based on the ESO presence as
well as the ESO values.
</t>

        </section>
      </section>

      <section title="Commercial IP Security Option (CIPSO) (Type = 134)">
        <section title="Uses">
          <t>This option was proposed by the Trusted Systems Interoperability
          Group (TSIG), with the intent of meeting trusted networking
          requirements for the commercial trusted systems marketplace.</t>

          <t>It was implemented in
          IRIX <xref target="IRIX2008"/> and is currently implemented in a
          number of operating systems (e.g., Security-Enhanced Linux <xref
          target="SELinux2008"/> and Solaris <xref target="Solaris2008"/>).
          It is also currently
          deployed in a number of high-security networks.
          </t>
        </section>

        <section title="Option Specification">
          <t>This option is specified in <xref target="CIPSO"/> and <xref
          target="FIPS1994"/>. There are zero known IP router implementations
          of CIPSO. Several MLS operating systems support CIPSO, generally the
          same MLS operating systems that support IPSO. <list style="hanging">
              <t>The TSIG proposal was taken to the Commercial Internet
              Security Option (CIPSO) Working Group of the IETF <xref
              target="CIPSOWG1994"/>, and an Internet-Draft was produced <xref
              target="CIPSO"/>. The Internet-Draft was never published as
              an RFC, but the proposal was later standardized by the U.S.
              National Institute of Standards and Technology (NIST) as
              "Federal Information Processing Standard Publication 188" <xref
              target="FIPS1994"/>.</t>
            </list></t>
        </section>

        <section title="Threats">
          <t>Presence of this option in a packet does not by itself create any
          specific new threat. Packets with this option ought not normally be
          seen on the global public Internet.</t>
        </section>

        <section title="Operational and Interoperability Impact if Blocked">
          <t>If packets with this option are blocked or if the option is
          stripped from the packet during transmission from source to
          destination, then the packet itself is likely to be dropped by the
          receiver because it is not properly labeled. In some cases, the
          receiver might receive the packet but associate an incorrect
          sensitivity label with the received data from the packet whose CIPSO
          was stripped by an intermediate router or firewall. Associating an
          incorrect sensitivity label can cause the received information
          either to be handled as more sensitive than it really is
          ("upgrading") or as less sensitive than it really is
          ("downgrading"), either of which is problematic.</t>
        </section>

        <section title="Advice">
          <t>Because of the design of this option, with variable syntax and
          variable length, it is not practical to support specialized
          filtering using the CIPSO information. No routers or firewalls are
          known to support this option. However, routers, security gateways,
          and firewalls SHOULD NOT by default modify or remove this option
          from IP packets and SHOULD NOT by default drop packets because they
          contain this option. For auditing reasons, routers, security
          gateways, and firewalls SHOULD be capable of logging the numbers of
          packets containing the CIPSO on a per-interface basis. Also,
          routers, security gateways, and firewalls SHOULD be capable of
          dropping packets based on the CIPSO presence.</t>
        </section>
      </section>

      <section title="VISA (Type = 142)">
        <section title="Uses">
          <t>This options was part of an experiment at the University of
Southern California (USC) and was never
          widely deployed.</t>
        </section>

        <section title="Option Specification">
          <t>The original option specification is not publicly available. This
          option has been formally obsoleted by <xref target="RFC6814"/>.</t>
        </section>

        <section title="Threats">
          <t>Not possible to determine (other than the general security
          implications of IP options discussed in <xref
          target="general-implications"/>), since the corresponding
          specification is not publicly available.</t>
        </section>

        <section title="Operational and Interoperability Impact if Blocked">
          <t>None.</t>
        </section>

        <section title="Advice">
          <t>Routers, security gateways, and firewalls SHOULD drop IP packets
          that contain this option.</t>
        </section>
      </section>

      <section title="Extended Internet Protocol (Type = 145)">
        <section title="Uses">
          <t>The EIP option was introduced by one of the proposals submitted
          during the IP Next Generation (IPng) efforts to address the problem of IPv4 address
          exhaustion.</t>
        </section>

        <section title="Option Specification">
          <t>Specified in <xref target="RFC1385"/>. This option has been
          formally obsoleted by <xref target="RFC6814"/>.</t>
        </section>

        <section title="Threats">
          <t>
This option is obsolete.
   This option was used (or was intended to be used) to signal that a
   packet superficially similar to an IPv4 packet actually contained a
   different protocol, opening up the possibility that an IPv4 node
   that simply ignored this option would process a received packet in
   a manner inconsistent with the intent of the sender.
There are no known threats arising from this option, other than
          the general security implications of IP options discussed in <xref
          target="general-implications"/>.</t>
        </section>

        <section title="Operational and Interoperability Impact if Blocked">
          <t>None.</t>
        </section>

        <section title="Advice">
          <t>Routers, security gateways, and firewalls SHOULD drop packets
          that contain this option.</t>
        </section>
      </section>

      <section title="Address Extension (Type = 147)">
        <section title="Uses">
          <t>The Address Extension option was introduced by one of the
          proposals submitted during the IPng efforts to address the problem
          of IPv4 address exhaustion.</t>
        </section>

        <section title="Option Specification">
          <t>Specified in <xref target="RFC1475"/>. This option has been
          formally obsoleted by <xref target="RFC6814"/>.</t>
        </section>

        <section title="Threats">
          <t>There are no known threats arising from this option, other than
          the general security implications of IP options discussed in <xref
          target="general-implications"/>.</t>
        </section>

        <section title="Operational and Interoperability Impact if Blocked">
          <t>None.</t>
        </section>

        <section title="Advice">
          <t>Routers, security gateways, and firewalls SHOULD drop packets
          that contain this option.</t>
        </section>
      </section>

      <section title="Sender Directed Multi-Destination Delivery (Type = 149)">
        <section title="Uses">
          <t>This option originally provided unreliable UDP delivery to a set
          of addresses included in the option.</t>
        </section>

        <section title="Option Specification">
          <t>This option is specified in RFC 1770 <xref target="RFC1770"/>. It
          has been formally obsoleted by <xref target="RFC6814"/>.</t>
        </section>

        <section title="Threats">
          <t>This option could have been exploited for bandwidth-amplification
          in DoS attacks.</t>
        </section>

        <section title="Operational and Interoperability Impact if Blocked">
          <t>None.</t>
        </section>

        <section title="Advice">
          <t>Routers, security gateways, and firewalls SHOULD drop IP packets
          that contain a Sender Directed Multi-Destination Delivery
          option.</t>
        </section>
      </section>

      <section title="Dynamic Packet State (Type = 151)">
        <section title="Uses">
          <t>The Dynamic Packet State option was used to specify the
          Dynamic Packet State (DPS) in the context of the differentiated
          services architecture.</t>
        </section>

        <section title="Option Specification">
          <t>The Dynamic Packet State option was specified in <xref
          target="DIFFSERV-DPS"/>. The aforementioned document was
          meant to be published as "Experimental", but never made it into an
          RFC. This option has been formally obsoleted by <xref
          target="RFC6814"/>.</t>
        </section>

        <section title="Threats">
          <t>Possible threats include theft of service and denial of service.
          However, we note that this option has never been widely implemented or
          deployed.</t>
        </section>

        <section title="Operational and Interoperability Impact if Blocked">
          <t>None.</t>
        </section>

        <section title="Advice">
          <t>Routers, security gateways, and firewalls SHOULD drop packets
          that contain this option.</t>
        </section>
      </section>

      <section title="Upstream Multicast Pkt. (Type = 152)">
        <section title="Uses">
          <t>This option was meant to solve the problem of doing upstream
          forwarding of multicast packets on a multi-access LAN.</t>
        </section>

        <section title="Option Specification">
          <t>This option was originally specified in <xref
          target="BIDIR-TREES"/>. It was never formally
          standardized in the RFC series and was never widely implemented and
          deployed. Its use was obsoleted by <xref target="RFC5015"/>, which
          employs a control-plane mechanism to solve the problem of doing
          upstream forwarding of multicast packets on a multi-access LAN. This
          option has been formally obsoleted by <xref target="RFC6814"/>.</t>
        </section>

        <section title="Threats">
          <t>
This option is obsolete.
   A router that ignored this option instead of processing it as
   specified in <xref target="BIDIR-TREES"/> could have forwarded
   multicast packets to an unintended destination.
</t>
        </section>

        <section title="Operational and Interoperability Impact if Blocked">
          <t>None.</t>
        </section>

        <section title="Advice">
          <t>Routers, security gateways, and firewalls SHOULD drop packets
          that contain this option.</t>
        </section>
      </section>

      <section title="Quick-Start (Type = 25)">
        <section title="Uses">
          <t>This IP Option is used in the specification of Quick-Start for
          TCP and IP, which is an experimental mechanism that allows transport
          protocols, in cooperation with routers, to determine an allowed
          sending rate at the start and, at times, in the middle of a data
          transfer (e.g., after an idle period) <xref target="RFC4782"/>.</t>
        </section>

        <section title="Option Specification">
          <t>Specified in RFC 4782 <xref target="RFC4782"/>, on the
          "Experimental" track.</t>
        </section>

        <section title="Threats">
          <t>Section 9.6 of <xref target="RFC4782"/> notes that Quick-Start is
          vulnerable to two kinds of attacks: <list style="symbols">
              <t>attacks to increase the routers' processing and state load,
              and,</t>

              <t>attacks with bogus Quick-Start Requests to temporarily tie up
              available Quick-Start bandwidth, preventing routers from
              approving Quick-Start Requests from other connections.</t>
            </list></t>
        </section>

        <section title="Operational and Interoperability Impact if Blocked">
          <t>The Quick-Start functionality would be disabled, and additional
          delays in TCP's connection establishment (for example) could be introduced.
          (Please see Section 4.7.2 of <xref target="RFC4782"/>.) We note,
          however, that Quick-Start has been proposed as a mechanism that could
          be of use in controlled environments, and not as a mechanism that
          would be intended or appropriate for ubiquitous deployment in the
          global Internet <xref target="RFC4782"/>.</t>
        </section>

        <section title="Advice">
          <t>A given router, security gateway, or firewall system has no way
          of knowing a priori whether this option is valid in its operational
          environment. Therefore, routers, security gateways, and firewalls
          SHOULD, by default, ignore the Quick-Start option. Additionally,
          routers, security gateways, and firewalls SHOULD have a
          configuration setting that governs their reaction in the presence of
          packets containing the Quick-Start option. This configuration
          setting SHOULD allow to honor and process the option, ignore the
          option, or drop packets containing this option. The default
          configuration is to ignore the Quick-Start option. 

<list
              style="hanging">
              <t>We
              note that if routers in a given environment do not implement and
              enable the Quick-Start mechanism, only the general security
              implications of IP options (discussed in <xref
              target="general-implications"/>) would apply.</t>
            </list></t>
        </section>
      </section>

      <section title="RFC3692-Style Experiment (Types = 30, 94, 158, and 222)">
        <t>Section 2.5 of RFC 4727 <xref target="RFC4727"/> allocates an
        option number with all defined values of the "copy" and "class" fields
        for RFC3692-style experiments. This results in four distinct option
        type codes: 30, 94, 158, and 222.</t>

        <section title="Uses">
          <t>It is only appropriate to use these values in
          explicitly configured experiments; they MUST NOT be shipped as
          defaults in implementations.</t>
        </section>

        <section title="Option Specification">
          <t>Specified in RFC 4727 <xref target="RFC4727"/> in the context of
          RFC3692-style experiments.</t>
        </section>

        <section title="Threats">
          <t>No specific security issues are known for this IPv4 option.</t>
        </section>

        <section title="Operational and Interoperability Impact if Blocked">
          <t>None.</t>
        </section>

        <section title="Advice">
          <t>Routers, security gateways, and firewalls SHOULD have
          configuration knobs for IP packets that contain RFC3692-style
          Experiment options to select between "ignore &amp; forward" and
          "drop &amp; log". Otherwise, no legitimate experiment using these
          options will be able to traverse any IP router.</t>

          <t>Special care needs to be taken in the case of "drop &amp; log".
          Devices SHOULD count the number of packets dropped, but the logging
          of drop events SHOULD be limited so as to not overburden device
          resources.</t>

          <t>The aforementioned configuration knob SHOULD default to "drop
          &amp; log".</t>
        </section>
      </section>

      <section title="Other IP Options">
        <section anchor="other-spec" title="Specification">
          <t>Unrecognized IP options are to be ignored. Section 3.2.1.8 of RFC
          1122 <xref target="RFC1122"/> specifies this behavior as follows: 

          <list style="empty">
              <t>The IP and transport layer MUST each
              interpret those IP options that they understand and silently
              ignore the others.</t>
          </list>

    Additionally, Section 4.2.2.6 of RFC 1812 <xref target="RFC1812"/> specifies it as follows:

          <list style="empty">
             <t>A router MUST ignore IP options which
              it does not recognize.</t>
          </list> 
     
This document adds that unrecognized IP options MAY also
          be logged.</t>

<t>Further, routers, security gateways, and firewalls
          MUST provide the ability to log drop events of IP packets containing 
          unrecognized or obsolete options.</t>

          <t>A number of additional options are listed in the "IP OPTION
          NUMBERS" IANA registry <xref target="IANA-IP"/> as of the time this document was last edited. Specifically:</t>

          <figure align="left">
            <artwork><![CDATA[
Copy Class Number Value Name
---- ----- ------ ----- -------------------------------------------
   0     0     10    10 ZSU    - Experimental Measurement
   1     2     13   205 FINN   - Experimental Flow Control
   0     0     15    15 ENCODE - ???
   1     0     16   144 IMITD  - IMI Traffic Descriptor
   1     0     22   150        - Unassigned (Released 18 Oct. 2005)
]]></artwork>
          </figure>

          <t>The ENCODE option (type 15) has been formally obsoleted by <xref
          target="RFC6814"/>.</t>
        </section>

        <section title="Threats">
          <t>The lack of open specifications for these options makes it
          impossible to evaluate their security implications.</t>
        </section>

        <section title="Operational and Interoperability Impact if Blocked">
          <t>The lack of open specifications for these options makes it
          impossible to evaluate the operational and interoperability impact
          if packets containing these options are blocked.</t>
        </section>

        <section title="Advice">
          <t>Routers, security gateways, and firewalls SHOULD have
          configuration knobs for IP packets containing these options (or
          other options not recognized) to select between "ignore &amp;
          forward" and "drop &amp; log".</t>

<t>
<xref target="other-spec" />
points out that <xref target="RFC1122" /> and <xref target="RFC1812" />
specify that unrecognized IP options MUST be ignored. However, the
previous paragraph states that routers, security gateways, and firewalls SHOULD
have a configuration option for dropping and logging IP packets
containing unrecognized options. While it is acknowledged that this advice
contradicts the previous RFCs' requirements, the advice in this document
reflects current operational reality.
</t>

          <t>Special care needs to be taken in the case of "drop &amp; log".
          Devices SHOULD count the number of packets dropped, but the logging
          of drop events SHOULD be limited so as to not overburden device
          resources.</t>
        </section>
      </section>
    </section>

    <section anchor="Security" title="Security Considerations">
      <t>This document provides advice on the filtering of IP packets that
      contain IP options. Dropping such packets can help to mitigate the
      security issues that arise from use of different IP options. Many of the
      IPv4 options listed in this document are deprecated and cause no
      operational impact if dropped. However, dropping packets containing IPv4
      options that are in use can cause real operational problems in deployed
      networks. Therefore, the practice of dropping all IPv4 packets
      containing one or more IPv4 options without careful consideration is not
      recommended.</t>
    </section>

    <section title="Acknowledgements">
      <t>The authors would like to thank (in alphabetical order)
 Ron Bonica,
 C. M. Heard,
 Merike Kaeo,
 Panos Kampanakis,
 Suresh Krishnan,
 Arturo Servin,
 SM,
 and
 Donald Smith

      for providing thorough reviews and valuable comments.
      Merike Kaeo also contributed text used in this document.
</t>

<t>
	 The authors also wish to thank various network operations
	 folks who supplied feedback on earlier versions of this
	 document but did not wish to be named explicitly in
	 this document.
</t>

      <t>Part of this document is initially based on the document "Security
      Assessment of the Internet Protocol" <xref target="CPNI2008"/> that is
      the result of a project carried out by Fernando Gont on behalf of UK
      CPNI (formerly NISCC). Fernando Gont would like to thank UK CPNI
      (formerly NISCC) for their continued support.</t>
    </section>
  </middle>

  <back>
    <references title="Normative References">
      <?rfc include="reference.RFC.0791" ?>

      <?rfc include="reference.RFC.1191" ?>

      <?rfc include="reference.RFC.1812" ?>

      <?rfc include="reference.RFC.4727" ?>

      <?rfc include="reference.RFC.1122" ?>

      <?rfc include="reference.RFC.2113" ?>

      <?rfc include="reference.RFC.2119" ?>

      <?rfc include="reference.RFC.4821" ?>

      <?rfc include="reference.RFC.5015" ?>
      <?rfc include="reference.RFC.6814" ?>
      <?rfc include="reference.RFC.6398" ?>

    </references>

    <references title="Informative References">
      <?rfc include="reference.RFC.1063" ?>
      <?rfc include="reference.RFC.4306" ?>
      <?rfc include="reference.RFC.5996" ?>

      <?rfc include="reference.RFC.1038" ?>

<reference anchor='RFC1108'>

<front>
<title abbrev='U.S. DOD Security Option'>U.S. Department of Defense Security
Options for the Internet Protocol</title>
<author initials='S.' surname='Kent' fullname='Stephen Kent'>
<organization>Bolt Baranek and Newman Communications (BBNCC)</organization>
<address>
<postal>
<street>150 CambridgePark Drive</street>
<city>Cambridge</city>
<region>MA</region>
<code>02140</code>
<country>US</country></postal>
<phone>+1 617 873 3988</phone>
<email>kent@bbn.com</email></address></author>
<date year='1991' month='November' />
<abstract>
<t>This RFC specifies the U.S. Department of Defense Basic Security Option and the top-level description of the Extended Security Option for use with the Internet Protocol.  This RFC obsoletes RFC 1038 "Revised IP Security Option", dated January 1988.</t></abstract></front>

<seriesInfo name='RFC' value='1108' />
<format type='TXT' octets='41791' target='http://www.rfc-editor.org/rfc/rfc1108.txt' />
</reference>


      <?rfc include="reference.RFC.1475" ?>

      <?rfc include="reference.RFC.1770" ?>

      <?rfc include="reference.RFC.4949" ?>
      <?rfc include="reference.RFC.2407" ?>

      <?rfc include="reference.RFC.2205" ?>

      <?rfc include="reference.RFC.3585" ?>

      <?rfc include="reference.RFC.4782" ?>

      <?rfc include="reference.RFC.4807" ?>

      <?rfc include="reference.RFC.5350" ?>

      <?rfc include="reference.RFC.5570" ?>

      <?rfc include="reference.RFC.1385" ?>

      <?rfc include="reference.RFC.1393" ?>

      <?rfc include="reference.RFC.6192" ?>

      <?rfc include="reference.RFC.6274" ?>


<!-- draft-stoica-diffserv-dps: Expired -->
<reference anchor='DIFFSERV-DPS'>
<front>
<title>Per Hop Behaviors Based on Dynamic Packet State</title>

<author initials='I' surname='Stoica' fullname='Ion Stoica'>
    <organization />
</author>

<author initials='H' surname='Zhang' fullname='Hui Zhang'>
    <organization />
</author>

<author initials='N' surname='Venkitaram' fullname='Narayanan Venkitaraman'>
    <organization />
</author>

<author initials='J' surname='Mysore' fullname='Jayanth Mysore'>
    <organization />
</author>

<date month='October' day='9' year='2002' />
</front>

<seriesInfo name="Work" value="in Progress"/>

</reference>

<!-- draft-farinacci-bidir-pim: Expired -->
      <reference anchor="BIDIR-TREES">
        <front>
          <title abbrev="Bi-Dir Shared Trees in PIM-SM">Bi-Directional Shared
          Trees in PIM-SM</title>

          <author fullname="D. Estrin" initials="D.E." surname="Estrin">
            <organization>USC/ISI</organization>
          </author>

          <author fullname="D. Farinacci" initials="D.F." surname="Farinacci">
            <organization>Cisco Systems</organization>
          </author>

          <date month="May" year="1999"/>
        </front>

<seriesInfo name="Work" value="in Progress"/>

      </reference>

<!-- draft-ietf-cipso-ipsecurity: Expired -->
      <reference anchor="CIPSO">
        <front>
          <title>COMMERCIAL IP SECURITY OPTION (CIPSO 2.2)</title>

          <author>
            <organization>IETF CIPSO Working Group
            </organization>
          </author>

          <date year="1992"/>
        </front>

<seriesInfo name="Work" value="in Progress"/>

      </reference>

      <reference anchor="Biondi2007" target="http://www.secdev.org/conf/IPv6_RH_security-csw07.pdf">
        <front>
          <title>IPv6 Routing Header Security</title>

          <author fullname="P. Biondi" initials="P." surname="Biondi">
            <organization/>
          </author>

          <author fullname="A. Ebalard" initials="A." surname="Ebalard">
            <organization/>
          </author>

          <date year="2007"/>
        </front>

        <seriesInfo name="CanSecWest 2007"
                    value="Security Conference"/>
      </reference>

      <reference anchor="CIPSOWG1994"
                 target="http://www.ietf.org/proceedings/94jul/charters/cipso-charter.html">
        <front>
          <title>Commercial Internet Protocol Security Option (CIPSO) Charter</title>

          <author>
            <organization>IETF CIPSO Working Group
            </organization>
          </author>

          <date year="1994"/>
        </front>
      </reference>

      <reference anchor="Cisco-IPSO" target="http://www.cisco.com/en/US/docs/ios/12_2/security/configuration/guide/scfipso.html">
        <front>
          <title>Configuring IP Security Options</title>

          <author>
            <organization>Cisco Systems, Inc.</organization>
          </author>

          <date year="2006"/>
        </front>
<seriesInfo name="Cisco IOS Security Configuration Guide," value="Release 12.2"/>

      </reference>

    <reference anchor="Cisco-IPSO-Cmds" target="http://www.cisco.com/en/US/docs/ios/12_2/security/command/reference/srfipso.html">
        <front>
            <title>IP Security Options Commands</title>
            <author>
                <organization>Cisco Systems, Inc.</organization>
            </author>
            <date />
        </front>
<seriesInfo name="Cisco IOS Security Command Reference," value="Release 12.2"/>
    </reference>

      <reference anchor="FIPS1994" target="http://csrc.nist.gov/publications/fips/fips188/fips188.pdf">
        <front>
          <title>Standard Security Label for Information Transfer</title>

          <author>
            <organization>FIPS</organization>
          </author>

          <date year="1994"/>
        </front>

        <seriesInfo name="Federal Information Processing Standards Publication,"
                    value="FIP PUBS 188"/>

      </reference>

      <reference anchor="IANA-IP"
                 target="http://www.iana.org/assignments/ip-parameters">
        <front>
          <title>IP OPTION NUMBERS</title>

          <author>
            <organization>IANA</organization>
          </author>
<date/>
        </front>

      </reference>

      <reference anchor="IRIX2008"
target="http://techpubs.sgi.com/library/tpl/cgi-bin/getdoc.cgi?coll=0650&amp;db=man&amp;fname=/usr/share/catman/a_man/cat7/trusted_networking.z">
        <front>
          <title>IRIX 6.5 trusted_networking(7) manual page</title>

          <author>
            <organization>IRIX</organization>
          </author>

          <date year="2008"/>
        </front>

      </reference>

      <reference anchor="Kohno2005">
        <front>
          <title>Remote Physical Device Fingerprinting</title>

          <author fullname="T. Kohno" initials="T." surname="Kohno">
            <organization/>
          </author>

          <author fullname="A. Broido" initials="A." surname="Broido">
            <organization/>
          </author>

          <author fullname="kc Claffy" initials="kc" surname="Claffy">
            <organization/>
          </author>

          <date year="2005"/>
        </front>

        <seriesInfo name="IEEE Transactions on Dependable and Secure Computing,"
                    value="Vol. 2, No. 2"/>
      </reference>

      <reference anchor="Landwehr81">
        <front>
          <title>Formal Models for Computer Security</title>

          <author fullname="Carl E. Landwehr" initials="C." surname="Landwehr">
            <organization/>
          </author>

          <date month="September" year="1981"/>
        </front>

        <seriesInfo name="ACM Computing Surveys,"
                    value="Vol. 13, No. 3, Association for Computing Machinery, New York, NY, USA"/>
      </reference>

<!-- [rfced] The URL for [CPNI2008] returns "Not Found". Please 
provide an updated URL.

   http://www.cpni.gov.uk/Docs/InternetProtocol.pdf
-->
<!-- Carlos: I could not find where it moved, one option
is to leave it as-is, another option is to cite RFC 6274 -->

<!-- Fernando: I've replaced the URL with a stable one -->


      <reference anchor="CPNI2008" target="http://www.gont.com.ar/papers/InternetProtocol.pdf">
        <front>
          <title>Security Assessment of the Internet Protocol</title>

          <author fullname="Fernando Gont" initials="F." surname="Gont">
            <organization>Centre for the Protection of National
            Infrastructure</organization>
          </author>

          <date year="2008"/>
        </front>
      </reference>

      <reference anchor="BREMIER-BARR">
        <front>
          <title>Spoofing prevention method</title>

          <author fullname="A. Bremier-Barr" initials="A." surname="Bremier-Barr">
            <organization/>
          </author>

          <author fullname="H. Levy" initials="H." surname="Levy">
            <organization/>
          </author>

          <date month="March" year="2005"/>
        </front>

        <seriesInfo name="Proceedings of IEEE InfoCom 2005,"
                    value="Volume 1, pp. 536-547"/>
      </reference>


      <reference anchor="MEDINA">
        <front>
          <title>Measuring Interactions Between Transport Protocols and
          Middleboxes</title>

          <author fullname="Alberto Medina" initials="A." surname="Medina">
            <organization/>
          </author>

          <author fullname="Mark Allman" initials="M." surname="Allman">
            <organization/>
          </author>

          <author fullname="Sally Floyd" initials="S." surname="Floyd">
            <organization/>
          </author>

          <date month="October" year="2004"/>
        </front>

        <seriesInfo name="Proc. 4th ACM SIGCOMM/USENIX Conference on Internet"
                    value="Measurement"/>
      </reference>

      <reference anchor="FONSECA" target="http://www.eecs.berkeley.edu/Pubs/TechRpts/2005/EECS-2005-24.html">
        <front>
          <title>IP Options are not an option</title>

          <author fullname="Rodrigo Fonseca" initials="R." surname="Fonseca">
            <organization/>
          </author>

          <author fullname="George Manning Porter" initials="G."
                  surname="Porter">
            <organization/>
          </author>

          <author fullname="Randy H. Katz" initials="R." surname="Katz">
            <organization/>
          </author>

          <author fullname="Scott Shenker" initials="S." surname="Shenker">
            <organization/>
          </author>

          <author fullname="Ion Stoica" initials="I." surname="Stoica">
            <organization/>
          </author>

          <date month="December" year="2005"/>
        </front>

<seriesInfo name="EECS Department," value="University of California, Berkeley"/>
      </reference>

      <reference anchor="Microsoft1999"
                 target="http://www.microsoft.com/technet/security/bulletin/ms99-038.mspx">
        <front>
          <title>Microsoft Security Program: Microsoft Security Bulletin
          (MS99-038). Patch Available for "Spoofed Route Pointer"
          Vulnerability</title>

          <author>
            <organization>Microsoft</organization>
          </author>

          <date month="September" year="1999"/>
        </front>
      </reference>

      <reference anchor="OpenBSD1998"
                 target="http://www.openbsd.org/advisories/sourceroute.txt">
        <front>
          <title>OpenBSD Security Advisory: IP Source Routing Problem</title>

          <author>
            <organization>OpenBSD</organization>
          </author>

          <date month="February" year="1998"/>
        </front>
      </reference>

      <reference anchor="SELinux2008"
                target="http://www.nsa.gov/research/selinux/index.shtml">
        <front>
          <title>Security-Enhanced Linux - NSA/CSS</title>

          <author>
            <organization>National Security Agency (United States)</organization>
          </author>

          <date month="January" year="2009"/>
        </front>
      </reference>


      <reference anchor="Solaris2008"
          target="http://www.oracle.com/technetwork/server-storage/solaris10/overview/trusted-extensions-149944.pdf">
        <front>
          <title>Solaris Trusted Extensions: Labeled Security for Absolute Protection</title>
<author />

          <date year="2008"/>
        </front>
      </reference>
    </references>
  </back>
</rfc>
