eth0 Link encap:Ethernet HWaddr 54:04:a6:3d:36:ff
UP BROADCAST MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:65536 Metric:1
RX packets:3300 errors:0 dropped:0 overruns:0 frame:0
TX packets:3300 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1
RX bytes:950771 (950.7 KB) TX bytes:950771 (950.7 KB)
wlan0 Link encap:Ethernet HWaddr 30:5a:3a:60:5d:c0
inet addr:192.168.0.105 Bcast:192.168.0.255 Mask:255.255.255.0
inet6 addr: fe80::7cf4:8ce5:ba7c:8fd3/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:1553 errors:0 dropped:0 overruns:0 frame:0
TX packets:1223 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:1007907 (1.0 MB) TX bytes:524507 (524.5 KB)
Я настроил сетевой интерфейс bridge0
для моего гостя QEMU Windows, включил его с помощью командной строки
brctl addbr bridge0
qemu .. -netdev bridge,br=bridge0,id=net0 -device virtio-net-pci,netdev=net0
(и разрешил bridge0 в /etc/qemu/bridge.conf
).
С этой настройкой гость QEMU не может получить доступ в Интернет. Например, на хосте пинг через этот мост не работает:
ping -I bridge0 8.8.8.8
Если я попытаюсь добавить свою карту Wi-Fi (с рабочим подключением) к мосту:
brctl addif bridge0 wlan0
Я получаю Operation not supported
ошибка. Я вижу много сообщений в сети Это невозможно. Но как мне это обойти?
Мне нужно использовать мост, чтобы применить пользовательский
iptables
правила для сетевых подключений моих гостей.
Как я могу привлечь iptables
решить мою проблему? Как создать Sub-NAT для моего моста для управления гостями?
Пусть с этим справится libvirt. Libvirt имеет сеть NAT по умолчанию, которая будет обрабатывать всю вашу переадресацию, маскировку и адресацию за вас. Эта сеть NAT предварительно настроена при развертывании libvirt и буквально называется "default". NAT - это наиболее разумный способ получить доступ в Интернет к виртуальной машине через соединение WiFi.
Кроме того, вы почти никогда не сможете использовать Wi-Fi в качестве моста. Во-первых, потому что интерфейсы хоста обычно его не поддерживают. Во-вторых, потому что почти все точки беспроводного доступа будут видеть второй MAC-адрес (от вашей виртуальной машины), входящий в ваше WiFi-соединение как попытку спуфинга, и деаутентифицируют вас.
Ты можешь использовать virsh
и virt-install
управлять libvirt через командную строку. Вы также можете использовать virt-manager
для управления libvirt через графический интерфейс, аналогично тому, как работает клиент vSphere для ESXi. Оба этих интерфейса управления могут подключаться к удаленным хостам. Инструментов управления гораздо больше, и вам подойдет любой. virt-manager
потенциально самый простой в использовании.
Подробнее о сети libvirt: http://wiki.libvirt.org/page/Networking
Некоторые инструменты управления libvirt (включая уже упомянутые): http://www.linux-kvm.org/page/Management_Tools
Руководство по использованию virsh: https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/7/html/Virtualization_Deployment_and_Administration_Guide/chap-Managing_guest_virtual_machines_with_virsh.html
Мост все еще можно сделать, используя wpa_supplicant
& iw
& brctl
трио.
wpa_supplicant -B -b br0 -i wlan0 -c wpa.conf -Dwext
wpa_supplicant - Клиент защищенного доступа Wi-Fi и соискатель IEEE 802.1X
-B
Запустить демон в фоновом режиме. -b br_ifname
Необязательное имя интерфейса моста. (На интерфейс)-i ifname
Интерфейс для прослушивания-c filename
Путь к файлу конфигурации.wpa.conf - пример конфигурационного файла wpa_supplicant:
network={
ssid="MYSSID"
psk="passphrase"
}
Включите 4-адресный режим при создании интерфейса. Беспроводной чип должен поддерживать это. (он же AP-to-Sta WDS).
iw dev wlan0 set 4addr on
Добавьте интерфейс к мосту:
brctl addif br0 wlan0