dhclient dry-run - need to know the def gateway without installing the def route
Sten Carlsen
stenc at s-carlsen.dk
Mon Apr 7 20:46:15 UTC 2014
On 07/04/14 22.23, alessandro macuz wrote:
> 2014-04-07 21:15 GMT+02:00 Simon Hobson <dhcp1 at thehobsons.co.uk
> <mailto:dhcp1 at thehobsons.co.uk>>:
>
> alessandro macuz <alessandro.macuz at gmail.com
> <mailto:alessandro.macuz at gmail.com>> wrote:
>
> > I could deduce the gateway from the DHCP server IP address
> because normally they coincide but that would be my assumption.
>
> You've heard the expression that "assume" makes an "ass" out of
> "u" and "me", well your assumption is badly wrong. In home and
> small networks it is likely to be true (not mine though). But once
> you get to business networks then its more likely that the DHCP
> server is not at the same IP address as the router.
>
> However, I'm still not quite sure why you are doing things the
> long way round. What's specifically wrong with using the route
> that comes with the lease ? Or more to the point, what's wrong
> with dealing with it when you get it ? And BTW - have you
> considered the possibility of getting different answers to your
> two queries ?
>
>
> Sorry maybe I should have added more details but there is only one
> defaut gateway on the network of that interface and hence the dry-run
> returns always the same IP address. As to the second reply it will
> configure the interface.
>
> Why I want to run a dry-run? Because eventually I need to install some
> routes pointing to the only gateway on the network. On the system
> there is another interface that gets the IP dinamically and two
> default routes are not OK
I suggest you look at: /sbin/dhclient-scripts
It contains the following code, I think a small modification to this
will do your job:
~~~~~~~~~~~~~~~~~~~~~
add_default_gateway() {
router="${1}"
if is_router_reachable ${router} ; then
metric=""
if [ $# -gt 1 ] && [ ${2} -gt 0 ]; then
metric="metric ${2}"
fi
ip -4 route replace default via ${router} dev ${interface} ${metric}
if [ $? -ne 0 ]; then
logmessage "failed to create default route: ${router} dev
${interface} ${metric}"
return 1
else
return 0
fi
fi
return 1
}
~~~~~~~~~~~~~~~~~~~~~
>
>
>
>
> For many clients (certainly the ISC one on Linux) you can supply
> your own script/modify the stock one. That means you can go and
> accept a lease, then use your own script to fiddle with the
> system. Or at least I thin that's the case.
>
>
> I thought of this and delete the 2nd def route but even if for less
> than a second packets would load-balanced between the two default
> routes. Now that I'm writing I realize that the loadbalancing
> mechanism is in place only when the adm distance is the same, so maybe
> I can play with that value if the DHCP protocol allows that.
>
> Alex
>
>
> _______________________________________________
> dhcp-users mailing list
> dhcp-users at lists.isc.org
> https://lists.isc.org/mailman/listinfo/dhcp-users
--
Best regards
Sten Carlsen
No improvements come from shouting:
"MALE BOVINE MANURE!!!"
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.isc.org/pipermail/dhcp-users/attachments/20140407/d7b7a8d3/attachment-0001.html>
More information about the dhcp-users
mailing list