For some unknown reason the original implementation of the
<forwarder>
element only took advantage of part of the functionality in the
dnsmasq feature it exposes - it allowed specifying the ip address of a
DNS server which *all* DNS requests would be forwarded to, like this:
<forwarder addr='192.168.123.25'/>
This is a frontend for dnsmasq's "server" option, which also allows
you to specify a domain that must be matched in order for a request to
be forwarded to a particular server. This patch adds support for
specifying the domain. For example:
<forwarder domain='example.com' addr='192.168.1.1'/>
<forwarder domain='www.example.com'/>
<forwarder domain='travesty.org' addr='10.0.0.1'/>
would forward requests for
bob.example.com,
ftp.example.com and
joe.corp.example.com all to the DNS server at 192.168.1.1, but would
forward requests for
travesty.org and
www.travesty.org to
10.0.0.1. And due to the second line, requests for
www.example.com,
and
odd.www.example.com would be resolved by the libvirt network's own
DNS server (i.e. thery wouldn't be immediately forwarded) even though
they also match 'example.com' - the match is given to the entry with
the longest matching domain. DNS requests not matching any of the
entries would be resolved by the libvirt network's own DNS server.
Resolves:
https://bugzilla.redhat.com/show_bug.cgi?id=1331796
---
docs/formatnetwork.html.in | 28 +++++++++----
docs/schemas/network.rng | 8 +++-
src/conf/network_conf.c | 49 ++++++++++++++++++----
src/conf/network_conf.h | 8 +++-
src/network/bridge_driver.c | 17 +++++++-
.../nat-network-dns-forwarders.conf | 2 +
.../nat-network-dns-forwarders.xml | 2 +
.../nat-network-dns-forwarders.xml | 6 ++-
.../nat-network-dns-forwarders.xml | 2 +
9 files changed, 101 insertions(+), 21 deletions(-)