[libvirt] Notes on configuring Open vSwitch, Linux bridge and Libvirt

Kashyap Chamarthy kchamart at redhat.com
Fri Jul 12 12:21:14 UTC 2013


Heya Laine,

Here's some quick notes to associate libvirt guests to Open vSwitch.

Configure Open vSwitch
----------------------

Now that a regular Linux bridge is configured, let's try to configure an
OVS brdige and get IP addresses from that space:

Create an Open vSwitch bridge device called 'ovsbr', and display the
current state of OpenvSwitch database contents:

    $ ovs-vsctl add-br ovsbr
    $ ovs-vsctl show


Add a virtual ethernet interface called 'veth0' with

    $ ip link add name veth0 \
      type veth peer name veth1

Add 'veth0' ethernet device to the Linux bridge 'br0', and enumerate all
bridge devices:

    $ brctl addif br0 veth0
    $ brctl show

Now, associate virtual ethernet device 'veth1' to the OVS bridge,
and display the current state of OpenvSwitch database contents

    $ ovs-vsctl add-port ovsbr veth1
    $ ovs-vsctl show


Bring up both the virtual ethernet interfaces 'veth0' and 'veth1'

    $ ip link set veth0 up && \
      ip link set veth1 up


Update libvirt guest's bridge source to OVS
-------------------------------------------

Install a minimal Fedora guest with Oz (or any other mechanism):

    $ wget \
    https://github.com/kashyapc/virt-scripts/blob/master/oz/oz-jeos.bash
    $ ./oz-jeos f19-min f19

Once install is finished, define the guest XML from the current dir:

   $ virsh define f19-minJul_12_2013-12


Now let's edit libvirt's guest XML file to reflect its bridge source is
OVS bridge:

    $ virsh edit f19-min

The contents of the guest XML should reflect something along the below
lines:

    $ virsh dumpxml f19-min | grep bridge -A8
    <interface type='bridge'>
      <mac address='52:54:00:a6:08:70'/>
      <source bridge='ovsbr'/>
      <virtualport type='openvswitch'>
        <parameters interfaceid='ecdff22d-ce80-4ae7-a008-42994415084e'/>
      </virtualport>
      <target dev='vnet2'/>
      <model type='virtio'/>
      <alias name='net0'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/>
    </interface>

Start the guest, and check the IP of it:

    $ virsh start f19-jeos --console
    $ ifconfig eth0


Please note, this is just a simple test, I haven't done any further experiments with VLAN
tagging, etc.


Slightly verbose notes:

  http://kashyapc.fedorapeople.org/virt/openvswitch-and-libvirt-kvm.txt


-- 
/kashyap




More information about the libvir-list mailing list