One document matched: draft-templin-intarea-grefrag-02.xml


<?xml version="1.0" encoding="US-ASCII"?>
<!DOCTYPE rfc SYSTEM "rfc2629.dtd">
<?rfc toc="yes"?>
<?rfc tocompact="yes"?>
<?rfc tocdepth="3"?>
<?rfc tocindent="yes"?>
<?rfc symrefs="yes"?>
<?rfc sortrefs="yes"?>
<?rfc comments="yes"?>
<?rfc inline="yes"?>
<?rfc compact="yes"?>
<?rfc subcompact="no"?>
<?rfc strict='yes'?>
<?rfc iprnotified='no'?>
<rfc category="info" docName="draft-templin-intarea-grefrag-02.txt"
     ipr="trust200902" updates="RFC2784, RFC2890">
  <front>
    <title abbrev="GRE Tunnel Fragmentation">GRE Tunnel Fragmentation</title>

    <author fullname="Fred L. Templin" initials="F. L." role="editor"
            surname="Templin">
      <organization>Boeing Research & Technology</organization>

      <address>
        <postal>
          <street>P.O. Box 3707</street>

          <city>Seattle</city>

          <region>WA</region>

          <code>98124</code>

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

        <email>fltemplin@acm.org</email>
      </address>
    </author>

    <date day="26" month="January" year="2016"/>

    <keyword>I-D</keyword>

    <keyword>Internet-Draft</keyword>

    <abstract>
      <t>GRE tunnels use IPv4 or IPv6 fragmentation of the delivery packet
      when the delivery packet exceeds the tunnel MTU, or when otherwise
      necessary. This can cause problems when unmitigated IPv4 fragemntation
      ensues, or when middleboxes drop IPv6 fragments unconditionally. This
      document introduces GRE tunnel fragmentation which avoids these
      pitfalls..</t>
    </abstract>
  </front>

  <middle>
    <section anchor="intro" title="Introduction">
      <t>GRE is specified in the following RFCs: <xref target="RFC2784"/><xref
      target="RFC2890"/><xref target="RFC7676"/>. <xref target="RFC7588"/>
      further discusses GRE fragmentation considerations. In its current
      manifestation, GRE allows for fragmentation of the payload packet only
      if it is an IPv4 packet with the Don't Fragment (DF) bit set to 0. GRE
      also allows for fragmentation of the delivery packet, but this can cause
      problems in some applications. A third option (introduced here) is for
      the GRE tunnel to perform tunnel fragmentation and reassembly on the
      payload packet.</t>

      <t>In this way, the ingress can fragment the payload packet (while
      treating the payload packet's headers as ordinary data) and encapsulate
      each fragment in a separate delivery header. The GRE header requires a
      new fragment header field to support this.</t>

      <t>This tunnel fragmentation method was first suggested in Section 3.1.7
      of <xref target="RFC2764"/>, and also appears in more recent works <xref
      target="I-D.templin-aerolink"/> <xref
      target="I-D.herbert-gue-fragmentation"/>.</t>
    </section>

    <section anchor="minencaps" title="GRE Fragmentation Header">
      <t><xref target="grefrag"/> shows the GRE header as specified in <xref
      target="RFC2784"/><xref target="RFC2890"/> but with a new optional
      "Fragment Header" and a new control bit "F":</t>

      <figure anchor="grefrag" title="GRE Header with Fragment Header">
        <artwork><![CDATA[
    0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |C| |K|S|F|   Reserved0   | Ver |         Protocol Type         |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |      Checksum (optional)      |       Reserved1 (Optional)    |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                         Key (optional)                        |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                 Sequence Number (Optional)                    |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                 Fragment Header (Optional)                    |
   |                                                               |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
]]></artwork>
      </figure>

      <t>In this format, when the "F" bit is set to 1 the GRE header includes
      a Fragment header formatted as specified in Section 4.5 of <xref
      target="RFC2460"/>.</t>
    </section>

    <section anchor="whentoinsert" title="GRE Tunnel Fragmentation Procedures">
      <t>GRE tunnel fragmentation treats the entire GRE payload packet
      (including the payload headers) as opaque data. The GRE tunnel ingress
      breaks the payload packet into N fragments and encapsulates each
      fragment in a separate GRE header and GRE delivery header. The first
      fragment therefore includes the GRE payload headers and first portion of
      the GRE payload data, while subsequent fragments include the remaining
      portions of the GRE payload data. The GRE tunnel ingress then sends each
      fragment to the GRE tunnel egress. Apart from the appearance of the
      Fragment Header within the GRE header, the fragmentation procedure is
      the same as for IPv6 fragmentation.</t>

      <t>When the GRE tunnel egress receives the fragments, it reassembles the
      GRE payload packet by concatenating the data portions of each fragment
      according to their offsets. Apart from the appearance of the Fragment
      Header within the GRE header, the reassembly procedure is the same as
      for IPv6 reassembly.</t>

      <t>In order to support this fragmentation and reassembly procedure, the
      GRE tunnel ingress must know the maximum sized packet the GRE tunnel
      egress is capable of reassembling, i.e., the Maximum Reassembly Unit
      (MRU). The GRE tunnnel egress MUST therefore configure a minimum MRU of
      2KB, and MAY configure a larger MRU.</t>
    </section>

    <section anchor="iana" title="IANA Considerations">
      <t>This document introduces no IANA considerations.</t>
    </section>

    <section anchor="secure" title="Security Considerations">
      <t>TBD.</t>
    </section>

    <section anchor="ack" title="Acknowledgements">
      <t>TBD</t>
    </section>
  </middle>

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

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

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

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

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

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

      <?rfc include="reference.RFC.7676"?>
    </references>

    <references title="Informative References">
      <?rfc include="reference.I-D.templin-aerolink"?>

      <?rfc include="reference.I-D.herbert-gue-fragmentation"?>
    </references>
  </back>
</rfc>

PAFTECH AB 2003-20262026-04-24 11:16:04