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