[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]

Re: [libvirt] [PATCH] additional parameter needed for dnsmasq



On 08/21/2012 11:04 AM, Daniel P. Berrange wrote:
On Tue, Aug 21, 2012 at 10:43:44AM -0400, Gene Czarcinski wrote:
RHBZ: https://bugzilla.redhat.com/show_bug.cgi?id=849787

As currently configured, dnsmasq for a virtual network will pass
some queries upstream toward the Internet.  This includes AAAA and
MX queries as well a A queries when dnsmasq cannot answer for that
name.  This is occurring whether a domain name is specified or not.
The problem is that dnsmasq will, by default, forward all queries
unless "local=" is specified.  I cannot envision a situation where
such queries should be forwarded.

See the bugzilla report for more info.  While I did a lot of testing
to figure out the problem and what needed to be done to fix it, I am
unable to actually rebuild the libvirt rpm in my environment.

The solution is the following patch:

diff -uNr libvirt-0.9.11.4.orig/src/network/bridge_driver.c
libvirt-0.9.11.4/src/network/bridge_driver.c
--- libvirt-0.9.11.4.orig/src/network/bridge_driver.c    2012-06-15
14:23:21.000000000 -0400
+++ libvirt-0.9.11.4/src/network/bridge_driver.c    2012-08-21
09:03:17.387602485 -0400
@@ -491,7 +491,13 @@
      virCommandAddArgList(cmd, "--strict-order",
"--bind-interfaces", NULL);

      if (network->def->domain)
-        virCommandAddArgList(cmd, "--domain", network->def->domain, NULL);
+//        virCommandAddArgList(cmd, "--domain",
network->def->domain, NULL);
+    virCommandAddArgFormat(cmd,
+                "--domain %s --local=/%s/",
+                network->def->domain,
+                network->def->domain);
+    else
+        virCommandAddArg(cmd, "--local=");

      if (pidfile)
          virCommandAddArgPair(cmd, "--pid-file", pidfile);

Since this changes the code that generates dnsmasq args, you'll
also need to update the tests/networkxml2argvdata/ data files
to take account of your new additions.


And here I thought it was just a tiny patch. When I get thinks finalized, there will be an update to the tests also.

But, the patch itself is not good. For example, for no domain specified, instead of "--local=", it should be "--local-//". And then with the domain specified, this just does not work for some reason dnsmasq has errors starting.

I must say that I believe that whoever chose to use dnsmasq definitely made the right choice. However, I wich it was easier to change and test new parameter seetings for dnsmasq rather than having it in the code.

So that I do not have to go through a lot of code changes, I am testing with two virtual guests. The first has two NICs one connected to the default network and a second to a private network with dnsmasq (dns and dhcp) for the private network. The second guest is on the private network and tests the various setups for dnsmasq.

My initial simplified test used the /etc/dnsmasq.conf and supplied some additional parameters that I had not realized. My testing is not attempting to create a situation similar to that for libvirtd which has everything specified on the command-line.

Any comments, suggestions will be appreciated.

Gene


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]