mirror of
https://github.com/openvswitch/ovs
synced 2025-10-25 15:07:05 +00:00
Too many users have incorrectly assumed that ovs-controller is a necessary or desirable part of an Open vSwitch deployment. This commit should fix the problem by renaming it test-controller and removing it from the default install and from packaging. Signed-off-by: Ben Pfaff <blp@nicira.com>
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