![qemu kvm VMはWiFiをブリッジしてインターネットにアクセスする必要がある](https://rvso.com/image/154490/qemu%20kvm%20VM%E3%81%AFWiFi%E3%82%92%E3%83%96%E3%83%AA%E3%83%83%E3%82%B8%E3%81%97%E3%81%A6%E3%82%A4%E3%83%B3%E3%82%BF%E3%83%BC%E3%83%8D%E3%83%83%E3%83%88%E3%81%AB%E3%82%A2%E3%82%AF%E3%82%BB%E3%82%B9%E3%81%99%E3%82%8B%E5%BF%85%E8%A6%81%E3%81%8C%E3%81%82%E3%82%8B.png)
私はいくつかの Qemu KVM 仮想マシン (主に CentOS と Debian) を持っており、ホストは Ubuntu です。仮想マシンのネットワークを virtio virbr0 で構成し、仮想インターフェイスを作成し、仮想マシンをその仮想インターフェイスに接続し (dnsmasq で IP を割り当て)、ホスト経由でトラフィックを NAT することで動作させました。
さて、学習の目的で、ブリッジを作成し、WiFiインターフェースをポートの1つとして追加し、VMをブリッジに接続したいと思っていましたが、うまくいきませんでした。上記の人が言及したように、Debianのブリッジチュートリアルebtables に VM MAC アドレスを「マスカレード」させようとします (AP は以前に認証したものとは異なる MAC を受け入れないため)。しかし、問題は、WiFi をブリッジ ポートとして追加することすらできないことです。
私の /etc/network/interfaces:
auto lo
iface lo inet loopback
# this is my wifi card (god knows why udev gave this name)
auto wlx44334c371663
iface wlx44334c371663 inet manual
# of course I added my wifi real MAC in bridge_hw option
auto br0
iface br0 inet dhcp
pre-up iwconfig wlx44334c371663 essid myESSID
bridge_hw 11:11:11:11:11:11
bridge_ports wlx44334c371663
bridge_stp off
bridge_waitport 0
bridge_fd 0
bridge_maxwait 0
起動すると:
$ sudo ifup br0
Waiting for a max of 0 seconds for wlx44334c371663 to become available.
can't add wlx44334c371663 to bridge br0: Operation not supported
Internet Systems Consortium DHCP Client 4.3.3
Copyright 2004-2015 Internet Systems Consortium.
All rights reserved.
For info, please visit https://www.isc.org/software/dhcp/
Listening on LPF/br0/11:11:11:11:11:11
Sending on LPF/br0/11:11:11:11:11:11
Sending on Socket/fallback
DHCPDISCOVER on br0 to 255.255.255.255 port 67 interval 3 (xid=0xe1868a4f)
DHCPDISCOVER on br0 to 255.255.255.255 port 67 interval 8 (xid=0xe1868a4f)
DHCPDISCOVER on br0 to 255.255.255.255 port 67 interval 8 (xid=0xe1868a4f)
...
上のことに注意してください:
wlx44334c371663 をブリッジ br0 に追加できません: 操作はサポートされていません
もちろん、ブリッジを確認すると、私の Wi-Fi は br0 の 1 つのインターフェースではありません。
$ brctl show
bridge name bridge id STP enabled interfaces
br0 8000.44334c371663 no
virbr0 8000.000000000000 yes
br0を起動したときにWi-Fiがオンかオフかは関係ないようです。ただ、1つのインターフェースとして追加されないだけです。
brctl を使用して Wi-Fi を追加しようとすると、同じことが起こります。
$ sudo brctl addif br0 wlx44334c371663
can't add wlx44334c371663 to bridge br0: Operation not supported
追記: これは外付けの Wi-Fi デバイス (rt2800usb) です。ラップトップのオンボード Wi-Fi (ath10k_pci) も持っていますが、どちらも動作していないようです。ただし、イーサネットは動作します (ただし、私のいる場所にはイーサネット ケーブルがありません)。では、何が間違っているのでしょうか?