From owner-freebsd-emulation@FreeBSD.ORG Tue Jan 9 21:18:44 2007 Return-Path: X-Original-To: freebsd-emulation@FreeBSD.org Delivered-To: freebsd-emulation@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id C810116A403 for ; Tue, 9 Jan 2007 21:18:44 +0000 (UTC) (envelope-from nox@saturn.kn-bremen.de) Received: from gwyn.kn-bremen.de (gwyn.kn-bremen.de [212.63.36.242]) by mx1.freebsd.org (Postfix) with ESMTP id 3043713C442 for ; Tue, 9 Jan 2007 21:18:44 +0000 (UTC) (envelope-from nox@saturn.kn-bremen.de) Received: by gwyn.kn-bremen.de (Postfix, from userid 10) id B25BE1322E2; Tue, 9 Jan 2007 21:50:53 +0100 (CET) Received: from saturn.kn-bremen.de (nox@localhost [127.0.0.1]) by saturn.kn-bremen.de (8.13.6/8.13.6) with ESMTP id l09KlfWN098968; Tue, 9 Jan 2007 21:47:41 +0100 (CET) (envelope-from nox@saturn.kn-bremen.de) Received: (from nox@localhost) by saturn.kn-bremen.de (8.13.6/8.13.6/Submit) id l09Klfgw098967; Tue, 9 Jan 2007 21:47:41 +0100 (CET) (envelope-from nox) From: Juergen Lock Date: Tue, 9 Jan 2007 21:47:40 +0100 To: qemu-devel@nongnu.org, freebsd-emulation@FreeBSD.org Message-ID: <20070109204740.GA98620@saturn.kn-bremen.de> Mail-Followup-To: qemu-devel@nongnu.org, freebsd-emulation@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.5.13 (2006-08-11) Cc: Subject: weird slirp problems (dns lookups stopped working, and maybe more) X-BeenThere: freebsd-emulation@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Development of Emulators of other operating systems List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 09 Jan 2007 21:18:44 -0000 Hi! I'm not sure why I didn't notice signs of this earlier (using the Dec 25 snapshot, I'm on FreeBSD), maybe I really only talked to the host (10.0.2.2) from inside guests. Anyway, after I first saw it yesterday night, today I sniffed on the external interface and saw dns requests of a `host google.com' going out to 224.0.0.251, port 5353, instead of the dns in resolv.conf. Hmm? And when I patched slirp like this: Index: qemu/slirp/slirp.c @@ -130,6 +130,7 @@ void slirp_init(void) { // debug_init("/tmp/slirp.log", DEBUG_DEFAULT); + debug_init("/usr/tmp/slirp.log", DEBUG_DEFAULT); #ifdef _WIN32 { Index: qemu/slirp/udp.c @@ -104,6 +104,9 @@ */ ip = mtod(m, struct ip *); uh = (struct udphdr *)((caddr_t)ip + iphlen); +#if 1 + DEBUG_MISC((dfd, " udp_input(), ip_dst.s_addr=0x%x, uh_dport=%d\n", ntohl(ip->ip_dst.s_addr), ntohs(uh->uh_dport))); +#endif /* * Make mbuf data length reflect UDP length. it indeed shows slirp is getting the dest ip + port correctly and then sends them out wrong: ... m_get... m = 9bd7800 ip_input... m = 9bd7800 m_len = 56 udp_input... m = 9bd7800 iphlen = 20 udp_input(), ip_dst.s_addr=0xa000203, uh_dport=53 sosendto... so = 9b39b80 m = 9bd7800 sendto()ing, addr.sin_port=5353, addr.sin_addr.s_addr=224.0.0.251 m_free... m = 9bd7000 ip_slowtimo... tcp_slowtimo... ... In between I see these which I'm not sure where they are coming from: ... m_get... m = 9bd7800 ip_input... m = 9bd7800 m_len = 74 udp_input... m = 9bd7800 iphlen = 20 udp_input(), ip_dst.s_addr=0xe00000fb, uh_dport=5353 sosendto... so = 9b39b80 m = 9bd7800 sendto()ing, addr.sin_port=5353, addr.sin_addr.s_addr=224.0.0.251 m_free... m = 9bd7000 ip_slowtimo... tcp_slowtimo... m_get... m = 9bd7000 ip_input... m = 9bd7000 m_len = 74 udp_input... m = 9bd7000 iphlen = 20 udp_input(), ip_dst.s_addr=0xe00000fb, uh_dport=5353 sosendto... so = 9b39b80 m = 9bd7000 sendto()ing, addr.sin_port=5353, addr.sin_addr.s_addr=224.0.0.251 m_free... m = 9bd7800 ip_slowtimo... tcp_slowtimo... ip_slowtimo... tcp_slowtimo... And this is my try giving the real dns (which worked yesterday btw): m_get... m = 9bd7800 ip_input... m = 9bd7800 m_len = 56 udp_input... m = 9bd7800 iphlen = 20 udp_input(), ip_dst.s_addr=0xd9ed958e, uh_dport=53 sosendto... so = 9b39b80 m = 9bd7800 sendto()ing, addr.sin_port=5353, addr.sin_addr.s_addr=224.0.0.251 m_free... m = 9bd7000 ip_slowtimo... tcp_slowtimo... ... I also got a report which stated that for him also tcp stopped working, while I still can do http:// and get the expected page, and as said I can also ssh (and scp) to the host (10.0.2.2). Soo, does anyone know slirp enough to have an idea whats going on here? The puzzling thing is I don't see recent slirp commits that could be relevant either... Thanx, Juergen