tap interfaces disappears after bhyve guests shutdowns

Daniel Niculescu contact at dann.ro
Mon Feb 13 13:02:53 UTC 2017

On 02/13/17 13:37, Miroslav Lachman wrote:
> C. L. Martinez wrote on 2017/02/13 13:09:
>>   Why when a bhyve guest shutdowns or reboot tap interfaces goes down 
>> and lost IP assigned address?. I need to use same tap interface for 
>> several guests and assign an IP to this tap interface to act as a 
>> router for these guests.
IP address is set on the guest, so as long as you have the network set 
up the IP address will be persistent.
What you need is a bridge to which you add all your tap interfaces.

Set the kernel state as advised by Martinez and make sure you have it 
also in /etc/sysctl.conf:
#sysctl net.link.tap.up_on_open=1
#echo "net.link.tap.up_on_open=1" >> /etc/sysctl.conf

Create a bridge interface:
#ifconfig bridge0 create

Add your host interface if you want external connectivity for your guests:
#ifconfig bridge0 addm em0

Create the tap interfaces for the guests:
#ifconfig tap0 create
#ifconfig tap1 create

Add them to the bridge:
#ifconfig bridge0 addm tap0 addm tap1

After booting the guests, they will be both bridged with your physical 
interface em0 (replace em0 with your actual interface):

#ifconfig bridge0
bridge0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 
     description: vm-local
     ether 02:ed:0d:ca:74:00
     nd6 options=1<PERFORMNUD>
     groups: bridge
     id 00:00:00:00:00:00 priority 32768 hellotime 2 fwddelay 15
     maxage 20 holdcnt 6 proto rstp maxaddr 2000 timeout 1200
     root id 00:00:00:00:00:00 priority 32768 ifcost 0 port 0
     member: tap1 flags=143<LEARNING,DISCOVER,AUTOEDGE,AUTOPTP>
             ifmaxaddr 0 port 5 priority 128 path cost 2000000
     member: tap0 flags=143<LEARNING,DISCOVER,AUTOEDGE,AUTOPTP>
             ifmaxaddr 0 port 4 priority 128 path cost 2000000
     member: em0 flags=143<LEARNING,DISCOVER,AUTOEDGE,AUTOPTP>
             ifmaxaddr 0 port 1 priority 128 path cost 20000

Perhaps you could use an utility to manage the VMs, like vm-bhyve, 
iohyve, etc.

>>   How can I do a "persistent tap" interface??
> I think you need this sysctl:
> # sysctl -d net.link.tap.up_on_open
> net.link.tap.up_on_open: Bring interface up when /dev/tap is opened
> _______________________________________________
> freebsd-virtualization at freebsd.org mailing list
> https://lists.freebsd.org/mailman/listinfo/freebsd-virtualization
> To unsubscribe, send any mail to 
> "freebsd-virtualization-unsubscribe at freebsd.org"

More information about the freebsd-virtualization mailing list