[et-mgmt-tools] ARP failing when I ping from host to guest

kewlemer kewlemer at gmail.com
Sun Nov 4 01:23:53 UTC 2007


I'm running x86_64 Fedora7 host and 32 bit Fedora 7 guest on KVM. Here
what the default bridged network setting gave me -

HOST -

[root fed-amd64 ~]# ifconfig
eth0      Link encap:Ethernet  HWaddr 00:1A:A0:56:52:E5
         inet addr:192.168.1.9  Bcast:192.168.1.255  Mask:255.255.255.0
         inet6 addr: fe80::21a:a0ff:fe56:52e5/64 Scope:Link
         UP BROADCAST RUNNING MULTICAST  MTU:1492  Metric:1
         RX packets:4144 errors:0 dropped:0 overruns:0 frame:0
         TX packets:4490 errors:0 dropped:0 overruns:0 carrier:0
         collisions:0 txqueuelen:1000
         RX bytes:3143529 (2.9 MiB)  TX bytes:1026716 (1002.6 KiB)
         Interrupt:23 Base address:0x6000

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:16436  Metric:1
         RX packets:11074 errors:0 dropped:0 overruns:0 frame:0
         TX packets:11074 errors:0 dropped:0 overruns:0 carrier:0
         collisions:0 txqueuelen:0
         RX bytes:49074613 (46.8 MiB)  TX bytes:49074613 (46.8 MiB)

virbr0    Link encap:Ethernet  HWaddr 00:FF:EE:14:6D:91
         inet addr:192.168.122.1  Bcast:192.168.122.255  Mask:255.255.255.0
         inet6 addr: fe80::200:ff:fe00:0/64 Scope:Link
         UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
         RX packets:61 errors:0 dropped:0 overruns:0 frame:0
         TX packets:86 errors:0 dropped:0 overruns:0 carrier:0
         collisions:0 txqueuelen:0
         RX bytes:9261 (9.0 KiB)  TX bytes:12220 (11.9 KiB)

vnet0     Link encap:Ethernet  HWaddr 00:FF:EE:14:6D:91
         inet6 addr: fe80::2ff:eeff:fe14:6d91/64 Scope:Link
         UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
         RX packets:61 errors:0 dropped:0 overruns:0 frame:0
         TX packets:61 errors:0 dropped:0 overruns:0 carrier:0
         collisions:0 txqueuelen:500
         RX bytes:10115 (9.8 KiB)  TX bytes:7195 (7.0 KiB)

[root fed-amd64 ~]#

Here is what the GUEST landed up with when using the default configuration-

[root fed-guest ~]# ifconfig
eth0      Link encap:Ethernet  HWaddr 00:16:3E:6B:C6:36
         inet addr:192.168.122.195  Bcast:192.168.122.255  Mask:255.255.255.0
         inet6 addr: fe80::216:3eff:fe6b:c636/64 Scope:Link
         UP BROADCAST RUNNING MULTICAST  MTU:1492  Metric:1
         RX packets:4144 errors:0 dropped:0 overruns:0 frame:0
         TX packets:4490 errors:0 dropped:0 overruns:0 carrier:0
         collisions:0 txqueuelen:1000
         RX bytes:3143529 (2.9 MiB)  TX bytes:1026716 (1002.6 KiB)
         Interrupt:23 Base address:0x6000

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:16436  Metric:1
         RX packets:11074 errors:0 dropped:0 overruns:0 frame:0
         TX packets:11074 errors:0 dropped:0 overruns:0 carrier:0
         collisions:0 txqueuelen:0
         RX bytes:49074613 (46.8 MiB)  TX bytes:49074613 (46.8 MiB)

virbr0    Link encap:Ethernet  HWaddr 00:00:00:00:00:00
         inet addr:192.168.122.1  Bcast:192.168.122.255  Mask:255.255.255.0
         inet6 addr: fe80::200:ff:fe00:0/64 Scope:Link
         UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
         RX packets:61 errors:0 dropped:0 overruns:0 frame:0
         TX packets:86 errors:0 dropped:0 overruns:0 carrier:0
         collisions:0 txqueuelen:0
         RX bytes:9261 (9.0 KiB)  TX bytes:12220 (11.9 KiB)

[root fed-guest ~]#

To be more specific, I'm doing a tcpdump on guest's
eth0(192.168.122.195). When the host pings 192.168.122.195, I see
following -

tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), capture size 96 bytes
12:15:49.058031 arp who-has 192.168.122.195 tell 192.168.122.1
12:15:51.065437 arp who-has 192.168.122.195 tell 192.168.122.1
12:15:52.069123 arp who-has 192.168.122.195 tell 192.168.122.1
12:15:53.071852 arp who-has 192.168.122.195 tell 192.168.122.1
12:15:55.077218 arp who-has 192.168.122.195 tell 192.168.122.1

When the guest's eth0 is receiving ARP for it's right IP address, why
is it not responding?

Here are the routing tables -
HOST-
[root fed-amd64 ~]# netstat -rn
Kernel IP routing table
Destination        Gateway         Genmask         Flags   MSS Window irtt Iface
192.168.1.0       0.0.0.0         255.255.255.0   U          0  0 0 eth0
192.168.122.0   0.0.0.0          255.255.255.0   U          0 0 0 virbr0
0.0.0.0               192.168.1.1     0.0.0.0 UG        0       0
    0 eth0
[root fed-amd64 ~]#

GUEST-
[root guest~]# netstat -rn
Kernel IP routing table
Destination      Gateway         Genmask         Flags   MSS Window  irtt Iface
192.168.122.0   0.0.0.0         255.255.255.0   U         0         0
   0 virbr0
192.168.122.0   0.0.0.0         255.255.255.0   U         0         0     0 eth0
169.254.0.0       0.0.0.0         255.255.0.0       U         0  0    0 eth0
0.0.0.0          192.168.122.1   0.0.0.0              UG      0   0     0 eth0
[root guest ~]#

The problem is that I'm unable to ping from the host to the guest (to
192.168.122.195). tcpdump shows that guest is not responding to ARPs
for 192.168.122.195. Can anyone tell me why? I can ping the host's
eth0 from the guest though. Are my eth0 and virbr0 settings correct? I
see that the hw address of  virbr0 of guest is 0, while that of host
is non-0 - is that alright?

Note that I have iptables and SELinux turned off.

The found these references, but unfortunately they went of help in my case -
http://watzmann.net/blog/index.php/2007/04/27/networking_with_kvm_and_libvirt
http://www.gnome.org/~markmc/virtual-networking.html

The other thing I tried was to have a tun/tap driver like UML. So I
set up tap0 on the host as 10.90.93.1. Then I changed eth0 of QEMU-KVM
guest to 10.90.93.50. Then again the ARP response from the guest
failed. Here are the relevant details -

HOST-
[root at fed-amd64 ~]# netstat -rn
Kernel IP routing table
Destination     Gateway         Genmask         Flags   MSS Window  irtt Iface
10.90.93.50     0.0.0.0         255.255.255.255 UH        0 0          0 tap0
192.168.1.0     0.0.0.0         255.255.255.0   U         0 0          0 eth0
192.168.122.0   0.0.0.0         255.255.255.0   U         0 0          0 virbr0
0.0.0.0         192.168.1.1     0.0.0.0         UG        0 0          0 eth0
[root at fed-amd64 ~]#

[root at fed-amd64 ~]# arp -a
? (192.168.1.1) at 00:E0:98:53:63:0E [ether] on eth0
[root at fed-amd64 ~]#
//note that it's not seeing 10.90.93.50 since the guest is not responding

GUEST-
root at guest ~]# netstat -rn
Kernel IP routing table
Destination     Gateway         Genmask         Flags   MSS Window  irtt Iface
10.90.93.0     0.0.0.0         255.255.255.255 U        0 0          0 eth0
0.0.0.0         10.90.93.1     0.0.0.0         UG        0 0            0 eth0
[root at guest ~]#

[root at guest]# arp -a
[root at guest]#

tcpdump dump on tap0 shows that the host is not getting the ARP
response for 10.90.93.50. However when a do a tcpdump on eth0 of host,
it's not receiving the pings at all. Can anyone tell me what I'm
missing in this case.

Any pointers greatly appreciated.

Thanks in advance,
KM




More information about the et-mgmt-tools mailing list