that's strange, because the dnsmasq man page explicitly calls out the
SIGHUP as a way to reconfigure DHCP hosts entries from a --dhcp-hostsfile
parameter. Or are these not the same thing?


On Tue, Apr 30, 2013 at 5:52 PM, Chiradeep Vittal <
chiradeep.vit...@citrix.com> wrote:

>
>
> On 4/30/13 3:26 PM, "Dennis Lawler" <dlaw...@gmail.com> wrote:
>
> >Every time a new VM is started up, there is a 2 second outage in DNS
> >services that can cause problems in guest VMs that use the router VM for
> >DNS.
> >
> >
> >
> >For Cloudstack configurations using both DHCP and DNS services on the
> >router
> >VM (both implemented with dnsmasq), there is currently a 2 second DNS
> >service outage every time a new VM is instantiated
> >
> >
> >
> >The source of this outage is in edithosts.sh, which uses "service dnsmasq
> >restart" to pick up the freshly added DNS and DHCP entries.
> >
> >Restarting the dnsmasq service triggers a sleep for 2 seconds after
> >killing
> >dnsmasq before starting it back up again.
> >
> >
> >
> >An obvious solution would be to replace "service dnsmasq restart" with
> >"kill
> >-s 1 $pid" (SIGHUP) so that dnsmasq reads the new DHCP entries without
> >restarting, as in dnsmasq_edithosts.sh (external dhcp).
> >
> >
> >Unfortunately, this solution is flawed because dnsmasq SIGHUP handling
> >does
> >not expire in-memory DHCP leases in dnsmasq and all leases are infinite by
> >default.
>
> Aha! That's why SIGHUP didn't work consistently. This has been bugging me
> for a long time.
>
> >Thus, this will only work if the guest VM performs a DHCP release on
> >shutdown, which cannot always be guaranteed.
> >
> >
> >
> >A few possible solutions off the top of my head:
> >
> >1.       Separate DNS and DHCP services.  While DHCP services still
> >experience an outage during VM,  DNS will not necessarily be impacted if
> >implemented correctly.
> >
> >2.       Use SIGHUP with dnsmasq and implement a removeDhcpEntry interface
> >for network appliances to force a DHCP release whenever a NIC / IP is
> >deallocated.  This can use dhcp_release to simulate a DHCP release on the
> >router VM.
> >Catch: dhcp_release is not available for Debian 6.0.  The System VM needs
> >to
> >be updated to at least Debian 7.0, or the dnsmasq-tools .deb from 7.0
> >would
> >need to be included in the System VM image.
>
> There is going to be a new system vm based on 7.0 for the upcoming
> release. This should work with earlier releases as well.
> https://cwiki.apache.org/confluence/x/UlHVAQ
>
> >
> >3.       Change DHCP to have a shorter lease, track de-allocation of IPs
> >separately from VM destruction.
> >Catch: This may cause occasional IP pool exhaustion depending on
> >allocation
> >of the guest IP range and the rate of VM destruction / instantiation in
> >the
> >network.
> >
> >
> >
> >Thoughts?
> >
>
>

Reply via email to