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: 192.168.1.2 and 192.168.1.1.
Configure OVS bridges as follows.
Assign IP address to int-br, So final topology looks like:
192.168.1.1/24
+--------------+
| int-br | 192.168.1.2/24
+--------------+ +--------------+
| vxlan0 | | vxlan0 |
+--------------+ +--------------+
| |
| |
| |
172.168.1.1/24 |
+--------------+ |
| br-eth1 | 172.168.1.2/24
+--------------+ +---------------+
| eth1 |----------------------------------| eth1 |
+--------------+ +---------------+
Host A with OVS. Remote host.
With this setup, ping to VXLAN target device (192.168.1.2) should work There are following commands that shows internal tables:
Tunnel routing table:
To Add route:
ovs-appctl ovs/route/add
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
To check datapath ports: ovs-appctl dpif/show
To check datapath flows: ovs-appctl dpif/dump-flows
bugs@openvswitch.org