<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux/meta-virtualization.git/recipes-support/dnsmasq, branch master</title>
<subtitle>Mirror of git.yoctoproject.org/meta-virtualization</subtitle>
<id>https://git.enea.com/cgit/linux/meta-virtualization.git/atom?h=master</id>
<link rel='self' href='https://git.enea.com/cgit/linux/meta-virtualization.git/atom?h=master'/>
<link rel='alternate' type='text/html' href='https://git.enea.com/cgit/linux/meta-virtualization.git/'/>
<updated>2017-12-28T16:12:26+00:00</updated>
<entry>
<title>dnsmasq: add dnsmasq.d entries for lxc and libvirt</title>
<updated>2017-12-28T16:12:26+00:00</updated>
<author>
<name>Mark Asselstine</name>
<email>mark.asselstine@windriver.com</email>
</author>
<published>2017-12-22T20:57:44+00:00</published>
<link rel='alternate' type='text/html' href='https://git.enea.com/cgit/linux/meta-virtualization.git/commit/?id=00a801aee140c91ae968ffad271fc85702ff80ff'/>
<id>urn:sha1:00a801aee140c91ae968ffad271fc85702ff80ff</id>
<content type='text'>
A while ago changes were merged to meta-openembedded to make
/etc/dnsmasq.d (and specifically the files it contains) referenced
when the main instance of dnsmasq is run (see dnsmasq.service and
commit ba665493a0dd [dnsmasq: allow for dnsmasq instances to reuse
default dnsmasq.conf]).

We, however, continued to modify the global configuration
(/etc/dnsmasq.conf) to keep the main instance of dnsmasq from
attaching to virbr0 and lxcbr0, by using 'bind-dynamic'. This approach
is problematic, since it is common that other instances of dnsmasq
will make use of the global configuration file and may have
incompatible options. We see this for example when attempting to start
lxc-net which will attempt to use 'bind-interface' which is
incompatible with 'bind-dynamic' that we were adding to the global
configuration.

Here we remove our change to the global configuration (leaving it
mostly empty as it should be) and instead have lxc and libvirt
packages instruct the global instance not to bind to virbr0 and lxcbr0
by adding configuration files to /etc/dnsmasq.d (setting
except-interface).

The added benefit to this approach is that if lxc or libvirt are not
part of an image the global configuration will not be modified in such
a way as to expect that they are present.

Signed-off-by: Mark Asselstine &lt;mark.asselstine@windriver.com&gt;
Signed-off-by: Bruce Ashfield &lt;bruce.ashfield@windriver.com&gt;
</content>
</entry>
<entry>
<title>dnsmasq: allow for multiple instances (per libvirt)</title>
<updated>2015-09-10T18:42:43+00:00</updated>
<author>
<name>Mark Asselstine</name>
<email>mark.asselstine@windriver.com</email>
</author>
<published>2015-09-10T17:59:12+00:00</published>
<link rel='alternate' type='text/html' href='https://git.enea.com/cgit/linux/meta-virtualization.git/commit/?id=c3c4d977cbb51363f9030c2e39d56a772b29f73b'/>
<id>urn:sha1:c3c4d977cbb51363f9030c2e39d56a772b29f73b</id>
<content type='text'>
We have had a persistent issue of contention with multiple instances
of dnsmasq. When libvirtd is started it will attempt and fail to
create virbr0 that includes a dnsmasq binding (dnsmasq complains that
the port is already in use). The root cause being that the base
dnsmasq configuration uses the 'default' binding, meaning it will be
greedy and bind to all available interfaces, along with any new
interfaces that appear. This prevents any new instances of dnsmasq to
fail. By changing the base dnsmasq configuration to use 'bind-dynamic'
we will be able to create new interfaces and if we want to attach a
new dnsmasq instance for the new interface we can, without contention.

Overall this change should not change the default behavior (other then
fixing the contention) as the 'bind-dynamic' mode will allow the base
config to attach to new interfaces which are not be bound to new
dnsmasq instances.

Removing dnsmasq_exclude_virbr.conf which was a previous (partial)
attempt that was made to resolve this issue.

Signed-off-by: Mark Asselstine &lt;mark.asselstine@windriver.com&gt;
Signed-off-by: Bruce Ashfield &lt;bruce.ashfield@windriver.com&gt;
</content>
</entry>
</feed>
