Re: [Dnsmasq-discuss] Query about solving a DHCPNAK issue

2015-06-01 Thread Kevin Benton
Let me rephrase it slightly. What is the point of dnsmasq NAKing client
responses to other servers if the clients are being programmed to ignore
the NAKs?

On the surface it looks like it's either pointless behavior on the server's
part or incorrect logic in the DHCP client. Am I missing something?

On Mon, Jun 1, 2015 at 2:58 AM, Vladislav Grishenko 
wrote:

> Hi Kevin,
>
>
>
> > why do DHCP servers like dnsmasq generate them in the first place?
>
> Because it’s per dnsmasq configuration and the effects are well-described
> in the man.
>
>
>
> http://www.thekelleys.org.uk/dnsmasq/docs/dnsmasq-man.html
>
> *-K, --dhcp-authoritative*
>
> Should be set when *dnsmasq is definitely the only DHCP server on a
> network*. For DHCPv4, it changes the behaviour from strict RFC compliance
> so that DHCP requests on unknown leases from unknown hosts are not ignored.
> This allows new hosts to get a lease without a tedious timeout under all
> circumstances. It also allows dnsmasq to rebuild its lease database without
> each client needing to reacquire a lease, if the database is lost. For
> DHCPv6 it sets the priority in replies to 255 (the maximum) instead of 0
> (the minimum).
>
>
>
> you definitely have multiple dhcp servers, so this option is misused under
> your circumstances, not?
>
>
>
> Best Regards, Vladislav Grishenko
>
>
>
> *From:* Kevin Benton [mailto:blak...@gmail.com]
> *Sent:* Monday, June 01, 2015 2:02 PM
>
> *To:* Vladislav Grishenko
> *Cc:* Brian Haley; Simon Kelley; dnsmasq-discuss@lists.thekelleys.org.uk
> *Subject:* Re: [Dnsmasq-discuss] Query about solving a DHCPNAK issue
>
>
>
> I understand, but that eliminates the whole 'correcting rouge dhcp offers'
> part of the authoritative mode.
>
>
>
> If we are teaching clients to ignore NAKs from other DHCP servers, why do
> DHCP servers like dnsmasq generate them in the first place? Wouldn't it be
> logically consistent to make a change to dnsmasq to prevent it from
> generating a NAK if the client is communicating with a different server?
>
>
>
> Is the client behavior regarding NAKs outlined in one of the DHCP RFCs? It
> does seem like there is a lot of confusion around what authoritative
> servers should be doing.
>
>
>
> On Tue, May 26, 2015 at 10:40 PM, Vladislav Grishenko 
> wrote:
>
> Hi Kevin,
>
> Ignoring all naks – would be, but the fix is different.
>
> That fix ignores all naks except from the selected/requested server only,
> it’s ok.
>
>
>
> Best Regards, Vladislav Grishenko
>
>
>
> *From:* Kevin Benton [mailto:blak...@gmail.com]
> *Sent:* Wednesday, May 27, 2015 9:32 AM
> *To:* Vladislav Grishenko
> *Cc:* Brian Haley; Simon Kelley; dnsmasq-discuss@lists.thekelleys.org.uk
> *Subject:* Re: [Dnsmasq-discuss] Query about solving a DHCPNAK issue
>
>
>
> That fix is interesting. Doesn't ignoring a NAK sort of defeat the point
> of the 'authoritative' NAKing in the first place?
>
>
>
> On Tue, May 26, 2015 at 2:26 PM, Vladislav Grishenko 
> wrote:
>
> > On 02/02/2015 05:47 PM, Brian Haley wrote:
> > >>
> > >>> The one thing I'm curious about is if dnsmasq is restarted while a
> > >>> VM holds a lease, how will it respond?  As someone else has
> > >>> pointed-out to me - isc-dhcp will respond with a DHCPNAK in that
> > >>> case, and wondered why there would be a difference with dnsmasq.
> > >>> Different interpretation of an RFC?
> > >>
> > >>
> > >> If by "dnsmasq is restarted" you mean "dnsmasq is restarted and
> > >> therefore has its lease database deleted", then the RFC says that if
> > >> a server gets a renewal for an unknown lease, it should return
> > >> DHCPNAK. That's what dnsmasq does _unless_ --dhcp-authoritative is
> > >> set, when instead it quietly re-creates the lease.
> > >
> > > Yes, your assumption is correct, as --leasefile-ro is used it knows of
> > > no current leases, and by default get a DHCPNAK.
> > >
> > >> dhcp-authoritative gives permission to dnsmasq to violate the RFC in
> > >> a way which is useful in certain circumstances.
> > >
> > > Thanks, it does seem to do what I want with my initial testing.
> >
> > Hi Simon,
> >
> > Replying to my old thread since using --dhcp-authoritative seems to have
> > introduced an issue where a DHCP client can get a NAK when using multiple
> > dnsmasq servers on the same subnet (they both have the same host
> > information, >1 runnin

Re: [Dnsmasq-discuss] Query about solving a DHCPNAK issue

2015-06-01 Thread Kevin Benton
>That's my opinion too (although I can see a flip side to the coin: if
>clients honor NAKs from any sever, then a rogue machine could break a
>local noetwork by NAKing any and all DHCPREQUESTs, effectively DoSing
>the whole segment at least).

Oh definitely. DHCPNAKs are definitely not a good way to protect against
rogue DHCP servers. Packet filtering (e.g. DHCP snooping or UDP drop rules)
are much better at that. I was just pointing out that if we are teaching
clients to ignore NAKs from other servers, we might as well have the
servers stop sending NAKs in response to traffic to other servers. "dhcp
authoritative" in the dnsmasq case would then just mean it accepts any
renewal.

>RFC 2131 says a server SHOULD send a DHCPNAK if it detects a DHCP
>request for e.g. the wrong network. It also says "If the client
>receives a DHCPNAK message, the client restarts the configuration
>process", which, while there is no "MUST" in it, seems to me like a
>non-optional requirement to honor DHCPNAKs.

Right, so then wouldn't the referenced busy-box patch be making the client
non-compliant?
http://git.busybox.net/busybox/commit/?id=e2318bbad786d6f9ebff704490246bfe52e588c0



On Mon, Jun 1, 2015 at 2:51 AM, Albert ARIBAUD 
wrote:

> Hi Kevin,
>
> Le Mon, 1 Jun 2015 02:02:27 -0700, Kevin Benton  a
> écrit :
>
> > I understand, but that eliminates the whole 'correcting rouge dhcp
> offers'
> > part of the authoritative mode.
> >
> > If we are teaching clients to ignore NAKs from other DHCP servers, why do
> > DHCP servers like dnsmasq generate them in the first place? Wouldn't it
> be
> > logically consistent to make a change to dnsmasq to prevent it from
> > generating a NAK if the client is communicating with a different server?
>
> That's my opinion too (although I can see a flip side to the coin: if
> clients honor NAKs from any sever, then a rogue machine could break a
> local noetwork by NAKing any and all DHCPREQUESTs, effectively DoSing
> the whole segment at least).
>
> > Is the client behavior regarding NAKs outlined in one of the DHCP RFCs?
> It
> > does seem like there is a lot of confusion around what authoritative
> > servers should be doing.
>
> RFC 2131 says a server SHOULD send a DHCPNAK if it detects a DHCP
> request for e.g. the wrong network. It also says "If the client
> receives a DHCPNAK message, the client restarts the configuration
> process", which, while there is no "MUST" in it, seems to me like a
> non-optional requirement to honor DHCPNAKs.
>
> > On Tue, May 26, 2015 at 10:40 PM, Vladislav Grishenko 
> > wrote:
> >
> > > Hi Kevin,
> > >
> > > Ignoring all naks – would be, but the fix is different.
> > >
> > > That fix ignores all naks except from the selected/requested server
> only,
> > > it’s ok.
> > >
> > >
> > >
> > > Best Regards, Vladislav Grishenko
> > >
> > >
> > >
> > > *From:* Kevin Benton [mailto:blak...@gmail.com]
> > > *Sent:* Wednesday, May 27, 2015 9:32 AM
> > > *To:* Vladislav Grishenko
> > > *Cc:* Brian Haley; Simon Kelley;
> dnsmasq-discuss@lists.thekelleys.org.uk
> > > *Subject:* Re: [Dnsmasq-discuss] Query about solving a DHCPNAK issue
> > >
> > >
> > >
> > > That fix is interesting. Doesn't ignoring a NAK sort of defeat the
> point
> > > of the 'authoritative' NAKing in the first place?
> > >
> > >
> > >
> > > On Tue, May 26, 2015 at 2:26 PM, Vladislav Grishenko  >
> > > wrote:
> > >
> > > > On 02/02/2015 05:47 PM, Brian Haley wrote:
> > > > >>
> > > > >>> The one thing I'm curious about is if dnsmasq is restarted while
> a
> > > > >>> VM holds a lease, how will it respond?  As someone else has
> > > > >>> pointed-out to me - isc-dhcp will respond with a DHCPNAK in that
> > > > >>> case, and wondered why there would be a difference with dnsmasq.
> > > > >>> Different interpretation of an RFC?
> > > > >>
> > > > >>
> > > > >> If by "dnsmasq is restarted" you mean "dnsmasq is restarted and
> > > > >> therefore has its lease database deleted", then the RFC says that
> if
> > > > >> a server gets a renewal for an unknown lease, it should return
> > > > >> DHCPNAK. That's what dnsmasq does _unless_ --dhcp-authoritative is
> > > > >> set, when instead it quietl

Re: [Dnsmasq-discuss] Query about solving a DHCPNAK issue

2015-06-01 Thread Kevin Benton
I understand, but that eliminates the whole 'correcting rouge dhcp offers'
part of the authoritative mode.

If we are teaching clients to ignore NAKs from other DHCP servers, why do
DHCP servers like dnsmasq generate them in the first place? Wouldn't it be
logically consistent to make a change to dnsmasq to prevent it from
generating a NAK if the client is communicating with a different server?

Is the client behavior regarding NAKs outlined in one of the DHCP RFCs? It
does seem like there is a lot of confusion around what authoritative
servers should be doing.

On Tue, May 26, 2015 at 10:40 PM, Vladislav Grishenko 
wrote:

> Hi Kevin,
>
> Ignoring all naks – would be, but the fix is different.
>
> That fix ignores all naks except from the selected/requested server only,
> it’s ok.
>
>
>
> Best Regards, Vladislav Grishenko
>
>
>
> *From:* Kevin Benton [mailto:blak...@gmail.com]
> *Sent:* Wednesday, May 27, 2015 9:32 AM
> *To:* Vladislav Grishenko
> *Cc:* Brian Haley; Simon Kelley; dnsmasq-discuss@lists.thekelleys.org.uk
> *Subject:* Re: [Dnsmasq-discuss] Query about solving a DHCPNAK issue
>
>
>
> That fix is interesting. Doesn't ignoring a NAK sort of defeat the point
> of the 'authoritative' NAKing in the first place?
>
>
>
> On Tue, May 26, 2015 at 2:26 PM, Vladislav Grishenko 
> wrote:
>
> > On 02/02/2015 05:47 PM, Brian Haley wrote:
> > >>
> > >>> The one thing I'm curious about is if dnsmasq is restarted while a
> > >>> VM holds a lease, how will it respond?  As someone else has
> > >>> pointed-out to me - isc-dhcp will respond with a DHCPNAK in that
> > >>> case, and wondered why there would be a difference with dnsmasq.
> > >>> Different interpretation of an RFC?
> > >>
> > >>
> > >> If by "dnsmasq is restarted" you mean "dnsmasq is restarted and
> > >> therefore has its lease database deleted", then the RFC says that if
> > >> a server gets a renewal for an unknown lease, it should return
> > >> DHCPNAK. That's what dnsmasq does _unless_ --dhcp-authoritative is
> > >> set, when instead it quietly re-creates the lease.
> > >
> > > Yes, your assumption is correct, as --leasefile-ro is used it knows of
> > > no current leases, and by default get a DHCPNAK.
> > >
> > >> dhcp-authoritative gives permission to dnsmasq to violate the RFC in
> > >> a way which is useful in certain circumstances.
> > >
> > > Thanks, it does seem to do what I want with my initial testing.
> >
> > Hi Simon,
> >
> > Replying to my old thread since using --dhcp-authoritative seems to have
> > introduced an issue where a DHCP client can get a NAK when using multiple
> > dnsmasq servers on the same subnet (they both have the same host
> > information, >1 running just to get HA).
> >
> > Short story is that both dnsmasq's return the same lease info, but when
> the
> > client ACKs (sending to broadcast), one agent ACKs and the other agent
> > NAKs.
> > The tcpdump shows this better than I'm describing:
> >
> > https://launchpadlibrarian.net/207180476/dhcp_neutron_bug.html
> >
> > Does that seem like normal operation to you?  Does this second dnsmasq
> > assume this response is from a rogue server and NAKs since it didn't send
> out
> > the offer?
> >
>
> Hi Brian,
>
> Second dnsmasq assume the client request is to another server and responds
> with NAK in authoritative mode.
> The root of loop issue is in that busybox 1.20.x udhcpc client, it doesn't
> check server id for anything but offer packet.
> Bug is already fixed in bb 1.23.x, see commit
>
> http://git.busybox.net/busybox/commit/?id=e2318bbad786d6f9ebff704490246bfe52
> e588c0
>
> Best Regards, Vladislav Grishenko
>
>
>
>
> ___
> Dnsmasq-discuss mailing list
> Dnsmasq-discuss@lists.thekelleys.org.uk
> http://lists.thekelleys.org.uk/mailman/listinfo/dnsmasq-discuss
>
>
>
>
>
> --
>
> Kevin Benton
>



-- 
Kevin Benton
___
Dnsmasq-discuss mailing list
Dnsmasq-discuss@lists.thekelleys.org.uk
http://lists.thekelleys.org.uk/mailman/listinfo/dnsmasq-discuss


[Dnsmasq-discuss] format of lease database

2015-05-26 Thread Kevin Benton
Hi,

Is there a pointer to the format of the lease database somewhere? I'm
interested in what the last column is used for. It looks like the MAC of
the client with an extra hex pair at the front.

I just wanted to check if there is documentation somewhere before I did
into the code to reverse the parsing code.


Cheers
-- 
Kevin Benton
___
Dnsmasq-discuss mailing list
Dnsmasq-discuss@lists.thekelleys.org.uk
http://lists.thekelleys.org.uk/mailman/listinfo/dnsmasq-discuss


Re: [Dnsmasq-discuss] Query about solving a DHCPNAK issue

2015-05-26 Thread Kevin Benton
That fix is interesting. Doesn't ignoring a NAK sort of defeat the point of
the 'authoritative' NAKing in the first place?

On Tue, May 26, 2015 at 2:26 PM, Vladislav Grishenko 
wrote:

> > On 02/02/2015 05:47 PM, Brian Haley wrote:
> > >>
> > >>> The one thing I'm curious about is if dnsmasq is restarted while a
> > >>> VM holds a lease, how will it respond?  As someone else has
> > >>> pointed-out to me - isc-dhcp will respond with a DHCPNAK in that
> > >>> case, and wondered why there would be a difference with dnsmasq.
> > >>> Different interpretation of an RFC?
> > >>
> > >>
> > >> If by "dnsmasq is restarted" you mean "dnsmasq is restarted and
> > >> therefore has its lease database deleted", then the RFC says that if
> > >> a server gets a renewal for an unknown lease, it should return
> > >> DHCPNAK. That's what dnsmasq does _unless_ --dhcp-authoritative is
> > >> set, when instead it quietly re-creates the lease.
> > >
> > > Yes, your assumption is correct, as --leasefile-ro is used it knows of
> > > no current leases, and by default get a DHCPNAK.
> > >
> > >> dhcp-authoritative gives permission to dnsmasq to violate the RFC in
> > >> a way which is useful in certain circumstances.
> > >
> > > Thanks, it does seem to do what I want with my initial testing.
> >
> > Hi Simon,
> >
> > Replying to my old thread since using --dhcp-authoritative seems to have
> > introduced an issue where a DHCP client can get a NAK when using multiple
> > dnsmasq servers on the same subnet (they both have the same host
> > information, >1 running just to get HA).
> >
> > Short story is that both dnsmasq's return the same lease info, but when
> the
> > client ACKs (sending to broadcast), one agent ACKs and the other agent
> > NAKs.
> > The tcpdump shows this better than I'm describing:
> >
> > https://launchpadlibrarian.net/207180476/dhcp_neutron_bug.html
> >
> > Does that seem like normal operation to you?  Does this second dnsmasq
> > assume this response is from a rogue server and NAKs since it didn't send
> out
> > the offer?
> >
>
> Hi Brian,
>
> Second dnsmasq assume the client request is to another server and responds
> with NAK in authoritative mode.
> The root of loop issue is in that busybox 1.20.x udhcpc client, it doesn't
> check server id for anything but offer packet.
> Bug is already fixed in bb 1.23.x, see commit
>
> http://git.busybox.net/busybox/commit/?id=e2318bbad786d6f9ebff704490246bfe52
> e588c0
>
> Best Regards, Vladislav Grishenko
>
>
>
> ___
> Dnsmasq-discuss mailing list
> Dnsmasq-discuss@lists.thekelleys.org.uk
> http://lists.thekelleys.org.uk/mailman/listinfo/dnsmasq-discuss
>



-- 
Kevin Benton
___
Dnsmasq-discuss mailing list
Dnsmasq-discuss@lists.thekelleys.org.uk
http://lists.thekelleys.org.uk/mailman/listinfo/dnsmasq-discuss