Instant IPv6 PI solution for everyone

Iljitsch van Beijnum iljitsch at muada.com
Mon Nov 29 10:51:11 UTC 2004


On 29-nov-04, at 10:59, Owen DeLong wrote:

>> 2002:<AB>:<CD>::/48, eg, 192.0.2.42 becomes 2002:c000:22a::/48, 6to4,
>> quite in use and works fine when the 6to4 relays are close-by for both
>> ends.

> OK... Seems a bit messier, and more wasteful of address space, but, if 
> we
> want to blow away 4 billion /48s to accomodate v4 connectivity, it's 
> not
> like we'll miss them.

:-)

>> Say, you currently have 192.0.2.0/24 (IPv4 doc prefix, can't use ;) 
>> then
>> you thus also have 2002:c000:22a::/48 or larger of course, depending 
>> on
>> your IPv4 space, though a /48 should be enough for most folks.

> Actually, I think that would be 2002:c000:0200::, but, that's not a 
> /48,
> it's a /40 (2002:c000:0200:: to 2002:c000:02ff::).  One of us must be
> confused.

2002:c000:0200:: is a single IPv6 address. Since last 1 bit is bit 38, 
it _could_ be the address part for a /40, but the 6to4 prefix for 
192.0.2.0 is 2002:c000:0200::/48 = 2002:c000:0200:0:0:0:0:0 (generally 
written as 2002:c000:0200::) - 2002:c000:0200:ffff:ffff:ffff:ffff:ffff.

Use http://www.bgpexpert.com/ipv6tools/ to save yourself the headache.  
(-:

> So I don't understand how this ends up actually working.  How does the
> rest of the world know which 6to4 relay to send which IPv4 prefixes to?

There are four cases:

1. regular IPv6 host to regular IPv6 host
2. 6to4 host to 6to4 host
3. 6to4 host to regular IPv6 host
4. regular IPv6 host to 6to4 host

Case 1 will work through normal native IPv6 connectivity or configured 
tunnels. In case 2, the sending host will take the IPv4 address from 
the destination IPv6 address and slap on an IPv4 header with this 
address in it so the packet is tunneled directly from host to host 
without involvement from relays.

In case 3 the 6to4 host has an IPv6 default route towards a 6to4 relay 
so the packet are tunneled towards the relay. There is a well known 
anycast address for this, which is 2002:c058:6301:<something> in IPv6 
which resolves to 192.88.99.1 in IPv4.

In case 4 the packet will be forwarded across the IPv6 internet towards 
the closest place where a 6to4 gateway announces 2002::/16, and there 
the gateway performs the 6to4 tunneling.

Of course in Windows all of this is much more complex but figuring that 
out is left as an exercise for the reader...

I wouldn't recommend using 6to4 to leverage IPv4 multihoming as an IPv6 
multihoming solution though, since the extra detour to find a 6to4 
relay may be significant. On the other hand, we could allow 2002:: more 
specifics in the IPv6 routing table as PI, because filtering those out 
doesn't immediately break connectivity.




More information about the NANOG mailing list