⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 rfc1933.txt

📁 RFC 的详细文档!
💻 TXT
📖 第 1 页 / 共 4 页
字号:

RFC 1933               IPv6 Transition Mechanisms             April 1996


   encapsulating node because it is the IPv4 source of the encapsulated
   packet.

   The ICMP "packet too big" error messages are handled according to
   IPv4 Path MTU Discovery [8] and the resulting path MTU is recorded in
   the IPv4 layer.  The recorded path MTU is used by IPv6 to determine
   if an IPv6 ICMP "packet too big" error has to be generated as
   described in section 4.1.1.

   The handling of other types of ICMP error messages depends on how
   much information is included in the "packet in error" field, which
   holds the encapsulated packet that caused the error.

   Many older IPv4 routers return only 8 bytes of data beyond the IPv4
   header of the packet in error, which is not enough to include the
   address fields of the IPv6 header. More modern IPv4 routers may
   return enough data beyond the IPv4 header to include the entire IPv6
   header and possibly even the data beyond that.

   If the offending packet includes enough data, the encapsulating node
   may extract the encapsulated IPv6 packet and use it to generating an
   IPv6 ICMP message directed back to the originating IPv6 node, as
   shown below:

                +--------------+
                | IPv4 Header  |
                | dst = encaps |
                |       node   |
                +--------------+
                |     ICMP     |
                |    Header    |
         - -    +--------------+
                | IPv4 Header  |
                | src = encaps |
        IPv4    |       node   |
                +--------------+   - -
        Packet  |    IPv6      |
                |    Header    |   Original IPv6
         in     +--------------+   Packet -
                |  Transport   |   Can be used to
        Error   |    Header    |   generate an
                +--------------+   IPv6 ICMP
                |              |   error message
                ~     Data     ~   back to the source.
                |              |
         - -    +--------------+   - -

        IPv4 ICMP Error Message Returned to Encapsulating Node



Gilligan & Nordmark         Standards Track                    [Page 12]

RFC 1933               IPv6 Transition Mechanisms             April 1996


4.1.4.  IPv4 Header Construction

   When encapsulating an IPv6 packet in an IPv4 datagram, the IPv4
   header fields are set as follows:

        Version:

                4

        IP Header Length in 32-bit words:

                5 (There are no IPv4 options in the encapsulating
                header.)

        Type of Service:

                0

        Total Length:

                Payload length from IPv6 header plus length of IPv6 and
                IPv4 headers (i.e. a constant 60 bytes).

        Identification:

                Generated uniquely as for any IPv4 packet transmitted by
                the system.

        Flags:

                Set the Don't Fragment (DF) flag as specified in
                section 4.1.1. Set the More Fragments (MF) bit as
                necessary if fragmenting.

        Fragment offset:

                Set as necessary if fragmenting.

        Time to Live:

                Set in implementation-specific manner.

        Protocol:

                41 (Assigned payload type number for IPv6)






Gilligan & Nordmark         Standards Track                    [Page 13]

RFC 1933               IPv6 Transition Mechanisms             April 1996


        Header Checksum:

                Calculate the checksum of the IPv4 header.

        Source Address:

                IPv4 address of outgoing interface of the
                encapsulating node.

        Destination Address:

                IPv4 address of tunnel endpoint.

   Any IPv6 options are preserved in the packet (after the IPv6 header).

4.1.5. Decapsulating IPv6-in-IPv4 Packets

   When an IPv6/IPv4 host or a router receives an IPv4 datagram that is
   addressed to one of its own IPv4 address, and the value of the
   protocol field is 41, it removes the IPv4 header and submits the IPv6
   datagram to its IPv6 layer code.

   The decapsulation is shown below:

        +-------------+
        |    IPv4     |
        |   Header    |
        +-------------+                 +-------------+
        |    IPv6     |                 |    IPv6     |
        |   Header    |                 |   Header    |
        +-------------+                 +-------------+
        |  Transport  |                 |  Transport  |
        |   Layer     |      ===>       |   Layer     |
        |   Header    |                 |   Header    |
        +-------------+                 +-------------+
        |             |                 |             |
        ~    Data     ~                 ~    Data     ~
        |             |                 |             |
        +-------------+                 +-------------+

                    Decapsulating IPv6 from IPv4

   When decapsulating the IPv6-in-IPv4 packet, the IPv6 header is not
   modified.  If the packet is subsequently forwarded, its hop limit is
   decremented by one.

   The encapsulating IPv4 header is discarded.




Gilligan & Nordmark         Standards Track                    [Page 14]

RFC 1933               IPv6 Transition Mechanisms             April 1996


   The decapsulating node performs IPv4 reassembly before decapsulating
   the IPv6 packet.  All IPv6 options are preserved even if the
   encapsulating IPv4 packet is fragmented.

   After the IPv6 packet is decapsulated, it is processed the same as
   any received IPv6 packet.

4.2. Configured Tunneling

   In configured tunneling, the tunnel endpoint address is determined
   from configuration information in the encapsulating node.  For each
   tunnel, the encapsulating node must store the tunnel endpoint
   address.  When an IPv6 packet is transmitted over a tunnel, the
   tunnel endpoint address configured for that tunnel is used as the
   destination address for the encapsulating IPv4 header.

   The determination of which packets to tunnel is usually made by
   routing information on the encapsulating node.  This is usually done
   via a routing table, which directs packets based on their destination
   address using the prefix mask and match technique.

4.2.1. Default Configured Tunnel

   Nodes that are connected to IPv4 routing infrastructures may use a
   configured tunnel to reach an IPv6 "backbone".  If the IPv4 address
   of an IPv6/IPv4 router bordering the backbone is known, a tunnel can
   be configured to that router.  This tunnel can be configured into the
   routing table as a "default route".  That is, all IPv6 destination
   addresses will match the route and could potentially traverse the
   tunnel.  Since the "mask length" of such default route is zero, it
   will be used only if there are no other routes with a longer mask
   that match the destination.

   The tunnel endpoint address of such a default tunnel could be the
   IPv4 address of one IPv6/IPv4 router at the border of the IPv6
   backbone.  Alternatively, the tunnel endpoint could be an IPv4
   "anycast address".  With this approach, multiple IPv6/IPv4 routers at
   the border advertise IPv4 reachability to the same IPv4 address.  All
   of these routers accept packets to this address as their own, and
   will decapsulate IPv6 packets tunneled to this address.  When an
   IPv6/IPv4 node sends an encapsulated packet to this address, it will
   be delivered to only one of the border routers, but the sending node
   will not know which one.  The IPv4 routing system will generally
   carry the traffic to the closest router.

   Using a default tunnel to an IPv4 "anycast address" provides a high
   degree of robustness since multiple border router can be provided,
   and, using the normal fallback mechanisms of IPv4 routing, traffic



Gilligan & Nordmark         Standards Track                    [Page 15]

RFC 1933               IPv6 Transition Mechanisms             April 1996


   will automatically switch to another router when one goes down.

4.3. Automatic Tunneling

   In automatic tunneling, the tunnel endpoint address is determined
   from the packet being tunneled.  The destination IPv6 address in the
   packet must be an IPv4-compatible address.  If it is, the IPv4
   address component of that address -- the low-order 32-bits -- are
   extracted and used as the tunnel endpoint address.  IPv6 packets that
   are not addressed to an IPv4-compatible address can not be tunneled
   using automatic tunneling.

   IPv6/IPv4 nodes need to determine which IPv6 packets can be sent via
   automatic tunneling.  One technique is to use the IPv6 routing table
   to direct automatic tunneling.  An implementation can have a special
   static routing table entry for the prefix 0:0:0:0:0:0/96.  (That is,
   a route to the all-zeros prefix with a 96-bit mask.)  Packets that
   match this prefix are sent to a pseudo-interface driver which
   performs automatic tunneling.  Since all IPv4-compatible IPv6
   addresses will match this prefix, all packets to those destinations
   will be auto-tunneled.

4.4. Default Sending Algorithm

   This section presents a combined IPv4 and IPv6 sending algorithm that
   IPv6/IPv4 nodes can use.  The algorithm can be used to determine when
   to send IPv4 packets, when to send IPv6 packets, and when to perform
   automatic and configured tunneling.  It illustrates how the
   techniques of dual IP layer, configured tunneling, and automatic
   tunneling can be used together.  Note that is just an example to show
   how the techniques can be combined; IPv6/IPv6 implementations may
   provide different algorithms.  This algorithm has the following
   properties:

   -    Sends IPv4 packets to all IPv4 destinations.

   -    Sends IPv6 packets to all IPv6 destinations on the same link.

   -    Using automatic tunneling, sends IPv6 packets encapsulated in
        IPv4 to IPv6 destinations with IPv4-compatible addresses that
        are located off-link.

   -    Sends IPv6 packets to IPv6 destinations located off-link when
        IPv6 routers are present.

   -    Using the default IPv6 tunnel, sends IPv6 packets encapsulated
        in IPv4 to IPv6 destinations with IPv6-only addresses when no
        IPv6 routers are present.



Gilligan & Nordmark         Standards Track                    [Page 16]

RFC 1933               IPv6 Transition Mechanisms             April 1996


The algorithm is as follows:

  1)    If the address of the end node is an IPv4 address then:

          1.1)  If the destination is located on an attached link, then
                send an IPv4 packet addressed to the end node.

          1.2)  If the destination is located off-link, then;

                1.2.1)  If there is an IPv4 router on link, then send an
                        IPv4 format packet.  The IPv4 destination
                        address is the IPv4 address of the end node.
                        The datalink address is the datalink address of
                        the IPv4 router.

                1.2.2)  Else, the destination is treated as
                        "unreachable" because it is located off link and
                        there are no on-link routers.

  2)    If the address of the end node is an IPv4-compatible IPv6
        address (i.e. bears the prefix 0:0:0:0:0:0), then:

          2.1)  If the destination is located on an attached link, then
                send an IPv6 format packet (not encapsulated).  The IPv6
                destination address is the IPv6 address of the end node.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -