From 04a0a5949c251ce0ccec10c791e12d52d8d59be70f6ef59812128e8c23c102d9 Mon Sep 17 00:00:00 2001 From: James Fehlig Date: Wed, 8 Mar 2017 03:58:39 +0000 Subject: [PATCH] Accepting request 477655 from home:mwilck:branches:Virtualization - network: don't use dhcp-authoritative on static networks bsc#1015588 * added network-don-t-use-dhcp-authoritative-on-static-netwo.patch OBS-URL: https://build.opensuse.org/request/show/477655 OBS-URL: https://build.opensuse.org/package/show/Virtualization/libvirt?expand=0&rev=589 --- libvirt.changes | 7 +++ libvirt.spec | 2 + ...e-dhcp-authoritative-on-static-netwo.patch | 54 +++++++++++++++++++ 3 files changed, 63 insertions(+) create mode 100644 network-don-t-use-dhcp-authoritative-on-static-netwo.patch diff --git a/libvirt.changes b/libvirt.changes index 4e6906b..a224906 100644 --- a/libvirt.changes +++ b/libvirt.changes @@ -1,3 +1,10 @@ +------------------------------------------------------------------- +Tue Mar 7 22:49:32 UTC 2017 - mwilck@suse.com + +- network: don't use dhcp-authoritative on static networks + bsc#1015588 + * added network-don-t-use-dhcp-authoritative-on-static-netwo.patch + ------------------------------------------------------------------- Fri Mar 3 14:11:24 UTC 2017 - jfehlig@suse.com diff --git a/libvirt.spec b/libvirt.spec index de14728..03304c5 100644 --- a/libvirt.spec +++ b/libvirt.spec @@ -319,6 +319,7 @@ Source100: %{name}-rpmlintrc # Upstream patches # Patches pending upstream review Patch100: libxl-dom-reset.patch +Patch101: network-don-t-use-dhcp-authoritative-on-static-netwo.patch # Need to go upstream Patch150: xen-pv-cdrom.patch Patch151: blockcopy-check-dst-identical-device.patch @@ -884,6 +885,7 @@ libvirt plugin for NSS for translating domain names into IP addresses. %prep %setup -q %patch100 -p1 +%patch101 -p1 %patch150 -p1 %patch151 -p1 %patch152 -p1 diff --git a/network-don-t-use-dhcp-authoritative-on-static-netwo.patch b/network-don-t-use-dhcp-authoritative-on-static-netwo.patch new file mode 100644 index 0000000..eb90f6d --- /dev/null +++ b/network-don-t-use-dhcp-authoritative-on-static-netwo.patch @@ -0,0 +1,54 @@ +From 15c7f9a6e7678238ef06f5d805984addb6f8bcdb Mon Sep 17 00:00:00 2001 +From: Martin Wilck +Date: Thu, 15 Dec 2016 10:17:05 +0100 +Subject: [PATCH] network: don't use dhcp-authoritative on static networks + +"Static" DHCP networks are those where no dynamic DHCP range is +defined, only a list of host entries is used to serve permanent +IP addresses. On such networks, we don't want dnsmasq to reply +to other requests than those statically defined. But +"dhcp-authoritative" will cause dnsmasq to do just that. +Therefore we can't use "dhcp-authoritative" for static networks. + +Fixes: 4ac20b3ae "network: add dnsmasq option 'dhcp-authoritative'" +Signed-off-by: Martin Wilck +--- + src/network/bridge_driver.c | 9 ++++++++- + tests/networkxml2confdata/dhcp6host-routed-network.conf | 1 - + 2 files changed, 8 insertions(+), 2 deletions(-) + +diff --git a/src/network/bridge_driver.c b/src/network/bridge_driver.c +index ae1589d8c..17c6f3a0f 100644 +--- a/src/network/bridge_driver.c ++++ b/src/network/bridge_driver.c +@@ -1355,7 +1355,14 @@ networkDnsmasqConfContents(virNetworkObjPtr network, + if (VIR_SOCKET_ADDR_IS_FAMILY(&ipdef->address, AF_INET)) { + if (ipdef->nranges || ipdef->nhosts) { + virBufferAddLit(&configbuf, "dhcp-no-override\n"); +- virBufferAddLit(&configbuf, "dhcp-authoritative\n"); ++ /* ++ * Use "dhcp-authoritative" only for dynamic DHCP. ++ * In a static-only network, it would cause dnsmasq ++ * to reply to requests from other hosts than those ++ * statically defined. ++ */ ++ if (ipdef->nranges || !ipdef->nhosts) ++ virBufferAddLit(&configbuf, "dhcp-authoritative\n"); + } + + if (ipdef->tftproot) { +diff --git a/tests/networkxml2confdata/dhcp6host-routed-network.conf b/tests/networkxml2confdata/dhcp6host-routed-network.conf +index 87a149880..5728ee430 100644 +--- a/tests/networkxml2confdata/dhcp6host-routed-network.conf ++++ b/tests/networkxml2confdata/dhcp6host-routed-network.conf +@@ -10,7 +10,6 @@ bind-dynamic + interface=virbr1 + dhcp-range=192.168.122.1,static + dhcp-no-override +-dhcp-authoritative + dhcp-range=2001:db8:ac10:fd01::1,static,64 + dhcp-hostsfile=/var/lib/libvirt/dnsmasq/local.hostsfile + addn-hosts=/var/lib/libvirt/dnsmasq/local.addnhosts +-- +2.11.0 +