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