DHCP6 client

Brett Lee Brett.Lee at Sun.COM
Sun Jan 17 22:02:13 UTC 2010


Brett Lee wrote:
> Hello -
> 
> Am using FreeBSD 6.3 as a dhcp6 client, trying to get DDNSv6 operational 
> in this environment.  When I execute 'dhcp6c -d lnc0' from the command 
> line, the following messages are logged on the (ISC 4.1.0p1) DHCP6 server:
> 
> Solicit message from fe80::20c:29ff:fef3:a5de port 546, transaction ID 
> 0xB3D95D
> Unable to pick client prefix: no IPv6 prefix pools on this shared network
> Sending Advertise to fe80::20c:29ff:fef3:a5de port 546
> 
> Am confused by the message above, in particular the "prefix pools", as 
> this host obtains the "global address" prefix and configures both link 
> local and global addresses via SLAAC.  Surely this can't be the same 
> prefix.
> 
> Equally confusing is that the Solaris hosts on this LAN have no problem 
> getting v6 addresses via this DHCP server, and there seems to be plenty 
> of free leases available.
> 
> Does FreeBSD 6.3 DHCP6 client need a "prefix", or a "pool" of them to be 
>  delivered by the server?  Obviously I'm a little bit confused :) and am 
> thinking the problem is with the dhcpd.conf file.  Hoping for some 
> clarification or direction.  Configs are below.
> 
> Thanks for your guidance/suggestions!  -Brett
> 
> Client:
> 
> [root at freebsdvm ~]# ifconfig -a
> lnc0: flags=108843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST,NEEDSGIANT> 
> mtu 1500
>         inet6 fe80::20c:29ff:fef3:a5de%lnc0 prefixlen 64 scopeid 0x1
>         inet 192.168.1.94 netmask 0xffffff00 broadcast 192.168.1.255
>         inet6 2bad:0:564:1:20c:29ff:fef3:a5de prefixlen 64 autoconf
>         ether 00:0c:29:f3:a5:de
> plip0: flags=108810<POINTOPOINT,SIMPLEX,MULTICAST,NEEDSGIANT> mtu 1500
> lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> mtu 16384
>         inet6 ::1 prefixlen 128
>         inet6 fe80::1%lo0 prefixlen 64 scopeid 0x3
>         inet 127.0.0.1 netmask 0xff000000
> [root at freebsdvm ~]# grep -v '#' /usr/local/etc/dhcp6c.conf
> interface lnc0 {
>         send ia-pd 0;
> };
> id-assoc pd {
>         prefix-interface lnc0 {
>                 sla-id 1;
>         };
> };
> [root at freebsdvm ~]#
> 
> Server:
> 
> [root at solaris10u4sparc named]# grep iaaddr /var/db/dhcpd6.leases | sort 
> | uniq
>   iaaddr 2bad:0:564:1::12 {
>   iaaddr 2bad:0:564:1::18 {
>   iaaddr 2bad:0:564:1::19 {
>   iaaddr 2bad:0:564:2::18 {
>   iaaddr 2bad:0:564:2::19 {
>   iaaddr 2bad:0:564:3::18 {
> [root at solaris10u4sparc named]# grep -v '#' /etc/dhcpd.conf | egrep 
> '[A-Z]|[a-z]|[0-9]'
> authoritative;
> include "/etc/rndc.key";
> ddns-update-style       interim;
> ddns-domainname         "ipv6.apevt.local";
> ddns-rev-domainname     "in-addr.arpa";
> ignore                  client-updates;
> zone ipv6.apevt.local. {
>         primary 192.168.1.23;
>         key "rndc-key";
> log-facility local6;
> min-lease-time 60;
> default-lease-time 3600;
> max-lease-time 43200;
> option domain-name "ipv6.apevt.local";
> option domain-name-servers 192.168.1.254, 192.168.1.23;
> option dhcp.domain-search "ipv6.apevt.local, apevt.local";
> option dhcp6.domain-search "ipv6.apevt.local, apevt.local";
> option dhcp6.name-servers 2bad:0:564:1:203:baff:fee8:36f2, 
> 2bad:0:564:2:203:baff:fee8:36f3, 2bad:0:564:3:203:baff:fee8:36f4;
> subnet6 2bad:0000:0564:0001::/64 {
>    allow unknown-clients;
>    min-lease-time 60;
>    default-lease-time 60;
>    max-lease-time 60;
>    range6 2bad:0000:0564:0001::10 2bad:0000:0564:0001::19;
> subnet6 2bad:0000:0564:0002::/64 {
>    allow unknown-clients;
>    min-lease-time 60;
>    default-lease-time 60;
>    max-lease-time 60;
>    range6 2bad:0000:0564:0002::10 2bad:0000:0564:0002::19;
> subnet6  2bad:0000:0564:0003::/64 {
>    allow unknown-clients;
>    min-lease-time 60;
>    default-lease-time 60;
>    max-lease-time 60;
>    range6 2bad:0000:0564:0003::10 2bad:0000:0564:0003::19;
> [root at solaris10u4sparc named]#
> 

Seems I misconfigured dhcp6c.conf to request a pool of addresses for 
delivery downstream instead of a single stateful address.  Now using the 
current FreeBSD, 8.0-RELEASE, with dhcp6c.conf setup as seen below:

interface le0 {
	send ia-na 0;		# request stateful address
	request domain-name;
	request domain-name-servers;
}
id-assoc na 0 {
}

It works.  On to DDNSv6.  -Brett


More information about the freebsd-net mailing list