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).