blob: 60b6fd01f31776982528885e6ea0610c7fd8e3d9 [file] [log] [blame]
OlgaGusarenko838c9fd2018-07-31 00:22:44 +03001=====
2Usage
3=====
Filip Pytlouncd028e42015-10-06 16:28:32 +02004
OlgaGusarenko838c9fd2018-07-31 00:22:44 +03005Neutron is an OpenStack project to provide *networking as a service* between
Jakub Pavlik9ecf0262016-05-20 11:20:58 +02006interface devices (e.g., vNICs) managed by other Openstack services (e.g.,
7nova).
Filip Pytlouncd028e42015-10-06 16:28:32 +02008
OlgaGusarenko838c9fd2018-07-31 00:22:44 +03009Starting with the Folsom release, Neutron is a core and supported part of the
10OpenStack platform (for Essex, we were an *incubated* project, which means use
Vasyl Saienko2fffc842017-06-14 10:35:26 +030011is suggested only for those who really know what they're doing with Neutron).
Filip Pytlouncd028e42015-10-06 16:28:32 +020012
Aleš Komárek41e82312017-04-11 13:37:44 +020013Sample Pillars
Filip Pytlouncd028e42015-10-06 16:28:32 +020014==============
15
16Neutron Server on the controller node
17
18.. code-block:: yaml
19
20 neutron:
21 server:
22 enabled: true
Jiri Broulik74f61112016-11-21 20:23:47 +010023 version: mitaka
Swann Croiset9407daf2017-02-02 15:27:56 +010024 allow_pagination: true
25 pagination_max_limit: 100
Mykyta Karpin253406d2017-12-08 17:01:37 +020026 api_workers: 2
27 rpc_workers: 2
28 rpc_state_report_workers: 2
Michael Polenchuk1ff88652018-03-06 16:15:57 +040029 root_helper_daemon: false
Michael Polenchuk2151b272018-06-19 18:32:31 +040030 dhcp_lease_duration: 600
Michael Polenchukcece76d2018-06-21 14:56:17 +040031 firewall_driver: iptables_hybrid
Filip Pytlouncd028e42015-10-06 16:28:32 +020032 bind:
33 address: 172.20.0.1
34 port: 9696
Filip Pytlouncd028e42015-10-06 16:28:32 +020035 database:
36 engine: mysql
37 host: 127.0.0.1
38 port: 3306
39 name: neutron
40 user: neutron
41 password: pwd
42 identity:
43 engine: keystone
44 host: 127.0.0.1
45 port: 35357
46 user: neutron
47 password: pwd
48 tenant: service
Dennis Dmitriev37114722017-03-06 16:52:26 +020049 endpoint_type: internal
Filip Pytlouncd028e42015-10-06 16:28:32 +020050 message_queue:
51 engine: rabbitmq
52 host: 127.0.0.1
53 port: 5672
54 user: openstack
55 password: pwd
56 virtual_host: '/openstack'
57 metadata:
58 host: 127.0.0.1
59 port: 8775
60 password: pass
Mykyta Karpin253406d2017-12-08 17:01:37 +020061 workers: 2
Petr Michalec61f7ab22016-11-29 16:29:09 +010062 audit:
63 enabled: false
Filip Pytlouncd028e42015-10-06 16:28:32 +020064
OlgaGusarenko838c9fd2018-07-31 00:22:44 +030065.. note:: The pagination is useful to retrieve a large bunch of resources,
66 because a single request may fail (timeout). This is enabled with both
67 parameters *allow_pagination* and *pagination_max_limit* as shown above.
Swann Croiset9407daf2017-02-02 15:27:56 +010068
OlgaGusarenko838c9fd2018-07-31 00:22:44 +030069Configuration of policy.json file:
Dmitry Ukov596ddcf2017-05-04 18:16:16 +040070
71.. code-block:: yaml
72
73 neutron:
74 server:
75 ....
76 policy:
77 create_subnet: 'rule:admin_or_network_owner'
78 'get_network:queue_id': 'rule:admin_only'
79 # Add key without value to remove line from policy.json
80 'create_network:shared':
81
Elena Ezhovacd67cfe2017-06-16 23:35:07 +040082Neutron LBaaSv2 enablement
83--------------------------
Ondrej Smola314eee22017-03-08 21:21:16 +010084
85.. code-block:: yaml
86
87 neutron:
88 server:
89 lbaas:
90 enabled: true
91 providers:
Elena Ezhovacd67cfe2017-06-16 23:35:07 +040092 octavia:
93 engine: octavia
94 driver_path: 'neutron_lbaas.drivers.octavia.driver.OctaviaDriver'
95 base_url: 'http://127.0.0.1:9876'
Ondrej Smola314eee22017-03-08 21:21:16 +010096 avi_adc:
Ondrej Smola314eee22017-03-08 21:21:16 +010097 engine: avinetworks
Elena Ezhovacd67cfe2017-06-16 23:35:07 +040098 driver_path: 'avi_lbaasv2.avi_driver.AviDriver'
Ondrej Smola314eee22017-03-08 21:21:16 +010099 controller_address: 10.182.129.239
100 controller_user: admin
101 controller_password: Cloudlab2016
102 controller_cloud_name: Default-Cloud
103 avi_adc2:
104 engine: avinetworks
105 ...
106
OlgaGusarenko838c9fd2018-07-31 00:22:44 +0300107.. note:: If the Contrail backend is set, Opencontrail loadbalancer
108 would be enabled automatically. In this case lbaas should disabled
109 in pillar:
Ondrej Smola314eee22017-03-08 21:21:16 +0100110
OlgaGusarenko838c9fd2018-07-31 00:22:44 +0300111 .. code-block:: yaml
Ondrej Smola314eee22017-03-08 21:21:16 +0100112
OlgaGusarenko838c9fd2018-07-31 00:22:44 +0300113 neutron:
114 server:
115 lbaas:
116 enabled: false
Elena Ezhova166d4012017-08-17 12:53:52 +0400117
118Neutron FWaaSv1 enablement
119--------------------------
120
121.. code-block:: yaml
122
123 neutron:
124 fwaas:
125 enabled: true
126 version: ocata
127 api_version: v1
128
129
Ondrej Smola12ff8192017-04-28 12:39:11 +0200130Enable CORS parameters
Elena Ezhova166d4012017-08-17 12:53:52 +0400131----------------------
Ondrej Smola12ff8192017-04-28 12:39:11 +0200132
133.. code-block:: yaml
134
135 neutron:
136 server:
137 cors:
138 allowed_origin: https:localhost.local,http:localhost.local
139 expose_headers: X-Auth-Token,X-Openstack-Request-Id,X-Subject-Token
140 allow_methods: GET,PUT,POST,DELETE,PATCH
141 allow_headers: X-Auth-Token,X-Openstack-Request-Id,X-Subject-Token
142 allow_credentials: True
143 max_age: 86400
144
Aleš Komárek41e82312017-04-11 13:37:44 +0200145Neutron VXLAN tenant networks with Network nodes
146------------------------------------------------
Swann Croiset9407daf2017-02-02 15:27:56 +0100147
Aleš Komárek41e82312017-04-11 13:37:44 +0200148With DVR for East-West and Network node for North-South.
Jiri Broulik74f61112016-11-21 20:23:47 +0100149
150This use case describes a model utilising VxLAN overlay with DVR. The DVR
Aleš Komárek41e82312017-04-11 13:37:44 +0200151routers will only be utilized for traffic that is router within the cloud
Vasyl Saienko2fffc842017-06-14 10:35:26 +0300152infrastructure and that remains encapsulated. External traffic will be
153routed to via the network nodes.
Jiri Broulik74f61112016-11-21 20:23:47 +0100154
Vasyl Saienko2fffc842017-06-14 10:35:26 +0300155The intention is that each tenant will require at least two (2) vrouters
156one to be utilised
Jiri Broulik74f61112016-11-21 20:23:47 +0100157
OlgaGusarenko838c9fd2018-07-31 00:22:44 +0300158Neutron Server:
marcoa4428a32016-06-10 11:50:16 +0200159
160.. code-block:: yaml
161
162 neutron:
163 server:
Jiri Broulik74f61112016-11-21 20:23:47 +0100164 version: mitaka
Dmitry Stremkouski3c1be3e2017-11-18 11:04:20 +0300165 path_mtu: 1500
Jiri Broulik74f61112016-11-21 20:23:47 +0100166 bind:
167 address: 172.20.0.1
168 port: 9696
169 database:
170 engine: mysql
171 host: 127.0.0.1
172 port: 3306
173 name: neutron
174 user: neutron
175 password: pwd
176 identity:
177 engine: keystone
178 host: 127.0.0.1
179 port: 35357
180 user: neutron
181 password: pwd
182 tenant: service
Dennis Dmitriev37114722017-03-06 16:52:26 +0200183 endpoint_type: internal
Jiri Broulik74f61112016-11-21 20:23:47 +0100184 message_queue:
185 engine: rabbitmq
186 host: 127.0.0.1
187 port: 5672
188 user: openstack
189 password: pwd
190 virtual_host: '/openstack'
191 global_physnet_mtu: 9000
192 l3_ha: False # Which type of router will be created by default
193 dvr: True # disabled for non DVR use case
194 backend:
195 engine: ml2
196 tenant_network_types: "flat,vxlan"
197 external_mtu: 9000
198 mechanism:
Elena Ezhovad6a080c2017-10-09 15:25:16 +0400199 ovs:
200 driver: openvswitch
Jiri Broulik74f61112016-11-21 20:23:47 +0100201
OlgaGusarenko838c9fd2018-07-31 00:22:44 +0300202Network Node:
Jiri Broulik74f61112016-11-21 20:23:47 +0100203
204.. code-block:: yaml
205
206 neutron:
207 gateway:
208 enabled: True
209 version: mitaka
Michael Polenchuk2151b272018-06-19 18:32:31 +0400210 dhcp_lease_duration: 600
Michael Polenchukcece76d2018-06-21 14:56:17 +0400211 firewall_driver: iptables_hybrid
Jiri Broulik74f61112016-11-21 20:23:47 +0100212 message_queue:
213 engine: rabbitmq
214 host: 127.0.0.1
215 port: 5672
216 user: openstack
217 password: pwd
218 virtual_host: '/openstack'
219 local_ip: 192.168.20.20 # br-mesh ip address
220 dvr: True # disabled for non DVR use case
221 agent_mode: dvr_snat
222 metadata:
223 host: 127.0.0.1
224 password: pass
225 backend:
226 engine: ml2
227 tenant_network_types: "flat,vxlan"
228 mechanism:
Elena Ezhovad6a080c2017-10-09 15:25:16 +0400229 ovs:
230 driver: openvswitch
Vasyl Saienko4bd2d922018-07-27 09:56:38 +0000231 agents:
232 dhcp:
233 ovs_use_veth: False
Jiri Broulik74f61112016-11-21 20:23:47 +0100234
OlgaGusarenko838c9fd2018-07-31 00:22:44 +0300235Compute Node:
Jiri Broulik74f61112016-11-21 20:23:47 +0100236
237.. code-block:: yaml
238
239 neutron:
240 compute:
241 enabled: True
242 version: mitaka
243 message_queue:
244 engine: rabbitmq
245 host: 127.0.0.1
246 port: 5672
247 user: openstack
248 password: pwd
249 virtual_host: '/openstack'
250 local_ip: 192.168.20.20 # br-mesh ip address
251 dvr: True # disabled for non DVR use case
252 agent_mode: dvr
253 external_access: false # Compute node with DVR for east-west only, Network Node has True as default
254 metadata:
255 host: 127.0.0.1
Vasyl Saienko2fffc842017-06-14 10:35:26 +0300256 password: pass
Jiri Broulik74f61112016-11-21 20:23:47 +0100257 backend:
258 engine: ml2
259 tenant_network_types: "flat,vxlan"
260 mechanism:
Elena Ezhovad6a080c2017-10-09 15:25:16 +0400261 ovs:
262 driver: openvswitch
Petr Michalec61f7ab22016-11-29 16:29:09 +0100263 audit:
264 enabled: false
Jiri Broulik74f61112016-11-21 20:23:47 +0100265
Aleš Komárek41e82312017-04-11 13:37:44 +0200266
Dzmitry Stremkouskid5e89e52018-09-25 10:01:54 +0200267Setting mac base address
268------------------------
269
270By default neutron uses fa:16:3f:00:00:00 basement for mac generator.
271One can set it's own mac base both for dvr and nondvr cases.
272
273NOTE: dvr_base_mac and base_mac SHOULD differ.
274
275.. code-block:: yaml
276
277 neutron:
278 server:
279 base_mac: fa:16:3f:00:00:00
280 dvr_base_mac: fa:16:3f:a0:00:00
281
282gateways:
283
284.. code-block:: yaml
285
286 neutron:
287 gateway:
288 base_mac: fa:16:3f:00:00:00
289 dvr_base_mac: fa:16:3f:a0:00:00
290
291compute nodes:
292
293.. code-block:: yaml
294
295 neutron:
296 compute:
297 base_mac: fa:16:3f:00:00:00
298 dvr_base_mac: fa:16:3f:a0:00:00
299
300
Dmitry Stremkouskia3a4ab42017-10-23 17:37:12 +0300301Disable physnet1 bridge
302-----------------------
303
304By default we have external access turned on, so among any physnets in
305your reclass there would be additional one: physnet1, which is mapped to
306br-floating
307
308If you need internal nets only without this bridge, remove br-floating
309and configurations mappings. Disable mappings for this bridge on
310neutron-servers:
311
312.. code-block:: yaml
313
314 neutron:
315 server:
316 external_access: false
317
318gateways:
319
320.. code-block:: yaml
321
322 neutron:
323 gateway:
324 external_access: false
325
326compute nodes:
327
328.. code-block:: yaml
329
330 neutron:
331 compute:
332 external_access: false
333
334
Marcin Iwinskic50137a2018-01-22 14:18:24 +0100335Add additional bridge mappings for OVS bridges
336----------------------------------------------
337
338By default we have external access turned on, so among any physnets in
339your reclass there would be additional one: physnet1, which is mapped to
340br-floating
341
342If you need to add extra non-default bridge mappings they can be defined
343separately for both gateways and compute nodes:
344
345gateways:
346
347.. code-block:: yaml
348
349 neutron:
350 gateway:
351 bridge_mappings:
352 physnet4: br-floating-internet
353
354compute nodes:
355
356.. code-block:: yaml
357
358 neutron:
359 compute:
360 bridge_mappings:
361 physnet4: br-floating-internet
362
363
Dmitry Stremkouski4b410222017-11-18 11:29:55 +0300364Specify different mtu values for different physnets
365---------------------------------------------------
366
OlgaGusarenko838c9fd2018-07-31 00:22:44 +0300367Neutron Server:
Dmitry Stremkouski4b410222017-11-18 11:29:55 +0300368
369.. code-block:: yaml
370
371 neutron:
372 server:
373 version: mitaka
374 backend:
375 external_mtu: 1500
376 tenant_net_mtu: 9000
377 ironic_net_mtu: 9000
378
Jiri Broulik74f61112016-11-21 20:23:47 +0100379Neutron VXLAN tenant networks with Network Nodes (non DVR)
Aleš Komárek41e82312017-04-11 13:37:44 +0200380----------------------------------------------------------
Jiri Broulik74f61112016-11-21 20:23:47 +0100381
382This section describes a network solution that utilises VxLAN overlay
383 networks without DVR with all routers being managed on the network nodes.
384
OlgaGusarenko838c9fd2018-07-31 00:22:44 +0300385Neutron Server:
Jiri Broulik74f61112016-11-21 20:23:47 +0100386
387.. code-block:: yaml
388
389 neutron:
390 server:
391 version: mitaka
Jiri Broulik74f61112016-11-21 20:23:47 +0100392 bind:
393 address: 172.20.0.1
394 port: 9696
395 database:
396 engine: mysql
397 host: 127.0.0.1
398 port: 3306
399 name: neutron
400 user: neutron
401 password: pwd
402 identity:
403 engine: keystone
404 host: 127.0.0.1
405 port: 35357
406 user: neutron
407 password: pwd
408 tenant: service
Dennis Dmitriev37114722017-03-06 16:52:26 +0200409 endpoint_type: internal
Jiri Broulik74f61112016-11-21 20:23:47 +0100410 message_queue:
411 engine: rabbitmq
412 host: 127.0.0.1
413 port: 5672
414 user: openstack
415 password: pwd
416 virtual_host: '/openstack'
417 global_physnet_mtu: 9000
418 l3_ha: True
419 dvr: False
420 backend:
421 engine: ml2
422 tenant_network_types= "flat,vxlan"
423 external_mtu: 9000
424 mechanism:
Elena Ezhovad6a080c2017-10-09 15:25:16 +0400425 ovs:
426 driver: openvswitch
Jiri Broulik74f61112016-11-21 20:23:47 +0100427
OlgaGusarenko838c9fd2018-07-31 00:22:44 +0300428Network Node:
Jiri Broulik74f61112016-11-21 20:23:47 +0100429
430.. code-block:: yaml
431
432 neutron:
433 gateway:
434 enabled: True
435 version: mitaka
436 message_queue:
437 engine: rabbitmq
438 host: 127.0.0.1
439 port: 5672
440 user: openstack
441 password: pwd
442 virtual_host: '/openstack'
443 local_ip: 192.168.20.20 # br-mesh ip address
444 dvr: False
445 agent_mode: legacy
Simon Pasquierc03af112017-04-10 10:35:14 +0200446 availability_zone: az1
Jiri Broulik74f61112016-11-21 20:23:47 +0100447 metadata:
448 host: 127.0.0.1
449 password: pass
450 backend:
451 engine: ml2
452 tenant_network_types: "flat,vxlan"
453 mechanism:
Elena Ezhovad6a080c2017-10-09 15:25:16 +0400454 ovs:
455 driver: openvswitch
Jiri Broulik74f61112016-11-21 20:23:47 +0100456
OlgaGusarenko838c9fd2018-07-31 00:22:44 +0300457Compute Node:
Jiri Broulik74f61112016-11-21 20:23:47 +0100458
459.. code-block:: yaml
460
461 neutron:
462 compute:
463 enabled: True
464 version: mitaka
465 message_queue:
466 engine: rabbitmq
467 host: 127.0.0.1
468 port: 5672
469 user: openstack
470 password: pwd
471 virtual_host: '/openstack'
472 local_ip: 192.168.20.20 # br-mesh ip address
473 external_access: False
Vasyl Saienko2fffc842017-06-14 10:35:26 +0300474 dvr: False
Jiri Broulik74f61112016-11-21 20:23:47 +0100475 backend:
476 engine: ml2
477 tenant_network_types: "flat,vxlan"
478 mechanism:
Elena Ezhovad6a080c2017-10-09 15:25:16 +0400479 ovs:
480 driver: openvswitch
Jiri Broulik74f61112016-11-21 20:23:47 +0100481
Aleš Komárek41e82312017-04-11 13:37:44 +0200482Neutron VXLAN tenant networks with Network Nodes with DVR
483---------------------------------------------------------
484
OlgaGusarenko838c9fd2018-07-31 00:22:44 +0300485With DVR for East-West and North-South, DVR everywhere, Network
486node for SNAT.
Jiri Broulik74f61112016-11-21 20:23:47 +0100487
Vasyl Saienko2fffc842017-06-14 10:35:26 +0300488This section describes a network solution that utilises VxLAN
489overlay networks with DVR with North-South and East-West. Network
Jiri Broulik74f61112016-11-21 20:23:47 +0100490Node is used only for SNAT.
491
OlgaGusarenko838c9fd2018-07-31 00:22:44 +0300492Neutron Server:
Jiri Broulik74f61112016-11-21 20:23:47 +0100493
494.. code-block:: yaml
495
496 neutron:
497 server:
498 version: mitaka
Jiri Broulik74f61112016-11-21 20:23:47 +0100499 bind:
500 address: 172.20.0.1
501 port: 9696
502 database:
503 engine: mysql
504 host: 127.0.0.1
505 port: 3306
506 name: neutron
507 user: neutron
508 password: pwd
509 identity:
510 engine: keystone
511 host: 127.0.0.1
512 port: 35357
513 user: neutron
514 password: pwd
515 tenant: service
Dennis Dmitriev37114722017-03-06 16:52:26 +0200516 endpoint_type: internal
Jiri Broulik74f61112016-11-21 20:23:47 +0100517 message_queue:
518 engine: rabbitmq
519 host: 127.0.0.1
520 port: 5672
521 user: openstack
522 password: pwd
523 virtual_host: '/openstack'
524 global_physnet_mtu: 9000
525 l3_ha: False
526 dvr: True
527 backend:
528 engine: ml2
529 tenant_network_types= "flat,vxlan"
530 external_mtu: 9000
531 mechanism:
Elena Ezhovad6a080c2017-10-09 15:25:16 +0400532 ovs:
533 driver: openvswitch
Jiri Broulik74f61112016-11-21 20:23:47 +0100534
OlgaGusarenko838c9fd2018-07-31 00:22:44 +0300535Network Node:
Jiri Broulik74f61112016-11-21 20:23:47 +0100536
537.. code-block:: yaml
538
539 neutron:
540 gateway:
541 enabled: True
542 version: mitaka
543 message_queue:
544 engine: rabbitmq
545 host: 127.0.0.1
546 port: 5672
547 user: openstack
548 password: pwd
549 virtual_host: '/openstack'
550 local_ip: 192.168.20.20 # br-mesh ip address
551 dvr: True
552 agent_mode: dvr_snat
Simon Pasquierc03af112017-04-10 10:35:14 +0200553 availability_zone: az1
Jiri Broulik74f61112016-11-21 20:23:47 +0100554 metadata:
555 host: 127.0.0.1
556 password: pass
557 backend:
558 engine: ml2
559 tenant_network_types: "flat,vxlan"
560 mechanism:
Elena Ezhovad6a080c2017-10-09 15:25:16 +0400561 ovs:
562 driver: openvswitch
Jiri Broulik74f61112016-11-21 20:23:47 +0100563
OlgaGusarenko838c9fd2018-07-31 00:22:44 +0300564Compute Node:
Jiri Broulik74f61112016-11-21 20:23:47 +0100565
566.. code-block:: yaml
567
568 neutron:
569 compute:
570 enabled: True
571 version: mitaka
572 message_queue:
573 engine: rabbitmq
574 host: 127.0.0.1
575 port: 5672
576 user: openstack
577 password: pwd
578 virtual_host: '/openstack'
579 local_ip: 192.168.20.20 # br-mesh ip address
580 dvr: True
Vasyl Saienko2fffc842017-06-14 10:35:26 +0300581 external_access: True
Jiri Broulik74f61112016-11-21 20:23:47 +0100582 agent_mode: dvr
Simon Pasquierc03af112017-04-10 10:35:14 +0200583 availability_zone: az1
Jiri Broulik74f61112016-11-21 20:23:47 +0100584 metadata:
585 host: 127.0.0.1
586 password: pass
587 backend:
588 engine: ml2
589 tenant_network_types: "flat,vxlan"
590 mechanism:
Elena Ezhovad6a080c2017-10-09 15:25:16 +0400591 ovs:
592 driver: openvswitch
Jiri Broulik74f61112016-11-21 20:23:47 +0100593
OlgaGusarenko838c9fd2018-07-31 00:22:44 +0300594Sample Linux network configuration for DVR:
Jiri Broulik74f61112016-11-21 20:23:47 +0100595
596.. code-block:: yaml
597
598 linux:
599 network:
600 bridge: openvswitch
601 interface:
602 eth1:
603 enabled: true
604 type: eth
605 mtu: 9000
606 proto: manual
607 eth2:
608 enabled: true
609 type: eth
610 mtu: 9000
611 proto: manual
612 eth3:
613 enabled: true
614 type: eth
615 mtu: 9000
616 proto: manual
617 br-int:
618 enabled: true
619 mtu: 9000
620 type: ovs_bridge
621 br-floating:
622 enabled: true
623 mtu: 9000
624 type: ovs_bridge
625 float-to-ex:
626 enabled: true
627 type: ovs_port
628 mtu: 65000
629 bridge: br-floating
630 br-mgmt:
631 enabled: true
632 type: bridge
633 mtu: 9000
634 address: ${_param:single_address}
635 netmask: 255.255.255.0
636 use_interfaces:
637 - eth1
638 br-mesh:
639 enabled: true
640 type: bridge
641 mtu: 9000
642 address: ${_param:tenant_address}
643 netmask: 255.255.255.0
644 use_interfaces:
645 - eth2
646 br-ex:
647 enabled: true
648 type: bridge
649 mtu: 9000
650 address: ${_param:external_address}
651 netmask: 255.255.255.0
652 use_interfaces:
653 - eth3
654 use_ovs_ports:
655 - float-to-ex
656
Thom Gerdes3282d072017-05-30 22:06:04 +0000657Additonal VXLAN tenant network settings
658---------------------------------------
659
OlgaGusarenko838c9fd2018-07-31 00:22:44 +0300660The default multicast group of ``224.0.0.1`` only multicasts
661to a single subnet. Allow overriding it to allow larger underlay
662network topologies.
Thom Gerdes3282d072017-05-30 22:06:04 +0000663
OlgaGusarenko838c9fd2018-07-31 00:22:44 +0300664Neutron Server:
Thom Gerdes3282d072017-05-30 22:06:04 +0000665
666.. code-block:: yaml
667
668 neutron:
669 server:
670 vxlan:
671 group: 239.0.0.0/8
672 vni_ranges: "2:65535"
673
Jiri Broulik74f61112016-11-21 20:23:47 +0100674Neutron VLAN tenant networks with Network Nodes
Aleš Komárek41e82312017-04-11 13:37:44 +0200675-----------------------------------------------
Jiri Broulik74f61112016-11-21 20:23:47 +0100676
677VLAN tenant provider
678
OlgaGusarenko838c9fd2018-07-31 00:22:44 +0300679Neutron Server only:
Jiri Broulik74f61112016-11-21 20:23:47 +0100680
681.. code-block:: yaml
682
683 neutron:
684 server:
685 version: mitaka
Jiri Broulik74f61112016-11-21 20:23:47 +0100686 ...
687 global_physnet_mtu: 9000
688 l3_ha: False
689 dvr: True
690 backend:
691 engine: ml2
692 tenant_network_types: "flat,vlan" # Can be mixed flat,vlan,vxlan
693 tenant_vlan_range: "1000:2000"
694 external_vlan_range: "100:200" # Does not have to be defined.
695 external_mtu: 9000
696 mechanism:
Elena Ezhovad6a080c2017-10-09 15:25:16 +0400697 ovs:
698 driver: openvswitch
Jiri Broulik74f61112016-11-21 20:23:47 +0100699
OlgaGusarenko838c9fd2018-07-31 00:22:44 +0300700Compute node:
Jiri Broulik74f61112016-11-21 20:23:47 +0100701
702.. code-block:: yaml
703
704 neutron:
705 compute:
706 version: mitaka
Jiri Broulik74f61112016-11-21 20:23:47 +0100707 ...
708 dvr: True
709 agent_mode: dvr
710 external_access: False
711 backend:
712 engine: ml2
713 tenant_network_types: "flat,vlan" # Can be mixed flat,vlan,vxlan
714 mechanism:
Elena Ezhovad6a080c2017-10-09 15:25:16 +0400715 ovs:
716 driver: openvswitch
Jiri Broulik74f61112016-11-21 20:23:47 +0100717
Oleg Bondarevddb9af12018-07-02 19:07:57 +0400718Neutron with explicit physical networks
719---------------------------------------
Oleg Bondarevada324f2018-06-04 14:55:38 +0400720
OlgaGusarenko838c9fd2018-07-31 00:22:44 +0300721Neutron Server only:
Oleg Bondarevada324f2018-06-04 14:55:38 +0400722
723.. code-block:: yaml
724
725 neutron:
726 server:
727 version: ocata
728 ...
729 backend:
730 engine: ml2
731 tenant_network_types: "flat,vlan" # Can be mixed flat,vlan,vxlan
732 ...
Oleg Bondarevddb9af12018-07-02 19:07:57 +0400733 # also need to configure corresponding bridge_mappings on
Oleg Bondarevada324f2018-06-04 14:55:38 +0400734 # compute and gateway nodes
Oleg Bondarev47d9e2d2018-07-03 13:22:26 +0400735 flat_networks_default: '*' # '*' to allow arbitrary names or '' to disable
Oleg Bondarevddb9af12018-07-02 19:07:57 +0400736 physnets: # only listed physnets will be configured (overrides physnet1/2/3)
737 external:
738 mtu: 1500
Oleg Bondarev47d9e2d2018-07-03 13:22:26 +0400739 types:
740 - flat # possible values - 'flat' or 'vlan'
Oleg Bondarevada324f2018-06-04 14:55:38 +0400741 sriov_net:
742 mtu: 9000 # Optional, defaults to 1500
743 vlan_range: '100:200' # Optional
Oleg Bondarev47d9e2d2018-07-03 13:22:26 +0400744 types:
745 - vlan
Oleg Bondarevada324f2018-06-04 14:55:38 +0400746 ext_net2:
747 mtu: 1500
Oleg Bondarev47d9e2d2018-07-03 13:22:26 +0400748 types:
749 - flat
750 - vlan
Oleg Bondarevada324f2018-06-04 14:55:38 +0400751 mechanism:
752 ovs:
753 driver: openvswitch
754
Aleš Komárek41e82312017-04-11 13:37:44 +0200755Advanced Neutron Features (DPDK, SR-IOV)
Oleg Bondarev0575ae42017-07-28 16:36:25 +0400756----------------------------------------
Aleš Komárek41e82312017-04-11 13:37:44 +0200757
Jakub Pavlik8f83ccc2017-02-27 11:15:39 +0100758Neutron OVS DPDK
Jakub Pavlik8f83ccc2017-02-27 11:15:39 +0100759
OlgaGusarenko838c9fd2018-07-31 00:22:44 +0300760Enable datapath netdev for neutron openvswitch agent:
Jakub Pavlik8f83ccc2017-02-27 11:15:39 +0100761
762.. code-block:: yaml
763
764 neutron:
765 server:
766 version: mitaka
767 ...
768 dpdk: True
769 ...
770
771 neutron:
772 compute:
773 version: mitaka
Jakub Pavlik8f83ccc2017-02-27 11:15:39 +0100774 dpdk: True
Michael Polenchuk52911652018-04-12 22:09:49 +0400775 vhost_mode: client # options: client|server (default)
Oleg Bondarevee7e8302017-10-16 17:20:38 +0400776 vhost_socket_dir: /var/run/openvswitch
Jakub Pavlik8f83ccc2017-02-27 11:15:39 +0100777 backend:
778 engine: ml2
779 ...
780 mechanism:
Elena Ezhovad6a080c2017-10-09 15:25:16 +0400781 ovs:
782 driver: openvswitch
Jakub Pavlik8f83ccc2017-02-27 11:15:39 +0100783
OlgaGusarenko838c9fd2018-07-31 00:22:44 +0300784Neutron OVS SR-IOV:
Jakub Pavlik70555cb2017-02-26 18:48:02 +0100785
786.. code-block:: yaml
787
788 neutron:
789 server:
790 version: mitaka
Jakub Pavlik70555cb2017-02-26 18:48:02 +0100791 backend:
792 engine: ml2
793 ...
794 mechanism:
Elena Ezhovad6a080c2017-10-09 15:25:16 +0400795 ovs:
796 driver: openvswitch
797 sriov:
798 driver: sriovnicswitch
Michael Polenchuk0bf59a72018-06-19 18:06:56 +0400799 # Driver w/ highest number will be placed ahead in the list (default is 0).
800 # It's recommended for SR-IOV driver to set an order >0 to get it
801 # before (for example) the opendaylight one.
802 order: 9
Jakub Pavlik70555cb2017-02-26 18:48:02 +0100803
804 neutron:
805 compute:
806 version: mitaka
Jakub Pavlik70555cb2017-02-26 18:48:02 +0100807 ...
808 backend:
809 engine: ml2
810 tenant_network_types: "flat,vlan" # Can be mixed flat,vlan,vxlan
811 sriov:
812 nic_one:
813 devname: eth1
814 physical_network: physnet3
815 mechanism:
Elena Ezhovad6a080c2017-10-09 15:25:16 +0400816 ovs:
817 driver: openvswitch
Jakub Pavlik70555cb2017-02-26 18:48:02 +0100818
Ilya Chukhnakovf4c2bb32017-06-08 02:03:15 +0300819Neutron with VLAN-aware-VMs
Oleg Bondarev0575ae42017-07-28 16:36:25 +0400820---------------------------
Ilya Chukhnakovf4c2bb32017-06-08 02:03:15 +0300821
822.. code-block:: yaml
823
824 neutron:
825 server:
826 vlan_aware_vms: true
827 ....
828 compute:
829 vlan_aware_vms: true
830 ....
831 gateway:
832 vlan_aware_vms: true
833
Oleg Bondarevacb2e532018-03-06 10:43:59 +0400834Neutron with BGP VPN (BaGPipe driver)
OlgaGusarenko838c9fd2018-07-31 00:22:44 +0300835-------------------------------------
Oleg Bondarevb63d27f2018-02-14 19:21:06 +0400836
837.. code-block:: yaml
838
839 neutron:
840 server:
841 version: pike
842 bgp_vpn:
Oleg Bondarevacb2e532018-03-06 10:43:59 +0400843 enabled: true
Michael Polenchuk0b3c5dd2018-06-27 12:04:32 +0400844 driver: bagpipe # Options: bagpipe/opencontrail/opendaylight[_v2]
Oleg Bondarevb63d27f2018-02-14 19:21:06 +0400845 ....
846 compute:
847 version: pike
848 bgp_vpn:
Oleg Bondarevacb2e532018-03-06 10:43:59 +0400849 enabled: true
Michael Polenchuk0b3c5dd2018-06-27 12:04:32 +0400850 driver: bagpipe # Options: bagpipe/opencontrail/opendaylight[_v2]
Oleg Bondarevacb2e532018-03-06 10:43:59 +0400851 bagpipe:
852 local_address: 192.168.20.20 # IP address for mpls/gre tunnels
853 peers: 192.168.20.30 # IP addresses of BGP peers
854 autonomous_system: 64512 # Autonomous System number
855 enable_rtc: True # Enable RT Constraint (RFC4684)
Oleg Bondarevb63d27f2018-02-14 19:21:06 +0400856 backend:
Oleg Bondarev878ac462018-04-23 17:48:15 +0400857 ovs_extension: # for OVS agent only, not supported in SRIOV agent
Oleg Bondarevb63d27f2018-02-14 19:21:06 +0400858 bagpipe_bgpvpn:
859 enabled: True
860
Oleksii Chupryn16cb4e02018-02-26 14:20:39 +0200861Neutron with DHCP agent on compute node
862---------------------------------------
863
864.. code-block:: yaml
865
866 neutron:
867 ....
868 compute:
869 dhcp_agent_enabled: true
870 ....
871
Oleg Bondarev0575ae42017-07-28 16:36:25 +0400872Neutron with OVN
873----------------
874
875Control node:
876
877.. code-block:: yaml
878
879 neutron:
880 server:
881 backend:
882 engine: ovn
883 mechanism:
884 ovn:
885 driver: ovn
886 tenant_network_types: "geneve,flat"
Michael Polenchukf59229b2018-06-19 16:24:49 +0400887 ovn:
888 ovn_l3_scheduler: leastloaded # valid options: chance, leastloaded
889 neutron_sync_mode: repair # valid options: log, off, repair
Michael Polenchuk58161ef2018-05-15 18:04:09 +0400890 metadata_enabled: True
Michael Polenchuka3d492b2017-12-27 15:49:43 +0400891 ovn_ctl_opts:
892 db-nb-create-insecure-remote: 'yes'
893 db-sb-create-insecure-remote: 'yes'
Oleg Bondarev0575ae42017-07-28 16:36:25 +0400894
895Compute node:
896
897.. code-block:: yaml
898
899 neutron:
900 compute:
901 local_ip: 10.2.0.105
902 controller_vip: 10.1.0.101
903 external_access: false
904 backend:
905 engine: ovn
Michael Polenchuk58161ef2018-05-15 18:04:09 +0400906 ovsdb_connection: tcp:127.0.0.1:6640
907 metadata:
908 enabled: true
909 ovsdb_server_iface: ptcp:6640:127.0.0.1
910 host: 10.1.0.101
911 password: unsegreto
912
Oleg Bondarev0575ae42017-07-28 16:36:25 +0400913
Michael Polenchukcccd1a52018-02-02 17:41:16 +0400914Neutron L2 Gateway
915----------------
916
917Control node:
918
919.. code-block:: yaml
920
921 neutron:
922 server:
923 version: pike
924 l2gw:
925 enabled: true
926 periodic_monitoring_interval: 5
927 quota_l2_gateway: 20
928 # service_provider=<service_type>:<name>:<driver>[:default]
929 service_provider: L2GW:OpenDaylight:networking_odl.l2gateway.driver.OpenDaylightL2gwDriver:default
930 backend:
931 engine: ml2
932
933Network/Gateway node:
934
935.. code-block:: yaml
936
937 neutron:
938 gateway:
939 version: pike
940 l2gw:
941 enabled: true
942 debug: true
943 socket_timeout: 20
944 ovsdb_hosts:
945 # <ovsdb_name>: <ip address>:<port>
946 # - ovsdb_name: a user defined symbolic identifier of physical switch
947 # - ip address: the address or dns name for the OVSDB server (i.e. pointer to the switch)
948 ovsdb1: 10.164.5.33:6632
949 ovsdb2: 10.164.4.33:6632
950
951
Michael Polenchuk87d2b742017-06-29 12:05:25 +0400952OpenDaylight integration
953------------------------
954
955Control node:
956
957.. code-block:: yaml
958
959 neutron:
960 server:
961 backend:
962 opendaylight: true
963 router: odl-router_v2
964 host: 10.20.0.77
965 rest_api_port: 8282
966 user: admin
967 password: admin
968 ovsdb_connection: tcp:127.0.0.1:6639
Oleksii Chuprynfed79572018-07-20 14:11:35 +0300969 ovsdb_interface: native
Michael Polenchuk87d2b742017-06-29 12:05:25 +0400970 enable_websocket: true
971 enable_dhcp_service: false
972 mechanism:
973 ovs:
974 driver: opendaylight_v2
Michael Polenchuk0bf59a72018-06-19 18:06:56 +0400975 order: 1
Michael Polenchuk87d2b742017-06-29 12:05:25 +0400976
977Network/Gateway node:
978
979.. code-block:: yaml
980
981 neutron:
982 gateway:
983 backend:
984 router: odl-router_v2
985 ovsdb_connection: tcp:127.0.0.1:6639
Oleksii Chuprynfed79572018-07-20 14:11:35 +0300986 ovsdb_interface: native
Michael Polenchuk87d2b742017-06-29 12:05:25 +0400987 opendaylight:
988 ovsdb_server_iface: ptcp:6639:127.0.0.1
989 ovsdb_odl_iface: tcp:10.20.0.77:6640
990 tunnel_ip: 10.1.0.110
991 provider_mappings: physnet1:br-floating
992
993Compute node:
994
995.. code-block:: yaml
996
997 neutron:
998 compute:
999 opendaylight:
1000 ovsdb_server_iface: ptcp:6639:127.0.0.1
1001 ovsdb_odl_iface: tcp:10.20.0.77:6640
1002 tunnel_ip: 10.1.0.105
1003 provider_mappings: physnet1:br-floating
1004
1005
Michael Polenchuk9cccecc2018-09-14 14:54:18 +04001006Service Function Chaining Extension (SFC)
1007----------------
1008
1009.. code-block:: yaml
1010
1011 neutron:
1012 server:
1013 sfc:
1014 enabled: true
1015 sfc_drivers:
1016 - ovs # valid options: ovs, odl, ovn (not implemented yet)
1017 flow_classifier_drivers:
1018 - ovs # valid options: see above
1019 ....
1020 compute:
1021 backend:
1022 ovs_extension:
1023 sfc:
1024 enabled: True
1025
1026
Aleš Komárek41e82312017-04-11 13:37:44 +02001027Neutron Server
1028--------------
1029
OlgaGusarenko838c9fd2018-07-31 00:22:44 +03001030Neutron Server with OpenContrail:
Jiri Broulik74f61112016-11-21 20:23:47 +01001031
1032.. code-block:: yaml
1033
1034 neutron:
1035 server:
marcoa4428a32016-06-10 11:50:16 +02001036 backend:
1037 engine: contrail
1038 host: contrail_discovery_host
1039 port: 8082
1040 user: admin
1041 password: password
1042 tenant: admin
1043 token: token
1044
OlgaGusarenko838c9fd2018-07-31 00:22:44 +03001045Neutron Server with Midonet:
marcoa4428a32016-06-10 11:50:16 +02001046
1047.. code-block:: yaml
1048
1049 neutron:
1050 server:
1051 backend:
1052 engine: midonet
1053 host: midonet_api_host
1054 port: 8181
1055 user: admin
1056 password: password
1057
OlgaGusarenko838c9fd2018-07-31 00:22:44 +03001058Neutron Server with NSX:
Vasyl Saienko4549efe2018-07-26 16:06:04 +00001059
1060.. code-block:: yaml
1061
1062 neutron:
1063 server:
1064 backend:
1065 engine: vmware
1066 core_plugin: vmware_nsxv3
1067 vmware:
1068 nsx:
1069 extension_drivers:
1070 - vmware_nsxv3_dns
1071 v3:
1072 api_password: nsx_password
1073 api_user: nsx_username
1074 api_managers:
1075 01:
1076 scheme: https
1077 host: 192.168.10.120
1078 port: '443'
1079 insecure: true
1080
OlgaGusarenko838c9fd2018-07-31 00:22:44 +03001081Neutron Keystone region:
Jakub Pavlik6dd5c0a2016-03-09 14:18:15 +01001082
1083.. code-block:: yaml
1084
1085 neutron:
1086 server:
1087 enabled: true
1088 version: kilo
1089 ...
1090 identity:
1091 region: RegionTwo
1092 ...
1093 compute:
1094 region: RegionTwo
1095 ...
1096
OlgaGusarenko838c9fd2018-07-31 00:22:44 +03001097Client-side RabbitMQ HA setup:
Jiri Konecny93b19992016-04-12 11:15:39 +02001098
1099.. code-block:: yaml
1100
1101 neutron:
1102 server:
1103 ....
1104 message_queue:
1105 engine: rabbitmq
1106 members:
1107 - host: 10.0.16.1
1108 - host: 10.0.16.2
1109 - host: 10.0.16.3
1110 user: openstack
1111 password: pwd
1112 virtual_host: '/openstack'
1113 ....
1114
Kirill Bespalovdd748b62017-11-21 10:42:57 +03001115Configuring TLS communications
1116------------------------------
Kirill Bespalov8fffe022017-08-03 17:55:02 +03001117
OlgaGusarenko838c9fd2018-07-31 00:22:44 +03001118.. note:: By default, system-wide installed CA certs are used,
1119 so ``cacert_file`` param is optional, as well as ``cacert``.
Kirill Bespalovdd748b62017-11-21 10:42:57 +03001120
1121- **RabbitMQ TLS**
Kirill Bespalov8fffe022017-08-03 17:55:02 +03001122
OlgaGusarenko838c9fd2018-07-31 00:22:44 +03001123 .. code-block:: yaml
Kirill Bespalov8fffe022017-08-03 17:55:02 +03001124
OlgaGusarenko838c9fd2018-07-31 00:22:44 +03001125 neutron:
1126 server, gateway, compute:
1127 message_queue:
1128 port: 5671
1129 ssl:
1130 enabled: True
1131 (optional) cacert: cert body if the cacert_file does not exists
1132 (optional) cacert_file: /etc/openstack/rabbitmq-ca.pem
1133 (optional) version: TLSv1_2
Kirill Bespalov8fffe022017-08-03 17:55:02 +03001134
Kirill Bespalovdd748b62017-11-21 10:42:57 +03001135- **MySQL TLS**
Kirill Bespalov8fffe022017-08-03 17:55:02 +03001136
OlgaGusarenko838c9fd2018-07-31 00:22:44 +03001137 .. code-block:: yaml
Kirill Bespalov8fffe022017-08-03 17:55:02 +03001138
OlgaGusarenko838c9fd2018-07-31 00:22:44 +03001139 neutron:
1140 server:
1141 database:
1142 ssl:
1143 enabled: True
1144 (optional) cacert: cert body if the cacert_file does not exists
1145 (optional) cacert_file: /etc/openstack/mysql-ca.pem
Kirill Bespalov8fffe022017-08-03 17:55:02 +03001146
Kirill Bespalovdd748b62017-11-21 10:42:57 +03001147- **Openstack HTTPS API**
1148
OlgaGusarenko838c9fd2018-07-31 00:22:44 +03001149 .. code-block:: yaml
Kirill Bespalov8fffe022017-08-03 17:55:02 +03001150
OlgaGusarenko838c9fd2018-07-31 00:22:44 +03001151 neutron:
1152 server:
1153 identity:
1154 protocol: https
1155 (optional) cacert_file: /etc/openstack/proxy.pem
Kirill Bespalov8fffe022017-08-03 17:55:02 +03001156
OlgaGusarenko838c9fd2018-07-31 00:22:44 +03001157Enable auditing filter, ie: CADF:
Petr Michalec61f7ab22016-11-29 16:29:09 +01001158
1159.. code-block:: yaml
1160
1161 neutron:
1162 server:
1163 audit:
1164 enabled: true
1165 ....
1166 filter_factory: 'keystonemiddleware.audit:filter_factory'
1167 map_file: '/etc/pycadf/neutron_api_audit_map.conf'
1168 ....
1169 compute:
1170 audit:
1171 enabled: true
1172 ....
1173 filter_factory: 'keystonemiddleware.audit:filter_factory'
1174 map_file: '/etc/pycadf/neutron_api_audit_map.conf'
1175 ....
Jiri Konecny93b19992016-04-12 11:15:39 +02001176
OlgaGusarenko838c9fd2018-07-31 00:22:44 +03001177Neutron with security groups disabled:
Oleg Bondarev98870a32017-05-29 16:53:19 +04001178
1179.. code-block:: yaml
1180
1181 neutron:
1182 server:
1183 security_groups_enabled: False
1184 ....
1185 compute:
1186 security_groups_enabled: False
1187 ....
1188 gateway:
1189 security_groups_enabled: False
1190
Jiri Konecny93b19992016-04-12 11:15:39 +02001191
Aleš Komárek41e82312017-04-11 13:37:44 +02001192Neutron Client
1193--------------
Jiri Broulik5368cc52017-02-08 18:53:59 +01001194
OlgaGusarenko838c9fd2018-07-31 00:22:44 +03001195Neutron networks:
Jiri Broulik5368cc52017-02-08 18:53:59 +01001196
1197.. code-block:: yaml
1198
1199 neutron:
1200 client:
1201 enabled: true
1202 server:
1203 identity:
Richard Felklaac256a2017-03-23 15:43:49 +01001204 endpoint_type: internalURL
Jiri Broulik5368cc52017-02-08 18:53:59 +01001205 network:
1206 inet1:
1207 tenant: demo
1208 shared: False
1209 admin_state_up: True
1210 router_external: True
1211 provider_physical_network: inet
1212 provider_network_type: flat
1213 provider_segmentation_id: 2
1214 subnet:
1215 inet1-subnet1:
1216 cidr: 192.168.90.0/24
1217 enable_dhcp: False
1218 inet2:
1219 tenant: admin
1220 shared: False
1221 router_external: True
1222 provider_network_type: "vlan"
1223 subnet:
1224 inet2-subnet1:
1225 cidr: 192.168.92.0/24
1226 enable_dhcp: False
1227 inet2-subnet2:
1228 cidr: 192.168.94.0/24
1229 enable_dhcp: True
1230 identity1:
1231 network:
1232 ...
1233
OlgaGusarenko838c9fd2018-07-31 00:22:44 +03001234Neutron routers:
Jiri Broulik5368cc52017-02-08 18:53:59 +01001235
1236.. code-block:: yaml
1237
1238 neutron:
1239 client:
1240 enabled: true
1241 server:
1242 identity:
Richard Felklaac256a2017-03-23 15:43:49 +01001243 endpoint_type: internalURL
Jiri Broulik5368cc52017-02-08 18:53:59 +01001244 router:
1245 inet1-router:
1246 tenant: demo
1247 admin_state_up: True
1248 gateway_network: inet
1249 interfaces:
1250 - inet1-subnet1
1251 - inet1-subnet2
1252 identity1:
1253 router:
1254 ...
1255
OlgaGusarenko838c9fd2018-07-31 00:22:44 +03001256.. TODO implement adding new interfaces to a router while updating it
Jiri Broulik5368cc52017-02-08 18:53:59 +01001257
OlgaGusarenko838c9fd2018-07-31 00:22:44 +03001258Neutron security groups:
Jiri Broulik5368cc52017-02-08 18:53:59 +01001259
1260.. code-block:: yaml
1261
1262 neutron:
1263 client:
1264 enabled: true
1265 server:
1266 identity:
Richard Felklaac256a2017-03-23 15:43:49 +01001267 endpoint_type: internalURL
Jiri Broulik5368cc52017-02-08 18:53:59 +01001268 security_group:
1269 security_group1:
1270 tenant: demo
1271 description: security group 1
1272 rules:
1273 - direction: ingress
1274 ethertype: IPv4
1275 protocol: TCP
1276 port_range_min: 1
1277 port_range_max: 65535
1278 remote_ip_prefix: 0.0.0.0/0
1279 - direction: ingress
1280 ethertype: IPv4
1281 protocol: UDP
1282 port_range_min: 1
1283 port_range_max: 65535
1284 remote_ip_prefix: 0.0.0.0/0
1285 - direction: ingress
1286 protocol: ICMP
1287 remote_ip_prefix: 0.0.0.0/0
1288 identity1:
1289 security_group:
1290 ...
1291
OlgaGusarenko838c9fd2018-07-31 00:22:44 +03001292.. TODO: implement updating existing security rules (now it adds new rule if
1293 trying to update existing one)
Jiri Broulik5368cc52017-02-08 18:53:59 +01001294
OlgaGusarenko838c9fd2018-07-31 00:22:44 +03001295Floating IP addresses:
Jiri Broulikde2e2902017-02-13 15:03:47 +01001296
1297.. code-block:: yaml
1298
1299 neutron:
1300 client:
1301 enabled: true
1302 server:
1303 identity:
Richard Felklaac256a2017-03-23 15:43:49 +01001304 endpoint_type: internalURL
Jiri Broulikde2e2902017-02-13 15:03:47 +01001305 floating_ip:
1306 prx01-instance:
1307 server: prx01.mk22-lab-basic.local
1308 subnet: private-subnet1
1309 network: public-net1
1310 tenant: demo
1311 gtw01-instance:
1312 ...
1313
1314.. note:: The network must have flag router:external set to True.
OlgaGusarenko838c9fd2018-07-31 00:22:44 +03001315 Instance port in the stated subnet will be associated
1316 with the dynamically generated floating IP.
Oleg Iurchenkode71cc22017-09-18 17:58:56 +03001317
1318Enable Neutron extensions (QoS, DNS, etc.)
1319------------------------------------------
OlgaGusarenko838c9fd2018-07-31 00:22:44 +03001320
Oleg Iurchenkode71cc22017-09-18 17:58:56 +03001321.. code-block:: yaml
1322
1323 neutron:
1324 server:
1325 backend:
1326 extension:
Oleg Iurchenkoac17f4f2017-10-06 11:24:27 +03001327 dns:
1328 enabled: True
1329 host: 127.0.0.1
1330 port: 9001
1331 protocol: http
1332 ....
1333 qos
1334 enabled: True
Oleg Iurchenkode71cc22017-09-18 17:58:56 +03001335
Oleg Bondarev878ac462018-04-23 17:48:15 +04001336Different Neutron extensions for different agents
1337-------------------------------------------------
OlgaGusarenko838c9fd2018-07-31 00:22:44 +03001338
Oleg Bondarev878ac462018-04-23 17:48:15 +04001339.. code-block:: yaml
1340
1341 neutron:
1342 server:
1343 backend:
1344 extension: # common extensions for OVS and SRIOV agents
1345 dns:
1346 enabled: True
1347 ...
1348 qos
1349 enabled: True
1350 ovs_extension: # OVS specific extensions
1351 bagpipe_bgpvpn:
1352 enabled: True
1353 sriov_extension: # SRIOV specific extensions
1354 dummy:
1355 enabled: True
Oleg Iurchenkode71cc22017-09-18 17:58:56 +03001356
Oleg Iurchenko8cf6cf52017-09-18 15:44:03 +03001357Neutron with Designate
1358-----------------------------------------
OlgaGusarenko838c9fd2018-07-31 00:22:44 +03001359
Oleg Iurchenko8cf6cf52017-09-18 15:44:03 +03001360.. code-block:: yaml
1361
1362 neutron:
1363 server:
1364 backend:
1365 extension:
1366 dns:
1367 enabled: True
1368 host: 127.0.0.1
1369 port: 9001
1370 protocol: http
1371
Marek Celoud67ce2062018-01-31 13:44:55 +01001372Enable RBAC for OpenContrail engine
1373-----------------------------------
OlgaGusarenko838c9fd2018-07-31 00:22:44 +03001374
Marek Celoud67ce2062018-01-31 13:44:55 +01001375.. code-block:: yaml
1376
1377 neutron:
1378 server:
1379 backend:
1380 engine: contrail
1381 rbac:
1382 enabled: True
Oleg Iurchenko8cf6cf52017-09-18 15:44:03 +03001383
Dmitry Kalashnik35dd0e02017-12-07 14:16:25 +04001384Enhanced logging with logging.conf
1385----------------------------------
1386
OlgaGusarenko838c9fd2018-07-31 00:22:44 +03001387By default ``logging.conf`` is disabled.
Dmitry Kalashnik35dd0e02017-12-07 14:16:25 +04001388
1389That is possible to enable per-binary logging.conf with new variables:
Dmitry Kalashnik35dd0e02017-12-07 14:16:25 +04001390
OlgaGusarenko838c9fd2018-07-31 00:22:44 +03001391* ``openstack_log_appender``
1392 Set to true to enable ``log_config_append`` for all OpenStack services
1393
1394* ``openstack_fluentd_handler_enabled``
1395 Set to true to enable FluentHandler for all Openstack services
1396
1397* ``openstack_ossyslog_handler_enabled``
1398 Set to true to enable OSSysLogHandler for all Openstack services.
1399
1400Only ``WatchedFileHandler``, ``OSSysLogHandler``, and ``FluentHandler``
1401are available.
Dmitry Kalashnik35dd0e02017-12-07 14:16:25 +04001402
1403Also it is possible to configure this with pillar:
1404
1405.. code-block:: yaml
1406
1407 neutron:
1408 server:
1409 logging:
1410 log_appender: true
1411 log_handlers:
1412 watchedfile:
1413 enabled: true
1414 fluentd:
1415 enabled: true
Oleksii Chupryn156c5f42018-02-07 10:06:50 +02001416 ossyslog:
1417 enabled: true
Dmitry Kalashnik35dd0e02017-12-07 14:16:25 +04001418 ....
1419 compute:
1420 logging:
1421 log_appender: true
1422 log_handlers:
1423 watchedfile:
1424 enabled: true
1425 fluentd:
1426 enabled: true
Oleksii Chupryn156c5f42018-02-07 10:06:50 +02001427 ossyslog:
1428 enabled: true
Dmitry Kalashnik35dd0e02017-12-07 14:16:25 +04001429 ....
1430 gateway:
1431 logging:
1432 log_appender: true
1433 log_handlers:
1434 watchedfile:
1435 enabled: true
1436 fluentd:
1437 enabled: true
Oleksii Chupryn156c5f42018-02-07 10:06:50 +02001438 ossyslog:
1439 enabled: true
Oleg Iurchenko8cf6cf52017-09-18 15:44:03 +03001440
Oleksii Grudevfe73ee52018-05-14 14:08:11 +03001441Logging levels pillar example:
1442
1443.. code-block:: yaml
1444
1445 neutron:
1446 server:
1447 logging:
1448 log_appender: true
1449 loggers:
1450 root:
1451 level: 'DEBUG'
1452 neutron:
1453 level: 'DEBUG'
1454 amqplib:
1455 level: 'DEBUG'
1456 sqlalchemy:
1457 level: 'DEBUG'
1458 boto:
1459 level: 'DEBUG'
1460 suds:
1461 level: 'DEBUG'
1462 eventletwsgi:
1463 level: 'DEBUG'
1464 ......
1465
Vasyl Saienkoba420732018-09-07 10:19:32 +00001466Upgrades
1467========
1468
1469Each openstack formula provide set of phases (logical bloks) that will help to
1470build flexible upgrade orchestration logic for particular components. The list
1471of phases might and theirs descriptions are listed in table below:
1472
1473+-------------------------------+------------------------------------------------------+
1474| State | Description |
1475+===============================+======================================================+
1476| <app>.upgrade.service_running | Ensure that all services for particular application |
1477| | are enabled for autostart and running |
1478+-------------------------------+------------------------------------------------------+
1479| <app>.upgrade.service_stopped | Ensure that all services for particular application |
1480| | disabled for autostart and dead |
1481+-------------------------------+------------------------------------------------------+
1482| <app>.upgrade.pkg_latest | Ensure that packages used by particular application |
1483| | are installed to latest available version. |
1484| | This will not upgrade data plane packages like qemu |
1485| | and openvswitch as usually minimal required version |
1486| | in openstack services is really old. The data plane |
1487| | packages should be upgraded separately by `apt-get |
1488| | upgrade` or `apt-get dist-upgrade` |
1489| | Applying this state will not autostart service. |
1490+-------------------------------+------------------------------------------------------+
1491| <app>.upgrade.render_config | Ensure configuration is rendered actual version. +
1492+-------------------------------+------------------------------------------------------+
1493| <app>.upgrade.pre | We assume this state is applied on all nodes in the |
1494| | cloud before running upgrade. |
1495| | Only non destructive actions will be applied during |
1496| | this phase. Perform service built in service check |
1497| | like (keystone-manage doctor and nova-status upgrade)|
1498+-------------------------------+------------------------------------------------------+
1499| <app>.upgrade.upgrade.pre | Mostly applicable for data plane nodes. During this |
1500| | phase resources will be gracefully removed from |
1501| | current node if it is allowed. Services for upgraded |
1502| | application will be set to admin disabled state to |
1503| | make sure node will not participate in resources |
1504| | scheduling. For example on gtw nodes this will set |
1505| | all agents to admin disable state and will move all |
1506| | routers to other agents. |
1507+-------------------------------+------------------------------------------------------+
1508| <app>.upgrade.upgrade | This state will basically upgrade application on |
1509| | particular target. Stop services, render |
1510| | configuration, install new packages, run offline |
1511| | dbsync (for ctl), start services. Data plane should |
1512| | not be affected, only OpenStack python services. |
1513+-------------------------------+------------------------------------------------------+
1514| <app>.upgrade.upgrade.post | Add services back to scheduling. |
1515+-------------------------------+------------------------------------------------------+
1516| <app>.upgrade.post | This phase should be launched only when upgrade of |
1517| | the cloud is completed. |
1518+-------------------------------+------------------------------------------------------+
1519| <app>.upgrade.verify | Here we will do basic health checks (API CRUD |
1520| | operations, verify do not have dead network |
1521| | agents/compute services) |
1522+-------------------------------+------------------------------------------------------+
1523
1524
Oleksandr Shyshkof51b94c2018-08-31 16:05:27 +03001525Enable x509 and ssl communication between Neutron and Galera cluster.
1526---------------------
1527By default communication between Neutron and Galera is unsecure.
1528
1529neutron:
1530 server:
1531 database:
1532 x509:
1533 enabled: True
1534
1535You able to set custom certificates in pillar:
1536
1537neutron:
1538 server:
1539 database:
1540 x509:
1541 cacert: (certificate content)
1542 cert: (certificate content)
1543 key: (certificate content)
1544
1545You can read more about it here:
1546 https://docs.openstack.org/security-guide/databases/database-access-control.html
1547
Filip Pytloun20c0a442017-02-02 13:05:13 +01001548Documentation and Bugs
1549======================
1550
OlgaGusarenko838c9fd2018-07-31 00:22:44 +03001551* http://salt-formulas.readthedocs.io/
1552 Learn how to install and update salt-formulas
Filip Pytloun20c0a442017-02-02 13:05:13 +01001553
OlgaGusarenko838c9fd2018-07-31 00:22:44 +03001554* https://github.com/salt-formulas/salt-formula-neutron/issues
1555 In the unfortunate event that bugs are discovered, report the issue to the
1556 appropriate issue tracker. Use the Github issue tracker for a specific salt
1557 formula
Filip Pytloun20c0a442017-02-02 13:05:13 +01001558
OlgaGusarenko838c9fd2018-07-31 00:22:44 +03001559* https://launchpad.net/salt-formulas
1560 For feature requests, bug reports, or blueprints affecting the entire
1561 ecosystem, use the Launchpad salt-formulas project
Filip Pytloun20c0a442017-02-02 13:05:13 +01001562
OlgaGusarenko838c9fd2018-07-31 00:22:44 +03001563* https://launchpad.net/~salt-formulas-users
1564 Join the salt-formulas-users team and subscribe to mailing list if required
Filip Pytloun20c0a442017-02-02 13:05:13 +01001565
OlgaGusarenko838c9fd2018-07-31 00:22:44 +03001566* https://github.com/salt-formulas/salt-formula-neutron
1567 Develop the salt-formulas projects in the master branch and then submit pull
1568 requests against a specific formula
Filip Pytloun20c0a442017-02-02 13:05:13 +01001569
OlgaGusarenko838c9fd2018-07-31 00:22:44 +03001570* #salt-formulas @ irc.freenode.net
1571 Use this IRC channel in case of any questions or feedback which is always
1572 welcome
Filip Pytloun20c0a442017-02-02 13:05:13 +01001573