As per Relevance of the word encapsulating, we have this rfc below:
Network Working Group R.
Request for Comments: 1933 E.
Category: Standards Track Sun Microsystems, Inc
April 1996
Transition Mechanisms for IPv6 Hosts and
Status of this
This document specifies an Internet standards track protocol for
Internet community, and requests discussion and suggestions
improvements. Please refer to the current edition of the "
Official Protocol Standards" (STD 1) for the standardization
and status of this protocol. Distribution of this memo is unlimited
This document specifies IPv4 compatibility mechanisms that can
implemented by IPv6 hosts and routers. These mechanisms
providing complete implementations of both versions of the
Protocol (IPv4 and IPv6), and tunneling IPv6 packets over IPv
routing infrastructures. They are designed to allow IPv6 nodes
maintain complete compatibility with IPv4, which should
simplify the deployment of IPv6 in the Internet, and facilitate
eventual transition of the entire Internet to IPv6.
1.
The key to a successful IPv6 transition is compatibility with
large installed base of IPv4 hosts and routers.
compatibility with IPv4 while deploying IPv6 will streamline the
of transitioning the Internet to IPv6. This specification defines
set of mechanisms that IPv6 hosts and routers may implement in
to be compatible with IPv4 hosts and routers
The mechanisms in this document are designed to be employed by IPv
hosts and routers that need to interoperate with IPv4 hosts
utilize IPv4 routing infrastructures. We expect that most nodes
the Internet will need such compatibility for a long time to come
and perhaps even indefinitely
However, IPv6 may be used in some environments where
with IPv4 is not required. IPv6 nodes that are designed to be
in such environments need not use or even implement these mechanisms
The mechanisms specified here include
Gilligan & Nordmark Standards Track [Page 1]
RFC 1933 IPv6 Transition Mechanisms April 1996
- Dual IP layer. Providing complete support for both IPv4
IPv6 in hosts and routers
- IPv6 over IPv4 tunneling. Encapsulating IPv6 packets
IPv4 headers to carry them over IPv4 routing infrastructures
Two types of tunneling are employed: configured and automatic
Additional transition and compatibility mechanisms may be
in the future. These will be specified in other documents
1.2.
The following terms are used in this document
Types of
IPv4-only node
A host or router that implements only IPv4.
IPv4-only node does not understand IPv6. The
base of IPv4 hosts and routers existing before
transition begins are IPv4-only nodes
IPv6/IPv4 node
A host or router that implements both IPv4 and IPv6.
IPv6-only node
A host or router that implements IPv6, and does
implement IPv4. The operation of IPv6-only nodes is
addressed here
IPv6 node
Any host or router that implements IPv6. IPv6/IPv4
IPv6-only nodes are both IPv6 nodes
IPv4 node
Any host or router that implements IPv4. IPv6/IPv4
IPv4-only nodes are both IPv4 nodes
Gilligan & Nordmark Standards Track [Page 2]
RFC 1933 IPv6 Transition Mechanisms April 1996
Types of IPv6
IPv4-compatible IPv6 address
An IPv6 address, assigned to an IPv6/IPv4 node,
bears the high-order 96-bit prefix 0:0:0:0:0:0, and
IPv4 address in the low-order 32-bits. IPv4-
addresses are used by the automatic tunneling mechanism
IPv6-only address
The remainder of the IPv6 address space. An IPv
address that bears a prefix other than 0:0:0:0:0:0.
Techniques Used in the
IPv6-over-IPv4 tunneling
The technique of encapsulating IPv6 packets within IPv
so that they can be carried across IPv4
infrastructures
IPv6-in-IPv4 encapsulation
IPv6-over-IPv4 tunneling
Configured tunneling
IPv6-over-IPv4 tunneling where the IPv4 tunnel
address is determined by configuration information
the encapsulating node
Automatic tunneling
IPv6-over-IPv4 tunneling where the IPv4 tunnel
address is determined from the IPv4 address embedded
the IPv4-compatible destination address of the IPv
packet
1.3. Structure of this
The remainder of this document is organized into three sections
- Section 2 discusses the IPv4-compatible address format
- Section 3 discusses the operation of nodes with a dual
layer, IPv6/IPv4 nodes
Gilligan & Nordmark Standards Track [Page 3]
RFC 1933 IPv6 Transition Mechanisms April 1996
- Section 4 discusses IPv6-over-IPv4 tunneling
2.
The automatic tunneling mechanism uses a special type of IPv
address, termed an "IPv4-compatible" address. An IPv4-
address is identified by an all-zeros 96-bit prefix, and holds
IPv4 address in the low-order 32-bits. IPv4-compatible addresses
structured as follows
| 96-bits | 32-bits |
+--------------------------------------+--------------+
| 0:0:0:0:0:0 | IPv4 Address |
+--------------------------------------+--------------+
IPv4-Compatible IPv6 Address
IPv4-compatible addresses are assigned to IPv6/IPv4 nodes
support automatic tunneling. Nodes that are configured with IPv4-
compatible addresses may use the complete address as their IPv
address, and use the embedded IPv4 address as their IPv4 address
The remainder of the IPv6 address space (that is, all addresses
96-bit prefixes other than 0:0:0:0:0:0) are termed "IPv6-
Addresses."
3. Dual IP
The most straightforward way for IPv6 nodes to remain compatible
IPv4-only nodes is by providing a complete IPv4 implementation. IPv
nodes that provide a complete IPv4 implementation in addition
their IPv6 implementation are called "IPv6/IPv4 nodes." IPv6/IPv
nodes have the ability to send and receive both IPv4 and IPv
packets. They can directly interoperate with IPv4 nodes using IPv
packets, and also directly interoperate with IPv6 nodes using IPv
packets
The dual IP layer technique may or may not be used in
with the IPv6-over-IPv4 tunneling techniques, which are described
section 4. An IPv6/IPv4 node that supports tunneling may
only configured tunneling, or both configured and
tunneling. Thus three configurations are possible
- IPv6/IPv4 node that does not perform tunneling
- IPv6/IPv4 node that performs configured tunneling only
- IPv6/IPv4 node that performs configured tunneling
Gilligan & Nordmark Standards Track [Page 4]
RFC 1933 IPv6 Transition Mechanisms April 1996
automatic tunneling
3.1. Address
Because they support both protocols, IPv6/IPv4 nodes may
configured with both IPv4 and IPv6 addresses. Although the
addresses may be related to each other, this is not required
IPv6/IPv4 nodes may be configured with IPv6 and IPv4 addresses
are unrelated to each other
Nodes that perform automatic tunneling are configured with IPv4-
compatible IPv6 addresses. These may be viewed as single
that can serve both as IPv6 and IPv4 addresses. The entire 128-
IPv4-compatible IPv6 address is used as the node's IPv6 address
while the IPv4 address embedded in low-order 32-bits serves as
node's IPv4 address
IPv6/IPv4 nodes may use the stateless IPv6 address
mechanism [5] or DHCP for IPv6 [3] to acquire their IPv6 address
These mechanisms may provide either IPv4-compatible or IPv6-only IPv
addresses
IPv6/IPv4 nodes may use IPv4 mechanisms to acquire their IPv
addresses
IPv6/IPv4 nodes that perform automatic tunneling may also
their IPv4-compatible IPv6 addresses from another source: IPv
address configuration protocols. A node may use any IPv4
configuration mechanism to acquire its IPv4 address, then "map"
address into an IPv4-compatible IPv6 address by pre-pending it
the 96-bit prefix 0:0:0:0:0:0. This mode of configuration
IPv6/IPv4 nodes to "leverage" the installed base of IPv4
configuration servers. It can be particularly useful in
where IPv6 routers and address configuration servers have not
been deployed
The specific algorithm for acquiring an IPv4-compatible address
IPv4-based address configuration protocols is as follows
1) The IPv6/IPv4 node uses standard IPv4 mechanisms or
to acquire its own IPv4 address. These include
- The Dynamic Host Configuration Protocol (DHCP) [2]
- The Bootstrap Protocol (BOOTP) [1]
- The Reverse Address Resolution Protocol (RARP) [9]
- Manual
- Any other mechanism which accurately yields the node'
own IPv4
Gilligan & Nordmark Standards Track [Page 5]
RFC 1933 IPv6 Transition Mechanisms April 1996
2) The node uses this address as its IPv4 address
3) The node prepends the 96-bit prefix 0:0:0:0:0:0 to the 32-
IPv4 address that it acquired in step (1). The result is
IPv4-compatible IPv6 address with the node's own IPv4-
embedded in the low-order 32-bits. The node uses this
as its own IPv6 address
3.1.1. IPv4 Loopback
Many IPv4 implementations treat the address 127.0.0.1 as a "
address" -- an address to reach services located on the
machine. Per the host requirements specification [10],
3.2.1.3, IPv4 packets addressed from or to the loopback address
not to be sent onto the network; they must remain entirely within
node. IPv6/IPv4 implementations may treat the IPv4-compatible IPv
address ::127.0.0.1 as an IPv6 loopback address. Packets with
address should also remain entirely within the node, and not
transmitted onto the network
3.2.
The Domain Naming System (DNS) is used in both IPv4 and IPv6 to
hostnames into addresses. A new resource record type named "AAAA
has been defined for IPv6 addresses [6]. Since IPv6/IPv4 nodes
be able to interoperate directly with both IPv4 and IPv6 nodes,
must provide resolver libraries capable of dealing with IPv4 "A
records as well as IPv6 "AAAA" records
3.2.1. Handling Records for IPv4-Compatible
When an IPv4-compatible IPv6 addresses is assigned to an IPv6/IPv
host that supports automatic tunneling, both A and AAAA records
listed in the DNS. The AAAA record holds the full IPv4-
IPv6 address, while the A record holds the low-order 32-bits of
address. The AAAA record is needed so that queries by IPv6 hosts
be satisfied. The A record is needed so that queries by IPv4-
hosts, whose resolver libraries only support the A record type,
locate the host
DNS resolver libraries on IPv6/IPv4 nodes must be capable of
both AAAA and A records. However, when a query locates an
record holding an IPv4-compatible IPv6 address, and an A
holding the corresponding IPv4 address, the resolver library need
necessarily return both addresses. It has three options
Gilligan & Nordmark Standards Track [Page 6]
RFC 1933 IPv6 Transition Mechanisms April 1996
- Return only the IPv6 address to the application
- Return only the IPv4 address to the application
- Return both addresses to the application
The selection of which address type to return in this case, or,
both addresses are returned, in which order they are listed,
affect what type of IP traffic is generated. If the IPv6 address
returned, the node will communicate with that destination using IPv
packets (in most cases encapsulated in IPv4); If the IPv4 address
returned, the communication will use IPv4 packets
The way that DNS resolver implementations handle redundant
for IPv4-compatible addresses may depend on whether
implementation supports automatic tunneling, or whether it
enabled. For example, an implementation that does not
automatic tunneling would not return IPv4-compatible IPv6
to applications because those destinations are generally
reachable via tunneling. On the other hand, those implementations
which automatic tunneling is supported and enabled may elect
return only the IPv4-compatible IPv6 address and not the IPv
address
4. IPv6-over-IPv4
In most deployment scenarios, the IPv6 routing infrastructure will
built up over time. While the IPv6 infrastructure is being deployed
the existing IPv4 routing infrastructure can remain functional,
can be used to carry IPv6 traffic. Tunneling provides a way
utilize an existing IPv4 routing infrastructure to carry IPv
traffic
IPv6/IPv4 hosts and routers can tunnel IPv6 datagrams over regions
IPv4 routing topology by encapsulating them within IPv4 packets
Tunneling can be used in a variety of ways
- Router-to-Router. IPv6/IPv4 routers interconnected by an IPv
infrastructure can tunnel IPv6 packets between themselves.
this case, the tunnel spans one segment of the end-to-end
that the IPv6 packet takes
- Host-to-Router. IPv6/IPv4 hosts can tunnel IPv6 packets to
intermediary IPv6/IPv4 router that is reachable via an IPv
infrastructure. This type of tunnel spans the first
of the packet's end-to-end path
Gilligan & Nordmark Standards Track [Page 7]
RFC 1933 IPv6 Transition Mechanisms April 1996
- Host-to-Host. IPv6/IPv4 hosts that are interconnected by
IPv4 infrastructure can tunnel IPv6 packets
themselves. In this case, the tunnel spans the
end-to-end path that the packet takes
- Router-to-Host. IPv6/IPv4 routers can tunnel IPv6 packets
their final destination IPv6/IPv4 host. This tunnel
only the last segment of the end-to-end path
Tunneling techniques are usually classified according to
mechanism by which the encapsulating node determines the address
the node at the end of the tunnel. In the first two
methods listed above -- router-to-router and host-to-router --
IPv6 packet is being tunneled to a router. The endpoint of this
of tunnel is an intermediary router which must decapsulate the IPv
packet and forward it on to its final destination. When tunneling
a router, the endpoint of the tunnel is different from
destination of the packet being tunneled. So the addresses in
IPv6 packet being tunneled do not provide the IPv4 address of
tunnel endpoint. Instead, the tunnel endpoint address must
determined from configuration information on the node performing
tunneling. We use the term "configured tunneling" to describe
type of tunneling where the endpoint is explicitly configured
In the last two tunneling methods -- host-to-host and router-to-
-- the IPv6 packet is tunneled all the way to its final destination
The tunnel endpoint is the node to which the IPv6 packet
addressed. Since the endpoint of the tunnel is the destination
the IPv6 packet, the tunnel endpoint can be determined from
destination IPv6 address of that packet: If that address is an IPv4-
compatible address, then the low-order 32-bits hold the IPv4
of the destination node, and that can be used as the tunnel
address. This technique avoids the need to explicitly configure
tunnel endpoint address. Deriving the tunnel endpoint address
the embedded IPv4 address of the packet's IPv6 address is
"automatic tunneling".
The two tunneling techniques -- automatic and configured --
primarily in how they determine the tunnel endpoint address. Most
the underlying mechanisms are the same
- The entry node of the tunnel (the encapsulating node) creates
encapsulating IPv4 header and transmits the encapsulated packet
- The exit node of the tunnel (the decapsulating node)
the encapsulated packet, removes the IPv4 header, updates
IPv6 header, and processes the received IPv6 packet
Gilligan & Nordmark Standards Track [Page 8]
RFC 1933 IPv6 Transition Mechanisms April 1996
- The encapsulating node may need to maintain soft
information for each tunnel recording such parameters as the
of the tunnel in order to process IPv6 packets forwarded
the tunnel. Since the number of tunnels that any one host
router may be using may grow to be quite large, this
information can be cached and discarded when not in use
The next section discusses the common mechanisms that apply to
types of tunneling. Subsequent sections discuss how the
endpoint address is determined for automatic and
tunneling
4.1. Common Tunneling
The encapsulation of an IPv6 datagram in IPv4 is shown below
+-------------+
| IPv4 |
| Header |
+-------------+ +-------------+
| IPv6 | | IPv6 |
| Header | | Header |
+-------------+ +-------------+
| Transport | | Transport |
| Layer | ===> | Layer |
| Header | | Header |
+-------------+ +-------------+
| | | |
~ Data ~ ~ Data ~
| | | |
+-------------+ +-------------+
Encapsulating IPv6 in IPv
In addition to adding an IPv4 header, the encapsulating node also
to handle some more complex issues
- Determine when to fragment and when to report an ICMP "
too big" error back to the source
- How to reflect IPv4 ICMP errors from routers along the
path back to the source as IPv6 ICMP errors
Those issues are discussed in the following sections
Gilligan & Nordmark Standards Track [Page 9]
RFC 1933 IPv6 Transition Mechanisms April 1996
4.1.1. Tunnel MTU and
The encapsulating node could view encapsulation as IPv6 using IPv4
a link layer with a very large MTU (65535-20 bytes to be exact; 20
bytes "extra" are needed for the encapsulating IPv4 header).
encapsulating node would need only to report IPv6 ICMP "packet
big" errors back to the source for packets that exceed this MTU
However, such a scheme would be inefficient for two reasons
1) It would result in more fragmentation than needed. IPv4
fragmentation should be avoided due to the performance
caused by the loss unit being smaller than the
unit [11].
2) Any IPv4 fragmentation occurring inside the tunnel would have
be reassembled at the tunnel endpoint. For tunnels
terminate at a router, this would require additional memory
reassemble the IPv4 fragments into a complete IPv6 packet
that packet could be forwarded onward
The fragmentation inside the tunnel can be reduced to a minimum
having the encapsulating node track the IPv4 Path MTU across
tunnel, using the IPv4 Path MTU Discovery Protocol [8] and
the resulting path MTU. The IPv6 layer in the encapsulating node
then view a tunnel as a link layer with an MTU equal to the IPv4
MTU, minus the size of the encapsulating IPv4 header
Note that this does not completely eliminate IPv4 fragmentation
the case when the IPv4 path MTU would result in an IPv6 MTU less
576 bytes. (Any link layer used by IPv6 has to have an MTU of
least 576 bytes [4].) In this case the IPv6 layer has to "see" a
layer with an MTU of 576 bytes and the encapsulating node has to
IPv4 fragmentation in order to forward the 576 byte IPv6 packets
The encapsulating node can employ the following algorithm
determine when to forward an IPv6 packet that is larger than
tunnel's path MTU using IPv4 fragmentation, and when to return
IPv6 ICMP "packet too big" message
if (IPv4 path MTU - 20) is less than or equal to 576
if packet is larger than 576
Send IPv6 ICMP "packet too big" with MTU = 576.
Drop packet
Encapsulate but do not set the Don't
flag in the IPv4 header. The resulting IPv
packet might be fragmented by the IPv4 layer
the encapsulating node or by some router
Gilligan & Nordmark Standards Track [Page 10]
RFC 1933 IPv6 Transition Mechanisms April 1996
the IPv4 path
if packet is larger than (IPv4 path MTU - 20)
Send IPv6 ICMP "packet too big"
MTU = (IPv4 path MTU - 20).
Drop packet
Encapsulate and set the Don't Fragment
in the IPv4 header
Encapsulating nodes that have a large number of tunnels might not
able to store the IPv4 Path MTU for all tunnels. Such nodes can,
the expense of additional fragmentation in the network, avoid
the IPv4 Path MTU algorithm across the tunnel and instead use the
of the link layer (under IPv4) in the above algorithm instead of
IPv4 path MTU
In this case the Don't Fragment bit must not be set in
encapsulating IPv4 header
4.1.2. Hop
IPv6-over-IPv4 tunnels are modeled as "single-hop". That is,
IPv6 hop limit is decremented by 1 when an IPv6 packet traverses
tunnel. The single-hop model serves to hide the existence of
tunnel. The tunnel is opaque to users of the network, and is
detectable by network diagnostic tools such as traceroute
The single-hop model is implemented by having the encapsulating
decapsulating nodes process the IPv6 hop limit field as they would
they were forwarding a packet on to any other datalink. That is
they decrement the hop limit by 1 when forwarding an IPv6 packet
(The originating node and final destination do not decrement the
limit.)
The TTL of the encapsulating IPv4 header is selected in
implementation dependent manner. The current suggested value
published in the "Assigned Numbers RFC. Implementations may
a mechanism to allow the administrator to configure the IPv4 TTL
4.1.3. Handling IPv4 ICMP
In response to encapsulated packets it has sent into the tunnel,
encapsulating node may receive IPv4 ICMP error messages from IPv
routers inside the tunnel. These packets are addressed to
Gilligan & Nordmark Standards Track [Page 11]
RFC 1933 IPv6 Transition Mechanisms April 1996
encapsulating node because it is the IPv4 source of the
packet
The ICMP "packet too big" error messages are handled according
IPv4 Path MTU Discovery [8] and the resulting path MTU is recorded
the IPv4 layer. The recorded path MTU is used by IPv6 to
if an IPv6 ICMP "packet too big" error has to be generated
described in section 4.1.1.
The handling of other types of ICMP error messages depends on
much information is included in the "packet in error" field,
holds the encapsulated packet that caused the error
Many older IPv4 routers return only 8 bytes of data beyond the IPv
header of the packet in error, which is not enough to include
address fields of the IPv6 header. More modern IPv4 routers
return enough data beyond the IPv4 header to include the entire IPv
header and possibly even the data beyond that
If the offending packet includes enough data, the encapsulating
may extract the encapsulated IPv6 packet and use it to generating
IPv6 ICMP message directed back to the originating IPv6 node,
shown below
+--------------+
| IPv4 Header |
| dst = encaps |
| node |
+--------------+
| ICMP |
| Header |
- - +--------------+
| IPv4 Header |
| src = encaps |
IPv4 | node |
+--------------+ - -
Packet | IPv6 |
| Header | Original IPv
in +--------------+ Packet -
| Transport | Can be used
Error | Header | generate
+--------------+ IPv6
| | error
~ Data ~ back to the source
| |
- - +--------------+ - -
IPv4 ICMP Error Message Returned to Encapsulating
Gilligan & Nordmark Standards Track [Page 12]
RFC 1933 IPv6 Transition Mechanisms April 1996
4.1.4. IPv4 Header
When encapsulating an IPv6 packet in an IPv4 datagram, the IPv
header fields are set as follows
Version
4
IP Header Length in 32-bit words
5 (There are no IPv4 options in the
header.)
Type of Service
0
Total Length
Payload length from IPv6 header plus length of IPv6
IPv4 headers (i.e. a constant 60 bytes).
Identification
Generated uniquely as for any IPv4 packet transmitted
the system
Flags
Set the Don't Fragment (DF) flag as specified
section 4.1.1. Set the More Fragments (MF) bit
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
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
When an IPv6/IPv4 host or a router receives an IPv4 datagram that
addressed to one of its own IPv4 address, and the value of
protocol field is 41, it removes the IPv4 header and submits the IPv
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 IPv
When decapsulating the IPv6-in-IPv4 packet, the IPv6 header is
modified. If the packet is subsequently forwarded, its hop limit
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
the IPv6 packet. All IPv6 options are preserved even if
encapsulating IPv4 packet is fragmented
After the IPv6 packet is decapsulated, it is processed the same
any received IPv6 packet
4.2. Configured
In configured tunneling, the tunnel endpoint address is
from configuration information in the encapsulating node. For
tunnel, the encapsulating node must store the tunnel
address. When an IPv6 packet is transmitted over a tunnel,
tunnel endpoint address configured for that tunnel is used as
destination address for the encapsulating IPv4 header
The determination of which packets to tunnel is usually made
routing information on the encapsulating node. This is usually
via a routing table, which directs packets based on their
address using the prefix mask and match technique
4.2.1. Default Configured
Nodes that are connected to IPv4 routing infrastructures may use
configured tunnel to reach an IPv6 "backbone". If the IPv4
of an IPv6/IPv4 router bordering the backbone is known, a tunnel
be configured to that router. This tunnel can be configured into
routing table as a "default route". That is, all IPv6
addresses will match the route and could potentially traverse
tunnel. Since the "mask length" of such default route is zero,
will be used only if there are no other routes with a longer
that match the destination
The tunnel endpoint address of such a default tunnel could be
IPv4 address of one IPv6/IPv4 router at the border of the IPv
backbone. Alternatively, the tunnel endpoint could be an IPv
"anycast address". With this approach, multiple IPv6/IPv4 routers
the border advertise IPv4 reachability to the same IPv4 address.
of these routers accept packets to this address as their own,
will decapsulate IPv6 packets tunneled to this address. When
IPv6/IPv4 node sends an encapsulated packet to this address, it
be delivered to only one of the border routers, but the sending
will not know which one. The IPv4 routing system will
carry the traffic to the closest router
Using a default tunnel to an IPv4 "anycast address" provides a
degree of robustness since multiple border router can be provided
and, using the normal fallback mechanisms of IPv4 routing,
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
In automatic tunneling, the tunnel endpoint address is
from the packet being tunneled. The destination IPv6 address in
packet must be an IPv4-compatible address. If it is, the IPv
address component of that address -- the low-order 32-bits --
extracted and used as the tunnel endpoint address. IPv6 packets
are not addressed to an IPv4-compatible address can not be
using automatic tunneling
IPv6/IPv4 nodes need to determine which IPv6 packets can be sent
automatic tunneling. One technique is to use the IPv6 routing
to direct automatic tunneling. An implementation can have a
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
match this prefix are sent to a pseudo-interface driver
performs automatic tunneling. Since all IPv4-compatible IPv
addresses will match this prefix, all packets to those
will be auto-tunneled
4.4. Default Sending
This section presents a combined IPv4 and IPv6 sending algorithm
IPv6/IPv4 nodes can use. The algorithm can be used to determine
to send IPv4 packets, when to send IPv6 packets, and when to
automatic and configured tunneling. It illustrates how
techniques of dual IP layer, configured tunneling, and
tunneling can be used together. Note that is just an example to
how the techniques can be combined; IPv6/IPv6 implementations
provide different algorithms. This algorithm has the
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
IPv4 to IPv6 destinations with IPv4-compatible addresses
are located off-link
- Sends IPv6 packets to IPv6 destinations located off-link
IPv6 routers are present
- Using the default IPv6 tunnel, sends IPv6 packets
in IPv4 to IPv6 destinations with IPv6-only addresses when
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,
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
IPv4 format packet. The IPv4
address is the IPv4 address of the end node
The datalink address is the datalink address
the IPv4 router
1.2.2) Else, the destination is treated
"unreachable" because it is located off link
there are no on-link routers
2) If the address of the end node is an IPv4-compatible IPv
address (i.e. bears the prefix 0:0:0:0:0:0), then
2.1) If the destination is located on an attached link,
send an IPv6 format packet (not encapsulated). The IPv
destination address is the IPv6 address of the end node
The datalink address is the datalink address of the
node
2.2) If the destination is located off-link, then
2.2.1) If there is an IPv4 router on an attached link
then send an IPv6 packet encapsulated in IPv4.
The IPv6 destination address is the address
the end node. The IPv4 destination address
the low-order 32-bits of the end node's address
The datalink address is the datalink address
the IPv4 router
2.2.2) Else, if there is an IPv6 router on an
link, then send an IPv6 format packet. The IPv
destination address is the IPv6 address of
end node. The datalink address is the
address of the IPv6 router
2.2.3) Else, the destination is treated
"unreachable" because it is located off-link
there are no on-link routers
Gilligan & Nordmark Standards Track [Page 17]
RFC 1933 IPv6 Transition Mechanisms April 1996
3) If the address of the end node is an IPv6-only address, then
3.1) If the destination is located on an attached link,
send an IPv6 format packet. The IPv6
address is the IPv6 address of the end node.
datalink address is the datalink address of the
node
3.2) If the destination is located off-link, then
3.2.1) If there is an IPv6 router on an attached link
then send an IPv6 format packet. The IPv
destination address is the IPv6 address of
end node. The datalink address is the
address of the IPv6 router
3.2.2) Else, if the destination is reachable via
configured tunnel, and there is an IPv4
on an attached link, then send an IPv
packet encapsulated in IPv4. The IPv
destination address is the address of the
node. The IPv4 destination address is
configured IPv4 address of the tunnel endpoint
The datalink address is the datalink address
the IPv4 router
3.2.3) Else, the destination is treated
"unreachable" because it is located off-link
there are no on-link IPv6 routers
A summary of these sending rules are given in the table below
Gilligan & Nordmark Standards Track [Page 18]
RFC 1933 IPv6 Transition Mechanisms April 1996
End | End | IPv4 | IPv6 | Packet | | |
Node | Node | Router | Router | Format | IPv6 | IPv4 |
Address | On | On | On | To | Dest | Dest |
Type | Link? | Link? | Link? | Send | Addr | Addr |
------------+---------+---------+---------+--------+------+------+------
IPv4 | Yes | N/A | N/A | IPv4 | N/A | E4 |
------------+---------+---------+---------+--------+------+------+------
IPv4 | No | Yes | N/A | IPv4 | N/A | E4 |
------------+---------+---------+---------+--------+------+------+------
IPv4 | No | No | N/A | UNRCH | N/A | N/A | N/
------------+---------+---------+---------+--------+------+------+------
IPv4-compat | Yes | N/A | N/A | IPv6 | E6 | N/A |
------------+---------+---------+---------+--------+------+------+------
IPv4-compat | No | Yes | N/A | IPv6/4 | E6 | E4 |
------------+---------+---------+---------+--------+------+------+------
IPv4-compat | No | No | Yes | IPv6 | E6 | N/A |
------------+---------+---------+---------+--------+------+------+------
IPv4-compat | No | No | No | UNRCH | N/A | N/A | N/
------------+---------+---------+---------+--------+------+------+------
IPv6-only | Yes | N/A | N/A | IPv6 | E6 | N/A |
------------+---------+---------+---------+--------+------+------+------
IPv6-only | No | N/A | Yes | IPv6 | E6 | N/A |
------------+---------+---------+---------+--------+------+------+------
IPv6-only | No | Yes | No | IPv6/4 | E6 | T4 |
------------+---------+---------+---------+--------+------+------+------
IPv6-only | No | No | No | UNRCH | N/A | N/A | N/
------------+---------+---------+---------+--------+------+------+------
Key to
--------------------
N/A: Not applicable or does not matter
E6: IPv6 address of end node
E4: IPv4 address of end node (low-order 32-bits
IPv4-compatible address).
EL: Datalink address of end node
T4: IPv4 address of the tunnel endpoint
R6: IPv6 address of router
R4: IPv4 address of router
RL: Datalink address of router
IPv4: IPv4 packet format
IPv6: IPv6 packet format
IPv6/4: IPv6 encapsulated in IPv4 packet format
UNRCH: Destination is unreachable. Don't send a packet
Gilligan & Nordmark Standards Track [Page 19]
RFC 1933 IPv6 Transition Mechanisms April 1996
4.4.1 On/Off Link
Part of the process of determining what packet format to use
determining whether a destination is located on an attached link
not. IPv4 and IPv6 employ different mechanisms. IPv4 uses
algorithm in which the destination address and the interface
are both logically ANDed with the netmask of the interface and
compared. If the resulting two values match, then the destination
located on-link. This algorithm is discussed in more detail
Section 3.3.1.1 of the host requirements specification [10]. IPv
uses the neighbor discovery algorithm described in "
Discovery for IP Version 6" [7].
IPv6/IPv4 nodes need to use both methods
- If a destination is an IPv4 address, then the on/off
determination is made by comparison with the netmask,
described in RFC 1122 section 3.3.1.1.
- If a destination is represented by an IPv4-compatible IPv
address (prefix 0:0:0:0:0:0), the decision is made using
IPv4 netmask comparison algorithm using the low-order 32-
(IPv4 address part) of the destination address
- If the destination is represented by an IPv6-only
(prefix other than 0:0:0:0:0:0), the on/off link
is made using the IPv6 neighbor discovery mechanism
5.
We would like to thank the members of the IPng working group and
IPng transition working group for their many contributions
extensive review of this document. Special thanks to Jim Bound,
Callon, and Bob Hinden for many helpful suggestions and to John
for suggesting the IPv4 "anycast address" default tunnel technique
6. Security
Security issues are not discussed in this memo
Gilligan & Nordmark Standards Track [Page 20]
RFC 1933 IPv6 Transition Mechanisms April 1996
7. Authors'
Robert E.
Sun Microsystems, Inc
2550 Garcia Ave
Mailstop UMTV 05-44
Mountain View, California 94043
Phone: 415-336-1012
Fax: 415-336-6015
EMail: Bob.Gilligan@Eng.Sun.
Erik
Sun Microsystems, Inc
2550 Garcia Ave
Mailstop UMTV 05-44
Mountain View, California 94043
Phone: 415-336-2788
Fax: 415-336-6015
EMail: Erik.Nordmark@Eng.Sun.
7.
[1] Croft, W., and J. Gilmore, "Bootstrap Protocol", RFC 951,
September 1985.
[2] Droms, R., "Dynamic Host Configuration Protocol", RFC 1541.
October 1993.
[3] Bound, J., "Dynamic Host Configuration Protocol for IPv6 for IPv
(DHCPv6)", Work in Progress, November 1995.
[4] Deering, S., and R. Hinden, "Internet Protocol, Version 6 (IPv6)
Specification", RFC 1883, December 1995.
[5] Thomson, S., and T. Nartan, "IPv6 Stateless
Autoconfiguration, Work in Progress, December 1995.
[6] Thomson, S., and C. Huitema. "DNS Extensions to support
version 6", RFC 1886, December 1995.
[7] Nartan, T., Nordmark, E., and W. Simpson, "Neighbor Discovery
IP Version 6 (IPv6)", Work in Progress, November 1995.
[8] Mogul, J., and S. Deering, "Path MTU Discovery", RFC 1191,
November 1990.
Gilligan & Nordmark Standards Track [Page 21]
RFC 1933 IPv6 Transition Mechanisms April 1996
[9] Finlayson, R., Mann, T., Mogul, J., and M. Theimer, "
Address Resolution Protocol", RFC 903, June 1984.
[10] Braden, R., "Requirements for Internet Hosts -
Layers", STD 3, RFC 1122, October 1989.
[11] Kent, C., and J. Mogul, "Fragmentation Considered Harmful".
Proc. SIGCOMM '87 Workshop on Frontiers in
Communications Technology. August 1987.
Gilligan & Nordmark Standards Track [Page 22]
if you see any problems within the linking, don't worry be happy,
this is version 0.1 of the Relevance System and you gotta expect some crappy subroutines sometimes,
just be content we did not write this in Java, which would have made this "bigger and better" HAHAHHA.
RFC documents can be found at I.E.T.F.
Relevance System Copyright © 2002 Spectrum WorldResearch
other technical nosh by ServerMasters Corporation
collaboration of BobX