Hi, Sorry, I didn't have time to look into this. Will reply to you later, I'm not familiar with the way KVM is supposed to do networking (and many other people are on vacation :)
iustin On Tue, Mar 02, 2010 at 02:08:20PM -0700, Timothy Kuhlman wrote: > I've attached a diff created against the git repository for this fix, could > someone add it in? Should I create a bug report for this? > > Tim > > On Fri, Feb 26, 2010 at 9:41 AM, Tim <[email protected]> wrote: > > > I have an instance with two networks. The node I am running on has two > > bridges one for each network. When I would power up the instance I ran > > into some spanning tree issues. For some reason the two tap interfaces > > were bridging. > > > > Doing a ps the kvm command had this in it for the nics. > > -net nic,macaddr=aa:00:00:ad:c5:e8,model=e1000 -net tap,script=/tmp/ > > tmpRHVsoo -net nic, > > macaddr=aa:00:00:15:ae:53,model=e1000 -net tap,script=/tmp/tmpNKQo3G > > > > With the patch below I added the vlan parameter and now it looks like > > this. > > -net nic,vlan=0,macaddr=aa:00:00:ad:c5:e8,model=e1000 -net > > tap,vlan=0,script=/tmp/tmpP8 > > 9Lgq -net nic,vlan=1,macaddr=aa:00:00:15:ae:53,model=e1000 -net > > tap,vlan=1,script=/tmp/tmpR5h0Xh > > > > This works for great for me. The only part I'm not sure about is how > > it interacts with multiple instances on the one machine. All my > > instances have their nics in the same order but if one instance had > > them reversed could this cause the same unintended bridging issue as > > before? Also if someone knows how to tell tap interfaces to never > > bridge that would be a better fix, after all the node is already > > handling the proper setup of bridging. > > > > > > diff -ru ganeti-2.0.6/lib/hypervisor/hv_kvm.py ganeti-2.0.6-tim/lib/ > > hypervisor/hv_kvm.py > > --- ganeti-2.0.6/lib/hypervisor/hv_kvm.py 2010-02-04 > > 04:00:22.000000000 -0700 > > +++ ganeti-2.0.6-tim/lib/hypervisor/hv_kvm.py 2010-02-26 > > 09:17:37.975507115 -0700 > > @@ -412,10 +412,10 @@ > > nic_model = "model=%s" % nic_type > > > > for nic_seq, nic in enumerate(kvm_nics): > > - nic_val = "nic,macaddr=%s,%s" % (nic.mac, nic_model) > > + nic_val = "nic,vlan=%s,macaddr=%s,%s" % (nic_seq, nic.mac, > > nic_model) > > script = self._WriteNetScript(instance, nic_seq, nic) > > kvm_cmd.extend(['-net', nic_val]) > > - kvm_cmd.extend(['-net', 'tap,script=%s' % script]) > > + kvm_cmd.extend(['-net', 'tap,vlan=%s,script=%s' % (nic_seq, > > script)]) > > temp_files.append(script) > > > > if incoming: > > > > > > -- > Tim Kuhlman > > The figure of the Crucified invalidates all thought which takes success for > its standard. > - Dietrich Bonhoeffer
