(racoon2 26) racoon2 and MIPv6 (1)

Francis Dupont <[email protected]> Wed, 30 Nov 2005 15:09:07 +0100
Newsgroups gmane.network.ipv6.kame.racoon
Message-ID <[email protected]>
This is my first message about racoon2 and MIPv6. The idea is to add
MIPv6 support in racoon2, cf RFC 3776 (for IKEv1 support),
draft-ietf-mip6-ikev2-ipsec-04.txt (IKEv2 version of the RFC)
draft-sugimoto-mip6-pfkey-migrate-01.txt (PF_KEY extensions).
BTW I am co-author of the three documents so if you have questions
about them...

The first thing needed for MIPv6 support on the Mobile Node/Router
is an efficient support for new addresses. I've seen it was just
added in racoon2 but it needs to be efficient too so there are at
least to usual issues (currently being fixed for ipsec-tools/racoon):
 - a new address should handle before any AQUIRE trying to use it
   (fix: handle rtsock before pfkey in iked/main.c iked_mainloop())
 - don't close all sockets and reopen them, i.e., avoid race conditions
   and lost of state
   (fix: use a differential address list, cf my code for ipsec-tools)
 - handle new addresses which are not yet available, cf DAD and other
   delaying stuff
   (fix: retry reopen with exponential backoff when a bind() fails)

The first fix is easy (just move some lines of code), the others are
more difficult but you can get a good idea of them in the last patch
I posted in the ipsec-tools mailing list.
I can propose the code if you'd like to follow my idea ASAP but haven't
enough time to implement it. Note it is not really necessary as it will
work without them but with very bad performance (last BU retransmit vs.
first BU retransmit, i.e., 68 seconds vs. 1 second).
cf http://www.nautilus6.org/~francis/racoon-mipv6/wiki.txt

Thanks

[email protected]