]>
Commit | Line | Data |
---|---|---|
6cdd6a87 TD |
1 | How to Use Open vSwitch with KVM |
2 | ================================= | |
3 | ||
4 | This document describes how to use Open vSwitch with the Kernel-based | |
5 | Virtual Machine (KVM). This document assumes that you have read and | |
f6eb6b20 | 6 | followed INSTALL to get Open vSwitch setup on your Linux system. |
6cdd6a87 TD |
7 | |
8 | Setup | |
9 | ----- | |
10 | ||
f6eb6b20 | 11 | First, follow the setup instructions in INSTALL to get a working |
6cdd6a87 TD |
12 | Open vSwitch installation. |
13 | ||
14 | KVM uses tunctl to handle various bridging modes, which you can | |
15 | install with the Debian/Ubuntu package uml-utilities. | |
16 | ||
17 | % apt-get install uml-utilities | |
18 | ||
19 | Next, you will need to modify or create custom versions of the qemu-ifup | |
20 | and qemu-ifdown scripts. In this guide, we'll create custom versions | |
21 | that make use of example open vSwitch bridges that we'll describe in this | |
22 | guide. | |
23 | ||
24 | Create the following two files and store them in known locations. | |
25 | ||
05d09469 | 26 | For example /etc/ovs-ifup and /etc/ovs-ifdown |
6cdd6a87 TD |
27 | |
28 | /etc/ovs-ifup | |
29 | -------------------------------------------------------------------- | |
30 | #!/bin/sh | |
31 | ||
32 | switch='br0' | |
33 | /sbin/ifconfig $1 0.0.0.0 up | |
34 | ovs-vsctl add-port ${switch} $1 | |
35 | -------------------------------------------------------------------- | |
36 | ||
37 | /etc/ovs-ifdown | |
38 | -------------------------------------------------------------------- | |
39 | #!/bin/sh | |
40 | ||
41 | switch='br0' | |
42 | /sbin/ifconfig $1 0.0.0.0 down | |
43 | ovs-vsctl del-port ${switch} $1 | |
44 | -------------------------------------------------------------------- | |
45 | ||
f6eb6b20 | 46 | At the end of INSTALL, it describes basic usage of creating |
6cdd6a87 TD |
47 | bridges and ports. If you haven't already, create a bridge named |
48 | br0 with the following command: | |
49 | ||
50 | % ovs-vsctl add-br br0 | |
51 | ||
52 | Then, add a port to the bridge for the NIC that you want your guests | |
53 | to communicate over (e.g. eth0): | |
54 | ||
55 | % ovs-vsctl add-port br0 eth0 | |
56 | ||
57 | Please refer to ovs-vsctl(8) for more details. | |
58 | ||
59 | Next, we'll start a guest that will use our ifup and ifdown scripts. | |
60 | ||
adfaf269 | 61 | % kvm -m 512 -net nic,macaddr=00:11:22:EE:EE:EE -net \ |
6cdd6a87 TD |
62 | tap,script=/etc/ovs-ifup,downscript=/etc/ovs-ifdown -drive \ |
63 | file=/path/to/disk-image,boot=on | |
64 | ||
65 | This will start the guest and associate a tap device with it. The | |
66 | ovs-ifup script will add a port on the br0 bridge so that the | |
67 | guest will be able to communicate over that bridge. | |
68 | ||
69 | To get some more information and for debugging you can use Open | |
70 | vSwitch utilities such as ovs-dpctl and ovs-ofctl, For example: | |
71 | ||
76d7178c | 72 | % ovs-dpctl show |
6cdd6a87 TD |
73 | % ovs-ofctl show br0 |
74 | ||
75 | You should see tap devices for each KVM guest added as ports to | |
76 | the bridge (e.g. tap0) | |
77 | ||
78 | Please refer to ovs-dpctl(8) and ovs-ofctl(8) for more details. | |
79 | ||
80 | Bug Reporting | |
81 | ------------- | |
82 | ||
83 | Please report problems to bugs@openvswitch.org. |