I noticed the following warning when booting FreeBSD 15.0:
vm-public: WARNING: Adding member interface re0 which has an IP address assigned is deprecated and will be unsupported in a future release.
The error message was caused by the initialisation of vm-bhyve,
which I use for a Windows 10 VM. Some background on the reason for the
warning is available from the
FreeBSD
forum.
Original configuration
In /etc/rc.conf I had:
ifconfig_re0="inet 10.0.0.5/16 up" # other stuff ... vm_enable="YES"
and in ${vm_dir}/.config/system.conf:
switch_list="public" type_public="standard" ports_public="re0"
The system.conf file was created automatically when I first used
vm-bhyve to create the Windows 10 VM. The install steps were cribbed
from this post. Specifically,
from these commands:
vm switch create public vm switch add public re0
This network setup was the obvious cause of the warning. In future, the static IP address must be assigned to the bridge, not the member.
New configuration
/etc/rc.conf is changed to:
# Create bridge interface for vm-bhyve use cloned_interfaces="bridge0" ifconfig_bridge0="inet 10.0.0.5/16 addm re0 up" ifconfig_re0="up"
and ${vm_dir}/.config/system.conf to:
switch_list="public" type_public="manual" bridge_public="bridge0"
This can be created directly, or via the command:
vm switch create -t manual -b bridge0 public
This configuraton eliminates the warning message. It’ll be interesting to see if it still works comes FreeBSD 16.0.
And also …
While figuring out the vm-bhyve network setup, I also saw this warning
from netwait on boot:
Continuing with startup, but be aware you may not have a fully functional networking layer at this point.
However, this was displayed after a successful ping to ${netwait_ip}.
The errant message seems to be caused by a bug in
/etc/rc.d/netwait. This is the fix:
--- /tmp/netwait.orig 2026-01-19 09:54:03.531027000 +0000
+++ netwait 2026-01-19 09:54:16.798862000 +0000
@@ -126,7 +126,7 @@
if [ $rc -eq 0 ]; then
echo ', got response.'
- got_ip=false
+ got_ip=true
break 2
fi
count=$((count+1))
N.B. I use netwait to ensure the network is up before starting named,
otherwise ntpd complains it can’t resolve the default time servers.