私は持っています:
- KVMを使用してUbuntuを実行するホストシステム(機能)
- 2つのクライアント(Ubuntu用の1つのクライアント、Windows 7用の1つのクライアント)には特別なものはありません。
また、br0を介してクライアントのブリッジを設定しました(下記参照)。
- br0:192.168.2.1(DHCP 実行)
- eth0 -> br0
- 0 - > br0をクリックしてください。
- 1 - > br0をクリックします。
br0 はクライアントに IP を提供でき、クライアントは次のようになります。
- Windows 7:192.168.2.29
- Ubuntu:192.168.2.30
私の質問は次のとおりです。
- Windows ICMP - > br0:有効
- Ubuntu ICMP -> br0:有効
- Ubuntu ICMP - > Windows:失敗
http://www.youtube.com/watch?v=5C1VvJezouI
NATを使ってみましたが(iptablesを使って慣れました)、本当に魅力的に動作しました!問題なく、両方のクライアントがwww.google.seをpingしてデータなどを取得できますが、お互いはそうではありませんか? !
最初から最後まで私が実行したコマンドは次のとおりです。
tc qdisc del dev wlan0 root 2>/dev/null
tc qdisc del dev wlan0 ingress 2>/dev/null
iptables -P INPUT ACCEPT
iptables -F INPUT
iptables -P OUTPUT ACCEPT
iptables -F OUTPUT
iptables -P FORWARD DROP
iptables -F FORWARD
iptables -t nat -F PREROUTING
iptables -t nat -F OUTPUT
iptables -t nat -F POSTROUTING
iptables -t nat -F
iptables -t mangle -F
ip route flush table main
iptables -t mangle -A PREROUTING -p tcp -j CONNMARK --restore-mark
modprobe ifb numifbs=1
modprobe ip_conntrack
modprobe xt_mark
modprobe iptable_nat
echo "1" > /proc/sys/net/ipv4/ip_forward
echo "0" > /proc/sys/net/bridge/bridge-nf-call-arptables
echo "0" > /proc/sys/net/bridge/bridge-nf-call-iptables
echo "0" > /proc/sys/net/bridge/bridge-nf-call-ip6tables
ifconfig br0 192.168.2.1 netmask 255.255.255.0
route add -net 192.168.2.0 netmask 255.255.255.0 dev br0
ip route add default via 192.168.2.1 dev wlan0
kpartx -av win7.img
kpartx -av ubuntu.img
tunctl -u `whoami` -t tap0
ip link set tap0 up
brctl addif br0 tap0
tunctl -u `whoami` -t tap1
ip link set tap1 up
brctl addif br0 tap1
kvm -no-reboot -m 1300 -hda /dev/mapper/loop0p1 -boot order=c -net nic,macaddr="DE:AD:BE:EF:EC:B6" -net tap,ifname=tap0,script=/etc/qemu-dummy
kvm -no-reboot -m 1300 -hda /dev/mapper/loop1p1 -boot order=c -net nic,macaddr="DE:AD:BE:EF:EC:B7" -net tap,ifname=tap1,script=/etc/qemu-dummy
この時点でクライアント間のpingを試みましたが、成功しませんでした。だからシステムをシャットダウンし、次のように実行しました。
brctl delif br0 tap0
brctl delif br0 tap1
ifconfig tap0 down
ifconfig tap1 down
tunctl -d tap0
tunctl -d tap1
kpartx -dv win7.img
kpartx -dv ubuntu.img
答え1
brctl delif br0 tap0
brctl delif br0 tap1
kvm -no-reboot -m 1300 -hda /dev/mapper/loop0p1 -boot order=c -net nic,macaddr="DE:AD:BE:EF:EC:B6" -net bridge,br=br0
kvm -no-reboot -m 1300 -hda /dev/mapper/loop1p1 -boot order=c -net nic,macaddr="DE:AD:BE:EF:EC:B7" -net bridge,br=br0
現在のシナリオでは、蛇口が使用されています。
すべてのVMが仮想化ホストと他のVMにアクセスできる必要がある場合は、br0をスイッチとして機能させることを選択できます。
別の方法はブリッジモードのmacvtapそれともオープンスイッチ。