[ovs-dev] [PATCH v2] ovs-vtep: Clarifications on the README
shettyg at nicira.com
Mon Aug 18 17:29:23 UTC 2014
On Thu, Aug 14, 2014 at 3:23 PM, Mark Maglana <mmaglana at gmail.com> wrote:
> Thank you for the quick feedback and the corrections. This looks good.
I applied this to master. Thanks!
> On Thu, Aug 14, 2014 at 1:05 PM, Gurucharan Shetty <shettyg at nicira.com>
>> From: Mark Maglana <mmaglana at gmail.com>
>> The README was not clear on whether the steps are for attaching physical
>> or virtual machines to the emulated VTEP. This adds more detail to the
>> README so that readers will know what to do if they want to attach
>> machines or otherwise.
>> Signed-off-by: Mark Maglana <mmaglana at gmail.com>
>> Signed-off-by: Gurucharan Shetty <gshetty at nicira.com>
>> AUTHORS | 1 +
>> vtep/README.ovs-vtep | 119
>> 2 files changed, 97 insertions(+), 23 deletions(-)
>> diff --git a/AUTHORS b/AUTHORS
>> index 8c5940d..2a63450 100644
>> --- a/AUTHORS
>> +++ b/AUTHORS
>> @@ -90,6 +90,7 @@ Lorand Jakab lojakab at cisco.com
>> Luca Giraudo lgiraudo at nicira.com
>> Luigi Rizzo rizzo at iet.unipi.it
>> Mark Hamilton mhamilton at nicira.com
>> +Mark Maglana mmaglana at gmail.com
>> Martin Casado casado at nicira.com
>> Maryam Tahhan maryam.tahhan at intel.com
>> Mehak Mahajan mmahajan at nicira.com
>> diff --git a/vtep/README.ovs-vtep b/vtep/README.ovs-vtep
>> index 79e1538..60b39b7 100644
>> --- a/vtep/README.ovs-vtep
>> +++ b/vtep/README.ovs-vtep
>> @@ -2,15 +2,89 @@
>> This document explains how to use ovs-vtep, a VTEP emulator that uses
>> -Open vSwitch for forwarding. The emulator is a Python script that
>> -invokes calls to vtep-ctl and various OVS commands, so these commands
>> -will need to be available in the emulator's path.
>> +Open vSwitch for forwarding.
>> +The VTEP emulator is a Python script that invokes calls to tools like
>> +vtep-ctl and ovs-vsctl and is useful only when OVS daemons like
>> +and ovs-vswitchd are running. So those components should be installed.
>> +can be done by either of the following methods.
>> +1. Follow the instructions in the INSTALL file of the Open vSwitch
>> +(don't start any daemons yet).
>> +2. Follow the instructions in INSTALL.Debian file and then install the
>> +"openvswitch-vtep" package (if operating on a debian based machine). This
>> +will automatically start the daemons.
>> +At the end of this process, you should have the following setup:
>> + +---------------------------------------------------+
>> + | Host Machine |
>> + | |
>> + | |
>> + | +---------+ +---------+ |
>> + | | | | | |
>> + | | VM1 | | VM2 | |
>> + | | | | | |
>> + | +----o----+ +----o----+ |
>> + | | | |
>> + | br0 +------o-----------o--------------------o--+ |
>> + | p0 p1 br0 |
>> + | |
>> + | |
>> + | +------+ +------+ |
>> + +------------------------------| eth0 |---| eth1 |--+
>> + +------+ +------+
>> + 10.1.1.1 10.2.2.1
>> + MANAGEMENT | |
>> + +-----------------o----+ |
>> + |
>> + DATA/TUNNEL |
>> + +-----------------o---+
>> +1. We will use Open vSwitch to create our "physical" switch labeled br0
>> +2. Our "physical" switch br0 will have one internal port also named br0
>> + and two "physical" ports, namely p0 and p1.
>> +3. The host machine may have two external interfaces. We will use eth0
>> + for management traffic and eth1 for tunnel traffic (One can use
>> + a single interface to achieve both). Please take note of their IP
>> + addresses in the diagram. You do not have to use exactly
>> + the same IP addresses. Just know that the above will be used in the
>> + steps below.
>> +4. You can optionally connect physical machines instead of virtual
>> + machines to switch br0. In that case:
>> + 4.1. Make sure you have two extra physical interfaces in your host
>> + machine, eth2 and eth3.
>> + 4.2. In the rest of this doc, replace p0 with eth2 and p1 with eth3.
>> +5. In addition to implementing p0 and p1 as physical interfaces, you can
>> + also optionally implement them as standalone TAP devices, or VM
>> + interfaces for simulation.
>> +6. Creating and attaching the VMs is outside the scope of this document
>> + and is included in the diagram for reference purposes only.
>> These instructions describe how to run with a single ovsdb-server
>> -instance that handles both the OVS and VTEP schema.
>> +instance that handles both the OVS and VTEP schema. You can skip
>> +steps 1-3 if you installed using the debian packages as mentioned in
>> +step 2 of the "Requirements" section.
>> 1. Create the initial OVS and VTEP schemas:
>> @@ -28,37 +102,36 @@ instance that handles both the OVS and VTEP schema.
>> ovs-vswitchd --log-file --detach --pidfile \
>> -4. Create a "physical" switch in OVS:
>> +4. Create a "physical" switch and its ports in OVS:
>> ovs-vsctl add-br br0
>> - ovs-vsctl add-port br0 eth0
>> + ovs-vsctl add-port br0 p0
>> + ovs-vsctl add-port br0 p1
>> 5. Configure the physical switch in the VTEP database:
>> vtep-ctl add-ps br0
>> - vtep-ctl add-port br0 eth0
>> - vtep-ctl set Physical_Switch br0 tunnel_ips=192.168.0.3
>> + vtep-ctl set Physical_Switch br0 tunnel_ips=10.2.2.1
>> -6. Start the VTEP emulator:
>> +6. Start the VTEP emulator. If you installed the components by reading
>> + INSTALL file, run the following from the same directory as this
>> - ovs-vtep --log-file=/var/log/openvswitch/ovs-vtep.log \
>> + ./ovs-vtep --log-file=/var/log/openvswitch/ovs-vtep.log \
>> --pidfile=/var/run/openvswitch/ovs-vtep.pid \
>> --detach br0
>> -7. Configure the VTEP database's manager to point at a NVC:
>> + If the installation was done by installing the openvswitch-vtep
>> + package, you can find ovs-vtep at /usr/share/openvswitch/scripts.
>> - vtep-ctl set-manager tcp:192.168.0.99:6632
>> +7. Configure the VTEP database's manager to point at an NVC:
>> -The example provided creates a physical switch with a single physical
>> -port attached to it. If more than one physical port is needed, it would
>> -be added to "br0" to both the OVS and VTEP databases:
>> + vtep-ctl set-manager tcp:<CONTROLLER IP>:6632
>> - ovs-vsctl add-port br0 eth1
>> - vtep-ctl add-port br0 eth1
>> + Where CONTROLLER IP is your controller's IP address that is accessible
>> + via the Host Machine's eth0 interface.
>> -Simulating a NVC
>> +Simulating an NVC
>> A VTEP implementation expects to be driven by a Network Virtualization
>> Controller (NVC), such as NSX. If one does not exist, it's possible to
>> @@ -70,13 +143,13 @@ use vtep-ctl to simulate one:
>> 2. Bind the logical switch to a port:
>> - vtep-ctl bind-ls br0 eth0 0 ls0
>> + vtep-ctl bind-ls br0 p0 0 ls0
>> vtep-ctl set Logical_Switch ls0 tunnel_key=33
>> 3. Direct unknown destinations out a tunnel:
>> - vtep-ctl add-mcast-remote ls0 unknown-dst 192.168.1.34
>> + vtep-ctl add-mcast-remote ls0 unknown-dst 10.2.2.2
>> 4. Direct unicast destinations out a different tunnel:
>> - vtep-ctl add-ucast-remote ls0 11:22:33:44:55:66 192.168.1.33
>> + vtep-ctl add-ucast-remote ls0 11:22:33:44:55:66 10.2.2.3
More information about the dev