Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 13 Feb 2017 14:02:48 +0100
From:      Daniel Niculescu <contact@dann.ro>
To:        Miroslav Lachman <000.fbsd@quip.cz>, "C. L. Martinez" <carlopmart@gmail.com>, freebsd-virtualization@freebsd.org
Subject:   Re: tap interfaces disappears after bhyve guests shutdowns
Message-ID:  <8700dd14-cf15-20b9-38a6-e4181e4928ee@dann.ro>
In-Reply-To: <58A1A8A3.3030603@quip.cz>
References:  <20170213120938.hr3zu7flnm33v3zn@scotland.uxdom.org> <58A1A8A3.3030603@quip.cz>

next in thread | previous in thread | raw e-mail | index | archive | help


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 
1500
     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@freebsd.org mailing list
> https://lists.freebsd.org/mailman/listinfo/freebsd-virtualization
> To unsubscribe, send any mail to 
> "freebsd-virtualization-unsubscribe@freebsd.org"




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?8700dd14-cf15-20b9-38a6-e4181e4928ee>