Я пытался настроить доступ в Интернет для сервера Ubuntu (да, это должен быть сервер Ubuntu, хотя я бы предпочел что-то легкое, например Alpine) на хосте macOS. Насколько я понимаю, мне нужно использовать сеть Tap / Tun.
Что я сделал до сих пор:
Установлены TunTap OSX, так что у меня есть
/dev/tap0
устройство.Настроить
bridge1
сетевое устройство с использованием ifconfigУстановите IP-адрес
bridge1
устройство для192.168.100.1/24
.Назначенный IP
192.168.100.0
нажать0.Настройте DHCP-сервер и пересылку пакетов согласно этот сайт
Сделал скрипты для
addm
а такжеdeletem
tap0
изbridge1
при запуске и выключении ВМ. (Я убедился, что они работают).
Очевидные проблемы
На данный момент WireShark не показывает трафик через tap0
, но весь мой кольцевой трафик проходит через bridge1
.
Гость Ubuntu Server по-прежнему не имеет доступа в Интернет. Я не могу отправить данные с хоста гостю или наоборот (пробовал ssh
и пару слушателей / клиентов netcat).
Бег ip link show
в гостевой показывает всего 2 устройства: lo0
а также ens3
. Когда сервер Ubuntu загружается, последний всегда ВЫКЛЮЧЕН, пока я не запустил ip link set ens3 up
(что ничего не исправляет).
Когда я запускал эту виртуальную машину на VirtualBox (которая, похоже, сейчас не работает в macOS), сеть отлично работала с использованием виртуального NAT. Я преобразовал .vdi
изображение для .qcow2
, так что все в квестовой ОС идентично тому, как было раньше.
Я здесь что-то не так сделал? Если да, то что я могу исправить? А если нет, каковы будут мои следующие шаги? Я ценю ваше внимание.
Дампы
bridge1
когда виртуальная машина запущена:
$ ifconfig bridge1
bridge1: flags=8863<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST> mtu 1500
options=3<RXCSUM,TXCSUM>
ether fa:ff:c2:96:c0:01
inet 192.168.100.1 netmask 0xffffff00 broadcast 192.168.100.255
Configuration:
id 0:0:0:0:0:0 priority 0 hellotime 0 fwddelay 0
maxage 0 holdcnt 0 proto stp maxaddr 100 timeout 1200
root id 0:0:0:0:0:0 priority 0 ifcost 0 port 0
ipfilter disabled flags 0x0
member: tap0 flags=3<LEARNING,DISCOVER>
ifmaxaddr 0 port 15 priority 0 path cost 0
Address cache:
52:54:0:12:34:56 Vlan1 tap0 992 flags=0<>
media: autoselect
status: active
bridge1
когда виртуальная машина нет Бег:
$ ifconfig bridge1
bridge1: flags=8863<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST> mtu 1500
options=63<RXCSUM,TXCSUM,TSO4,TSO6>
ether fa:ff:c2:96:c0:01
inet 192.168.100.1 netmask 0xffffff00 broadcast 192.168.100.255
Configuration:
id 0:0:0:0:0:0 priority 0 hellotime 0 fwddelay 0
maxage 0 holdcnt 0 proto stp maxaddr 100 timeout 1200
root id 0:0:0:0:0:0 priority 0 ifcost 0 port 0
ipfilter disabled flags 0x0
Address cache:
media: <unknown type>
status: inactive
tap0
когда виртуальная машина нет Бег:
$ ifconfig tap0
ifconfig: interface tap0 does not exist
tap0
когда виртуальная машина запущена:
$ ifconfig tap0
tap0: flags=8943<UP,BROADCAST,RUNNING,PROMISC,SIMPLEX,MULTICAST> mtu 1500
ether 7e:9b:23:d0:c2:97
media: autoselect
status: active
open (pid 2415)
Моя команда QEMU:
sudo qemu-system-x86_64
-m 1024m
-smp 1
-boot d
-hda Server.qcow2
-net nic,model=virtio
-net tap,id=mynet0,ifname=tap0,script=qemu-ifup.sh,downscript=qemu-ifdown.sh