Hi all, I try to setup guest network with macvlan, as guest cannot communicate with host directly, i try to workaround by configuring host to using a macvlan interface
host: Gentoo x64, kernel 3.5.2, qemu-kvm 1.1.1-r1, libvirt 0.9.13 guest: Ubuntu 12.04, kernel 3.4.9, virtio-net The host is using macvlan (interface name: znet0, ip: 192.168.1.2, bridge mode) The guest is using macvtap managed by libvirt (interface name: macvtap0, ip: 192.168.1.184, bridge mode, with vhost) I am facing a strange problem that the guest/host can communicate only when the network cable of the ethernet adapter is connected. The network config of the host $ifconfig eth0 Link encap:Ethernet HWaddr f4:6d:xx:xx:xx:xx inet6 addr: fe80::xx:xx:xx:xx/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:86507 errors:0 dropped:0 overruns:0 frame:0 TX packets:55940 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:126005746 (120.1 MiB) TX bytes:4394225 (4.1 MiB) macvtap0 Link encap:Ethernet HWaddr 52:54:xx:xx:xx:xx inet6 addr: fe80::xx:xx:xx:xx/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:70 errors:0 dropped:0 overruns:0 frame:0 TX packets:84 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:500 RX bytes:9036 (8.8 KiB) TX bytes:14734 (14.3 KiB) znet0 Link encap:Ethernet HWaddr 00:60:xx:xx:xx:xx inet addr:192.168.1.2 Bcast:192.168.1.255 Mask:255.255.255.0 inet6 addr: 2002:xx:xx:xx:xx/64 Scope:Global inet6 addr: fe80:xx:xx:xx:xx/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:4463190 errors:0 dropped:0 overruns:0 frame:0 TX packets:12527522 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:3959213697 (3.6 GiB) TX bytes:18590336476 (17.3 GiB) $ip -d link show 10: znet0@eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP mode DEFAULT link/ether 00:60:xx:xx:xx:xx brd ff:ff:ff:ff:ff:ff macvlan mode bridge 17: macvtap0@eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UNKNOWN mode DEFAULT qlen 500 link/ether 52:54:xx:xx:xx:xx brd ff:ff:ff:ff:ff:ff macvtap mode bridge libvirt config of the guest network <interface type='direct'> <mac address='52:54:xx:xx:xx:xx'/> <source dev='eth0' mode='bridge'/> <model type='virtio'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x08' function='0x0'/> </interface> The network config of the guest eth0 Link encap:Ethernet HWaddr 52:54:xx:xx:xx:xx inet addr:192.168.1.184 Bcast:192.168.1.255 Mask:255.255.255.0 inet6 addr: 2002:xx:xx:xx:xxx/64 Scope:Global inet6 addr: 2002:xx:xx:xx:xx/64 Scope:Global inet6 addr: fe80:xx:xx:xx:xx/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:25 errors:0 dropped:0 overruns:0 frame:0 TX packets:66 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:3108 (3.1 KB) TX bytes:13066 (13.0 KB) when network cable of host is plugged in $ ping 192.168.1.184 PING 192.168.1.184 (192.168.1.184) 56(84) bytes of data. 64 bytes from 192.168.1.184: icmp_req=1 ttl=64 time=0.314 ms 64 bytes from 192.168.1.184: icmp_req=2 ttl=64 time=0.253 ms 64 bytes from 192.168.1.184: icmp_req=3 ttl=64 time=0.230 ms Afterward, i unplugged the network cable to ensure that packet is not routed via external router, but the test seems failed. $ ping 192.168.1.184 PING 192.168.1.184 (192.168.1.184) 56(84) bytes of data. >From 192.168.1.2: icmp_seq=10 Destination Host Unreachable >From 192.168.1.2: icmp_seq=11 Destination Host Unreachable Do anyone have similar problem? Am i missing something? Regards, ching