[Dnsmasq-discuss] Distributed lease database on a mesh, using batman-adv alfred

Gui Iribarren gui at altermundi.net
Sat Nov 2 20:30:41 GMT 2013


Hello once again Simon,
we are giving one more iteration to this Libre-Mesh[0] idea, this 
weekend at a HackMeeting[1] near Bilbao

i already described a bit of the "interesting" setup generated by the 
firmware in my last email.

To make the mesh as distributed / resilient as possible, there's a 
dnsmasq instance running on each node, with identical configuration 
(i.e. everyone serves the same range to its clients, since they are all 
part of a batadv link-local that enables them to roam around)
This scheme needs some kind of "lease propagation" between all 
instances: not only to avoid collisions in a robust way, but also to 
have cloud-wide hostname resolution (i.e. any dnsmasq will know 
hostname->ip of every client, independent of which dnsmasq gave the 
lease to the client)

Gioacchino did a small script[2] to be used as a --dhcp-script, that 
talks to alfred[3] (a batadv-related daemon that propagates arbitrary 
data over a link-local) and correctly populates dnsmasq lease database 
on startup (since leasefile-ro makes dnsmasq call the script with "init" 
arg)

it also accepts "add" actions and such, and instantly propagates leases 
to the rest of the nodes.

Problem is, there's no way to update dnsmasq internal database from 
outside (i.e. when alfred gets new info from another node); SIGHUP will 
not make dnsmasq call dhcp-script "init", only a full restart will do, 
and we'd rather not kill and respawn dnsmasq whenever a new lease is 
given in any part of the cloud :P

Simon, any chance of having dnsmasq call "init" on dhcp-script (or 
lua-hook, if it's simpler) when getting a SIGHUP (or another, dedicated 
signal, for that matter)?

I hope my description of why that'd be highly desirable was 
understandable :)

Hope you're having a nice weekend!

Gui

[0]: http://dev.libre-mesh.org/
[1]: 
http://sindominio.net/hackmeeting/wiki/2013/Nodos/Libre-mesh:_metafirmware_OpenWrt_para_cualquier_comunidad_WiFi_del_mundo
[2]: 
https://github.com/libre-mesh/lime-packages/blob/master/packages/lime-dnsmasq-lease-share/src/dnsmasq-lease-share.lua
[3]: http://www.open-mesh.org/projects/alfred



More information about the Dnsmasq-discuss mailing list