Native Tunneling in Open vSwitch userspace

Open vSwitch supports tunneling in userspace. Tunneling is implemented in platform independent way.


Setup physical bridges for all physical interfaces. Create integration bridge. Add VXLAN port to int-bridge. Assign IP address to physical bridge where VXLAN traffic is expected.


Connect to VXLAN tunnel endpoint logical ip: and

Configure OVS bridges as follows.

  1. Lets assume network is reachable via eth1 create physical bridge br-eth1 assign ip address ( to br-eth1, Add eth1 to br-eth1
  2. Check ovs cached routes using appctl command ovs-appctl ovs/route/show Add tunnel route if not present in OVS route table. ovs-appctl ovs/route/add br-eth1
  3. Add integration bridge int-br and add tunnel port using standard syntax. ovs-vsctl add-port int-br vxlan0 -- set interface vxlan0 type=vxlan options:remote_ip=
  4. Assign IP address to int-br, So final topology looks like:

            |    int-br    |                          
            +--------------+                                   +--------------+
            |    vxlan0    |                                   |    vxlan0    |
            +--------------+                                   +--------------+
                   |                                                  |
                   |                                                  |
                   |                                                  |
            +--------------+                                          |
            |    br-eth1   |                         
            +--------------+                                  +---------------+
            |    eth1      |----------------------------------|      eth1     |
            +--------------+                                  +---------------+
        Host A with OVS.                                      Remote host.

With this setup, ping to VXLAN target device ( should work There are following commands that shows internal tables:

Tunneling related commands:

Tunnel routing table: To Add route: ovs-appctl ovs/route/add / To see all routes configured: ovs-appctl ovs/route/show To del route: ovs-appctl ovs/route/del / To look up and display the route for a destination: ovs-appctl ovs/route/lookup

ARP: To see arp cache content: ovs-appctl tnl/arp/show To flush arp cache: ovs-appctl tnl/arp/flush

To check tunnel ports listening in vswitchd: ovs-appctl tnl/ports/show

To set range for VxLan udp source port: To set: ovs-appctl tnl/egressportrange Shows Current range: ovs-appctl tnl/egressportrange

To check datapath ports: ovs-appctl dpif/show

To check datapath flows: ovs-appctl dpif/dump-flows