Skip to content

Latest commit

 

History

History
104 lines (71 loc) · 3.15 KB

INSTALL.KVM.rst

File metadata and controls

104 lines (71 loc) · 3.15 KB

How to Use Open vSwitch with KVM

This document describes how to use Open vSwitch with the Kernel-based Virtual Machine (KVM).

Note

This document assumes that you have read and followed the installation guide to get Open vSwitch setup on your Linux system.

Setup

KVM uses tunctl to handle various bridging modes, which you can install with the Debian/Ubuntu package uml-utilities:

$ apt-get install uml-utilities

Next, you will need to modify or create custom versions of the qemu-ifup and qemu-ifdown scripts. In this guide, we'll create custom versions that make use of example Open vSwitch bridges that we'll describe in this guide.

Create the following two files and store them in known locations. For example:

echo << EOF > /etc/ovs-ifup
#!/bin/sh

switch='br0'
/sbin/ifconfig $1 0.0.0.0 up
ovs-vsctl add-port ${switch} $1
EOF
echo << EOF > /etc/ovs-ifdown
#!/bin/sh

switch='br0'
/sbin/ifconfig $1 0.0.0.0 down
ovs-vsctl del-port ${switch} $1

The basic usage of Open vSwitch is described at the end of the installation guide. If you haven't already, create a bridge named br0 with the following command:

$ ovs-vsctl add-br br0

Then, add a port to the bridge for the NIC that you want your guests to communicate over (e.g. eth0):

$ ovs-vsctl add-port br0 eth0

Refer to ovs-vsctl(8) for more details.

Next, we'll start a guest that will use our ifup and ifdown scripts:

$ kvm -m 512 -net nic,macaddr=00:11:22:EE:EE:EE -net \
    tap,script=/etc/ovs-ifup,downscript=/etc/ovs-ifdown -drive \
    file=/path/to/disk-image,boot=on

This will start the guest and associate a tap device with it. The ovs-ifup script will add a port on the br0 bridge so that the guest will be able to communicate over that bridge.

To get some more information and for debugging you can use Open vSwitch utilities such as ovs-dpctl and ovs-ofctl, For example:

$ ovs-dpctl show
$ ovs-ofctl show br0

You should see tap devices for each KVM guest added as ports to the bridge (e.g. tap0)

Refer to ovs-dpctl(8) and ovs-ofctl(8) for more details.

Bug Reporting

Please report problems to [email protected].