6

Я пытаюсь настроить мост между моим Wi-Fi соединением и эмулятором (QEMU). Мне нужно, чтобы виртуальная машина находилась в той же локальной сети, что и хост, с собственным IP-адресом.

QEMU требует использования TAP (виртуальное сетевое устройство), поэтому я установил tuntaposx, запустил его и могу открыть QEMU с помощью TAP:

qemu-system-arm -kernel zImage.integrator -initrd arm_root.img -m 256 -net nic -net tap,ifname=tap1 -nographic -append "console=ttyAMA0" 

У меня есть скрипт, который настраивает мост после того, как QEMU открыл интерфейс TAP:

sysctl -w net.link.ether.inet.proxyall=1
sysctl -w net.inet.ip.forwarding=1
sysctl -w net.inet.ip.fw.enable=1
ifconfig bridge0 create
ifconfig bridge0 addm en1
ifconfig tap1 0.0.0.0 up
ifconfig bridge0 addm tap1
ifconfig bridge0 up

Если я вручную установлю IP-адрес на виртуальной машине, я могу пропинговать ее с хоста, но не с хоста на виртуальную машину. Кроме того, я не могу получить доступ к остальной части сети с ВМ - включая невозможность установить IP через DHCP.

Есть идеи?

1 ответ1

1

Вы забываете 2 важных шага: запуск демона natd и настройка брандмауэра для разрешения этого трафика, а именно:

natd -интерфейс en0 ipfw добавляет переадресацию natd ip с любого на любой через en0

en0 - это мой интерфейс Wi-Fi (MacBook Air), и это работает как шарм. Предлагаемое решение openvpn явно сложное.

Вы также можете запускать natd более изящными способами (например: # fancy: natd -alias_address 10.0.0.2 -interface en0 -use_sockets -same_ports -unregistered_only -dynamic -clamp_mss), если вы хотите быть очень конкретным, но вышеприведенное будет работать.

Я подробно описал весь процесс на http://en.blog.guylhem.net/post/88201449689/running-qemu-with-tap0-and-nat-under-osx-10-9-maverick

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .