[ovs-discuss] question about creating Ethernet switches in VMs (on single physical machine)

Dong Jin jinanddong at gmail.com
Thu May 31 05:46:22 UTC 2012


I am new to openvswitch and openflow. I setup the following scenario
on a single physical machine:

VM1(veth1.0)  -------  (veth2.0) VM2 (veth2.1)  --------- (veth3.0) VM3

VM1 and VM3 are two end-hosts. VM3 is to emulate an Ethernet switch.
VM2 should be controlled by ovs-vswitchd (possibly with the POX
controller later).

After going through the ovs-vswitchd.conf.db(5), here is my
understanding (correct me if I am wrong): The single ovs-vswitchd
manages a set of bridges (i.e. Ethernet switches), each bridge has a
set of ports (i.e. Ethernet interfaces).

It looks that ovs-vswitchd should run outside any VMs, and it creates
br0 which represents the Ethernet switch.
ovs-vsctl add-br br0
ovs-vsctl add-port br0 veth2.0
ovs-vsctl add-port br0 veth2.1

I am a little bit confused here. I original thought there should be a
program running  (or at least something stored) in VM2 so that VM2 can
emulate an Ethernet switch. It looks that the bridge representing the
switch is created outside VMs. So if I want to emulate 10 switches,
does that mean all the flow tables are stored and managed in a central
place outside VMs? If so, what is the usage of having VM2 here?

I know mininet uses openvswitch and VMs (they use linux container) are
created for Ethernet switch respectively. I think I probably
misunderstand something here. Could someone kindly advise?

thanks in advance.

kevin



More information about the discuss mailing list