Seems DHCP request is ignoring default route info FreeBSD 9.0 - more info...

Theodor-Iulian Ciobanu thciobanu at nth.ro
Tue Aug 28 18:46:14 UTC 2012


On Tue, 28 Aug 2012 17:40:27 +0200
Bernard Higonnet <bthigonnet at gmail.com> wrote:

> On 28/08/2012 00:37, David Cornejo wrote:
> >
> >
> > On Mon, Aug 27, 2012 at 5:30 AM, Bernard Higonnet
> > <bthigonnet at gmail.com <mailto:bthigonnet at gmail.com>> wrote:
> >
> >     Hello,
> >
> >     I have two machines running 9.0 and which use DHCP. The DHCP
> > server is on a third machine using dnsmasq, also under 9.0, and
> > provides an explicit default router address.
> >
> >     dnsmasq is sending the right stuff, as evidenced by the dnsmasq
> > log on the one hand, and by the fact that a Windows7 machine and a
> >     Windows XP machine are using the same DHCP server and those
> > machines get the proper default gateway info on the other hand.
> >
> >     Here is output from dnsmasq.log
> >
> >     Aug 27 16:32:19 dnsmasq-dhcp[922]: 4078691060 <tel:4078691060>
> > sent size:  4 option:  3 router  192.168.4.1
> >
> >     What happens on the two FreeBSD machines is that I end up with
> > no default gateway at all!
> >
> >     When the same DHCP server used to provide its default gateway
> > (i.e. the machine dnsmasq is running on) everything was OK.
> >
> >     TIA
> >     Bernard Higonnet
> >     _________________________________________________
> >     freebsd-net at freebsd.org <mailto:freebsd-net at freebsd.org>
> > mailing list http://lists.freebsd.org/__mailman/listinfo/freebsd-net
> >     <http://lists.freebsd.org/mailman/listinfo/freebsd-net>
> >     To unsubscribe, send any mail to
> >     "freebsd-net-unsubscribe at __freebsd.org
> >     <mailto:freebsd-net-unsubscribe at freebsd.org>"
> >
> >
> > Can you supply the output of "netstat -nr" from the machine that is
> > missing a default route please?
> 
> I hope I shall not be flamed too severely, but I did not mention 
> something in my original email because I thought it not pertinent,
> but it turns out to have been...
> 
> I have instructed dnsmasq to
> 
> a) specify a non-standard default gateway and
> b) add a classless-static-route

This actually changes everything. :) The RFC requires DHCP clients to
ignore the default route option when a classless route option
exists.[1] So when using the latter, you actually have to specify at
least two routes - the one you need to notify the clients of and
0.0.0.0/0, the default. Linux (or at least the distro I worked
with) doesn't respect this, as it accepts the default gateway option
even when classless routes are sent and some versions of Windows use a
completely different option for classless routes than the standard
(249 instead of 121 IIRC). FreeBSD

> Each of these instructions are handled correctly by the FreeBSD
> machines making a DHCP request, but not both at the same time. If
> dnsmasq sends both, only the classless-static-route will be correctly
> handled and there will be no default gateway at all.
> 
> If dnsmasq does not provide the classless-static-route, the desired 
> default gateway works fine
> 
> ??
> 
> Bernard Higonnet


--
Theo


[1] From page 5 of http://tools.ietf.org/html/rfc3442
   If the DHCP server returns both a Classless Static Routes option and
   a Router option, the DHCP client MUST ignore the Router option.


More information about the freebsd-net mailing list