Signed-off-by: Stephen Finucane <step...@that.guru> --- Makefile.am | 2 +- README-native-tunneling.md | 85 ------------------- README-native-tunneling.rst | 176 ++++++++++++++++++++++++++++++++++++++++ debian/openvswitch-common.docs | 2 +- ofproto/ofproto-tnl-unixctl.man | 2 +- rhel/openvswitch.spec.in | 2 +- utilities/ovs-sim.1.xml | 2 +- 7 files changed, 181 insertions(+), 90 deletions(-) delete mode 100644 README-native-tunneling.md create mode 100644 README-native-tunneling.rst
diff --git a/Makefile.am b/Makefile.am index 42ad5d0..c1eba48 100644 --- a/Makefile.am +++ b/Makefile.am @@ -91,7 +91,7 @@ docs = \ PORTING.rst \ README.rst \ README-lisp.rst \ - README-native-tunneling.md \ + README-native-tunneling.rst \ REPORTING-BUGS.rst \ SECURITY.rst \ WHY-OVS.rst diff --git a/README-native-tunneling.md b/README-native-tunneling.md deleted file mode 100644 index 985deb3..0000000 --- a/README-native-tunneling.md +++ /dev/null @@ -1,85 +0,0 @@ -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 <IP address>/<prefix length> <output-bridge-name> <gw> - To see all routes configured: - ovs-appctl ovs/route/show - To del route: - ovs-appctl ovs/route/del <IP address>/<prefix length> - To look up and display the route for a destination: - ovs-appctl ovs/route/lookup <IP address> - -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 <num1> <num2> - 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 -======= -b...@openvswitch.org diff --git a/README-native-tunneling.rst b/README-native-tunneling.rst new file mode 100644 index 0000000..78eee5b --- /dev/null +++ b/README-native-tunneling.rst @@ -0,0 +1,176 @@ +.. + Licensed under the Apache License, Version 2.0 (the "License"); you may + not use this file except in compliance with the License. You may obtain + a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, WITHOUT + WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the + License for the specific language governing permissions and limitations + under the License. + + Convention for heading levels in Open vSwitch documentation: + + ======= Heading 0 (reserved for the title in a document) + ------- Heading 1 + ~~~~~~~ Heading 2 + +++++++ Heading 3 + ''''''' Heading 4 + + Avoid deeper levels because they do not render well. + +========================================== +Native Tunneling in Open vSwitch Userspace +========================================== + +Open vSwitch supports tunneling in userspace. Tunneling is implemented in +a 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. Let's 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``. + +The final topology should looks like so: + +:: + + Diagram + + 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. + +Tunneling-related Commands +-------------------------- + +Tunnel routing table +~~~~~~~~~~~~~~~~~~~~ + +To add route: + +:: + + $ ovs-appctl ovs/route/add <IP address>/<prefix length> <output-bridge-name> <gw> + +To see all routes configured: + +:: + + $ ovs-appctl ovs/route/show + +To delete route: + +:: + + $ ovs-appctl ovs/route/del <IP address>/<prefix length> + +To look up and display the route for a destination: + +:: + + $ ovs-appctl ovs/route/lookup <IP address> + +ARP +~~~ + +To see arp cache content: + +:: + + $ ovs-appctl tnl/arp/show + +To flush arp cache: + +:: + + $ ovs-appctl tnl/arp/flush + +Ports +~~~~~ + +To check tunnel ports listening in ovs-vswitchd: + +:: + + $ ovs-appctl tnl/ports/show + +To set range for VxLan UDP source port: + +:: + + $ ovs-appctl tnl/egress_port_range <num1> <num2> + +To show current range: + +:: + + $ ovs-appctl tnl/egress_port_range + +Datapath +~~~~~~~~ + +To check datapath ports: + +:: + + $ ovs-appctl dpif/show + +To check datapath flows: + +:: + + $ ovs-appctl dpif/dump-flows diff --git a/debian/openvswitch-common.docs b/debian/openvswitch-common.docs index 7c7335e..950e78c 100644 --- a/debian/openvswitch-common.docs +++ b/debian/openvswitch-common.docs @@ -1,3 +1,3 @@ FAQ.md INSTALL.DPDK.rst -README-native-tunneling.md +README-native-tunneling.rst diff --git a/ofproto/ofproto-tnl-unixctl.man b/ofproto/ofproto-tnl-unixctl.man index fa14b87..7767197 100644 --- a/ofproto/ofproto-tnl-unixctl.man +++ b/ofproto/ofproto-tnl-unixctl.man @@ -1,6 +1,6 @@ .SS "OPENVSWITCH TUNNELING COMMANDS" These commands query and modify OVS tunnel components. Ref to -README-native-tunneling.md for more info. +README-native-tunneling.rst for more info. . .IP "\fBovs/route/add ipv4_address/plen output_bridge [GW]\fR" Adds ipv4_address/plen route to vswitchd routing table. output_bridge diff --git a/rhel/openvswitch.spec.in b/rhel/openvswitch.spec.in index be6449b..d473e76 100644 --- a/rhel/openvswitch.spec.in +++ b/rhel/openvswitch.spec.in @@ -248,7 +248,7 @@ exit 0 /usr/share/openvswitch/vswitch.ovsschema /usr/share/openvswitch/vtep.ovsschema %doc COPYING DESIGN.md INSTALL.SSL.md NOTICE README.rst WHY-OVS.rst FAQ.md NEWS -%doc INSTALL.DPDK.rst rhel/README.RHEL README-native-tunneling.md +%doc INSTALL.DPDK.rst rhel/README.RHEL README-native-tunneling.rst /var/lib/openvswitch /var/log/openvswitch diff --git a/utilities/ovs-sim.1.xml b/utilities/ovs-sim.1.xml index 36be812..0430e73 100644 --- a/utilities/ovs-sim.1.xml +++ b/utilities/ovs-sim.1.xml @@ -158,7 +158,7 @@ ovs-vsctl add-br br0 # Add bridge br0 inside hv0. replaced by <code>dummy</code> devices. Other types of devices, however, retain their usual functions, which means that, e.g., <code>vxlan</code> tunnels still act as tunnels (see - <code>README-native-tunneling.md</code>). + <code>README-native-tunneling.rst</code>). </p> </dd> -- 2.7.4 _______________________________________________ dev mailing list dev@openvswitch.org http://openvswitch.org/mailman/listinfo/dev