From owner-freebsd-bugs@FreeBSD.ORG Sun Feb 12 21:20:12 2012 Return-Path: Delivered-To: freebsd-bugs@hub.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 490571065673 for ; Sun, 12 Feb 2012 21:20:12 +0000 (UTC) (envelope-from gnats@FreeBSD.org) Received: from freefall.freebsd.org (freefall.freebsd.org [IPv6:2001:4f8:fff6::28]) by mx1.freebsd.org (Postfix) with ESMTP id EDF618FC22 for ; Sun, 12 Feb 2012 21:20:11 +0000 (UTC) Received: from freefall.freebsd.org (localhost [127.0.0.1]) by freefall.freebsd.org (8.14.5/8.14.5) with ESMTP id q1CLKBYa072385 for ; Sun, 12 Feb 2012 21:20:11 GMT (envelope-from gnats@freefall.freebsd.org) Received: (from gnats@localhost) by freefall.freebsd.org (8.14.5/8.14.5/Submit) id q1CLKBfW072384; Sun, 12 Feb 2012 21:20:11 GMT (envelope-from gnats) Resent-Date: Sun, 12 Feb 2012 21:20:11 GMT Resent-Message-Id: <201202122120.q1CLKBfW072384@freefall.freebsd.org> Resent-From: FreeBSD-gnats-submit@FreeBSD.org (GNATS Filer) Resent-To: freebsd-bugs@FreeBSD.org Resent-Reply-To: FreeBSD-gnats-submit@FreeBSD.org, David Talkington Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 275EC106564A for ; Sun, 12 Feb 2012 21:16:30 +0000 (UTC) (envelope-from nobody@FreeBSD.org) Received: from red.freebsd.org (red.freebsd.org [IPv6:2001:4f8:fff6::22]) by mx1.freebsd.org (Postfix) with ESMTP id EB19D8FC12 for ; Sun, 12 Feb 2012 21:16:29 +0000 (UTC) Received: from red.freebsd.org (localhost [127.0.0.1]) by red.freebsd.org (8.14.4/8.14.4) with ESMTP id q1CLGT5g017657 for ; Sun, 12 Feb 2012 21:16:29 GMT (envelope-from nobody@red.freebsd.org) Received: (from nobody@localhost) by red.freebsd.org (8.14.4/8.14.4/Submit) id q1CLGTdH017656; Sun, 12 Feb 2012 21:16:29 GMT (envelope-from nobody) Message-Id: <201202122116.q1CLGTdH017656@red.freebsd.org> Date: Sun, 12 Feb 2012 21:16:29 GMT From: David Talkington To: freebsd-gnats-submit@FreeBSD.org X-Send-Pr-Version: www-3.1 Cc: Subject: misc/165059: virtio_kmod: networking breaks with a router using virtio net driver on KVM host X-BeenThere: freebsd-bugs@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Bug reports List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 12 Feb 2012 21:20:12 -0000 >Number: 165059 >Category: misc >Synopsis: virtio_kmod: networking breaks with a router using virtio net driver on KVM host >Confidential: no >Severity: non-critical >Priority: low >Responsible: freebsd-bugs >State: open >Quarter: >Keywords: >Date-Required: >Class: sw-bug >Submitter-Id: current-users >Arrival-Date: Sun Feb 12 21:20:11 UTC 2012 >Closed-Date: >Last-Modified: >Originator: David Talkington >Release: 9.0-RELEASE >Organization: >Environment: FreeBSD atlantis02.flyingjoke.org 9.0-RELEASE FreeBSD 9.0-RELEASE #0: Tue Jan 3 07:46:30 UTC 2012 root@farrell.cse.buffalo.edu:/usr/obj/usr/src/sys/GENERIC amd64 >Description: When the router for a FreeBSD guest on KVM is also a FreeBSD guest on the same KVM host, and which is using the virtio network driver from virtio_kmod, ping will work between guests on different subnets, but no userland network daemons will respond. If I switch to the e1000 driver on the router, but change nothing else, everything works correctly. >How-To-Repeat: I created three FreeBSD guests on one Linux KVM host. I am using bridged networking on the KVM host, as br0 and br1. One of the guests has two network interfaces and acts as a router between two subnets, as follows: router1: br0, 192.168.1.1; br1, 192.168.2.1 client1: br0, 192.168.1.100; default route 192.168.1.1 client2: br1, 192.168.2.100; default route 192.168.2.1 I configured virtio network interfaces on all three hosts. I enabled forwarding on router1, but no packet filtering. No NAT is in use. Result: * client1 can ping client2, and vice versa. * ssh works from router1 to client1 and vice versa, and from router1 to client2 and vice versa. * ssh from client1 to client2 will fail (and vice versa); the client simply hangs indefinitely while trying to connect. * tcpdump on client2 will show that the SYN is arriving at client2 port 22, but client2 never replies, nor generates any debug or log output that suggests it ever saw the connection attempt. * any other userland network service I try (both tcp and udp) will show the same thing -- packets arrive at client2 from client1, but the daemon seems to never see them. Since ping works, I know the kernel is getting them. * If I switch back to the e1000 driver on router1, but make no other changes, and make no changes at all to client1 and client2, then ssh will work properly from client1 to client2 and the problem is resolved. * If I let router1 continue to use virtio interfaces, but move router1 onto a different KVM host -- so that the traffic from client1 to client2 must leave the KVM host via the bridged interface and then return on a different interface - then ssh will work properly from client1 to client2 and the problem is resolved. KVM guests: FreeBSD 9 virtio-kmod: 0.228301 KVM host: Ubuntu 11.10 qemu-kvm: 0.14.1 >Fix: Unknown. >Release-Note: >Audit-Trail: >Unformatted: