RE: teredo prefix question ?

"Christian Huitema" <[email protected]> Fri, 4 Oct 2002 16:25:34 -0700
Newsgroups gmane.ietf.ngtrans
Message-ID <F66A04C29AD9034A8205949AD0C9010401C0E6BB@win-msg-02.wingroup.windeploy.ntdev.microsoft.com>
> Why does Teredo require the prefix to be 32 bits (unlike 6t04 which 
> is 16 bits, just the FP and TLA) ? 

Thread lightly, don't contribute to depletion of the IPv6 address space,
that sort of things. 

More to the point: we needed to get rid of the IPv4 anycast address --
that was very clear from the feedback from the IESG reviewers. Multiple
Teredo servers, which will will use different IPv4 addresses. For the
system to work, the first packet in any exchange must be routed through
the specific server chosen by the client, which implies that the IPv6
prefix must identify the server. There are two ways to do that: we can
use 32 bits in the prefix to encode the IPv4 address of the server; or
we can use a lesser number of bits and essentially use the IPv6 routing
tables to direct the first packet to the right server.

Consider now that the address of the Teredo host must also encode the
mapped address and mapped port of the host, which requires 48 bits. In
practice, that leaves us with two interesting design points:

1) use 16 bits to identify the server, and place the mapped address and
port in the remaining 48 bits of the prefix. Each Teredo host obtains a
/64 prefix.

2) encode the server IPv4 address in the prefix, the mapped address and
mapped port in the user identifier. Each Teredo host obtains a /128.

I do not believe that allocating a /16 prefix to each Teredo server is a
good design, which pretty much forces us into the second choice. In that
case, since we only require 32 bits to encode the address of the server,
we can just as well use a /32 prefix for the Teredo service.

-- Christian Huitema