<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE rfc [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">
]>
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" submissionType="IETF" docName="draft-gai-intarea-ip-tunnel-node-security-00" category="std" ipr="trust200902" obsoletes="" updates="" xml:lang="en" symRefs="true" sortRefs="false" tocInclude="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.33.0 -->
  <!-- Generated by id2xml 1.6.0 on 2026-06-02T07:54:17Z -->
	<front>
    <title abbrev="IP Tunnel Node Security">Security Requirements for IP Tunnel Nodes</title>
    <seriesInfo name="Internet-Draft" value="draft-gai-intarea-ip-tunnel-node-security-00"/>
    <author initials="L." surname="He" fullname="Lin He">
      <organization>Tsinghua University</organization>
      <address>
        <postal>
          <street>Beijing</street>
          <street>China</street>
        </postal>
        <email>he-lin@tsinghua.edu.cn</email>
      </address>
    </author>
    <author initials="L." surname="Gai" fullname="Le Gai">
      <organization>Tsinghua University</organization>
      <address>
        <postal>
          <street>Beijing</street>
          <street>China</street>
        </postal>
        <email>gl25@mails.tsinghua.edu.cn</email>
      </address>
    </author>
    <author initials="Z." surname="Jia" fullname="Zedong Jia">
      <organization>Tsinghua University</organization>
      <address>
        <postal>
          <street>Beijing</street>
          <street>China</street>
        </postal>
        <email>jzd25@mails.tsinghua.edu.cn</email>
      </address>
    </author>
    <author initials="Y." surname="Liu" fullname="Ying Liu">
      <organization>Tsinghua University</organization>
      <address>
        <postal>
          <street>Beijing</street>
          <street>China</street>
        </postal>
        <email>liuying@cernet.edu.cn</email>
      </address>
    </author>
    <date year="2026" month="June" day="1"/>
    <workgroup>Internet Area</workgroup>
    <abstract>
      <t>
   IP tunnel nodes are widely deployed for IPv4/IPv6 transition, overlay
   connectivity, traffic engineering, and inter-domain services.  A
   tunnel node that accepts tunneled packets from unauthorized sources
   or forwards decapsulated packets without validating the inner packet
   can become an open relay, a source-address-spoofing enabler, or a
   path around filtering policy.</t>
      <t>
   This document specifies security requirements for IP tunnel nodes.
   It defines requirements for tunnel enablement, peer authorization,
   source address validation, forwarding-scope validation, recursive
   encapsulation limits, IPv6 extension header handling, ICMP behavior,
   logging, and operational management.  The requirements apply to IP-
   in-IP, GRE, IPv6 tunnel mechanisms, and IPv4/IPv6 transition tunnels.</t>
    </abstract>
  </front>
  <middle>
    <section anchor="sect-1" numbered="true" toc="default">
      <name>Introduction</name>
      <t>
   IP tunneling carries an inner IP packet as the payload of an outer IP
   packet.  The outer header is routed across a delivery network.  The
   tunnel egress removes the outer encapsulation and then forwards or
   locally consumes the inner packet.  This model is used by IP-in-IP
   <xref target="RFC2003" format="default"/>, generic packet tunneling in IPv6 <xref target="RFC2473" format="default"/>, Generic
   Routing Encapsulation (GRE) <xref target="RFC2784" format="default"/>, GRE-in-IPv6 <xref target="RFC7676" format="default"/>, and
   IPv4/IPv6 transition mechanisms <xref target="RFC4213" format="default"/>.</t>
      <t>
   A tunnel node is not merely another router on the native forwarding
   path.  Decapsulation creates a second forwarding decision, often in a
   different address family or forwarding domain.  If the tunnel node
   accepts traffic from arbitrary outer sources, or forwards arbitrary
   inner packets after decapsulation, it can bypass filtering that would
   normally have applied on the native path.</t>
      <t>
   This document specifies requirements that make tunnel nodes explicit,
   bounded, and accountable.  The intent is not to deprecate IP
   tunneling.  The intent is to prevent tunnel nodes from operating as
   open relays, source spoofing enablers, or uncontrolled recursive
   forwarding points.</t>
      <section anchor="sect-1.1" numbered="true" toc="default">
        <name>Scope</name>
        <t>
   This document applies to devices and software that encapsulate,
   decapsulate, relay, or forward IP tunnel packets, including routers,
   hosts, firewalls, tunnel brokers, customer edge devices, provider
   edge devices, and middleboxes.</t>
        <t>
   The requirements apply to configured tunnels and to automatic or
   transition mechanisms when those mechanisms are enabled.  This
   document does not define a new tunnel encapsulation and does not
   change the packet format of any existing tunnel protocol.</t>
      </section>
      <section anchor="sect-1.2" numbered="true" toc="default">
        <name>Terminology</name>
        <dl newline="true" spacing="normal" indent="3">
          <dt>IP tunnel:</dt>
          <dd>
	A mechanism that carries an inner IP packet as payload of an outer
      IP packet.  The delivery protocol can be IPv4 or IPv6, and the
      passenger protocol can be IPv4 or IPv6.
	</dd>
          <dt>Tunnel node:</dt>
          <dd>
	A node that performs IP tunnel encapsulation, decapsulation, or
      tunnel relay processing.  "Tunnel node" is the generic term used
      in this document.  The following terms describe functional roles
      of a tunnel node.  A single device can act as an ingress tunnel
      node for one tunnel, an egress tunnel node for another tunnel, and
      a relay tunnel node for a third tunnel.
	</dd>
          <dt>Ingress tunnel node:</dt>
          <dd>
	A tunnel node that receives a native IP packet and encapsulates it
      into an outer IP packet for delivery across a tunnel.
	</dd>
          <dt>Egress tunnel node:</dt>
          <dd>
	A tunnel node that receives an encapsulated IP packet, removes the
      outer tunnel encapsulation, and locally delivers or forwards the
      resulting inner IP packet according to tunnel policy.
	</dd>
          <dt>Relay tunnel node:</dt>
          <dd>
	A tunnel node that decapsulates a packet and then forwards or re-
      encapsulates the resulting inner packet into another routing
      domain, address family, tunnel, or native network.
	</dd>
          <dt>Open tunnel node:</dt>
          <dd>
	A tunnel node that accepts tunneled packets from sources that are
      not administratively configured, authenticated, or otherwise
      authorized.
	</dd>
          <dt>Tunnel peer:</dt>
          <dd>
	A remote endpoint or relay authorized to send tunneled packets to
      a tunnel node.
	</dd>
          <dt>Inner source prefix set:</dt>
          <dd>
	The set of inner source prefixes that a tunnel peer is authorized
      to inject through a tunnel.
	</dd>
          <dt>Recursive encapsulation:</dt>
          <dd>
	A packet structure in which the inner packet exposed by one
      decapsulation step is itself another tunneled packet.
	</dd>
        </dl>
      </section>
      <section anchor="sect-1.3" numbered="true" toc="default">
        <name>Requirements Language</name>
        <t>
   The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
   "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and
   "OPTIONAL" in this document are to be interpreted as described in BCP
   14 <xref target="RFC2119" format="default"/> <xref target="RFC8174" format="default"/> when, and only when, they appear in all
   capitals, as shown here.</t>
      </section>
    </section>
    <section anchor="sect-2" numbered="true" toc="default">
      <name>Tunnel Node Processing Model</name>
      <t>
   A tunnel node compliant with this document applies the following
   logical processing stages:</t>
      <ol spacing="normal" type="1"><li>
          <t>Determine whether the addressed tunnel mechanism is enabled.</t>
        </li>
        <li>
          <t>Identify the candidate tunnel policy from the outer packet and
       local configuration.</t>
        </li>
        <li>
          <t>Validate the outer source address and tunnel peer.</t>
        </li>
        <li>
          <t>Authorize decapsulation for the selected tunnel policy.</t>
        </li>
        <li>
          <t>Decapsulate the packet.</t>
        </li>
        <li>
          <t>Validate the exposed inner packet, including the inner source
       address and destination forwarding scope.</t>
        </li>
        <li>
          <t>Apply recursive encapsulation limits and IPv6 extension header
       policy.</t>
        </li>
        <li>
          <t>Forward, locally deliver, re-encapsulate, or discard the packet.</t>
        </li>
        <li>
          <t>Update counters and emit rate-limited logs or control-plane
       responses as configured.</t>
        </li>
      </ol>
      <t>
   An implementation MAY combine these stages internally, but it MUST
   preserve the externally visible security properties described in this
   document.</t>
      <t>
   A packet that fails any validation stage MUST be discarded unless a
   later section explicitly allows a different action.  The tunnel node
   MUST NOT forward a packet merely because a previous stage accepted
   the outer packet.</t>
    </section>
    <section anchor="sect-3" numbered="true" toc="default">
      <name>Default Configuration Requirements</name>
      <t>
   Tunnel decapsulation MUST be disabled unless a tunnel mode is
   explicitly enabled by configuration, authenticated control-plane
   state, or a standards-defined automatic tunnel mechanism.</t>
      <t>
   Implementations MUST NOT enable open decapsulation by default.  A
   node that supports a permissive or automatic mode MUST require
   explicit administrative action to enable that mode.</t>
      <t>
   A tunnel node MUST provide a per-tunnel policy object containing at
   least:</t>
      <ul spacing="normal">
        <li>
          <t>the enabled encapsulation type;</t>
        </li>
        <li>
          <t>the authorized outer peer address or peer address set, except
      where a standards-defined automatic mode derives this value from
      the packet;</t>
        </li>
        <li>
          <t>the inner source prefix set authorized for each peer;</t>
        </li>
        <li>
          <t>the forwarding domain or interface into which validated inner
      packets may be forwarded;</t>
        </li>
        <li>
          <t>the maximum recursive decapsulation depth;</t>
        </li>
        <li>
          <t>the IPv6 extension header policy applied after decapsulation;</t>
        </li>
        <li>
          <t>logging and rate-limiting parameters.</t>
        </li>
      </ul>
      <t>
   The default maximum recursive decapsulation depth MUST be one.  A
   higher value MUST require explicit configuration.</t>
    </section>
    <section anchor="sect-4" numbered="true" toc="default">
      <name>Peer Authorization and Authentication</name>
      <t>
   Configured tunnels SHOULD authenticate tunnel peers.  Authentication
   MAY be provided by a secure control plane, IPsec, authenticated
   keying, cryptographic tunnel mechanisms, or another operator-approved
   mechanism.</t>
      <t>
   GRE keys, IPv6 flow labels, interface identifiers, and predictable
   address formats MUST NOT be treated as peer authentication by
   themselves.  They MAY be used as selectors after the peer has already
   been authorized by other means.</t>
      <t>
   If authentication is not available for a tunnel mode, the
   implementation MUST provide address-based peer authorization and
   inner source prefix validation.</t>
      <t>
   Operators SHOULD prefer authenticated tunnels when the tunnel crosses
   an untrusted network.  Operators SHOULD treat unauthenticated tunnels
   as explicitly exposed attack surfaces and SHOULD apply stricter rate
   limits and logging to them.</t>
    </section>
    <section anchor="sect-5" numbered="true" toc="default">
      <name>Source Address Validation Requirements</name>
      <t>
   Source Address Validation (SAV) prevents packets with invalid or
   unauthorized source addresses from entering or leaving a network.
   Tunnel processing MUST NOT bypass SAV for either the outer packet or
   the inner packet exposed after decapsulation.</t>
      <section anchor="sect-5.1" numbered="true" toc="default">
        <name>Outer Source Address Validation</name>
        <t>
   A tunnel node MUST validate the outer source address before
   decapsulation.  For configured tunnels, the outer source address MUST
   match the configured tunnel peer or a configured peer address set.</t>
        <t>
   For automatic tunnel mechanisms, the tunnel node MUST perform the
   source-address consistency checks specified for that mechanism.  6to4
   implementations and relays MUST implement the security checks
   described in <xref target="RFC3964" format="default"/>.</t>
        <t>
   Packets that fail outer source address validation MUST be discarded
   before decapsulation.  A tunnel node MUST NOT generate an ICMP error
   in response to a packet discarded for failed outer source address
   validation unless local policy explicitly permits it and the response
   is rate limited.</t>
      </section>
      <section anchor="sect-5.2" numbered="true" toc="default">
        <name>Inner Source Address Validation</name>
        <t>
   After decapsulation, an egress or relay tunnel node MUST validate the
   inner source address against the inner source prefix set associated
   with the tunnel peer and tunnel mode.</t>
        <t>
   If the inner source address is not covered by the authorized inner
   source prefix set, the packet MUST be discarded.  The packet MUST NOT
   be forwarded, re-encapsulated, reflected, or locally answered.</t>
        <t>
   For ingress encapsulation, a tunnel node MUST apply SAV to native
   packets before encapsulating them into a tunnel.  SAV SHOULD be
   implemented using BCP 38 and BCP 84 techniques, including strict or
   feasible-path unicast reverse path forwarding where appropriate
   <xref target="RFC2827" format="default"/> <xref target="RFC3704" format="default"/> <xref target="RFC8704" format="default"/>.</t>
        <t>
   For multihomed or asymmetric networks, strict uRPF can cause false
   drops.  In those deployments, operators SHOULD use feasible-path,
   enhanced feasible-path, access-list, or source-prefix-list policies
   that preserve SAV while accounting for routing asymmetry.</t>
      </section>
      <section anchor="sect-5.3" numbered="true" toc="default">
        <name>Destination and Forwarding-Scope Validation</name>
        <t>
   A tunnel node MUST verify that the inner destination is permitted by
   the tunnel policy before forwarding the decapsulated packet.</t>
        <t>
   A tunnel node MUST NOT act as an open relay that accepts arbitrary
   tunneled traffic and forwards arbitrary inner destinations into the
   global Internet.</t>
        <t>
   If a tunnel is intended to provide transit service, the node MUST
   define the permitted source prefixes, destination scope, and
   forwarding domain for that service.  Transit behavior MUST be
   disabled by default.</t>
      </section>
    </section>
    <section anchor="sect-6" numbered="true" toc="default">
      <name>Recursive Encapsulation Requirements</name>
      <t>
   A tunnel node MUST detect when a decapsulated inner packet is itself
   an IP tunnel packet supported by the same node.</t>
      <t>
   Recursive decapsulation MUST be bounded by a configurable maximum
   depth.  The default maximum depth MUST be one.  Packets that exceed
   the maximum depth MUST be discarded.</t>
      <t>
   A tunnel node MUST apply the same peer authorization, outer source
   validation, inner source validation, IPv6 extension header policy,
   and forwarding-scope validation at each decapsulation layer.
   Validation at the outermost layer MUST NOT be treated as
   authorization for deeper layers.</t>
      <t>
   Automatic re-encapsulation of a decapsulated packet into another
   tunnel MUST be disabled by default.  If re-encapsulation is enabled,
   it MUST be controlled by explicit routing or policy state and MUST
   preserve the SAV requirements in this document.</t>
    </section>
    <section anchor="sect-7" numbered="true" toc="default">
      <name>IPv6 Extension Header Requirements</name>
      <t>
   IPv6 extension headers are specified by <xref target="RFC8200" format="default"/>.  Operational
   considerations for forwarding packets that contain IPv6 extension
   headers are described in <xref target="RFC7045" format="default"/> and <xref target="RFC9098" format="default"/>.  Tunnel nodes need
   explicit policy because decapsulation can expose an IPv6 packet that
   was not visible to previous filtering devices.</t>
      <t>
   After each decapsulation step, a tunnel node MUST apply its IPv6
   extension header policy to the exposed inner IPv6 packet before
   forwarding or re-encapsulation.</t>
      <t>
   A tunnel node MUST be able to parse enough of the IPv6 header chain
   to enforce:</t>
      <ul spacing="normal">
        <li>
          <t>source and destination address validation;</t>
        </li>
        <li>
          <t>fragment policy;</t>
        </li>
        <li>
          <t>routing header policy;</t>
        </li>
        <li>
          <t>upper-layer protocol policy where such policy is configured;</t>
        </li>
        <li>
          <t>local control-plane protection.</t>
        </li>
      </ul>
      <t>
   If the tunnel node cannot parse enough of the IPv6 header chain to
   enforce configured policy, it MUST discard the packet or send it to a
   rate-limited inspection path.  It MUST NOT blindly forward such a
   packet on the fast path.</t>
      <t>
   A tunnel node MUST provide configurable limits for:</t>
      <ul spacing="normal">
        <li>
          <t>the number of IPv6 extension headers;</t>
        </li>
        <li>
          <t>the total length of the IPv6 extension header chain;</t>
        </li>
        <li>
          <t>the number of Fragment Headers;</t>
        </li>
        <li>
          <t>the use of Routing Headers;</t>
        </li>
        <li>
          <t>the use of Hop-by-Hop Options.</t>
        </li>
      </ul>
      <t>
   Routing Header Type 0 packets MUST be discarded, consistent with
   <xref target="RFC5095" format="default"/>.  Segment Routing Headers and other routing headers SHOULD
   be accepted only when the tunnel node is part of an explicitly
   configured trusted domain for that routing header type.</t>
      <t>
   IPv6 fragments that prevent the tunnel node from enforcing configured
   SAV, forwarding, or upper-layer policy MUST be discarded.
   Implementations SHOULD provide counters that distinguish these drops
   from ordinary forwarding drops.</t>
    </section>
    <section anchor="sect-8" numbered="true" toc="default">
      <name>Protocol-Specific Requirements</name>
      <section anchor="sect-8.1" numbered="true" toc="default">
        <name>IP-in-IP and IP6IP6</name>
        <t>
   For IP-in-IP <xref target="RFC2003" format="default"/> and IP6IP6 <xref target="RFC2473" format="default"/>, tunnel nodes MUST
   enforce configured outer peer authorization and inner source prefix
   validation.  A packet with protocol number 4 or 41 addressed to a
   node MUST NOT be decapsulated unless it matches an enabled tunnel
   policy.</t>
        <t>
   An IP-in-IP or IP6IP6 tunnel node MUST NOT forward a decapsulated
   inner packet whose source address is outside the inner source prefix
   set authorized for that tunnel peer.</t>
      </section>
      <section anchor="sect-8.2" numbered="true" toc="default">
        <name>GRE and GRE-in-IPv6</name>
        <t>
   For GRE <xref target="RFC2784" format="default"/> and GRE-in-IPv6 <xref target="RFC7676" format="default"/>, the tunnel node MUST
   validate the outer peer before using GRE header fields to select a
   tunnel.</t>
        <t>
   GRE keys MAY select a tenant, virtual routing table, or tunnel
   policy, but a GRE key MUST NOT authorize traffic by itself.</t>
        <t>
   If a GRE tunnel carries multiple inner protocol families, the tunnel
   policy MUST define inner source prefix sets for each enabled
   passenger protocol family.</t>
      </section>
      <section anchor="sect-8.3" numbered="true" toc="default">
        <name>IPv4/IPv6 Transition Tunnels</name>
        <t>
   For configured IPv6-over-IPv4 and IPv4-over-IPv6 transition tunnels
   <xref target="RFC4213" format="default"/>, the node MUST bind each tunnel peer to the inner prefixes
   that peer may inject.</t>
        <t>
   Cross-protocol encapsulation MUST NOT bypass SAV for either address
   family.  Operators SHOULD audit transition tunnels more frequently
   than single-family tunnels because IPv4 and IPv6 SAV policies are
   often configured by different teams, devices, or routing processes.</t>
      </section>
      <section anchor="sect-8.4" numbered="true" toc="default">
        <name>6to4</name>
        <t>
   6to4 <xref target="RFC3056" format="default"/> has known operational and security problems, including
   the deprecation of the 6to4 anycast relay prefix described in
   <xref target="RFC7526" format="default"/>.  A node that continues to operate 6to4 MUST implement the
   filtering checks in <xref target="RFC3964" format="default"/> and the additional requirements in this
   document.</t>
        <t>
   A 6to4 relay or border function MUST discard packets when the
   embedded IPv4 address in a 2002::/16 address is inconsistent with the
   outer IPv4 source or destination according to the direction of
   processing and the relay role.</t>
        <t>
   A 6to4 relay MUST NOT provide unrestricted transit for spoofed inner
   sources.  Relay behavior MUST be explicitly enabled, logged, and rate
   limited.</t>
      </section>
    </section>
    <section anchor="sect-9" numbered="true" toc="default">
      <name>ICMP, TTL, Hop Limit, MTU, and Fragmentation</name>
      <t>
   When a tunnel node forwards a decapsulated packet, it MUST apply the
   normal forwarding rules for the inner protocol, including TTL or Hop
   Limit processing.</t>
      <t>
   If a packet is dropped because TTL or Hop Limit expires after
   decapsulation, any generated ICMP error MUST be rate limited.  ICMP
   errors MUST NOT be generated for packets that fail source validation,
   peer authorization, or extension header policy unless explicitly
   enabled by local policy.</t>
      <t>
   Tunnel nodes SHOULD rate limit ICMP Echo processing for packets
   exposed by decapsulation.  Tunnel nodes MUST NOT allow decapsulated
   ICMP traffic to create amplification materially larger than the
   received packet stream.</t>
      <t>
   Tunnel nodes MUST provide MTU handling consistent with the underlying
   tunnel specifications.  A tunnel node SHOULD avoid fragmentation
   where Path MTU Discovery can be used.</t>
      <t>
   Fragmentation behavior MUST NOT bypass validation.  If a tunnel node
   cannot validate the inner packet because required information is
   split across fragments or unavailable without reassembly, the node
   MUST either perform safe reassembly within configured resource limits
   or discard the packet.</t>
      <t>
   Reassembly state created for tunnel validation MUST be resource
   limited.  When resource limits are exceeded, the node MUST fail
   closed for packets that require reassembly for validation.</t>
    </section>
    <section anchor="sect-10" numbered="true" toc="default">
      <name>Operational Management and Telemetry</name>
      <t>
   Operators deploying tunnel nodes SHOULD:</t>
      <ul spacing="normal">
        <li>
          <t>inventory all enabled tunnel modes and endpoints;</t>
        </li>
        <li>
          <t>disable unused tunnel protocols at borders and hosts;</t>
        </li>
        <li>
          <t>bind every configured peer to authorized inner source prefixes;</t>
        </li>
        <li>
          <t>align IPv4 and IPv6 SAV policy for cross-protocol tunnels;</t>
        </li>
        <li>
          <t>explicitly configure recursive encapsulation depth;</t>
        </li>
        <li>
          <t>apply a conservative IPv6 extension header policy at tunnel
      egress;</t>
        </li>
        <li>
          <t>rate limit ICMP generated after decapsulation;</t>
        </li>
        <li>
          <t>monitor tunnel drop counters;</t>
        </li>
        <li>
          <t>periodically test that tunnel nodes are not open relays.</t>
        </li>
      </ul>
      <t>
   A tunnel node MUST provide counters for at least:</t>
      <ul spacing="normal">
        <li>
          <t>packets accepted by tunnel policy;</t>
        </li>
        <li>
          <t>packets discarded for unknown tunnel mode;</t>
        </li>
        <li>
          <t>packets discarded for unauthorized outer peer;</t>
        </li>
        <li>
          <t>packets discarded for failed inner SAV;</t>
        </li>
        <li>
          <t>packets discarded for exceeded recursive encapsulation depth;</t>
        </li>
        <li>
          <t>packets discarded for IPv6 extension header policy;</t>
        </li>
        <li>
          <t>packets discarded for fragment policy;</t>
        </li>
        <li>
          <t>generated ICMP errors after decapsulation.</t>
        </li>
      </ul>
      <t>
   Operators SHOULD be able to export these counters through existing
   telemetry mechanisms.  Implementations SHOULD support sampled logging
   for discarded packets, subject to rate limits and privacy controls.</t>
      <t>
   Logs SHOULD include the tunnel identifier, outer peer, tunnel mode,
   drop reason, and address family.  Logs SHOULD NOT include payload
   beyond the headers required for diagnosis.</t>
      <t>
   Operators SHOULD treat open tunnel nodes as security defects unless
   they are part of a deliberate, documented, and filtered relay
   service.</t>
    </section>
    <section anchor="sect-11" numbered="true" toc="default">
      <name>IANA Considerations</name>
      <t>
   This document has no IANA actions.</t>
    </section>
    <section anchor="sect-12" numbered="true" toc="default">
      <name>Security Considerations</name>
      <t>
   This entire document specifies security requirements for IP tunnel
   nodes.  The main threats are:</t>
      <ul spacing="normal">
        <li>
          <t>unauthorized use of a tunnel node as an open relay;</t>
        </li>
        <li>
          <t>injection of spoofed inner source addresses;</t>
        </li>
        <li>
          <t>bypass of IPv4 or IPv6 SAV through cross-protocol tunnels;</t>
        </li>
        <li>
          <t>recursive encapsulation used to construct unintended forwarding
      paths;</t>
        </li>
        <li>
          <t>IPv6 extension header chains used to evade filtering or induce
      expensive processing;</t>
        </li>
        <li>
          <t>ICMP reflection or amplification after decapsulation;</t>
        </li>
        <li>
          <t>inconsistent policy between native forwarding and tunnel
      forwarding.</t>
        </li>
      </ul>
      <t>
   The requirements in this document reduce these risks by requiring
   peer authorization, inner source prefix validation, bounded recursive
   decapsulation, explicit IPv6 extension header policy, and operational
   telemetry.</t>
      <t>
   These requirements do not protect against a compromised authorized
   peer that sends traffic from authorized source prefixes.  Operators
   needing stronger guarantees SHOULD use authenticated and encrypted
   tunnel mechanisms and SHOULD apply traffic anomaly detection at the
   tunnel ingress and egress.</t>
      <t>
   Tunnel telemetry can reveal customer prefixes, tunnel peers, and
   traffic policy.  Implementations and operators SHOULD limit log
   retention and SHOULD aggregate or anonymize exported telemetry when
   fine-grained data is not required for operations or incident
   response.</t>
      <t>
   Measurement data collected through tunnel nodes can reveal SAV gaps
   in specific networks.  Such data SHOULD be handled as sensitive
   operational security information.</t>
    </section>
    <section anchor="sect-13" numbered="true" toc="default">
      <name>Contributors</name>
      <t>
   The following individual contributed significantly to the technical content,
   review, and analysis presented in this document:</t>
      <artwork name="" type="" align="left" alt=""><![CDATA[
Daguo Cheng
Tsinghua University
Beijing
China
Email: cdg22@mails.tsinghua.edu.cn

Chentian Wei
Tsinghua University
Beijing
China
Email: wct24@mails.tsinghua.edu.cn

]]></artwork>
    </section>
    <section anchor="sect-14" numbered="true" toc="default">
      <name>Acknowledgments</name>
      <t>
   The author thanks the IETF community for prior work on IP tunneling,
   source address validation, IPv6 extension header processing, and
   operational security guidance.</t>
    </section>
  </middle>
  <back>
    <references>
      <name>References</name>
      <references>
        <name>Normative References</name>
        <reference anchor="RFC2003" target="https://www.rfc-editor.org/info/rfc2003" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.2003.xml">
          <front>
            <title>IP Encapsulation within IP</title>
            <author fullname="C. Perkins" initials="C." surname="Perkins"/>
            <date month="October" year="1996"/>
            <abstract>
              <t>This document specifies a method by which an IP datagram may be encapsulated (carried as payload) within an IP datagram. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="2003"/>
          <seriesInfo name="DOI" value="10.17487/RFC2003"/>
        </reference>
        <reference anchor="RFC2119" target="https://www.rfc-editor.org/info/rfc2119" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.2119.xml">
          <front>
            <title>Key words for use in RFCs to Indicate Requirement Levels</title>
            <author fullname="S. Bradner" initials="S." surname="Bradner"/>
            <date month="March" year="1997"/>
            <abstract>
              <t>In many standards track documents several words are used to signify the requirements in the specification. These words are often capitalized. This document defines these words as they should be interpreted in IETF documents. This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="2119"/>
          <seriesInfo name="DOI" value="10.17487/RFC2119"/>
        </reference>
        <reference anchor="RFC2473" target="https://www.rfc-editor.org/info/rfc2473" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.2473.xml">
          <front>
            <title>Generic Packet Tunneling in IPv6 Specification</title>
            <author fullname="A. Conta" initials="A." surname="Conta"/>
            <author fullname="S. Deering" initials="S." surname="Deering"/>
            <date month="December" year="1998"/>
            <abstract>
              <t>This document defines the model and generic mechanisms for IPv6 encapsulation of Internet packets, such as IPv6 and IPv4. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="2473"/>
          <seriesInfo name="DOI" value="10.17487/RFC2473"/>
        </reference>
        <reference anchor="RFC2784" target="https://www.rfc-editor.org/info/rfc2784" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.2784.xml">
          <front>
            <title>Generic Routing Encapsulation (GRE)</title>
            <author fullname="D. Farinacci" initials="D." surname="Farinacci"/>
            <author fullname="T. Li" initials="T." surname="Li"/>
            <author fullname="S. Hanks" initials="S." surname="Hanks"/>
            <author fullname="D. Meyer" initials="D." surname="Meyer"/>
            <author fullname="P. Traina" initials="P." surname="Traina"/>
            <date month="March" year="2000"/>
            <abstract>
              <t>This document specifies a protocol for encapsulation of an arbitrary network layer protocol over another arbitrary network layer protocol. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="2784"/>
          <seriesInfo name="DOI" value="10.17487/RFC2784"/>
        </reference>
        <reference anchor="RFC2827" target="https://www.rfc-editor.org/info/rfc2827" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.2827.xml">
          <front>
            <title>Network Ingress Filtering: Defeating Denial of Service Attacks which employ IP Source Address Spoofing</title>
            <author fullname="P. Ferguson" initials="P." surname="Ferguson"/>
            <author fullname="D. Senie" initials="D." surname="Senie"/>
            <date month="May" year="2000"/>
            <abstract>
              <t>This paper discusses a simple, effective, and straightforward method for using ingress traffic filtering to prohibit DoS (Denial of Service) attacks which use forged IP addresses to be propagated from 'behind' an Internet Service Provider's (ISP) aggregation point. This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="38"/>
          <seriesInfo name="RFC" value="2827"/>
          <seriesInfo name="DOI" value="10.17487/RFC2827"/>
        </reference>
        <reference anchor="RFC3704" target="https://www.rfc-editor.org/info/rfc3704" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.3704.xml">
          <front>
            <title>Ingress Filtering for Multihomed Networks</title>
            <author fullname="F. Baker" initials="F." surname="Baker"/>
            <author fullname="P. Savola" initials="P." surname="Savola"/>
            <date month="March" year="2004"/>
            <abstract>
              <t>BCP 38, RFC 2827, is designed to limit the impact of distributed denial of service attacks, by denying traffic with spoofed addresses access to the network, and to help ensure that traffic is traceable to its correct source network. As a side effect of protecting the Internet against such attacks, the network implementing the solution also protects itself from this and other attacks, such as spoofed management access to networking equipment. There are cases when this may create problems, e.g., with multihoming. This document describes the current ingress filtering operational mechanisms, examines generic issues related to ingress filtering, and delves into the effects on multihoming in particular. This memo updates RFC 2827. This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="84"/>
          <seriesInfo name="RFC" value="3704"/>
          <seriesInfo name="DOI" value="10.17487/RFC3704"/>
        </reference>
        <reference anchor="RFC3964" target="https://www.rfc-editor.org/info/rfc3964" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.3964.xml">
          <front>
            <title>Security Considerations for 6to4</title>
            <author fullname="P. Savola" initials="P." surname="Savola"/>
            <author fullname="C. Patel" initials="C." surname="Patel"/>
            <date month="December" year="2004"/>
            <abstract>
              <t>The IPv6 interim mechanism 6to4 (RFC3056) uses automatic IPv6-over-IPv4 tunneling to interconnect IPv6 networks. The architecture includes 6to4 routers and 6to4 relay routers, which accept and decapsulate IPv4 protocol-41 ("IPv6-in-IPv4") traffic from any node in the IPv4 internet. This characteristic enables a number of security threats, mainly Denial of Service. It also makes it easier for nodes to spoof IPv6 addresses. This document discusses these issues in more detail and suggests enhancements to alleviate the problems. This memo provides information for the Internet community.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="3964"/>
          <seriesInfo name="DOI" value="10.17487/RFC3964"/>
        </reference>
        <reference anchor="RFC4213" target="https://www.rfc-editor.org/info/rfc4213" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.4213.xml">
          <front>
            <title>Basic Transition Mechanisms for IPv6 Hosts and Routers</title>
            <author fullname="E. Nordmark" initials="E." surname="Nordmark"/>
            <author fullname="R. Gilligan" initials="R." surname="Gilligan"/>
            <date month="October" year="2005"/>
            <abstract>
              <t>This document specifies IPv4 compatibility mechanisms that can be implemented by IPv6 hosts and routers. Two mechanisms are specified, dual stack and configured tunneling. Dual stack implies providing complete implementations of both versions of the Internet Protocol (IPv4 and IPv6), and configured tunneling provides a means to carry IPv6 packets over unmodified IPv4 routing infrastructures.</t>
              <t>This document obsoletes RFC 2893. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="4213"/>
          <seriesInfo name="DOI" value="10.17487/RFC4213"/>
        </reference>
        <reference anchor="RFC7045" target="https://www.rfc-editor.org/info/rfc7045" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.7045.xml">
          <front>
            <title>Transmission and Processing of IPv6 Extension Headers</title>
            <author fullname="B. Carpenter" initials="B." surname="Carpenter"/>
            <author fullname="S. Jiang" initials="S." surname="Jiang"/>
            <date month="December" year="2013"/>
            <abstract>
              <t>Various IPv6 extension headers have been standardised since the IPv6 standard was first published. This document updates RFC 2460 to clarify how intermediate nodes should deal with such extension headers and with any that are defined in the future. It also specifies how extension headers should be registered by IANA, with a corresponding minor update to RFC 2780.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7045"/>
          <seriesInfo name="DOI" value="10.17487/RFC7045"/>
        </reference>
        <reference anchor="RFC7676" target="https://www.rfc-editor.org/info/rfc7676" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.7676.xml">
          <front>
            <title>IPv6 Support for Generic Routing Encapsulation (GRE)</title>
            <author fullname="C. Pignataro" initials="C." surname="Pignataro"/>
            <author fullname="R. Bonica" initials="R." surname="Bonica"/>
            <author fullname="S. Krishnan" initials="S." surname="Krishnan"/>
            <date month="October" year="2015"/>
            <abstract>
              <t>Generic Routing Encapsulation (GRE) can be used to carry any network- layer payload protocol over any network-layer delivery protocol. Currently, GRE procedures are specified for IPv4, used as either the payload or delivery protocol. However, GRE procedures are not specified for IPv6.</t>
              <t>This document specifies GRE procedures for IPv6, used as either the payload or delivery protocol.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7676"/>
          <seriesInfo name="DOI" value="10.17487/RFC7676"/>
        </reference>
        <reference anchor="RFC8174" target="https://www.rfc-editor.org/info/rfc8174" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8174.xml">
          <front>
            <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
            <author fullname="B. Leiba" initials="B." surname="Leiba"/>
            <date month="May" year="2017"/>
            <abstract>
              <t>RFC 2119 specifies common key words that may be used in protocol specifications. This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the defined special meanings.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="8174"/>
          <seriesInfo name="DOI" value="10.17487/RFC8174"/>
        </reference>
        <reference anchor="RFC8200" target="https://www.rfc-editor.org/info/rfc8200" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8200.xml">
          <front>
            <title>Internet Protocol, Version 6 (IPv6) Specification</title>
            <author fullname="S. Deering" initials="S." surname="Deering"/>
            <author fullname="R. Hinden" initials="R." surname="Hinden"/>
            <date month="July" year="2017"/>
            <abstract>
              <t>This document specifies version 6 of the Internet Protocol (IPv6). It obsoletes RFC 2460.</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="86"/>
          <seriesInfo name="RFC" value="8200"/>
          <seriesInfo name="DOI" value="10.17487/RFC8200"/>
        </reference>
        <reference anchor="RFC8704" target="https://www.rfc-editor.org/info/rfc8704" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8704.xml">
          <front>
            <title>Enhanced Feasible-Path Unicast Reverse Path Forwarding</title>
            <author fullname="K. Sriram" initials="K." surname="Sriram"/>
            <author fullname="D. Montgomery" initials="D." surname="Montgomery"/>
            <author fullname="J. Haas" initials="J." surname="Haas"/>
            <date month="February" year="2020"/>
            <abstract>
              <t>This document identifies a need for and proposes improvement of the unicast Reverse Path Forwarding (uRPF) techniques (see RFC 3704) for detection and mitigation of source address spoofing (see BCP 38). Strict uRPF is inflexible about directionality, the loose uRPF is oblivious to directionality, and the current feasible-path uRPF attempts to strike a balance between the two (see RFC 3704). However, as shown in this document, the existing feasible-path uRPF still has shortcomings. This document describes enhanced feasible-path uRPF (EFP-uRPF) techniques that are more flexible (in a meaningful way) about directionality than the feasible-path uRPF (RFC 3704). The proposed EFP-uRPF methods aim to significantly reduce false positives regarding invalid detection in source address validation (SAV). Hence, they can potentially alleviate ISPs' concerns about the possibility of disrupting service for their customers and encourage greater deployment of uRPF techniques. This document updates RFC 3704.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="84"/>
          <seriesInfo name="RFC" value="8704"/>
          <seriesInfo name="DOI" value="10.17487/RFC8704"/>
        </reference>
        <reference anchor="RFC9098" target="https://www.rfc-editor.org/info/rfc9098" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9098.xml">
          <front>
            <title>Operational Implications of IPv6 Packets with Extension Headers</title>
            <author fullname="F. Gont" initials="F." surname="Gont"/>
            <author fullname="N. Hilliard" initials="N." surname="Hilliard"/>
            <author fullname="G. Doering" initials="G." surname="Doering"/>
            <author fullname="W. Kumari" initials="W." surname="Kumari"/>
            <author fullname="G. Huston" initials="G." surname="Huston"/>
            <author fullname="W. Liu" initials="W." surname="Liu"/>
            <date month="September" year="2021"/>
            <abstract>
              <t>This document summarizes the operational implications of IPv6 extension headers specified in the IPv6 protocol specification (RFC 8200) and attempts to analyze reasons why packets with IPv6 extension headers are often dropped in the public Internet.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9098"/>
          <seriesInfo name="DOI" value="10.17487/RFC9098"/>
        </reference>
      </references>
      <references>
        <name>Informative References</name>
        <reference anchor="RFC3056" target="https://www.rfc-editor.org/info/rfc3056" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.3056.xml">
          <front>
            <title>Connection of IPv6 Domains via IPv4 Clouds</title>
            <author fullname="B. Carpenter" initials="B." surname="Carpenter"/>
            <author fullname="K. Moore" initials="K." surname="Moore"/>
            <date month="February" year="2001"/>
            <abstract>
              <t>This memo specifies an optional interim mechanism for IPv6 sites to communicate with each other over the IPv4 network without explicit tunnel setup, and for them to communicate with native IPv6 domains via relay routers. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="3056"/>
          <seriesInfo name="DOI" value="10.17487/RFC3056"/>
        </reference>
        <reference anchor="RFC5095" target="https://www.rfc-editor.org/info/rfc5095" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.5095.xml">
          <front>
            <title>Deprecation of Type 0 Routing Headers in IPv6</title>
            <author fullname="J. Abley" initials="J." surname="Abley"/>
            <author fullname="P. Savola" initials="P." surname="Savola"/>
            <author fullname="G. Neville-Neil" initials="G." surname="Neville-Neil"/>
            <date month="December" year="2007"/>
            <abstract>
              <t>The functionality provided by IPv6's Type 0 Routing Header can be exploited in order to achieve traffic amplification over a remote path for the purposes of generating denial-of-service traffic. This document updates the IPv6 specification to deprecate the use of IPv6 Type 0 Routing Headers, in light of this security concern. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5095"/>
          <seriesInfo name="DOI" value="10.17487/RFC5095"/>
        </reference>
        <reference anchor="RFC7526" target="https://www.rfc-editor.org/info/rfc7526" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFGC.7526.xml">
          <front>
            <title>Deprecating the Anycast Prefix for 6to4 Relay Routers</title>
            <author fullname="O. Troan" initials="O." surname="Troan"/>
            <author fullname="B. Carpenter" initials="B." role="editor" surname="Carpenter"/>
            <date month="May" year="2015"/>
            <abstract>
              <t>Experience with the 6to4 transition mechanism defined in RFC 3056 ("Connection of IPv6 Domains via IPv4 Clouds") has shown that the mechanism is unsuitable for widespread deployment and use in the Internet when used in its anycast mode. Therefore, this document requests that RFC 3068 ("An Anycast Prefix for 6to4 Relay Routers") and RFC 6732 ("6to4 Provider Managed Tunnels") be made obsolete and moved to Historic status. It recommends that future products should not support 6to4 anycast and that existing deployments should be reviewed. This complements the guidelines in RFC 6343.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="196"/>
          <seriesInfo name="RFC" value="7526"/>
          <seriesInfo name="DOI" value="10.17487/RFC7526"/>
        </reference>
      </references>
    </references>
  </back>
</rfc>
