Skip to content
This repository has been archived by the owner on Oct 20, 2022. It is now read-only.

Latest commit

 

History

History
85 lines (70 loc) · 3.3 KB

README-native-tunneling.md

File metadata and controls

85 lines (70 loc) · 3.3 KB

Native Tunneling in Open vSwitch userspace

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

Setup:

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.

Example:

Connect to VXLAN tunnel endpoint logical ip: 192.168.1.2 and 192.168.1.1.

Configure OVS bridges as follows.

  1. Lets assume 172.168.1.2/24 network is reachable via eth1 create physical bridge br-eth1 assign ip address (172.168.1.1/24) 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 172.168.1.1/24 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=172.168.1.2

  4. 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:

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/egress_port_range Shows Current range: ovs-appctl tnl/egress_port_range

To check datapath ports: ovs-appctl dpif/show

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

Contact

[email protected]