libvirt/src/network
Laine Stump 82fe58ff26 network: add netmask to dhcp range of dnsmasq conf file for IPv4
dnsmasq documentation says that the *IPv4* prefix/network
address/broadcast address sent to dhcp clients will be automatically
determined by dnsmasq by looking at the interface it's listening on,
so the original libvirt code did not add a netmask to the dnsmasq
commandline (or later, the dnsmasq conf file).

For *IPv6* however, dnsmasq apparently cannot automatically determine
the prefix (functionally the same as a netmask), and it must be
explicitly provided in the conf file (as a part of the dhcp-range
option). So many years after IPv4 DHCP support had been added, when
IPv6 dhcp support was added the prefix was included at the end of the
dhcp-range setting, but only for IPv6.

A user had reported a bug on a host where one of the interfaces was a
superset of the libvirt network where dhcp is needed (e.g., the host's
ethernet is 10.0.0.20/8, and the libvirt network is 10.10.0.1/24). For
some reason dnsmasq was supplying the netmask for the /8 network to
clients requesting an address on the /24 interface.

This seems like a bug in dnsmasq, but even if/when it gets fixed
there, it looks like there is no harm in just always adding the
netmask to all IPv4 dhcp-range options similar to how prefix is added
to all IPv6 dhcp-range options.

Signed-off-by: Laine Stump <laine@laine.org>
Reviewed-by: John Ferlan <jferlan@redhat.com>
2019-02-21 13:06:16 -05:00
..
bridge_driver_linux.c network: allow configuring firewalld zone for virtual network bridge device 2019-02-01 12:57:13 -05:00
bridge_driver_nop.c network: add platform driver callbacks around firewall reload 2019-01-29 13:35:58 +00:00
bridge_driver_platform.c Remove all Author(s): lines from source file headers 2018-12-13 16:08:38 +00:00
bridge_driver_platform.h network: add platform driver callbacks around firewall reload 2019-01-29 13:35:58 +00:00
bridge_driver.c network: add netmask to dhcp range of dnsmasq conf file for IPv4 2019-02-21 13:06:16 -05:00
bridge_driver.h Enforce a standard header file guard symbol name 2018-12-14 10:47:13 +00:00
default.xml Remove the space before the slash in network XML 2013-08-28 08:05:46 +02:00
leaseshelper.c Require a semicolon for VIR_ENUM_IMPL calls 2019-02-03 17:46:29 -05:00
libvirt.zone network: explicitly allow icmp/icmpv6 in libvirt zonefile 2019-02-14 15:06:42 -05:00
Makefile.inc.am configure: selectively install a firewalld 'libvirt' zone 2019-02-01 12:08:37 -05:00