Passing Interface Name to Event Script

Simon Hobson dhcp1 at thehobsons.co.uk
Mon Nov 16 20:39:52 UTC 2009


Rick Solotke wrote:

>  >Hmm, interesting concept. You do realise that this fundamentally
>>violates the most basic rules of IP addressing don't you ? I'm
>>curious as to the reasons for needing this.
>
>I'm trying to emulate something similar to a standard consumer home
>router, where end devices are plugged into each of the router's
>interfaces, and all addresses are on the same subnet.  I realize that
>internally the "router" is most likely a 2-port (WAN and LAN) router
>with the LAN side going to an embedded switch, but it seems like I
>should be able to accomplish the same behavior with a Linux box.

I had a suspicion it might be something like that - and multiple 
interfaces like you are playing with won't work - not without a LOT 
of work to handle all the broadcast stuff that clients need in order 
for the network to run. Fortunately, the Linux networking guys have 
already done that for you in the bridging module (as Jeff has pointed 
out).

Just install the bridge-utils package - this gives you the brctl 
command. Then you can do :

brctl addbr br0
ip link set eth0 up
brctl addif br0 eth0
ip link set eth1 up
brctl addif br0 eth1
ip link set eth2 up
brctl addif br0 eth2

then 'ifconfig' your IP configuration onto br0. Of course, you can 
normally do this in the distribution network scripts, eg in Debian 
you would declare br0 as your interface in /etc/network/interfaces, 
and add :

pre-up brctl addbr br0
pre-up ip link set eth0 up
pre-up brctl addif br0 eth0
pre-up ip link set eth1 up
pre-up brctl addif br0 eth1
pre-up ip link set eth2 up
pre-up brctl addif br0 eth2

to it's config section - then as the system boots, it will 
automatically create the bridge, attach some interfaces to it, and 
bring up an IP interface on the bridge. It works "quite nicely" and 
avoids all the problems you'd found (and not found yet !).

PS - the bridging defaults to 15s STP learning time on bridge ports, 
you may want to tune that as it means no traffic through each port 
for 15s after it's been brought up (or a cable plugged in).

PPS - that's (mostly) done from memory, so you may want to look for a 
howto appropriate for your distribution and cross check.

>I have decided not to rely on this (see above), but to satisfy my
>curiosity, what reasons did you have in mind as to why I should not rely
>on dhcpd knowing on which interface a DHCP transaction occurs?

In the case of unicast packets, I was under the impression that dhcpd 
simply passed a packet to the Linux kernel and let it handle the 
routing. Clients normally use unicast for mid-lease renewals - though 
in that case, they should still have a host route that would get the 
packet back to them.
-- 
Simon Hobson

Visit http://www.magpiesnestpublishing.co.uk/ for books by acclaimed
author Gladys Hobson. Novels - poetry - short stories - ideal as
Christmas stocking fillers. Some available as e-books.



More information about the dhcp-users mailing list