Thanks for your quick response, Justin. If I want to emulate 2 Ethernet switches, and each Ethernet switch connects to an end-host, totally 4 nodes. Each node (Ethernet switch or end host) is running inside a VM, similar to what mininet is doing. I do not think running OVS in one VM is correct. It looks that there should be only one OVS running within the single physical machine regardless of how many VMs are running. but I am confused about what to run inside for those VMs representing the Ethernet switches. Maybe I am missing something here.
What I want to do is to extend our emulation testbed with openflow support. The idea is somewhat similar to mininet, to emulate a medium scale network with swtiches/routers/end hosts. In particular, I am trying to run openvswitch within OpenVZ virtualization (http://wiki.openvz.org/Main_Page) on Redhat 5. One setup is VM1(eth0) (eth0) VM2 (eth1) (eth0)VM3(eth1) (eth0) VM4 | | | | | | --------------------------------------------------------------------------------------------------------- veth1.0 ------ veth2.0 veth2.1----- veth3.0 veth3.1----- veth4.0 VE0 --------------------------------------------------------------------------------------------------------- The hypervisor is called VE0 in OpenVZ. Within VE0, veth1.0 and veth2.0 connect with vzbr using brctl; similar for veth2.1and veth3.0, veth3.1 to veth4.0. VM1 and VM4 are emulated end-hosts, and VM2 and VM3 are emulated switches. The logical topology is VM1(eth0) ---------- (eth0) VM2 (eth1) ------- (eth0)VM3(eth1) -------- (eth0) VM4 I am wondering how to setup the ovs-vswitchd for the above case? kevin On Thu, May 31, 2012 at 1:36 AM, Justin Pettit <[email protected]> wrote: > Based on your diagram, I'd think you'd want to run OVS inside VM2. This > would be configured as you described with those ovs-vsctl commands. > > However, this seems like a fairly non-standard setup. Usually, the > networking is managed in the hypervisor, so VM1 and VM3 would just be wired > up to OVS running there. But I may not understand what you're trying to do... > > --Justin > > > On May 30, 2012, at 10:46 PM, Dong Jin wrote: > >> 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 >> _______________________________________________ >> discuss mailing list >> [email protected] >> http://openvswitch.org/mailman/listinfo/discuss > _______________________________________________ discuss mailing list [email protected] http://openvswitch.org/mailman/listinfo/discuss
