]> git.proxmox.com Git - mirror_ovs.git/blame - README-native-tunneling.rst
tests: windows ovsdb online compact
[mirror_ovs.git] / README-native-tunneling.rst
CommitLineData
5273d85f
SF
1..
2 Licensed under the Apache License, Version 2.0 (the "License"); you may
3 not use this file except in compliance with the License. You may obtain
4 a copy of the License at
5
6 http://www.apache.org/licenses/LICENSE-2.0
7
8 Unless required by applicable law or agreed to in writing, software
9 distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
10 WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
11 License for the specific language governing permissions and limitations
12 under the License.
13
14 Convention for heading levels in Open vSwitch documentation:
15
16 ======= Heading 0 (reserved for the title in a document)
17 ------- Heading 1
18 ~~~~~~~ Heading 2
19 +++++++ Heading 3
20 ''''''' Heading 4
21
22 Avoid deeper levels because they do not render well.
23
24==========================================
25Native Tunneling in Open vSwitch Userspace
26==========================================
27
28Open vSwitch supports tunneling in userspace. Tunneling is implemented in
29a platform-independent way.
30
31Setup
32-----
33
34Setup physical bridges for all physical interfaces. Create integration bridge.
35Add VXLAN port to int-bridge. Assign IP address to physical bridge where
36VXLAN traffic is expected.
37
38Example
39-------
40
41Connect to VXLAN tunnel endpoint logical IP: ``192.168.1.2`` and
42``192.168.1.1``.
43
44Configure OVS bridges as follows.
45
461. Let's assume ``172.168.1.2/24`` network is reachable via ``eth1``. Create
47 physical bridge ``br-eth1``. Assign IP address (``172.168.1.1/24``) to
48 ``br-eth1``. Add ``eth1`` to ``br-eth1``.
49
502. Check ovs cached routes using appctl command.
51
52 ::
53
54 $ ovs-appctl ovs/route/show
55
56 Add tunnel route if not present in OVS route table.
57
58 ::
59
60 $ ovs-appctl ovs/route/add 172.168.1.1/24 br-eth1
61
623. Add integration bridge ``int-br`` and add tunnel port using standard syntax.
63
64 ::
65
66 $ ovs-vsctl add-port int-br vxlan0 \
67 -- set interface vxlan0 type=vxlan options:remote_ip=172.168.1.2
68
694. Assign IP address to ``int-br``.
70
71The final topology should looks like so:
72
73::
74
75 Diagram
76
77 192.168.1.1/24
78 +--------------+
79 | int-br | 192.168.1.2/24
80 +--------------+ +--------------+
81 | vxlan0 | | vxlan0 |
82 +--------------+ +--------------+
83 | |
84 | |
85 | |
86 172.168.1.1/24 |
87 +--------------+ |
88 | br-eth1 | 172.168.1.2/24
89 +--------------+ +---------------+
90 | eth1 |----------------------------------| eth1 |
91 +--------------+ +---------------+
92
93 Host A with OVS. Remote host.
94
95With this setup, ping to VXLAN target device (``192.168.1.2``) should work.
96
97Tunneling-related Commands
98--------------------------
99
100Tunnel routing table
101~~~~~~~~~~~~~~~~~~~~
102
103To add route:
104
105::
106
107 $ ovs-appctl ovs/route/add <IP address>/<prefix length> <output-bridge-name> <gw>
108
109To see all routes configured:
110
111::
112
113 $ ovs-appctl ovs/route/show
114
115To delete route:
116
117::
118
119 $ ovs-appctl ovs/route/del <IP address>/<prefix length>
120
121To look up and display the route for a destination:
122
123::
124
125 $ ovs-appctl ovs/route/lookup <IP address>
126
127ARP
128~~~
129
130To see arp cache content:
131
132::
133
134 $ ovs-appctl tnl/arp/show
135
136To flush arp cache:
137
138::
139
140 $ ovs-appctl tnl/arp/flush
141
142Ports
143~~~~~
144
145To check tunnel ports listening in ovs-vswitchd:
146
147::
148
149 $ ovs-appctl tnl/ports/show
150
151To set range for VxLan UDP source port:
152
153::
154
155 $ ovs-appctl tnl/egress_port_range <num1> <num2>
156
157To show current range:
158
159::
160
161 $ ovs-appctl tnl/egress_port_range
162
163Datapath
164~~~~~~~~
165
166To check datapath ports:
167
168::
169
170 $ ovs-appctl dpif/show
171
172To check datapath flows:
173
174::
175
176 $ ovs-appctl dpif/dump-flows