Subject: (ngtrans) Stateless tunnelling

From: Jacob Refstrup <[email-masked]>
Date: Fri, 16 Oct 1998 15:15:54 +0100

Hi,

I'm sorry if this topic has already been debated to death - but I'm "new" on the mailing list and I hope I have something to contribute wrt. automatic and stateless tunneling between two IPv6 ONLY hosts.

Let me first start by drawing up the scenario. 

      +------+		 
      | (Ha) |		
      | IPv6 |		
      | host |
      +------+
          |
   +--------------+
   |              |
   |    (Na)      |
   | IPv6 network |
   |              |
   +--------------+
          |
     +---------+
     |  (Ra)   |
     | IPv6/v4 |
     | Router  |
     +---------+
          |
 +-------------------+
 |                   |
 |                   |
 |    IPv4 network   |
 |                   |
 |                   |
 +-------------------+
          |
     +---------+
     |  (Rb)   |
     | IPv6/v4 |
     | Router  |
     +---------+
          |
   +--------------+
   |              |
   |    (Nb)      |
   | IPv6 network |
   |              |
   +--------------+
          |
      +------+
      | (Hb) |
      | IPv6 |
      | host |
      +------+

Host A (Ha) want's to contact host B (Hb) and both hosts are IPv6 only. If communication between Ha and Hb is to succeed a tunnel between router A (Ra) and router B (Rb) must be established. Currently (correct me if I'm wrong!) this is handled by configuring Ra and Rb; this configuration is either manual or automatic and stateful. What I propose to do is handle this automatic but in a stateless fashion.

To start with I will only consider the scenario where there's one router present on each of the IPv6 networks (Na and Nb).

The idea is that the IPv6 address of Ha and Hb embeds the IPv4 address of their local router (Ra and Rb respectively). Suppose that Ra has IPv4 address 1.2.3.4 and Rb has IPv4 address 5.6.7.8. Ra advertises with prefix 1:0102:0304::/48 and Rb with 1:0506:0708::/48. 

Thus, when Ha is trying to send to Hb it is trying to send to an IPv6 address with prefix 1:0506:0708://48 which is different from the local prefix - and there the packet it sent to the router Ra.

When a router encounters an address with prefix 1::/16 it recognizes that as a special prefix. It uses the following 32 bits to extract the IPv4 address of the end-tunnel point this packet should be sent to. In the case of Ra receiving a datagram with prefix 1:0506:0708::/48 the IPv4 address for the end-tunnel point is 5.6.7.8. The IPv6 datagram is encapsulated within IPv4 and the result is sent to IPv4 5.6.7.8.

When Rb receives the encapsulated datagram it decapsulates it and forwards it to Hb.

When Hb is trying to send to Ha a similar set of events occur.

The 1::/16 prefix was chosen to make it easier to read (it's part of the reserved 0::/8 prefix). It is possible to use other unassigned prefixes. 100::/8 might be good because the IPv4 address is at least byte aligned. Then the "total" prefix would be 1aa:bbcc:dd00::/40 be used to prefix a network with in IPv4/IPv6 router with an IPv4 address of aa.bb.cc.dd. This would leave 88 bits for sub-networks and host assignments.

There are several issues that this proposal cover that would be very interesting to explore.

Suppose that the IPv6 networks (Na and Nb) consisted of several sub IPv6 networks with several routers (still only one router with an IPv4 address). How would the special prefix to propagated within all these networks?

How would we deal with multiple IPv4/IPv6 routers?

Suppose the IPv4 address of the router (Ra and/or Rb) was dynamic - and that the IPv6 address for Ha and/or Hb was obtained with DNS. What are the impacts of updating the DNS tables for all the IPv6 addresses that are "behind" the router with the dynamic IPv4 address. 

I would much appreciate comments,

Regards,

Jacob Refstrup
Hewlett Packard Labs, Bristol

---

From: Gregory Taylor <[email-masked]>
Date: Tue, 20 Oct 1998 13:34:37 -0700 (PDT)

Routing in that fashion seems to be a pretty good idea for implementing
IPv6 into an existing internet, but my question is wether or not one
machine from a IPv6 network, going through a IPv4 network back to a IPv6
network would be able to see the other hosts on the other IPv6 network,
because IPv4 would convert the IP's to 4 block and the 6 block would not
be seen via IPv4 networking.  Maybe Im talking out my butt, Im not
familiar with how IPv4 routers with IPv6 support would handle such a
request.

Gregory Taylor
Network Security Engineer
SantaCruz Networks
A Division of Expert Commerce, Inc.

[email-masked]

253-475-1227 - Phone