Problem: setting CARP on an interface that is set by DHCP on FreeBSD leaves the carp interface locked in INIT state after reboot:
hostname="server.exemple.com" ifconfig_bce0="DHCP" # CARP cloned_interfaces="carp0" ifconfig_carp0="vhid 1 pass i-am-carp 10.10.10.2 netmask 255.255.255.0"
results in:
# ifconfig carp0 carp0: flags=8metric 0 mtu 1500 nd6 options=29 carp: INIT vhid 66 advbase 1 advskew 0
No IP on carp0, the interface isn’t working.
Solution: add synchronous_dhclient="YES"
:
synchronous_dhclient="YES" hostname="server.exemple.com" ifconfig_bce0="DHCP" # CARP cloned_interfaces="carp0" ifconfig_carp0="vhid 1 pass i-am-carp 10.10.10.2 netmask 255.255.255.0"
Alternatively:
hostname="server.exemple.com" ifconfig_bce0="SYNCDHCP" # CARP cloned_interfaces="carp0" ifconfig_carp0="vhid 1 pass i-am-carp 10.10.10.2 netmask 255.255.255.0"
RTFM: “By default, DHCP configuration on FreeBSD runs in the background, or asynchronously. Other startup scripts continue to run while DHCP completes, speeding up system startup.”