[CentOS-virt] How to manually add a new interface to a bridge device?

Wed Dec 9 10:38:16 UTC 2015
Zoltan Frombach <zoltan at frombach.com>

BTW, adding a 2nd virtual nic to a guest can also be done with command 
line tools (I just googled this for you) :
https://kashyapc.fedorapeople.org/virt/add-network-card-in-guest.txt
( It came up as 1st result when I searched for: virsh add network 
interface to existing guest )

But if you look at the bottom of this guide, they also mention that if 
something goes wrong, they resort to using virsh edit just like I 
suggested to you. See, I prefer to edit a configuration file rather then 
issuing long and complicated commands on the CLI. However, being able to 
add a 2nd nic to a live guest is nice though and that could only be 
achieved with the CLI command. As you can see, you can even add nic's to 
a VM without having to reboot it.

Zoltan

On 12/9/2015 10:58 AM, Howard Leadmon wrote:
>
> How do you decide what MAC address to use for that VM interface?   As 
> I just tried to change the MAC to some other value close, like I made 
> '52:54:00:34:e1:21' into say '52:54:00:34:e1:32', and when I try and 
> load it in, I get the following:
>
> error: XML error: Attempted double use of PCI Address '0:0:4.0'
>
> Here is one of my network entries:
>
> <interface type='bridge'>
>
> <mac address='52:54:00:34:e1:21'/>
>
> <source bridge='br1'/>
>
> <model type='virtio'/>
>
> <address type='pci' domain='0x0000' bus='0x00' slot='0x04' 
> function='0x0'/>
>
> </interface>
>
> ---
>
> Howard
>
> *From:*centos-virt-bounces at centos.org 
> [mailto:centos-virt-bounces at centos.org] *On Behalf Of *Zoltan Frombach
> *Sent:* Wednesday, December 9, 2015 4:24 AM
> *To:* Discussion about the virtualization on CentOS 
> <centos-virt at centos.org>
> *Subject:* Re: [CentOS-virt] How to manually add a new interface to a 
> bridge device?
>
>
> You most definitely do not need to destroy and re-create a VM just to 
> add a 2nd network interface.
>
> I don't think those vnet interfaces got created by the host OS. I 
> believe those are created by KVM (or libvirt) when you start a VM. I 
> could be wrong though. But I just checked on my CentOS 6 KVM host 
> machine and I see as many vnet interfaces as many VMs are currently 
> running (or if one VM has two virtual network cards then of course 
> that VM results two vnet interfaces shown on the host). Here the 
> relevant part from one such VM's XML file (those XML files are under 
> the /etc/libvirt/qemu directory on my CentOS host ) :
>
>     <interface type='bridge'>
>       <mac address='00:16:36:e2:20:ea'/>
>       <source bridge='br0'/>
>       <model type='virtio'/>
>       <address type='pci' domain='0x0000' bus='0x00' slot='0x03' 
> function='0x0'/>
>     </interface>
>     <interface type='bridge'>
>       <mac address='00:16:36:e2:20:eb'/>
>       <source bridge='br600'/>
>       <model type='virtio'/>
>       <address type='pci' domain='0x0000' bus='0x00' slot='0x06' 
> function='0x0'/>
>     </interface>
>
> As you can see, there are two interfaces defined in this VM's XML 
> file. One is connected to the host's br0 interface and the 2nd is 
> connected to the host's br600 interface. You must make sure that all 
> your mac addesses are unique on your network though!!
>
> After editing a VM's XML file with your favorite editor, you need to 
> execute this command:
> virsh define /etc/libvirt/qemu//your-vm-name/.xml
> or just simply use this editor:
> virsh edit /your-vm-name/
> (but I hate vi, so I use my favorite editor and when I finished 
> editing I just run virsh define.)
>
> I edited VM's XML files many times and I can add/remove virtual 
> network cards without problems.
>
> Zoltan
>
> On 12/9/2015 9:55 AM, Howard Leadmon wrote:
>
>     Tried that as well, but this has to be something that gets set at
>     the OS level and loaded, as if you look at dmesg output, you can
>     see all the vnet?? nodes as the OS comes online.    So the
>     question is, what is virt-install doing that creates the needed
>     vnet interface that is part of the bridge.   I really had to kill
>     and reload the VM just to load a second interface..
>
>     ---
>
>     Howard Leadmon
>
>     *From:*centos-virt-bounces at centos.org
>     <mailto:centos-virt-bounces at centos.org>
>     [mailto:centos-virt-bounces at centos.org] *On Behalf Of *Zoltan Frombach
>     *Sent:* Wednesday, December 9, 2015 2:42 AM
>     *To:* Discussion about the virtualization on CentOS
>     <centos-virt at centos.org> <mailto:centos-virt at centos.org>
>     *Subject:* Re: [CentOS-virt] How to manually add a new interface
>     to a bridge device?
>
>     I would stop the VM, edit its definition file (that's an XML file)
>     and then start it up. But be careful: After you edit the XML file,
>     you need to execute a command so KVM re-reads that file. I forgot
>     that command, but you can look it up on Google.
>
>     On Dec 9, 2015 7:52 AM, "Howard Leadmon" <howard at leadmon.net
>     <mailto:howard at leadmon.net>> wrote:
>
>         Maybe my google-fu is failing me, but I have spent the past
>         couple hours looking at how to add a vnet? Device to my KVM
>         host running CentOS 6, and for the life of me I can’t get this
>         going.
>
>         From all my research if I want to add a device I should just
>         do ‘brctl addif br1 vnet14’ if I want to add a vnet14 to
>         bridge br1.   When I do this, I get:
>
>         # brctl addif br0 vnet14
>
>         interface vnet14 does not exist!
>
>         If I run a ‘brctl show’ I get the following:
>
>         # brctl show
>
>         bridge name     bridge id               STP enabled interfaces
>
>         br0 8000.00237dd22a4c       no              eth0
>
>         vnet0
>
>         vnet10
>
>         vnet11
>
>         vnet13
>
>         vnet2
>
>                                                                vnet3
>
>         vnet4
>
>         vnet6
>
>         vnet8
>
>         br1        8000.00237dd22a50       no eth1
>
>         vnet1
>
>         vnet12
>
>         vnet5
>
>                                                vnet7
>
>         vnet9
>
>         Needless to say the existing vnet?? Devices are in use on
>         guest VM’s currently.
>
>         When I create a new VM using virt-install, I usually add the
>         following to my command line:
>
>         --network=bridge:br0 --network=bridge:br1
>
>         I messed up building a new VM, and only added the br0
>         interface to the VM, but need the br1 interface as well.  So
>         my question is, or a pointer to how I can add that br1
>         interface to my existing VM, and create the needed vnet14
>         interface for it to attach to?
>
>         If anyone can explain how to do this, or give me a good
>         pointer on where the info is on how to do this, it would sure
>         be a huge help..
>
>         Thanks…
>
>         ---
>
>         Howard Leadmon
>
>
>         _______________________________________________
>         CentOS-virt mailing list
>         CentOS-virt at centos.org <mailto:CentOS-virt at centos.org>
>         https://lists.centos.org/mailman/listinfo/centos-virt
>
>
>
>
>     _______________________________________________
>
>     CentOS-virt mailing list
>
>     CentOS-virt at centos.org <mailto:CentOS-virt at centos.org>
>
>     https://lists.centos.org/mailman/listinfo/centos-virt
>
>
>
> _______________________________________________
> CentOS-virt mailing list
> CentOS-virt at centos.org
> https://lists.centos.org/mailman/listinfo/centos-virt

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.centos.org/pipermail/centos-virt/attachments/20151209/a438dbce/attachment-0003.html>