IPv4 & IPv6 Client Addresses via DHCP

FreeBSD's builtin DHCP client does support assigning IPv6 routes and SLAAC addresses, however it does not support DHCPv6 addressing, as it is not officially part of the IPv6 standards.

This article details how to configure and use the net/dhcpcd port to acquire both an IPv4 and IPv6 address via DHCP servers on a dual-stack network.

Note: Previously, this article detailed the installation of net/dual-dhclient. This port has been deprecated and replaced with net/dual-dhclient-daemon, which unlike it's predecessor can no longer be configured at all. The dhcpcd port is more robust, and configuring it is far simpler than the dual-dhclient / isc-dhcp44-client solution.

 

Install net/dhcpcd using your preferred method.

 

By default, dhcpcd will acquire an IPv4 address lease via DHCP, solicit for an IPv6 router, and generate a SLAAC private IPv6 address.

To configure dhcpcd to also request a DHCPv6 IA_NA address, edit /usr/local/etc/dhcpcd.conf adding the following changes:

hostname
ia_na 1

 

Test it by executing the following command, substitute em0 with your network interface:
dhcpcd em0

 

Edit /etc/rc.conf to enable and trigger dhcpcd at boot time.

dhclient_program="/usr/local/sbin/dhcpcd"
ifconfig_em0="DHCP"