qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Qemu-devel] User networking and ICMP


From: Pavel Janík
Subject: [Qemu-devel] User networking and ICMP
Date: Sun, 23 May 2004 14:19:43 +0200
User-agent: Gnus/5.110002 (No Gnus v0.2) Emacs/21.3 (gnu/linux)

Hi,

when using User networking (ie. slirp), there seems to be problems with
ICMP. UDP works. I have installed SuSE Linux 9.0 inside QEMU and now am
able to mount share via NFS over UDP from another machine on physical local
network and install additional packages from it.

My physical machine has IP 10.7.7.100 and the other system is 10.7.7.104.
QEMU is using -user-net, thus IPs in it are 10.0.2.15 for target system and
10.0.2.2 is gateway.

I can do

  mount -t nfs 10.7.7.104:/install/9.0 /mnt

inside emulated system and the tree is successfully mounted. I had to
enable insecure option on the NFS server because of qemu using
non-priviledged ports for slirp's emulated UDP traffic. But it simply works
now.

But I can't ping 10.7.7.104 from QEMU:

When I ping from the host system (ie. pavel.int.rudna.net, 10.7.7.100) to
kulicka.int (10.7.7.104), I see this traffic on eth0:

10:55:10.157056 IP pavel.int.rudna.net > kulicka.int.rudna.net: icmp 64: echo 
request seq 1
0x0000   000c 6e37 986a 0002 2d70 00b8 0800 4500        ..n7.j..-p....E.
0x0010   0054 0000 4000 4001 17d0 0a07 0764 0a07        address@hidden@......d..
0x0020   0768 0800 6592 dd5c 0001 ee66 b040 2965        .h..e..\...f.@)e
0x0030   0200 0809 0a0b 0c0d 0e0f 1011 1213 1415        ................
0x0040   1617 1819 1a1b 1c1d 1e1f 2021 2223 2425        ...........!"#$%
0x0050   2627 2829 2a2b 2c2d 2e2f 3031 3233 3435        &'()*+,-./012345
0x0060   3637                                           67
10:55:10.159387 IP kulicka.int.rudna.net > pavel.int.rudna.net: icmp 64: echo 
reply seq 1
0x0000   0002 2d70 00b8 000c 6e37 986a 0800 4500        ..-p....n7.j..E.
0x0010   0054 4f89 0000 4001 0847 0a07 0768 0a07        address@hidden
0x0020   0764 0000 6d92 dd5c 0001 ee66 b040 2965        .d..m..\...f.@)e
0x0030   0200 0809 0a0b 0c0d 0e0f 1011 1213 1415        ................
0x0040   1617 1819 1a1b 1c1d 1e1f 2021 2223 2425        ...........!"#$%
0x0050   2627 2829 2a2b 2c2d 2e2f 3031 3233 3435        &'()*+,-./012345
0x0060   3637                                           67

On the other hand, when I ping from QEMU, I see:

10:56:04.394497 IP pavel.int.rudna.net.norton-lambert > 
kulicka.int.rudna.net.echo: UDP, length: 81
0x0000   000c 6e37 986a 0002 2d70 00b8 0800 4500        ..n7.j..-p....E.
0x0010   006d 0000 4000 4011 17a7 0a07 0764 0a07        address@hidden@......d..
0x0020   0768 0922 0007 0059 17fb 5468 6973 2069        .h."...Y..This.i
0x0030   7320 6120 7073 7565 646f 2d50 494e 4720        s.a.psuedo-PING.
0x0040   7061 636b 6574 2075 7365 6420 6279 2053        packet.used.by.S
0x0050   6c69 7270 2074 6f20 656d 756c 6174 6520        lirp.to.emulate.
0x0060   4943 4d50 2045 4348 4f2d 5245 5155 4553        ICMP.ECHO-REQUES
0x0070   5420 7061 636b 6574 732e 0a                    T.packets..
10:56:04.396742 IP kulicka.int.rudna.net > pavel.int.rudna.net: icmp 117: 
kulicka.int.rudna.net udp port echo unreachable
0x0000   0002 2d70 00b8 000c 6e37 986a 0800 45c0        ..-p....n7.j..E.
0x0010   0089 4f8c 0000 4001 074f 0a07 0768 0a07        address@hidden
0x0020   0764 0303 2041 0000 0000 4500 006d 0000        .d...A....E..m..
0x0030   4000 4011 17a7 0a07 0764 0a07 0768 0922        @address@hidden"
0x0040   0007 0059 17fb 5468 6973 2069 7320 6120        ...Y..This.is.a.
0x0050   7073 7565 646f 2d50 494e 4720 7061 636b        psuedo-PING.pack
0x0060   6574 2075 7365 6420 6279 2053 6c69 7270        et.used.by.Slirp
0x0070   2074 6f20 656d 756c 6174 6520 4943 4d50        .to.emulate.ICMP
0x0080   2045 4348 4f2d 5245 5155 4553 5420 7061        .ECHO-REQUEST.pa
0x0090   636b 6574 732e 0a                              ckets..

Ie. QEMU is using UDP for emulating ICMP echo, and the answer from kulicka
is that UDP port echo is not reachable on it.

Different problem is when I stop HTTP server on kulicka, thus:

address@hidden:~> telnet 10.7.7.104 80
Trying 10.7.7.104...
telnet: connect to address 10.7.7.104: Connection refused
address@hidden:~> 

Ie. telneting to port 80 of it from my system gives me Connection
refused. On the other hand, emulated system gives me:

QEMU:~> telnet 10.7.7.104 80
Trying 10.7.7.104...
Connected to 10.7.7.104.
Escape character is '^]'.
Connection closed by foreign host.

Thus the connection seems to be opened at the first sight but is
immediately closed. So it seems to me that TCP's "connection refused" is
not handled very well.
-- 
Pavel Janík

Would you like to code up this, test it and send it to me?
                  -- Linus "lazy is my middle name" Torvalds in linux-kernel




reply via email to

[Prev in Thread] Current Thread [Next in Thread]