From mboxrd@z Thu Jan 1 00:00:00 1970 From: Avi Kivity Subject: Re: kvm-ifup bug with complex default routes Date: Mon, 02 Apr 2007 10:44:56 +0300 Message-ID: <4610B478.3030107@qumranet.com> References: <20070401182810.GT25760@galon.ev-en.org> <64F9B87B6B770947A9F8391472E032160B21EF6C@ehost011-8.exch011.intermedia.net> <20070402065330.GU25760@galon.ev-en.org> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Cc: kvm-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org To: Baruch Even Return-path: In-reply-to: <20070402065330.GU25760-xGn4Jn0woyz+OtfAA3OxFg@public.gmane.org> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: kvm-devel-bounces-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org Errors-To: kvm-devel-bounces-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org List-Id: kvm.vger.kernel.org Baruch Even wrote: > * Dor Laor [070402 00:43]: > >>> A user just submitted a bug report against the kvm-18 debian package. >>> You can find the bug report at >>> http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=417151 >>> >>> The user has a default route with extra features and the kvm-ifup >>> >> script >> >>> fails for him, his default route looks like: >>> default via 10.0.0.138 dev br0 metric 1 realm 10 >>> >>> His suggestion to fix is: >>> -switch=$(/sbin/ip route list | awk '/^default / { print $NF }') >>> +switch=$(ip route ls | awk '/^default / { for(i=0;i<$NF;i++) { if >>> >> ($(i) == >> >>> "dev") print $(i+1) }}') >>> >> Actually using the default route in order to get the bridge name is a >> bad thing. The best is to use brctl show and pick the bridge that has >> the interface attached. >> > > The current approach has its problems, especially if there is no bridge > defined. But what if I have multiple bridges? You will need to figure > out which one of them to use. > > But then, this script can't take care of all situations, only of simple > and common ones, the fix suggested above just improves coverage for a > few more cases. > I think the correct solution is to set up the bridge where and when networking is configured, using the regular configuration files and supported by the regular tools. That's the only way we can deal with all the various options. If there's only one bridge, qemu can use it; if there's more, qemu-ifup should read some configuration file to select the bridge. Fedora has some support for bridging in initscripts: I have an ifcfg-sw0 with TYPE=Bridge and ifcfg-eth0 with BRIDGE=sw0. Seems to work fine, and no need to transfer addresses and routes and dhcp client daemons and whatnot. -- Do not meddle in the internals of kernels, for they are subtle and quick to panic. ------------------------------------------------------------------------- Take Surveys. Earn Cash. Influence the Future of IT Join SourceForge.net's Techsay panel and you'll get the chance to share your opinions on IT & business topics through brief surveys-and earn cash http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV