[Babel-users] AHCP + prefix distribution

Dave Taht dave.taht at gmail.com
Wed Jul 10 17:45:35 UTC 2013


I've had a chance to give ahcp a more thorough shakeout of late in
building up my lab.

( https://plus.google.com/u/0/107942175615993706558/posts/XFGgMTUUDWC )

I'm generally pretty happy with the result. I realize that AHCP was an
experiment in supplying configuration information over link local
addresses, and, wow, um, it works... (am just using it for ipv6 at
present)

However, my own long term goal has been to get (wireless) routers to
the point to where you could just throw them off the back of a truck
and plug them in and have them work. This means a leetle more
configuration info is needed.

I spent a day looking at the codebase for AHCP and trying to prototype
I wanted into it. It is extremely rare I ever get a whole day to do
anything, and (for example) the last time I tried was 7+ months back.
So I do not want to distract from the ongoing work on babel right now
but I did want to share my thoughts before I got distracted again...

Specifically:

* I might argue that 2K is too small a buffer in some far off day
where AHCP packets contain more stuff, be fragmented, and get signed,
etc, with a bunch of forwarders (see #BUFFER_SIZE and related recvmsg
call). 64K?

* I defined a few new options

** -P Prefix Request

-P ::/62 -P /24 # would request 4 ipv6 prefixes and one ipv4 /24.

-P ::/62 -P ::/64 # would request 5 ipv6 prefixes

-P SOME:IPV6:ADDRESS::/62 would request a specific range for prefix
delegation (presumably from a cache)

The underlying message structure in the protocol would basically match this...

the conf file I suppose would syntactically be "request-prefix"

There are numerous other bits of hairyness down here (lifetime,
deprecation, etc) that dhcp does

** -h

'cause I like help to be explicit

**  -6 -4 should be equivalent to not having specified at all

** Naming

It really is nice to suggest a name and have an assigned name happen.
It gives humans something to hang a dns address, subdomain, and ssid
off of that can make sense.

** Lease file format

This is where I realized I wasn't going to be able to spend a day on
prototyping these ideas and get something useful. There is no lease
for ipv6 addresses at all (which is kinda cool actually), and prefix
distribution is naturally a binary tree...

My first instinct was to reach for berkeley DB, my second was to stop
and ask for advise.

* My biggest headaches

** The dream

is to flash a router, turn it on, have it get ips, get multiple routes
to the internet, find an optimal channel for itself to both share
locally and yet not pee on too much local spectrum, and have it also
distribute ips to convential boxes in AP mode, and supply a name to
dns so a user can configure it...

and have the 192.168.1.1 convention die...

** Naming & discovery

I now have something like 30+ AHCP distributed ips. Perhaps I can hook
up the route table to SSDP in order to figure out what the heck those
boxes are? Or some other service discovery mechanism? It would be nice
to merely have a start at it with handing out a base name in the
proto... I am thinking that handing the ahcp id into dns and using a
cname for a more relevant name might work... except that that won't
work for subdomain delegatio... and round and round we go...

* I don't really regard these as an AHCP level problem but I'm
slamming these in anyway.

** Channel selection

With a dozen channels available, and multiple radios also hooked to
each other via ethernet etc, trying to find an optimum channel mix is
a real problem. Everybody staying on the same channel is sub-optimal
of course.

** SSID

I tend to broadcast "babel". This confuses people, and I recently
learned that all I really need is a BSSID

** BSSID

I got killed by my network bifurbicating a couple times so finding a
way to enforce this or do this during a scan before setting up? or
something? would be nice



-- 
Dave Täht

Fixing bufferbloat with cerowrt: http://www.teklibre.com/cerowrt/subscribe.html



More information about the Babel-users mailing list