I had a chat the other day on IRC about how to assign ip addresses whether there is an internet gateway available or not.
Here is the problem and the solution I came up with. Let me know if that makes sense or if I'm complicating my life.
* Problem *
Our network is still small, there may or may not be an internet gateway available on it, it doesn't matter. From what I read here http://www.open-mesh.org/projects/batman-adv/wiki/Gateways for nodes to have access to the internet, the internet gateway has to be a dhcp server.
The node requests an ip by dhcp and then knows what the default route is. But if the gateway disappears, there is no more dhcp server, the nodes do not have ip addresses and the mesh network is about useless.
But if I set nodes with static ips, then the mesh is routable all the time, but nodes do not know the default route to reach the internet.
Am I right so far?
* Solution *
Someone on irc pointed me out to this page: http://www.open-mesh.org/projects/batman-adv/wiki/Uevent I use this uevent to send a dhcp request if a gateway becomes available or go back to a static ip if all gateways are gone.
Attached is the hotplug script I use. It is in /etc/hotplug.d/net/99-batman-adv-gw. It supposes the interface is configured by default with a static ip.
It works perfectly, but I can't believe there is no simpler solution to this. Our problem should be a quite common one. What is the general solution to it?