Skip to content

Latest commit

 

History

History

vtep

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
                       How to Use the VTEP Emulator
                       ============================

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.

Startup
=======

These instructions describe how to run with a single ovsdb-server
instance that handles both the OVS and VTEP schema.

1. Create the initial OVS and VTEP schemas:

    ovsdb-tool create /etc/openvswitch/ovs.db vswitchd/vswitch.ovsschema
    ovsdb-tool create /etc/openvswitch/vtep.db vtep/vtep.ovsschema

2. Start ovsdb-server and have it handle both databases:

    ovsdb-server --pidfile --detach --log-file \
      --remote punix:/var/run/openvswitch/db.sock \
      /etc/openvswitch/ovs.db /etc/openvswitch/vtep.db

3. Start OVS as normal:

    ovs-vswitchd --log-file --detach --pidfile \
      unix:/var/run/openvswitch/db.sock

4. Create a "physical" switch in OVS:

    ovs-vsctl add-br br0
    ovs-vsctl add-port br0 eth0

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

6. Start the VTEP emulator:

    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:

    vtep-ctl set-manager tcp:192.168.0.99:6632

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:

    ovs-vsctl add-port br0 eth1
    vtep-ctl add-port br0 eth1


Simulating a 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
use vtep-ctl to simulate one:

1. Create a logical switch:

    vtep-ctl add-ls ls0

2. Bind the logical switch to a port:

    vtep-ctl bind-ls br0 eth0 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

4. Direct unicast destinations out a different tunnel:

    vtep-ctl add-ucast-remote ls0 11:22:33:44:55:66 192.168.1.33