public inbox for b.a.t.m.a.n@lists.open-mesh.org
 help / color / mirror / Atom feed
From: "Geneviève Bastien" <gbastien@versatic.net>
To: The list for a Better Approach To Mobile Ad-hoc Networking
	<b.a.t.m.a.n@lists.open-mesh.org>
Subject: [B.A.T.M.A.N.] Internet gateway or not: dhcp or static ip?
Date: Wed, 18 Jul 2012 21:18:14 -0400	[thread overview]
Message-ID: <50076056.4050907@versatic.net> (raw)

[-- Attachment #1: Type: text/plain, Size: 1538 bytes --]

Hi!

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?

Thanks,
Geneviève

[-- Attachment #2: 99-batman-adv-gw --]
[-- Type: text/plain, Size: 729 bytes --]

#!/bin/sh

# This is the interface as mentioned in the /etc/config/network file
IMESH="lan"

# This is the interface on which to ask for dhcp.  May not be same as previous if interface is a bridge, like br-lan
IDHCP="br-lan"

hostname=$(uci get system.@system[0].hostname)

case "$ACTION" in
	change)
		if [ "$BATTYPE" == "gw" ]; then
			case "$BATACTION" in
				add)
					logger "Now has a gateway available.  Will request dhcp."
					udhcpc -i $IDHCP -h $hostname
					;;
				del)
					logger "No more gateway available.  Will go back to static ip."
					ifdown $IMESH
					ifup $IMESH
					;;
				change)
					logger "New default gateway.  Will request dhcp"
					udhcpc -i $IDHCP -h $hostname
					;;
			esac
		fi
		;;
esac


             reply	other threads:[~2012-07-19  1:18 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-07-19  1:18 Geneviève Bastien [this message]
2012-07-19  1:34 ` [B.A.T.M.A.N.] Internet gateway or not: dhcp or static ip? HeXiLeD
2012-07-19  1:35 ` Guido Iribarren
2012-07-19 13:57   ` Geneviève Bastien
2012-07-19 21:28     ` Guido Iribarren

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=50076056.4050907@versatic.net \
    --to=gbastien@versatic.net \
    --cc=b.a.t.m.a.n@lists.open-mesh.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox