Host-only networking for bhyve
Nov. 5th, 2015 09:28 am![[personal profile]](https://www.dreamwidth.org/img/silk/identity/user.png)
Если нежелательно бриджевать NIC виртуальной машины в bhyve с какой-то из реальных NIC хоста, то можно сделать на хосте "ifconfig tap0 192.168.1.1/30", а в соответствующей виртуалке "ifconfig vtnet0 192.168.1.2/30". Пакеты будут передаваться через tap. Но еще удобнее сделать так:
Host:
Guest:
Интерфейс tap(4) имеет неприятное (но документированное в мане) свойство терять IP адрес, когда виртуальная машина останавливается и соответствующий ей /dev/tapN закрывается. Назначение IP адреса на bridge(4) решает эту проблему, а заодно позволяет сделать общий LAN для виртуальных машин.
Не забывать только про sysctl net.link.tap.up_on_open=1
Еще можно использовать в bhyve vmnet вместо tap, т.к. vmnet не теряет адрес. Но вариант с bridge удобнее во всех отношениях.
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 удобнее во всех отношениях.