Passing Interface Name to Event Script

Glenn Satchell Glenn.Satchell at uniq.com.au
Sat Nov 14 12:25:33 UTC 2009


>Subject: Passing Interface Name to Event Script
>Date: Fri, 13 Nov 2009 16:40:09 -0800
>X-MS-Has-Attach: 
>Content-class: urn:content-classes:message
>X-MS-TNEF-Correlator: 
>Thread-Topic: Passing Interface Name to Event Script
>From: "Rick Solotke" <RSolotke at olympus-cta.com>
>To: <dhcp-users at lists.isc.org>
>X-BeenThere: dhcp-users at lists.isc.org
>
> Hello,
>  
> I have dhcpd running on a router with several network interfaces, all of
> which belong to the same subnet.  Because all interfaces belong to the
> same subnet, the Linux routing table is ambiguous (an address on the
> subnet is reachable via more than one interface).  Consequently, once a
> DHCP transaction completes, the router and the new client are unable to
> communicate until a static route is added to the router's routing table.
> This route specifies the specific IP address of the client and the
> interface on which that address is accessible (e.g. route add
> 192.168.1.10 dev eth0).  If I manually enter the route at the command
> line, the router and client are then able to communicate happily.
>  
> I'd like to automate this process, so that as soon as the DHCP
> transaction occurs, the static route is automatically added.  The dhcpd
> COMMIT event seems to be the right place to do this, and I am able to
> make the IP address available to the script.  However, I see no way to
> make the interface name available to the script.  Without the interface
> name, the script is unable to add the static route.
>  
> Any suggestions?  dhcpd obviously knows which interface the DHCP
> transaction occurred on, but is there any way that information can be
> made available to the event script?  If not, does anyone have a
> suggestion for another way to accomplish assignment of the static route
> upon DHCP completion?

This is really a Linux routing issue, not a DHCP problem as such.

If the client is available through any interface then I can think of
three possibilities:

1. Run a dynamic routing protocol and let it sort out which interface
to route through.

2. In the script assign the interface for the route on a round-robin or
pseudo random basis. As long as the routes are pretty evenly
distributed you should be ok.

3. If the DHCP traffic is not too high route all the DHCP traffic
through one interface and leave the others for other traffic.

regards,
-glenn




More information about the dhcp-users mailing list