web-dev-qa-db-ja.com

Wifiとブリッジ。インターネットなし。サポートされていません

ifconfig

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)

質問

QEMUWindowsゲスト用にネットワークインターフェイスbridge0を設定し、コマンドラインで有効にしました

brctl addbr bridge0

qemu .. -netdev bridge,br=bridge0,id=net0 -device virtio-net-pci,netdev=net0

(そして/etc/qemu/bridge.confでbridge0を許可しました)。

この設定では、QEMUゲストはインターネットにアクセスできません。たとえば、ホストでは、そのブリッジを介したpingは機能しません。

ping -I bridge0 8.8.8.8

Wi-Fiカード(接続が機能している)をブリッジに追加しようとすると:

brctl addif bridge0 wlan0

Operation not supportedエラーが発生します。 Webに多くのメッセージが表示されます不可能です。しかし、どうすればこれを回避できますか?

ブリッジを使用して、ゲストのネットワーク接続にカスタムiptablesルールを適用する必要があります。

ブリッジでWiFiインターネット接続を使用するにはどうすればよいですか?

問題を解決するためにiptablesを使用するにはどうすればよいですか?ゲストを制御するためにブリッジのサブNATを作成するにはどうすればよいですか?

2
Croll

Libvirtにこれを処理させます。 LibvirtにはデフォルトのNATネットワークがあり、転送、マスカレード、およびアドレス指定のすべてを処理します。このNATネットワークは、libvirtデプロイメントで事前構成されています。文字通り「デフォルト」と名付けられています。NATは、WiFi接続を介してVMにインターネットアクセスを取得するための最も合理的な方法です。

また、WiFiをブリッジとして使用することはほとんどできません。まず、ホストインターフェイスは通常それをサポートしていないためです。第2に、ほとんどすべてのワイヤレスアクセスポイントが(VMからの)2番目のMACアドレスをスプーフィングの試みとしてWiFi接続に送信し、認証を解除するためです。

virshおよびvirt-installを使用して、コマンドラインからlibvirtを管理できます。 virt-managerを使用して、vSphereクライアントがESXiで機能するのと同様のGUIを介してlibvirtを管理することもできます。これらの管理フロントエンドは両方ともリモートホストに接続できます。これよりもはるかに多くの管理ツールがあり、ほぼすべてがあなたのために機能します。 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

2
Spooler

ブリッジは、wpa_supplicantiwbrctlトリオを使用して実行できるはずです。

wpa_supplicant -B -b br0 -i wlan0 -c wpa.conf -Dwext

wpa_supplicant --Wi-Fi ProtectedAccessクライアントとIEEE802.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
0