[Dnsmasq-discuss] update on dnsmasq and IPV6 networks
Gene Czarcinski
gene at czarc.net
Sun Sep 16 20:05:11 BST 2012
As stated in other email, I am interested in using dnsmasq to support
dhcp and even more important dns services on an IPv6 network. To
support this, I am doing a bunch of testing using qemu/kvm/libvirt
virtualization with three virtual guests and two virtual networks defined.
The first network is a regular "nat" network connected to the outside
world and only guest1 is connected to it. The second network is a
"private" network [no forwarding], has both IPv4 and IPv6 networks
defined, and is connected to all three guests.
I am running this on Fedora 17 and using NetworkManager which certainly
adds some complexity.
The two testing guests (guest2 and guest3) depend on guest1 for dhcp (or
ra) and dns services.
Guest1 is running dnsmasq configured to support both IPv4 and IPv6 with
dhcp and dns services. The dhcp6 parameters are changed to test
different tests/configurations. Although there are a number of
different ways of configuring dnsmasq, I am interested in primarily two:
ra-names and no mode specified which appears to mean that dnsmasq should
act as a real dhcp6 server.
1. ra-names ... it works. Guest2/guest3 initialize IPv4 with dhcp and
use something (slaac I believe) to get an IPv6 address [NetworkManage
"automatic" mode for IPv6]. Then dnsmasq goes through its dance to to
add the IPv6 address under the FQDN of the same system with the IPv4
address. Note: for IPv4 dhcp, NetworkManager does a "send host-name" so
that dnsmasq has something to work with.
2. dhcp6 ... The dnsmasq configuration is set with no "enable-ra" and
no mode specified on the dhcp-range specification (just IPv6 start/end
addresses and a prefix). Does not work ... well, it sort of does ...
the IPv6 address as defined to dnsmasq is assigned to the guest (which
is in NetworkManager IPv6 dhcp only mode). However, the dns is not
updated. Running wireshark on guest1, I do not see guest2/guest3
supplying any names in their DHCPV6 chatter.
I did some testing and proved (to my satisfaction) that the reason
dnsmasq does not update the dns is that NetworkManager is not send the
info. I stopped NetworkManager, changed the ifup-eth network script
slightly [for dhclient -6 change the "-H" to "-F"] and did a "ifup
eth0". Wireshark now showed the system sending fqdn.fqdn info and is I
did host I got both IPv4 and IPv6 address for the system.
Looking at the lease file I see:
-----------------
lease6 {
interface "eth0";
ia-na 00:d1:4f:88 {
starts 1347810642;
renew 1800;
rebind 3150;
iaaddr fd00:dead:beef:4::14e {
starts 1347810642;
preferred-life 3600;
max-life 3600;
}
option dhcp6.status-code success "Oh hai from dnsmasq";
}
option fqdn.encoded true;
option fqdn.server-update true;
option fqdn.no-client-update true;
option fqdn.fqdn "test4.privnet6";
option fqdn.hostname "test4";
option fqdn.domainname ".privnet6";
option dhcp6.client-id 0:1:0:1:17:e8:b1:d1:52:54:0:d1:4f:88;
option dhcp6.server-id 0:1:0:1:17:e5:df:c2:52:54:0:6c:9a:51;
option dhcp6.name-servers fe00:dead:beef:4::91;
}
-----------------
According the the dhcp-options man-page, the fqdn.fqdn (at least for
IPv6) can be specified as eather a plain name to be filled out by the
dhcp server or a real fully qualified domain name wit the string ending
in a period ".". The way I had "dhclient -6" sending a plain name with
the "-F".
Now the really interesting thing is that once I had sent the fqdn info
is that this system continued to have the dhcp6 address and an IPv6
entry in the dns. I deleted the leases on the client and restarted
dnsmasq but it continues. The other guest does not work and only has an
IPv4 entry. Anyone know what is happening here?
So, dnsmasq is working as advertised and I need to get NetworkManager to
work properly.
Comments? Questions?
Gene
More information about the Dnsmasq-discuss
mailing list