summary refs log tree commit diff
path: root/man/nm-openvswitch.7
blob: 6a7b5ecd0ad1c48b9ad6266d63b14929cb83e502 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
'\" t
.\"     Title: nm-openvswitch
.\"    Author: 
.\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
.\"      Date: 06/16/2022
.\"    Manual: Open vSwitch support overview
.\"    Source: NetworkManager 1.38.2
.\"  Language: English
.\"
.TH "NM\-OPENVSWITCH" "7" "" "NetworkManager 1\&.38\&.2" "Open vSwitch support overview"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.\" http://bugs.debian.org/507673
.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html
.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.ie \n(.g .ds Aq \(aq
.el       .ds Aq '
.\" -----------------------------------------------------------------
.\" * set default formatting
.\" -----------------------------------------------------------------
.\" disable hyphenation
.nh
.\" disable justification (adjust text to left margin only)
.ad l
.\" -----------------------------------------------------------------
.\" * MAIN CONTENT STARTS HERE *
.\" -----------------------------------------------------------------
.SH "NAME"
nm-openvswitch \- overview of NetworkManager Open vSwitch support
.SH "OVERVIEW"
.PP
NetworkManager includes basic Open vSwitch support, good enough to be capable of setting up simple Open vSwitch configurations\&. It is not extensive and does not expose all functionality of Open vSwitch provides\&. For large or complicated deployments users are advised to use native tools shipped with Open vSwitch\&. This document seeks to provide overview of functionality currently provided by NetworkManager, its capabilities and limitations\&.
.PP
First and foremost: NetworkManager applies the configuration by modifying the OVSDB directly\&. Its configuration model follows the OVSDB database model closely and it does not provide the level of abstraction
\fBovs\-vsctl\fR
provides\&.
.PP
In practical terms it means the following:
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
NetworkManager only ever talks to a single OVSDB instance via an UNIX domain socket\&.
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
The configuration is made up of Bridges, Ports and Interfaces\&. Interfaces are always enslaved to Ports, and Ports are always enslaved to Bridges\&.
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
NetworkManager only creates Bridges, Ports and Interfaces you ask it to\&. Unlike
\fBovs\-vsctl\fR, it doesn\*(Aqt create the local interface nor its port automatically\&.
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
You can\*(Aqt enslave Interface directly to a Bridge\&. You always need a Port, even if it has just one interface\&.
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
There are no VLANs\&. The VLAN tagging is enabled by setting a
ovs\-port\&.tag
property on a Port\&.
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
There are no bonds either\&. The bonding is enabled by enslaving multiple Interfaces to a Port and configured by setting properties on a port\&.
.RE
.sp
.SS "Bridges"
.PP
Bridges are represented by connections of ovs\-bridge
type\&. Due to the limitations of OVSDB, "empty" Bridges (with no Ports) can\*(Aqt exist\&. NetworkManager inserts the records for Bridges into OVSDB when a Port is enslaved\&.
.SS "Ports"
.PP
Ports are represented by connections of ovs\-port
type\&. Due to the limitations of OVSDB, "empty" Ports (with no Interfaces) can\*(Aqt exist\&. Ports can also be configured to do VLAN tagging or Bonding\&. NetworkManager inserts the records for Ports into OVSDB when an Interface is enslaved\&. Ports must be enslaved to a Bridge\&.
.SS "Interfaces"
.PP
Interfaces are represented by a connections enslaved to a Port\&. The system interfaces (that have a corresponding Linux link) have a respective
connection\&.type
of the link (e\&.g\&. "wired", "bond", "dummy", etc\&.)\&. Other interfaces ("internal" or "patch" interfaces) are of ovs\-interface type\&. The OVSDB entries are inserted upon enslavement to a Port\&.
.SH "EXAMPLES"
.PP
\fBExample\ \&1.\ \&Creating a Bridge with a single internal Interface\fR
.sp
.if n \{\
.RS 4
.\}
.nf
$ \fBnmcli conn add type ovs\-bridge conn\&.interface bridge0\fR
Connection \*(Aqovs\-bridge\-bridge0\*(Aq (d10fc64d\-1d48\-4394\-a1b8\-e1aea72f27d5) successfully added\&.
$ \fBnmcli conn add type ovs\-port conn\&.interface port0 master bridge0\fR
Connection \*(Aqovs\-port\-port0\*(Aq (5ae22bae\-bba4\-4815\-9ade\-7e635633e1f0) successfully added\&.
$ \fBnmcli conn add type ovs\-interface slave\-type ovs\-port conn\&.interface iface0 \e
  master port0 ipv4\&.method manual ipv4\&.address 192\&.0\&.2\&.1/24\fR
Connection \*(Aqovs\-interface\-iface0\*(Aq (3640d2a1\-a2fd\-4718\-92f1\-cffadb5b6cdc) successfully added\&.
.fi
.if n \{\
.RE
.\}
.PP
As said above, you need to create a Port even for a single interface\&. Also, before you add the Interface, the Bridge and Port devices appear active, but are not configured in OVSDB yet\&. You can inspect the results with
\fBovs\-vsctl show\fR\&.
.PP
\fBExample\ \&2.\ \&Adding a Linux interface to a Bridge\fR
.sp
.if n \{\
.RS 4
.\}
.nf
$ \fBnmcli conn add type ovs\-port conn\&.interface port1 master bridge0\fR
Connection \*(Aqovs\-port\-port1\*(Aq (67d041eb\-8e7b\-4458\-afee\-a1d07c9c4552) successfully added\&.
$ \fBnmcli conn add type ethernet conn\&.interface eth0 master port1\fR
Connection \*(Aqovs\-slave\-eth0\*(Aq (d459c45c\-cf78\-4c1c\-b4b7\-505e71379624) successfully added\&.
.fi
.if n \{\
.RE
.\}
.PP
Again, you need a port\&.
.PP
\fBExample\ \&3.\ \&Creating a VLAN\fR
.sp
.if n \{\
.RS 4
.\}
.nf
$ \fBnmcli conn add type ovs\-port conn\&.interface port2 master bridge0 ovs\-port\&.tag 120\fR
Connection \*(Aqovs\-port\-port2\*(Aq (3994c093\-4ef7\-4549\-a4fd\-627b831c3cb8) successfully added\&.
$ \fBnmcli conn add type ethernet conn\&.interface eth1 master port2\fR
Connection \*(Aqovs\-slave\-eth1\*(Aq (099be06e\-71ad\-484d\-8d5a\-fcadc5f207f5) successfully added\&.
.fi
.if n \{\
.RE
.\}
.PP
It\*(Aqs just a port with a tag\&.
.PP
\fBExample\ \&4.\ \&Creating a Bond\fR
.sp
.if n \{\
.RS 4
.\}
.nf
$ \fBnmcli conn add type ovs\-port conn\&.interface bond0 master bridge0\fR
Connection \*(Aqovs\-port\-bond0\*(Aq (d154ebf9\-e999\-4e1b\-a084\-a3de53d25d8a) successfully added\&.
$ \fBnmcli conn add type ethernet conn\&.interface eth2 master bond0\fR
Connection \*(Aqovs\-slave\-eth2\*(Aq (475ac1bf\-30b2\-4534\-a877\-27f33f58b082) successfully added\&.
$ \fBnmcli conn add type ethernet conn\&.interface eth3 master bond0\fR
Connection \*(Aqovs\-slave\-eth3\*(Aq (8dedeecb\-ed12\-482b\-b77a\-24a4fb835136) successfully added\&.
.fi
.if n \{\
.RE
.\}
.PP
It\*(Aqs just a Port with multiple interfaces\&. See nm\-settings manual for Bonding options you can use with "nmcli c add" or "nmcli c modify"\&. You could even set a VLAN tag on the same Port to do VLAN tagging and bonding at the same time\&.
.SH "BUGS"
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
Not all Open vSwitch capabilities are supported\&.
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
Open vSwitch devices don\*(Aqt expose many useful properties on D\-Bus\&.
.RE
.PP
Probably many more\&.
.SH "SEE ALSO"
.PP
\m[blue]\fBRFC 7047: The Open vSwitch Database Management Protocol\fR\m[]\&\s-2\u[1]\d\s+2,
\fBovs-vsctl\fR(8),
\fBovs-vswitchd.conf.db\fR(5),
\fBnm-settings\fR(5),
\fBnmcli\fR(1)
.SH "NOTES"
.IP " 1." 4
RFC 7047: The Open vSwitch Database Management Protocol
.RS 4
\%https://www.rfc-editor.org/rfc/rfc7047.txt
.RE