Я взял небольшой live-диск FreeBSD и QEMU и пытаюсь подключить Wi-Fi-соединение с Mac OS X 10.8, чтобы гостевая ОС была доступна в моей локальной сети. Однако гостевая ОС никогда не получает аренду DHCP.
Это прекрасно работает с VirtualBox в их "мостовом" сетевом режиме, поэтому я знаю, что это можно сделать. Мне нужно, чтобы он работал с QEMU, потому что VirtualBox не поддерживает архитектуру, которая мне нужна для этого проекта.
Вот что я сделал до сих пор, основываясь на часах поиска в Google:
Установленный TUNTAP для OS X
Сказал OS X, чтобы якобы пересылать все пакеты, даже ARP: (ПРИМЕЧАНИЕ: это не похоже на работу.)
$ sudo sysctl -w net.inet.ip.forwarding=1 $ sudo sysctl -w net.link.ether.inet.proxyall=1 $ sudo sysctl -w net.inet.ip.fw.enable=1
Создан мост:
$ sudo ifconfig bridge0 create $ sudo ifconfig bridge0 addm en0 addm tap0 $ sudo ifconfig bridge0 up $ ifconfig bridge0: flags=8863<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST> mtu 1500 ether ac:de:xx:xx:xx:xx Configuration: priority 0 hellotime 0 fwddelay 0 maxage 0 ipfilter disabled flags 0x2 member: en0 flags=3<LEARNING,DISCOVER> port 4 priority 0 path cost 0 member: tap0 flags=3<LEARNING,DISCOVER> port 8 priority 0 path cost 0 tap0: flags=8943<UP,BROADCAST,RUNNING,PROMISC,SIMPLEX,MULTICAST> mtu 1500 ether ca:3d:xx:xx:xx:xx open (pid 88244)
Запустил
tcpdump
с-I
в надежде, что он включит беспорядочный режим на устройстве wifi:$ sudo tcpdump -In -i en0
Запустите QEMU, используя сетевые инструкции:
$ qemu-system-x86_64 -cdrom mfsbsd-9.2-RELEASE-amd64.iso -m 1024 \ -boot d -net nic -net tap,ifname=tap0,script=no,downscript=no
Но гостевая система никогда не получает аренду DHCP:
Если я tcpdump -ni tap0
, я вижу много трафика из беспроводной сети. Но если я tcpdump -ni en0
, я не вижу никакого трафика DHCP от гостевой ОС QEMU.
Есть идеи?
Обновление 1: я попытался sudo defaults write "/Library/Preferences/SystemConfiguration/com.apple.Boot" "Kernel Flags" "net.inet.ip.scopedroute=0"
и перезагрузите компьютер в соответствии с этим предложением списка рассылки, но это не помогло. Фактически, это заставило режим VirtualBox перестать работать.
Обновление 2: Интересно, что виртуальный интерфейс гостя QEMU получает только широковещательные пакеты. Может мне нужно как-нибудь добавить маршрут? Хм ...