Re: [Dnsmasq-discuss] Query about solving a DHCPNAK issue
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 themi...@mail.ru 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 themi...@mail.ru 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 themi...@mail.ru 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
Re: [Dnsmasq-discuss] Query about solving a DHCPNAK issue
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 albert.arib...@free.fr wrote: Hi Kevin, Le Mon, 1 Jun 2015 02:02:27 -0700, Kevin Benton blak...@gmail.com 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 themi...@mail.ru 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 themi...@mail.ru 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?
Re: [Dnsmasq-discuss] Query about solving a DHCPNAK issue
Hi Kevin, Le Mon, 1 Jun 2015 02:02:27 -0700, Kevin Benton blak...@gmail.com 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 themi...@mail.ru 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 themi...@mail.ru 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 Amicalement, -- Albert. ___ 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
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 themi...@mail.ru 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 themi...@mail.ru 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
Re: [Dnsmasq-discuss] Query about solving a DHCPNAK issue
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 themi...@mail.ru mailto:themi...@mail.ru 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 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 mailto: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 themi...@mail.ru mailto:themi...@mail.ru 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 http://git.busybox.net/busybox/commit/?id=e2318bbad786d6f9ebff704490246bfe52e588c0 e588c0 Best Regards, Vladislav Grishenko ___ Dnsmasq-discuss mailing list Dnsmasq-discuss@lists.thekelleys.org.uk mailto:Dnsmasq-discuss@lists.thekelleys.org.uk
Re: [Dnsmasq-discuss] Query about solving a DHCPNAK issue
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? Yes, without overriding serverid to one from incoming request packet, the server’s nak could be pointless. But with overriding, it’ll introduce the same naking issue even with clients which were checking server id and ignoring naks from non-selected servers. Dnsmasq starts to nak request from selecting clients in 2.46, see the story here http://lists.thekelleys.org.uk/pipermail/dnsmasq-discuss/2008q4/002476.html Point of busybox’s udhcpc changes is described here https://bugs.busybox.net/show_bug.cgi?id=4267 As for ISC DHCP, it’s known client ignores NAK from non-selected servers in SELECTING state. As for server, it allow run-time control over weither or not a server, participating in failover, verifies server id option. This commit contains the old and new descriptions https://source.isc.org/cgi-bin/gitweb.cgi?p=dhcp.git;a=commitdiff;h=7116a34fc9b1fb307bcdca22e6963254289ecb80 Best Regards, Vladislav Grishenko From: Kevin Benton [mailto:blak...@gmail.com] Sent: Monday, June 01, 2015 5:15 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 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 themi...@mail.ru mailto:themi...@mail.ru 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 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 mailto: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 themi...@mail.ru mailto:themi...@mail.ru 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 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 mailto: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 themi...@mail.ru mailto:themi...@mail.ru 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
Re: [Dnsmasq-discuss] [PATCH] fix bug of FORMERR
Patch applied, also cleared AA bit. Many thanks for this. Cheers, Simon. On 27/05/15 20:41, swigger wrote: Signed-off-by: swigger swig...@gmail.com First, sorry for my poor English, hope you can read it. My openwrt router at 192.168.1.1 runs dnsmasq. There are two DNS ips set automaticly by my ISP. When resolving domain names, some times I get a FormErr. This is unusual, so I dig this and find a bug. When a request is sent to dnsmasq, it forwards to upper DNSs, and then , if dns-a replys a ServFail, dnsmasq just forwards to dns-b with value of byte 4(base index 1) is 0x82 (HB4_RA|ServFail). However, for a normal request, this byte should be 0x00 . My ISP's dns-b checks this field and replys a FormErr. Here is a proof by tcpdump: 11:46:54.377146 IP 121.34.145.201.21657 202.96.134.133.53: 18075+ [b23=0x182] A? jp.swigger.net. (32) 0x: 4500 003c f027 4000 4011 eeb7 7922 91c9 E...'@.@...y.. 0x0010: ca60 8685 5499 0035 0028 fbbe 469b 0182 .`..T..5.(..F... 0x0020: 0001 026a 7007 7377 6967 .jp.swig 0x0030: 6765 7203 6e65 7400 0001 0001ger.net. 11:46:54.383814 IP 202.96.134.133.53 121.34.145.201.21657: 18075 FormErr 0/0/0 (32) 0x: 4500 003c 4000 3b11 e3df ca60 8685 E@.;`.. 0x0010: 7922 91c9 0035 5499 0028 7bbf 469b 8181 y...5T..({.F... 0x0020: 0001 026a 7007 7377 6967 .jp.swig 0x0030: 6765 7203 6e65 7400 0001 0001ger.net. The solution is easy, just reset this field. See the following patch. --- src/forward.c | 1 + 1 file changed, 1 insertion(+) diff --git a/src/forward.c b/src/forward.c index 74e5ab6..5e14404 100644 --- a/src/forward.c +++ b/src/forward.c @@ -770,6 +770,7 @@ void reply_query(int fd, int family, time_t now) if ((nn = resize_packet(header, (size_t)n, pheader, plen))) { header-hb3 = ~(HB3_QR | HB3_TC); + header-hb4 = ~(HB4_RA | HB4_RCODE); forward_query(-1, NULL, NULL, 0, header, nn, now, forward, 0, 0); return; } ___ Dnsmasq-discuss mailing list Dnsmasq-discuss@lists.thekelleys.org.uk http://lists.thekelleys.org.uk/mailman/listinfo/dnsmasq-discuss
Re: [Dnsmasq-discuss] format of lease database
On 27/05/15 05:34, Kevin Benton wrote: 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. It's the DHCP client-id. Cheers, Simon. I just wanted to check if there is documentation somewhere before I did into the code to reverse the parsing code. Cheers ___ Dnsmasq-discuss mailing list Dnsmasq-discuss@lists.thekelleys.org.uk http://lists.thekelleys.org.uk/mailman/listinfo/dnsmasq-discuss ___ Dnsmasq-discuss mailing list Dnsmasq-discuss@lists.thekelleys.org.uk http://lists.thekelleys.org.uk/mailman/listinfo/dnsmasq-discuss
[Dnsmasq-discuss] Unseen cache limit?
Hi, I wonder if there is some sort of internal limit on caching? I set cache-size=5, restarted dnsmasq and the limit according to the caching service is 1 # kill -10 10150; tail -n5 /var/log/messages | egrep 'cache size' Jun 1 19:18:41 dnsmasq1 dnsmasq[10150]: cache size 1, 0/2660 cache insertions re-used unexpired cache entries. Thanks for your attention to this matter, Robert ___ Dnsmasq-discuss mailing list Dnsmasq-discuss@lists.thekelleys.org.uk http://lists.thekelleys.org.uk/mailman/listinfo/dnsmasq-discuss
Re: [Dnsmasq-discuss] Unseen cache limit?
Robert, Looking at the code there is an upper limit of 1 for --cache-size -- src/option.c -- case 'c': /* --cache-size */ { int size; if (!atoi_check(arg, size)) ret_err(gen_err); else { /* zero is OK, and means no caching. */ if (size 0) size = 0; else if (size 1) size = 1; daemon-cachesize = size; } break; } -- I'm sure Simon has a good reason for that upper limit. Possibly a cache-size of 50,000 is beyond the design goal of dnsmasq. Lonnie On Jun 1, 2015, at 6:21 PM, Robert Smith twopoin...@gmail.com wrote: Hi, I wonder if there is some sort of internal limit on caching? I set cache-size=5, restarted dnsmasq and the limit according to the caching service is 1 # kill -10 10150; tail -n5 /var/log/messages | egrep 'cache size' Jun 1 19:18:41 dnsmasq1 dnsmasq[10150]: cache size 1, 0/2660 cache insertions re-used unexpired cache entries. Thanks for your attention to this matter, Robert ___ Dnsmasq-discuss mailing list Dnsmasq-discuss@lists.thekelleys.org.uk http://lists.thekelleys.org.uk/mailman/listinfo/dnsmasq-discuss ___ Dnsmasq-discuss mailing list Dnsmasq-discuss@lists.thekelleys.org.uk http://lists.thekelleys.org.uk/mailman/listinfo/dnsmasq-discuss