7

Я пытаюсь вывести систему ARM QEMU из своей локальной сети. Я попытался запустить QEMU напрямую из Windows (Windows 7 x64), но с успехом, за исключением того, что я не смог получить адаптер TAP для подключения к моему беспроводному соединению. В частности, Windows отказалась подключать любой из моих сетевых адаптеров.

Итак, я попытался использовать QEMU в виртуальной машине Ubuntu (которая, на удивление, оказывается немного быстрее, поэтому я хотел бы придерживаться ее). Виртуальная машина Ubuntu подключена к моему беспроводному соединению и работает нормально. Я установил мост в Ubuntu с помощью устройства TAP, и я считаю, что он настроен правильно, но за исключением получения адреса DHCP из моей локальной сети, он не будет работать.

  • Windows 7 x64 Host
    • Ubuntu 12.04 32-битная виртуальная машина
      • QEMU ARM под управлением Debian Squeeze

Я считаю, что есть проблема маршрутизации, но я не могу ее точно определить.

  • Моя локальная сеть настроена для DHCP на 1.1.1.0/24, а шлюз - 1.1.1.1 (да, это глупо, но это не проблема)
  • Ubuntu имеет следующую конфигурацию:

[Нужна не очень пустая строка для того, чтобы предварительный тег работал ниже ...]

br0 Link encap:Ethernet  HWaddr 08:00:27:74:6b:ec  
inet addr:1.1.1.16  Bcast:1.1.1.255  Mask:255.255.255.0
inet6 addr: fe80::a00:27ff:fe74:6bec/64 Scope:Link
UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
RX packets:3135 errors:0 dropped:0 overruns:0 frame:0
TX packets:967 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0 
RX bytes:681918 (681.9 KB)  TX bytes:79747 (79.7 KB)

eth1 Link encap:Ethernet  HWaddr 08:00:27:74:6b:ec  
inet6 addr: fe80::a00:27ff:fe74:6bec/64 Scope:Link
UP BROADCAST RUNNING PROMISC MULTICAST  MTU:1500  Metric:1
RX packets:14249 errors:0 dropped:0 overruns:0 frame:0
TX packets:5850 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000 
RX bytes:15166414 (15.1 MB)  TX bytes:431255 (431.2 KB)

tap1 Link encap:Ethernet  HWaddr 96:f3:2d:ae:c8:08  
inet6 addr: fe80::94f3:2dff:feae:c808/64 Scope:Link
UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
RX packets:161 errors:0 dropped:0 overruns:0 frame:0
TX packets:2262 errors:0 dropped:3 overruns:0 carrier:0
collisions:0 txqueuelen:500 
RX bytes:12144 (12.1 KB)  TX bytes:262799 (262.7 KB)

QEMU выглядит следующим образом:

И мой сервер подтверждает это:

tail /var/log/dnsmasq.leases
1341855255 52:54:00:12:34:56 1.1.1.144 * *

Таким образом, QEMU получает IP-адрес, но в остальном кажется не подключенным:

root@arm-emu:~# ping google.com
ping: unknown host google.com

root@arm-emu:~# ping 1.1.1.1
From 1.1.1.144 Destination Host Unreachable

Вот что я использовал для настройки моста - в Ubuntu:

tunctl -t tap1 -u root
brctl addbr br0
ifconfig eth1 0.0.0.0 promisc
brctl addif br0 eth1
dhclient br0
brctl addif br0 tap1
ifconfig tap1 up

В QEMU я просто использую DHCP для eth0, никакой специальной конфигурации.

Я делаю это неправильно, что с моим мостовым соединением?

1 ответ1

3

Я знаю, что опоздал, но недавно столкнулся с той же проблемой.

В основном, найти решение здесь:

http://ajitabhpandey.info/2007/07/interconnecting-qemu-and-virtualbox-virtual-machines/

Ключевыми шагами являются включение IP-пересылки и настройка MASQUERADING на интерфейсе моста:

$ echo "1" > /proc/sys/net/ipv4/ip_forward
$ sudo iptables -t nat -A POSTROUTING -o br0 -j MASQUERADE

Теперь QEMU может получить доступ к Интернету, и к нему может обратиться VirtualBox и хост.

Но не может получить доступ к другим компьютерам в той же локальной сети.

Поскольку английский является моим вторым языком, любой желающий улучшить этот ответ будет принят.

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