[libvirt] IPv6 DNS and domain details

Hi all, I notice that the current IPv6 auto address implementation doesn't pass down any DNS details to the guest machine - which means that an 'IPv6 only' guest that works automatically is currently just out of reach. Support for handing out these details depends upon the version of 'radvd' that is installed on the host server. RHEL5's standard version has no support for DNS options. 6.0 has 1.6 installed which can hand out the DNS address, but you need 1.7 before DNS search lists from RFC6106 are supported. The data for these options is available in the network definition and it appears at first glance to be reasonably straightforward to add them. What do you think would be the best way to implement this? Is there a mechanism within libvirt already that checks versions of subsiduary programs and runs slightly different code accordingly? Or are there other plans in the pipeline? Rgs Neil Wilson

On 04/11/2011 09:48 AM, Neil Wilson wrote:
Hi all,
I notice that the current IPv6 auto address implementation doesn't pass down any DNS details to the guest machine - which means that an 'IPv6 only' guest that works automatically is currently just out of reach.
Support for handing out these details depends upon the version of 'radvd' that is installed on the host server. RHEL5's standard version has no support for DNS options. 6.0 has 1.6 installed which can hand out the DNS address, but you need 1.7 before DNS search lists from RFC6106 are supported.
Interesting. Because my main development machine is still running radvd 1.6, I hadn't been aware of those options.
The data for these options is available in the network definition and it appears at first glance to be reasonably straightforward to add them.
There aren't any examples in the manpage. Do you have a working example?
What do you think would be the best way to implement this? Is there a mechanism within libvirt already that checks versions of subsiduary programs and runs slightly different code accordingly?
We do that for qemu, but currently not for anything else that I'm aware of. Fortunately, "radvd -v" seems to reliably print out "Version x.x" on the first line (at least for 1.6 and 1.7), so we could possibly put similar logic in place for radvd, adding in DNS support when available. Of course we would want to make sure it was obvious to the admin when IPV6 DNS autconfig support wasn't available due to an old radvd (without cluttering the logs too much), otherwise we would run the risk of a lot of "bug" reports due to the radvd version being too old.
Or are there other plans in the pipeline?
Not at the moment. It does sound very useful though. It would be really nice if IPv6-only worked properly. If you're not in a patch-writing mood, I could work something up, assuming someone provides a working radvd.conf file (keep in mind that we already have dnsmasq listening for DNS requests on the IPv6 address of the bridge; we just need autoconf to tell the guest to use it).
participants (2)
-
Laine Stump
-
Neil Wilson