Qemu-systemをハイパーバイザーとして使用して次のセットアップを実行します。
Hostsetup:
Hypervisor machine (Ubuntu 16.04) Second Machine
qemuVm--tap0--br123--eth0--|Hardware hub|--eth42--SecondPC
したがって、これはqemu-systemによってホストされる仮想マシンを含むネットワークであり、タップインターフェースを介して仮想ブリッジに接続されます。仮想ブリッジはホストによって作成されます。仮想ブリッジは、libvirt/virt-managerまたは他のシステムのデフォルトのブリッジではありません。仮想ブリッジには、実際のeth0ネットワークカードがあります。このネットワークカードは、実際のハブと有線で接続されています。ハブに接続されているのは、他のReal PCです。すべてのクライアントは静的IPアドレスを使用します。接続されているすべてのマシン間でICMP、UDP、TCP、FTPなどのすべてのサービスを使用したい
IPリスト:
win7qemuVm: 10.0.0.10
br123: 10.0.0.100
(qemuのデフォルトブリッジを使用したくない)tap0: ?
IPアドレスを割り当てることは可能/必要ですか?eth0: ?
IPアドレスを割り当てる必要がありますか?eth42 10.0.0.201
(2台目のPCのインターフェース)古い-netdev
ではなく-device
/-net nic
を使用したいと思います。
win7qemuVmをタップデバイスに接続するために必要なコマンドラインパラメーターはどれですか?
IPルート、ipforwarding、iptablesがあります。そのようなネットワークを可能にするために、デフォルトのubuntu設定を変更する必要がありますか?
私のホストネットワークはすでにそのように構成されています:
iface tap11 inet manual
pre-up tunctl -t tap0
up ifconfig tap0 up
down ifconfig tap0 down
auto br123
iface br123 inet static
address 10.0.0.100
netmask 255.255.255.0
bridge_ports eth0
bridge_ports tap0
bridge_stp off
bridge_fd 0.0
pre-up ifdown eth0
pre-up ifdown tap0
pre-up ifup eth0
pre-up ifup tap0
post-down ifdown eth0
post-down ifdown tap0
ネットワークマネージャーが無効になっています。
上の構成は問題を解決するために正しいです。最初の成功は、あなたの花嫁/タップなどがUPのままであるときです。つまり、これは使用され、システムは実行されているということです。次のようになります。
$ ip link show
# Output modified and formatted:
3: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast
master br123 state UP
mode DEFAULT group default qlen 1000
link/ether 68:05:ca:51:8e:ff brd ff:ff:ff:ff:ff:ff
5: tap0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast
master br123 state UP
mode DEFAULT group default qlen 1000
link/ether ce:c4:55:91:86:6f brd ff:ff:ff:ff:ff:ff
6: br123: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue
state UP mode DEFAULT group default qlen 1000
link/ether 68:05:ca:51:8e:ff brd ff:ff:ff:ff:ff:ff
あなたはマスターと状態が言及されている行を見ることができます、それらは重要なものです。
次の課題は、このタップ機能をサポートするネットワークデバイスを見つけることです。 XP用にvirtio network device
を使用し、virtio driver
をダウンロードしました。私はまだ他のOSといくつかの仮想ネットワークカードだけをテストしていないので、他のOSも動作する可能性があるかもしれません。ただし、重要なのは、すべての仮想デバイスドライバーがタップデバイスで動作しているわけではないということです。 SOたとえば、Windowsのネットワークカードは稼働している可能性がありますが、pingを出し入れすることはできません。ファイアウォールがダウンしていて、他のすべてが正しく構成されている場合は、タップデバイスがサポートされていないアダプターを追加しました。
ネットワーク接続は1:1のペアなので、2つのステップを使用して行います。ホスト側の構成は-netdev
で始まります。ここで、(ここで)ホストに接続されたネットワークアダプターを定義します。 tap0
はこの一部です。重要なのは、ID
。を定義することです。
このID
は、ゲストのインターフェースが定義されているクライアント側の構成で使用されます。 -device
。 virtio-net-pci
は、この例で使用されているネットワークアダプターです。
exec qemu-system-x86_64 \
-enable-kvm \
-hda W_XP.img \
-m 1G \
-monitor stdio \
-cdrom /media/img/SharedImages/driver/W_XP/virtio-win-0.1.126.iso \
-netdev tap,id=mynet0,ifname=tap0,script=no,downscript=no \
-device virtio-net-pci,netdev=mynet0,id=mynet0,mac=52:54:00:c9:18:27 \
$@
マシンの実行中または実行後のブリッジの状態の制御
$ dmesg
[time in sec ]
[13649.332345] br123: port 2(tap0) entered blocking state
[13649.332346] br123: port 2(tap0) entered forwarding state
machine running
[13674.309067] br132: port 2(tap0) entered disabled state
machine stopped
winXP SP3で次のアダプターを使用してセットアップを確認しましたが、すべてタップデバイスで機能します:
一部の場合のみ、外部ドライバーをインストールする必要があります。
rtl8139 Realtak RTL8139-Familie-PCI-Fast Ethernet-NIC
5.398.613.2003 RTL8139.sys 100
ne2k_pci Realtek RTL8029(AS)-basierender Ethernetadapter (Standard)
5.508.803.2000 RTL8029.sys 10
e1000-82545em Intel(R) PRO/1000 MT Network Connectiion
Intel 8.10.3.0 e1000325.sys uvm. 1000
e1000 Intel(R) PRO/1000 MT Network Connectiion
Intel 8.10.3.0 e1000325.sys uvm. 1000
virtio-net-pci Red Hat VirtIO Ethnernet Adapter
51.73.104.12600 netkvm.sys 1000