victor_sudakov: (Default)
Виктор Судаков ([personal profile] victor_sudakov) wrote2015-11-05 09:28 am

Host-only networking for bhyve

Если нежелательно бриджевать NIC виртуальной машины в bhyve с какой-то из реальных NIC хоста, то можно сделать на хосте "ifconfig tap0 192.168.1.1/30", а в соответствующей виртуалке "ifconfig vtnet0 192.168.1.2/30". Пакеты будут передаваться через tap. Но еще удобнее сделать так:

Host:

cloned_interfaces="tap0 tap1 tap2 tap3 tap4 bridge0"
ifconfig_bridge0="192.168.1.1/24 up"
autobridge_interfaces="bridge0"
autobridge_bridge0="tap*"   
dhcpd_ifaces="bridge0"


Guest:

ifconfig_vtnet0="DHCP"


Интерфейс tap(4) имеет неприятное (но документированное в мане) свойство терять IP адрес, когда виртуальная машина останавливается и соответствующий ей /dev/tapN закрывается. Назначение IP адреса на bridge(4) решает эту проблему, а заодно позволяет сделать общий LAN для виртуальных машин.

Не забывать только про sysctl net.link.tap.up_on_open=1

Еще можно использовать в bhyve vmnet вместо tap, т.к. vmnet не теряет адрес. Но вариант с bridge удобнее во всех отношениях.

Post a comment in response:

This account has disabled anonymous posting.
If you don't have an account you can create one now.
HTML doesn't work in the subject.
More info about formatting