[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: The state of IPv6 multihoming development
> In our current prototype the kernel maintains an ID -> address
> mapping table. If it encounters an ID that it has no mapping for,
> it queues the packet in a queue of length 1, and sends the ID to
> a user level daemon for resolution. The current prototype daemon
> reads the mapping from a configuration file. This is clearly
> unacceptable for real life.
>
> My *current* idea of the right way of doing that is to
> hack the resolver library. That is, whenever the application
> asks for AAAA records (e.g. through getaddrinfo), the resolver
> asks for both AAAA records and KEY records. If it gets any
> HIP key(s), it returns the corresponding HIT(s) as the first
> entri(es) in the address list, and the real addresses after them.
> Additionally, it pushes the HIT->AAAA mapping(s) to the kernel.
> The kernel maintains a status of the addresses and marks
> one usable only after an ID verifying RR has been performed
> on it. Exact details to be worked out, but you get the idea.
Implementation details (like trust issues between the shared kernel and a
library) aside, I don't see how one can ensure that you can have
high connection rate servers without opening up a DoS hole.
For a low connection rate server the queue of one (or some rate limiting
at a value larger than one) might make sense, but that doesn't
allow folks to build high-connection rate servers that do not want to
hard code a limit.
Carrying 2 locators and 2 identifiers in the connection establishment
seems like a way to avoid this performance vs. DoS morass.
Haven't though about UDP though.
Erik