ipv6 host resolution in resolv.conf will break dhcpd3
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
dhcp3 (Ubuntu) |
Won't Fix
|
Undecided
|
Unassigned |
Bug Description
If you have inet6-type host resolution enabled via 'options inet6' in your resolv.conf, using hostnames that happen to have ipv6 address in /etc/hosts or dns resolution will cause the contents of those addresses to get dumped into multiple ipv4 address option records in the DHCP packets dhcpd3 sends out. DHCPDv3 does not need to perform correct resolver option setting or return record type verification in its resolver calls (gethostmyname &c.)
To reproduce:
/etc/resolv.conf
options inet6
/etc/hosts
10.0.0.1 dhcp-router
/etc/dhcp3/
ddns-update-style none;
default-lease-time 600;
max-lease-time 7200;
authoritative;
subned 10.0.0.0 netmask 255.255.255.0 {
range 10.0.0.100 10.0.0.200;
option routers dhcp-router;
}
on a network configured as such, take a network capture of dhcp traffic and have a client get a DHCP lease on the network.
On a windows XP machine you will end up with 2 default routes listed, 0.0.255.255 and 10.0.0.1. This is consistent with a
ipv4-in-ipv6 address formatted response (i.e. ::ffff::10.0.0.1), and examination of the DHCP traffic will show that this is, in fact, what the DHCP server is reporting.
Anyone trying to set up a dual-stack ipv4+ipv6 network can run into this issue.
Version tested: 3.0.6.dfsg-1ubuntu3
whoops, meant ::ffff:10.0.0.1, not ::ffff::10.0.0.1