I've got:A host system running Ubuntu with KVM (functional)Two clients, one Ubuntu and one Windows 7, nothing fancy.I've also setup (see below) a bridge via br0 for the clients:br0: 192.168.2.1 (with DHCP running)eth0 -> br0tap0 -> br0tap1 -> br0br0 can give IP to the clients, they get:Windows 7: 192.168.2.29Ubuntu: 192.168.2.30Here's my problem:Windows ICMP -> br0: WorksUbuntu ICMP -> br0: WorksUbuntu ICMP -> Windows: Failshttp://www.youtube.com/watch?v=5C1VvJezouII played around with some NAT (which i'm getting the hang of via iptables) and that works like a charm! Without any issues both the clients can ping www.google.se and fetch data etc, but not between each other?!Here's the commands i'm running from the beginning to end:tc qdisc del dev wlan0 root 2>/dev/nulltc qdisc del dev wlan0 ingress 2>/dev/nulliptables -P INPUT ACCEPTiptables -F INPUTiptables -P OUTPUT ACCEPTiptables -F OUTPUTiptables -P FORWARD DROPiptables -F FORWARDiptables -t nat -F PREROUTINGiptables -t nat -F OUTPUTiptables -t nat -F POSTROUTINGiptables -t nat -Fiptables -t mangle -Fip route flush table mainiptables -t mangle -A PREROUTING -p tcp -j CONNMARK --restore-markmodprobe ifb numifbs=1modprobe ip_conntrackmodprobe xt_markmodprobe iptable_natecho 1 > /proc/sys/net/ipv4/ip_forwardecho 0 > /proc/sys/net/bridge/bridge-nf-call-arptablesecho 0 > /proc/sys/net/bridge/bridge-nf-call-iptablesecho 0 > /proc/sys/net/bridge/bridge-nf-call-ip6tablesifconfig br0 192.168.2.1 netmask 255.255.255.0route add -net 192.168.2.0 netmask 255.255.255.0 dev br0ip route add default via 192.168.2.1 dev wlan0kpartx -av win7.imgkpartx -av ubuntu.imgtunctl -u `whoami` -t tap0ip link set tap0 upbrctl addif br0 tap0tunctl -u `whoami` -t tap1ip link set tap1 upbrctl addif br0 tap1kvm -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-dummykvm -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-dummyAt this point, i'm trying to ping between the clients without success so i close down the systems and run:brctl delif br0 tap0brctl delif br0 tap1ifconfig tap0 downifconfig tap1 downtunctl -d tap0tunctl -d tap1kpartx -dv win7.imgkpartx -dv ubuntu.img
qemu - two clients (tap0 & tap1) via br0 can't ping eachother but server pings ok
ubuntu;networking;kvm;qemu;ping
brctl delif br0 tap0brctl delif br0 tap1kvm -no-reboot -m 1300 -hda /dev/mapper/loop0p1 -boot order=c -net nic,macaddr=DE:AD:BE:EF:EC:B6 -net bridge,br=br0kvm -no-reboot -m 1300 -hda /dev/mapper/loop1p1 -boot order=c -net nic,macaddr=DE:AD:BE:EF:EC:B7 -net bridge,br=br0In your current scenario tap is being used.If all VM's should be able to reach other VM's as well as virtualisation host letting br0 act as a switch is a option. Another way would be to use macvtap in bridge mode or even using openvswitch.