[libvirt] [PATCHv2] handle DNS over IPv6
Daniel P. Berrange
berrange at redhat.com
Thu Jan 6 14:59:55 UTC 2011
On Mon, Jan 03, 2011 at 04:57:52PM +0100, Paweł Krześniak wrote:
> handle DNS over IPv6
>
> Firstly: Add ip6tables rules to allow DNS over IPv6 in network.
>
> Secondly: start dnsmasq with --interface option instead of
> --listen-address.
>
> Dnsmasq currently uses "--listen-address IPv4_address" option, which
> restricts DNS service to one IPv4 address only. We could append
> --listen-address for every IPv[46] address defined on interface, but
> it's cleaner to use "--interface brname".
While it is shorter to just use '--interface brname' this comes
at the price of loosing compatibility with older dnsmasq which
we still wish to support.
If we used '--listen-address $IPV4ADDR --listen-address $IPV6ADDR'
then people with dnsmasq < 2.48 can still use the virtual network
capability in a IPv4 only context without problems. Only those
people who actually needed IPv6 DNS would have to upgrade to
newer dnsmasq.
> There were some problems in the past with --interface option. Dnsmasq
> version 2.46 and earlier exited with error when tired to bind() to IPv6
> addresses on just brought up interfaces, because DAD (Duplicate
> Address Detection) takes some time to finish and bind() returns
> EADDRNOTAVAIL which caused dnsmasq to exit.
> Dnsmasq version 2.47 (released on 05-Feb-2009) fixed this issue by
> retrying bind() after getting EADDRNOTAVAIL error (as described in
> http://www.thekelleys.org.uk/dnsmasq/CHANGELOG;
> loop itself is defined in dnsmasq-2.47/src/network.c:404)
>
> * Using --interface option causes longer network startup:
> $ time virsh -c qemu:///system net-start isolated1
> Network isolated1 started
>
> real 0m0.112s
> user 0m0.013s
> sys 0m0.009s
>
> $ time virsh -c qemu:///system net-start isolated1
> Network isolated1 started
>
> real 0m2.101s
> user 0m0.011s
> sys 0m0.011s
Do you have any idea what causes the delay ? In particular is
the delay caused by the use of --listen-interface, or caused
by the addition of IPv6 addrs ?
Based on your descriptions here it sounds like going for multiple
--listen-address parameters offers the same level of overall
functionality, but with better compatibility for people on older
dnsmasq. So I'm not seeing a compelling reason to switch over to
using --listen-interface
Regards,
Daniel
More information about the libvir-list
mailing list