tech-net archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: I'm trying to make a 6rd pseudo-device

Ignatios Souvatzis <> writes:

> On Mon, Jan 24, 2011 at 08:30:02AM -0500, Patrick Klos wrote:
>> the rest to work.  I'm considering merging my code into the stf
>> driver rather then to have a separate sixrd driver?
> As far as I read 6RD, it's just like 6to4, just with a different
> (and normally longer) prefix than 2002::/16 ?
> 6to4 should certainly be implementable as a special case of a 6rd
> driver, or stf should be easily extandable. Note however, that for
> 6to4 the intrinsic prefix length is always (16+32)==48, while for
> 6rd it can be anything from (in theory) 3+32 to 32+32. So there's 
> a small integer parameter more - the position of the embedded
> IPv4 relay address.

More than that -- 6RD allows for removing some bits from the beginning
of the IPv4 address.  So if a provider is delivering v6 service to, they could set IPv4MaskLen as high as 16 and use a prefix
like 2001:db8:beef::/48.  Or a shorter prefix than that.  So there are
two small integer parameters here, as well as those bits of the v4
address that are masked off.

(In fact, from my first read through it, RFC 5969 doesn't explicitly
forbid giving each v4 address a prefix smaller than a /64; that will
break stateless autoconfiguration of the end network, of course, but it
is possible.  The only restriction like that that I'm seeing is that the
resulting prefix must be at least a /128 -- for obvious reasons.)

It does look like 6to4 can be considered the special case of 6RD with
IPv4MaskLen=0, 6rdPrefix=2002::, and 6rdPrefixLen=16.

(let ((C call-with-current-continuation)) (apply (lambda (x y) (x y)) (map
((lambda (r) ((C C) (lambda (s) (r (lambda l (apply (s s) l))))))  (lambda
(f) (lambda (l) (if (null? l) C (lambda (k) (display (car l)) ((f (cdr l))
(C k)))))))    '((#\J #\d #\D #\v #\s) (#\e #\space #\a #\i #\newline)))))

Home | Main Index | Thread Index | Old Index