← Back to team overview

yahoo-eng-team team mailing list archive

[Bug 1500990] [NEW] dnsmasq responds with NACKs to requests from unknown hosts

 

Public bug reported:

 When a request comes in from a host not managed by neutron, dnsmasq
responds with a NACK. This causes a race condition where if the wrong
DHCP server responds to the request, your request will not be honored.
This can be inconvenient if you  are sharing a subnet with other DHCP
servers.

Our team recently ran into this in our Ironic development environment
and were stepping on each other's DHCP requests. A solution is to
provide an option that ignores unknown hosts rather than NACKing them.

The symptom of this was the repeated DISCOVER,OFFER,REQUEST,PACK cycle
with no acceptance from the host. (Sorry for all the omissions, this may
be overly cautious)

Sep 16 09:58:18 localhost dnsmasq-dhcp[30340]: DHCPDISCOVER(tapf1244648-f5) <MAC address omitted>
Sep 16 09:58:18 localhost dnsmasq-dhcp[30340]: DHCPOFFER(tapf1244648-f5) <subnet omitted>.205 <MAC address omitted> 
Sep 16 09:58:18 localhost dnsmasq-dhcp[30340]: DHCPREQUEST(tapf1244648-f5) <subnet omitted>.205 <MAC address omitted>
Sep 16 09:58:18 localhost dnsmasq-dhcp[30340]: DHCPACK(tapf1244648-f5) <subnet omitted>.205 <MAC address omitted> <hostname omitted>
Sep 16 09:58:21 localhost dnsmasq-dhcp[30340]: DHCPDISCOVER(tapf1244648-f5) <MAC address omitted>
Sep 16 09:58:21 localhost dnsmasq-dhcp[30340]: DHCPOFFER(tapf1244648-f5) <subnet omitted>.205 <MAC address omitted> 
Sep 16 09:58:21 localhost dnsmasq-dhcp[30340]: DHCPREQUEST(tapf1244648-f5) <subnet omitted>.205 <MAC address omitted>
Sep 16 09:58:21 localhost dnsmasq-dhcp[30340]: DHCPACK(tapf1244648-f5) <subnet omitted>.205 <MAC address omitted> <hostname  omitted>
Sep 16 09:58:25 localhost dnsmasq-dhcp[30340]: DHCPDISCOVER(tapf1244648-f5) <MAC address omitted>
Sep 16 09:58:25 localhost dnsmasq-dhcp[30340]: DHCPOFFER(tapf1244648-f5) <subnet omitted>.205 <MAC address omitted>
Sep 16 09:58:25 localhost dnsmasq-dhcp[30340]: DHCPREQUEST(tapf1244648-f5) <subnet omitted>.205 <MAC address omitted>
Sep 16 09:58:25 localhost dnsmasq-dhcp[30340]: DHCPACK(tapf1244648-f5) <subnet omitted>.205  <MAC address omitted> <hostname  omitted>

...And so on

I did a dhcpdump and saw NACKs  coming from my two teammates' machines.

Of course multiple DHCP servers on a subnet is not a standard or common
case, but we've needed this case in our Ironic development environment
and have found the fix to be useful.

** Affects: neutron
     Importance: Undecided
     Assignee: Michael Turek (mjturek)
         Status: In Progress


** Tags: dhcp dnsmasq

-- 
You received this bug notification because you are a member of Yahoo!
Engineering Team, which is subscribed to neutron.
https://bugs.launchpad.net/bugs/1500990

Title:
  dnsmasq responds with NACKs to requests from unknown hosts

Status in neutron:
  In Progress

Bug description:
   When a request comes in from a host not managed by neutron, dnsmasq
  responds with a NACK. This causes a race condition where if the wrong
  DHCP server responds to the request, your request will not be honored.
  This can be inconvenient if you  are sharing a subnet with other DHCP
  servers.

  Our team recently ran into this in our Ironic development environment
  and were stepping on each other's DHCP requests. A solution is to
  provide an option that ignores unknown hosts rather than NACKing them.

  The symptom of this was the repeated DISCOVER,OFFER,REQUEST,PACK cycle
  with no acceptance from the host. (Sorry for all the omissions, this
  may be overly cautious)

  Sep 16 09:58:18 localhost dnsmasq-dhcp[30340]: DHCPDISCOVER(tapf1244648-f5) <MAC address omitted>
  Sep 16 09:58:18 localhost dnsmasq-dhcp[30340]: DHCPOFFER(tapf1244648-f5) <subnet omitted>.205 <MAC address omitted> 
  Sep 16 09:58:18 localhost dnsmasq-dhcp[30340]: DHCPREQUEST(tapf1244648-f5) <subnet omitted>.205 <MAC address omitted>
  Sep 16 09:58:18 localhost dnsmasq-dhcp[30340]: DHCPACK(tapf1244648-f5) <subnet omitted>.205 <MAC address omitted> <hostname omitted>
  Sep 16 09:58:21 localhost dnsmasq-dhcp[30340]: DHCPDISCOVER(tapf1244648-f5) <MAC address omitted>
  Sep 16 09:58:21 localhost dnsmasq-dhcp[30340]: DHCPOFFER(tapf1244648-f5) <subnet omitted>.205 <MAC address omitted> 
  Sep 16 09:58:21 localhost dnsmasq-dhcp[30340]: DHCPREQUEST(tapf1244648-f5) <subnet omitted>.205 <MAC address omitted>
  Sep 16 09:58:21 localhost dnsmasq-dhcp[30340]: DHCPACK(tapf1244648-f5) <subnet omitted>.205 <MAC address omitted> <hostname  omitted>
  Sep 16 09:58:25 localhost dnsmasq-dhcp[30340]: DHCPDISCOVER(tapf1244648-f5) <MAC address omitted>
  Sep 16 09:58:25 localhost dnsmasq-dhcp[30340]: DHCPOFFER(tapf1244648-f5) <subnet omitted>.205 <MAC address omitted>
  Sep 16 09:58:25 localhost dnsmasq-dhcp[30340]: DHCPREQUEST(tapf1244648-f5) <subnet omitted>.205 <MAC address omitted>
  Sep 16 09:58:25 localhost dnsmasq-dhcp[30340]: DHCPACK(tapf1244648-f5) <subnet omitted>.205  <MAC address omitted> <hostname  omitted>

  ...And so on

  I did a dhcpdump and saw NACKs  coming from my two teammates'
  machines.

  Of course multiple DHCP servers on a subnet is not a standard or
  common case, but we've needed this case in our Ironic development
  environment and have found the fix to be useful.

To manage notifications about this bug go to:
https://bugs.launchpad.net/neutron/+bug/1500990/+subscriptions


Follow ups