blob: 86afc25cae23ac7441fa81a90f0cc49a808494cb [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
Oleg Bondarevbc2dfee2018-10-17 18:41:51 +040032 agent_boot_time: 180
Filip Pytlouncd028e42015-10-06 16:28:32 +020033 bind:
34 address: 172.20.0.1
35 port: 9696
Filip Pytlouncd028e42015-10-06 16:28:32 +020036 database:
37 engine: mysql
38 host: 127.0.0.1
39 port: 3306
40 name: neutron
41 user: neutron
42 password: pwd
43 identity:
44 engine: keystone
45 host: 127.0.0.1
46 port: 35357
47 user: neutron
48 password: pwd
49 tenant: service
Dennis Dmitriev37114722017-03-06 16:52:26 +020050 endpoint_type: internal
Filip Pytlouncd028e42015-10-06 16:28:32 +020051 message_queue:
52 engine: rabbitmq
53 host: 127.0.0.1
54 port: 5672
55 user: openstack
56 password: pwd
57 virtual_host: '/openstack'
58 metadata:
59 host: 127.0.0.1
60 port: 8775
Dzmitry Stremkouskiea470182018-10-24 15:33:35 +020061 insecure: true
62 proto: https
Filip Pytlouncd028e42015-10-06 16:28:32 +020063 password: pass
Mykyta Karpin253406d2017-12-08 17:01:37 +020064 workers: 2
Petr Michalec61f7ab22016-11-29 16:29:09 +010065 audit:
66 enabled: false
Filip Pytlouncd028e42015-10-06 16:28:32 +020067
OlgaGusarenko838c9fd2018-07-31 00:22:44 +030068.. note:: The pagination is useful to retrieve a large bunch of resources,
69 because a single request may fail (timeout). This is enabled with both
70 parameters *allow_pagination* and *pagination_max_limit* as shown above.
Swann Croiset9407daf2017-02-02 15:27:56 +010071
OlgaGusarenko838c9fd2018-07-31 00:22:44 +030072Configuration of policy.json file:
Dmitry Ukov596ddcf2017-05-04 18:16:16 +040073
74.. code-block:: yaml
75
76 neutron:
77 server:
78 ....
79 policy:
80 create_subnet: 'rule:admin_or_network_owner'
81 'get_network:queue_id': 'rule:admin_only'
82 # Add key without value to remove line from policy.json
83 'create_network:shared':
84
Elena Ezhovacd67cfe2017-06-16 23:35:07 +040085Neutron LBaaSv2 enablement
86--------------------------
Ondrej Smola314eee22017-03-08 21:21:16 +010087
88.. code-block:: yaml
89
90 neutron:
91 server:
92 lbaas:
93 enabled: true
94 providers:
Elena Ezhovacd67cfe2017-06-16 23:35:07 +040095 octavia:
96 engine: octavia
97 driver_path: 'neutron_lbaas.drivers.octavia.driver.OctaviaDriver'
98 base_url: 'http://127.0.0.1:9876'
Ondrej Smola314eee22017-03-08 21:21:16 +010099 avi_adc:
Ondrej Smola314eee22017-03-08 21:21:16 +0100100 engine: avinetworks
Elena Ezhovacd67cfe2017-06-16 23:35:07 +0400101 driver_path: 'avi_lbaasv2.avi_driver.AviDriver'
Ondrej Smola314eee22017-03-08 21:21:16 +0100102 controller_address: 10.182.129.239
103 controller_user: admin
104 controller_password: Cloudlab2016
105 controller_cloud_name: Default-Cloud
106 avi_adc2:
107 engine: avinetworks
108 ...
109
OlgaGusarenko838c9fd2018-07-31 00:22:44 +0300110.. note:: If the Contrail backend is set, Opencontrail loadbalancer
111 would be enabled automatically. In this case lbaas should disabled
112 in pillar:
Ondrej Smola314eee22017-03-08 21:21:16 +0100113
OlgaGusarenko838c9fd2018-07-31 00:22:44 +0300114 .. code-block:: yaml
Ondrej Smola314eee22017-03-08 21:21:16 +0100115
OlgaGusarenko838c9fd2018-07-31 00:22:44 +0300116 neutron:
117 server:
118 lbaas:
119 enabled: false
Elena Ezhova166d4012017-08-17 12:53:52 +0400120
121Neutron FWaaSv1 enablement
122--------------------------
123
124.. code-block:: yaml
125
126 neutron:
127 fwaas:
128 enabled: true
129 version: ocata
130 api_version: v1
131
132
Ondrej Smola12ff8192017-04-28 12:39:11 +0200133Enable CORS parameters
Elena Ezhova166d4012017-08-17 12:53:52 +0400134----------------------
Ondrej Smola12ff8192017-04-28 12:39:11 +0200135
136.. code-block:: yaml
137
138 neutron:
139 server:
140 cors:
141 allowed_origin: https:localhost.local,http:localhost.local
142 expose_headers: X-Auth-Token,X-Openstack-Request-Id,X-Subject-Token
143 allow_methods: GET,PUT,POST,DELETE,PATCH
144 allow_headers: X-Auth-Token,X-Openstack-Request-Id,X-Subject-Token
145 allow_credentials: True
146 max_age: 86400
147
Aleš Komárek41e82312017-04-11 13:37:44 +0200148Neutron VXLAN tenant networks with Network nodes
149------------------------------------------------
Swann Croiset9407daf2017-02-02 15:27:56 +0100150
Aleš Komárek41e82312017-04-11 13:37:44 +0200151With DVR for East-West and Network node for North-South.
Jiri Broulik74f61112016-11-21 20:23:47 +0100152
153This use case describes a model utilising VxLAN overlay with DVR. The DVR
Aleš Komárek41e82312017-04-11 13:37:44 +0200154routers will only be utilized for traffic that is router within the cloud
Vasyl Saienko2fffc842017-06-14 10:35:26 +0300155infrastructure and that remains encapsulated. External traffic will be
156routed to via the network nodes.
Jiri Broulik74f61112016-11-21 20:23:47 +0100157
Vasyl Saienko2fffc842017-06-14 10:35:26 +0300158The intention is that each tenant will require at least two (2) vrouters
159one to be utilised
Jiri Broulik74f61112016-11-21 20:23:47 +0100160
OlgaGusarenko838c9fd2018-07-31 00:22:44 +0300161Neutron Server:
marcoa4428a32016-06-10 11:50:16 +0200162
163.. code-block:: yaml
164
165 neutron:
166 server:
Jiri Broulik74f61112016-11-21 20:23:47 +0100167 version: mitaka
Dmitry Stremkouski3c1be3e2017-11-18 11:04:20 +0300168 path_mtu: 1500
Jiri Broulik74f61112016-11-21 20:23:47 +0100169 bind:
170 address: 172.20.0.1
171 port: 9696
172 database:
173 engine: mysql
174 host: 127.0.0.1
175 port: 3306
176 name: neutron
177 user: neutron
178 password: pwd
179 identity:
180 engine: keystone
181 host: 127.0.0.1
182 port: 35357
183 user: neutron
184 password: pwd
185 tenant: service
Dennis Dmitriev37114722017-03-06 16:52:26 +0200186 endpoint_type: internal
Jiri Broulik74f61112016-11-21 20:23:47 +0100187 message_queue:
188 engine: rabbitmq
189 host: 127.0.0.1
190 port: 5672
191 user: openstack
192 password: pwd
193 virtual_host: '/openstack'
194 global_physnet_mtu: 9000
195 l3_ha: False # Which type of router will be created by default
196 dvr: True # disabled for non DVR use case
197 backend:
198 engine: ml2
199 tenant_network_types: "flat,vxlan"
200 external_mtu: 9000
201 mechanism:
Elena Ezhovad6a080c2017-10-09 15:25:16 +0400202 ovs:
203 driver: openvswitch
Jiri Broulik74f61112016-11-21 20:23:47 +0100204
OlgaGusarenko838c9fd2018-07-31 00:22:44 +0300205Network Node:
Jiri Broulik74f61112016-11-21 20:23:47 +0100206
207.. code-block:: yaml
208
209 neutron:
210 gateway:
211 enabled: True
212 version: mitaka
Michael Polenchuk2151b272018-06-19 18:32:31 +0400213 dhcp_lease_duration: 600
Michael Polenchukcece76d2018-06-21 14:56:17 +0400214 firewall_driver: iptables_hybrid
Jiri Broulik74f61112016-11-21 20:23:47 +0100215 message_queue:
216 engine: rabbitmq
217 host: 127.0.0.1
218 port: 5672
219 user: openstack
220 password: pwd
221 virtual_host: '/openstack'
222 local_ip: 192.168.20.20 # br-mesh ip address
223 dvr: True # disabled for non DVR use case
224 agent_mode: dvr_snat
225 metadata:
226 host: 127.0.0.1
227 password: pass
228 backend:
229 engine: ml2
230 tenant_network_types: "flat,vxlan"
231 mechanism:
Elena Ezhovad6a080c2017-10-09 15:25:16 +0400232 ovs:
233 driver: openvswitch
Vasyl Saienko4bd2d922018-07-27 09:56:38 +0000234 agents:
235 dhcp:
236 ovs_use_veth: False
Jiri Broulik74f61112016-11-21 20:23:47 +0100237
OlgaGusarenko838c9fd2018-07-31 00:22:44 +0300238Compute Node:
Jiri Broulik74f61112016-11-21 20:23:47 +0100239
240.. code-block:: yaml
241
242 neutron:
243 compute:
244 enabled: True
245 version: mitaka
246 message_queue:
247 engine: rabbitmq
248 host: 127.0.0.1
249 port: 5672
250 user: openstack
251 password: pwd
252 virtual_host: '/openstack'
253 local_ip: 192.168.20.20 # br-mesh ip address
254 dvr: True # disabled for non DVR use case
255 agent_mode: dvr
256 external_access: false # Compute node with DVR for east-west only, Network Node has True as default
257 metadata:
258 host: 127.0.0.1
Vasyl Saienko2fffc842017-06-14 10:35:26 +0300259 password: pass
Jiri Broulik74f61112016-11-21 20:23:47 +0100260 backend:
261 engine: ml2
262 tenant_network_types: "flat,vxlan"
263 mechanism:
Elena Ezhovad6a080c2017-10-09 15:25:16 +0400264 ovs:
265 driver: openvswitch
Petr Michalec61f7ab22016-11-29 16:29:09 +0100266 audit:
267 enabled: false
Jiri Broulik74f61112016-11-21 20:23:47 +0100268
Aleš Komárek41e82312017-04-11 13:37:44 +0200269
Dzmitry Stremkouskid5e89e52018-09-25 10:01:54 +0200270Setting mac base address
271------------------------
272
273By default neutron uses fa:16:3f:00:00:00 basement for mac generator.
274One can set it's own mac base both for dvr and nondvr cases.
275
276NOTE: dvr_base_mac and base_mac SHOULD differ.
277
278.. code-block:: yaml
279
280 neutron:
281 server:
282 base_mac: fa:16:3f:00:00:00
283 dvr_base_mac: fa:16:3f:a0:00:00
284
285gateways:
286
287.. code-block:: yaml
288
289 neutron:
290 gateway:
291 base_mac: fa:16:3f:00:00:00
292 dvr_base_mac: fa:16:3f:a0:00:00
293
294compute nodes:
295
296.. code-block:: yaml
297
298 neutron:
299 compute:
300 base_mac: fa:16:3f:00:00:00
301 dvr_base_mac: fa:16:3f:a0:00:00
302
303
Dmitry Stremkouskia3a4ab42017-10-23 17:37:12 +0300304Disable physnet1 bridge
305-----------------------
306
307By default we have external access turned on, so among any physnets in
308your reclass there would be additional one: physnet1, which is mapped to
309br-floating
310
311If you need internal nets only without this bridge, remove br-floating
312and configurations mappings. Disable mappings for this bridge on
313neutron-servers:
314
315.. code-block:: yaml
316
317 neutron:
318 server:
319 external_access: false
320
321gateways:
322
323.. code-block:: yaml
324
325 neutron:
326 gateway:
327 external_access: false
328
329compute nodes:
330
331.. code-block:: yaml
332
333 neutron:
334 compute:
335 external_access: false
336
337
Marcin Iwinskic50137a2018-01-22 14:18:24 +0100338Add additional bridge mappings for OVS bridges
339----------------------------------------------
340
341By default we have external access turned on, so among any physnets in
342your reclass there would be additional one: physnet1, which is mapped to
343br-floating
344
345If you need to add extra non-default bridge mappings they can be defined
346separately for both gateways and compute nodes:
347
348gateways:
349
350.. code-block:: yaml
351
352 neutron:
353 gateway:
354 bridge_mappings:
355 physnet4: br-floating-internet
356
357compute nodes:
358
359.. code-block:: yaml
360
361 neutron:
362 compute:
363 bridge_mappings:
364 physnet4: br-floating-internet
365
366
Dmitry Stremkouski4b410222017-11-18 11:29:55 +0300367Specify different mtu values for different physnets
368---------------------------------------------------
369
OlgaGusarenko838c9fd2018-07-31 00:22:44 +0300370Neutron Server:
Dmitry Stremkouski4b410222017-11-18 11:29:55 +0300371
372.. code-block:: yaml
373
374 neutron:
375 server:
376 version: mitaka
377 backend:
378 external_mtu: 1500
379 tenant_net_mtu: 9000
380 ironic_net_mtu: 9000
381
Jiri Broulik74f61112016-11-21 20:23:47 +0100382Neutron VXLAN tenant networks with Network Nodes (non DVR)
Aleš Komárek41e82312017-04-11 13:37:44 +0200383----------------------------------------------------------
Jiri Broulik74f61112016-11-21 20:23:47 +0100384
385This section describes a network solution that utilises VxLAN overlay
386 networks without DVR with all routers being managed on the network nodes.
387
OlgaGusarenko838c9fd2018-07-31 00:22:44 +0300388Neutron Server:
Jiri Broulik74f61112016-11-21 20:23:47 +0100389
390.. code-block:: yaml
391
392 neutron:
393 server:
394 version: mitaka
Jiri Broulik74f61112016-11-21 20:23:47 +0100395 bind:
396 address: 172.20.0.1
397 port: 9696
398 database:
399 engine: mysql
400 host: 127.0.0.1
401 port: 3306
402 name: neutron
403 user: neutron
404 password: pwd
405 identity:
406 engine: keystone
407 host: 127.0.0.1
408 port: 35357
409 user: neutron
410 password: pwd
411 tenant: service
Dennis Dmitriev37114722017-03-06 16:52:26 +0200412 endpoint_type: internal
Jiri Broulik74f61112016-11-21 20:23:47 +0100413 message_queue:
414 engine: rabbitmq
415 host: 127.0.0.1
416 port: 5672
417 user: openstack
418 password: pwd
419 virtual_host: '/openstack'
420 global_physnet_mtu: 9000
421 l3_ha: True
422 dvr: False
423 backend:
424 engine: ml2
425 tenant_network_types= "flat,vxlan"
426 external_mtu: 9000
427 mechanism:
Elena Ezhovad6a080c2017-10-09 15:25:16 +0400428 ovs:
429 driver: openvswitch
Jiri Broulik74f61112016-11-21 20:23:47 +0100430
OlgaGusarenko838c9fd2018-07-31 00:22:44 +0300431Network Node:
Jiri Broulik74f61112016-11-21 20:23:47 +0100432
433.. code-block:: yaml
434
435 neutron:
436 gateway:
437 enabled: True
438 version: mitaka
439 message_queue:
440 engine: rabbitmq
441 host: 127.0.0.1
442 port: 5672
443 user: openstack
444 password: pwd
445 virtual_host: '/openstack'
446 local_ip: 192.168.20.20 # br-mesh ip address
447 dvr: False
448 agent_mode: legacy
Simon Pasquierc03af112017-04-10 10:35:14 +0200449 availability_zone: az1
Jiri Broulik74f61112016-11-21 20:23:47 +0100450 metadata:
451 host: 127.0.0.1
452 password: pass
453 backend:
454 engine: ml2
455 tenant_network_types: "flat,vxlan"
456 mechanism:
Elena Ezhovad6a080c2017-10-09 15:25:16 +0400457 ovs:
458 driver: openvswitch
Jiri Broulik74f61112016-11-21 20:23:47 +0100459
OlgaGusarenko838c9fd2018-07-31 00:22:44 +0300460Compute Node:
Jiri Broulik74f61112016-11-21 20:23:47 +0100461
462.. code-block:: yaml
463
464 neutron:
465 compute:
466 enabled: True
467 version: mitaka
468 message_queue:
469 engine: rabbitmq
470 host: 127.0.0.1
471 port: 5672
472 user: openstack
473 password: pwd
474 virtual_host: '/openstack'
475 local_ip: 192.168.20.20 # br-mesh ip address
476 external_access: False
Vasyl Saienko2fffc842017-06-14 10:35:26 +0300477 dvr: False
Jiri Broulik74f61112016-11-21 20:23:47 +0100478 backend:
479 engine: ml2
480 tenant_network_types: "flat,vxlan"
481 mechanism:
Elena Ezhovad6a080c2017-10-09 15:25:16 +0400482 ovs:
483 driver: openvswitch
Jiri Broulik74f61112016-11-21 20:23:47 +0100484
Aleš Komárek41e82312017-04-11 13:37:44 +0200485Neutron VXLAN tenant networks with Network Nodes with DVR
486---------------------------------------------------------
487
OlgaGusarenko838c9fd2018-07-31 00:22:44 +0300488With DVR for East-West and North-South, DVR everywhere, Network
489node for SNAT.
Jiri Broulik74f61112016-11-21 20:23:47 +0100490
Vasyl Saienko2fffc842017-06-14 10:35:26 +0300491This section describes a network solution that utilises VxLAN
492overlay networks with DVR with North-South and East-West. Network
Jiri Broulik74f61112016-11-21 20:23:47 +0100493Node is used only for SNAT.
494
OlgaGusarenko838c9fd2018-07-31 00:22:44 +0300495Neutron Server:
Jiri Broulik74f61112016-11-21 20:23:47 +0100496
497.. code-block:: yaml
498
499 neutron:
500 server:
501 version: mitaka
Jiri Broulik74f61112016-11-21 20:23:47 +0100502 bind:
503 address: 172.20.0.1
504 port: 9696
505 database:
506 engine: mysql
507 host: 127.0.0.1
508 port: 3306
509 name: neutron
510 user: neutron
511 password: pwd
512 identity:
513 engine: keystone
514 host: 127.0.0.1
515 port: 35357
516 user: neutron
517 password: pwd
518 tenant: service
Dennis Dmitriev37114722017-03-06 16:52:26 +0200519 endpoint_type: internal
Jiri Broulik74f61112016-11-21 20:23:47 +0100520 message_queue:
521 engine: rabbitmq
522 host: 127.0.0.1
523 port: 5672
524 user: openstack
525 password: pwd
526 virtual_host: '/openstack'
527 global_physnet_mtu: 9000
528 l3_ha: False
529 dvr: True
530 backend:
531 engine: ml2
532 tenant_network_types= "flat,vxlan"
533 external_mtu: 9000
534 mechanism:
Elena Ezhovad6a080c2017-10-09 15:25:16 +0400535 ovs:
536 driver: openvswitch
Jiri Broulik74f61112016-11-21 20:23:47 +0100537
OlgaGusarenko838c9fd2018-07-31 00:22:44 +0300538Network Node:
Jiri Broulik74f61112016-11-21 20:23:47 +0100539
540.. code-block:: yaml
541
542 neutron:
543 gateway:
544 enabled: True
545 version: mitaka
546 message_queue:
547 engine: rabbitmq
548 host: 127.0.0.1
549 port: 5672
550 user: openstack
551 password: pwd
552 virtual_host: '/openstack'
553 local_ip: 192.168.20.20 # br-mesh ip address
554 dvr: True
555 agent_mode: dvr_snat
Simon Pasquierc03af112017-04-10 10:35:14 +0200556 availability_zone: az1
Jiri Broulik74f61112016-11-21 20:23:47 +0100557 metadata:
558 host: 127.0.0.1
559 password: pass
560 backend:
561 engine: ml2
562 tenant_network_types: "flat,vxlan"
563 mechanism:
Elena Ezhovad6a080c2017-10-09 15:25:16 +0400564 ovs:
565 driver: openvswitch
Jiri Broulik74f61112016-11-21 20:23:47 +0100566
OlgaGusarenko838c9fd2018-07-31 00:22:44 +0300567Compute Node:
Jiri Broulik74f61112016-11-21 20:23:47 +0100568
569.. code-block:: yaml
570
571 neutron:
572 compute:
573 enabled: True
574 version: mitaka
575 message_queue:
576 engine: rabbitmq
577 host: 127.0.0.1
578 port: 5672
579 user: openstack
580 password: pwd
581 virtual_host: '/openstack'
582 local_ip: 192.168.20.20 # br-mesh ip address
583 dvr: True
Vasyl Saienko2fffc842017-06-14 10:35:26 +0300584 external_access: True
Jiri Broulik74f61112016-11-21 20:23:47 +0100585 agent_mode: dvr
Simon Pasquierc03af112017-04-10 10:35:14 +0200586 availability_zone: az1
Jiri Broulik74f61112016-11-21 20:23:47 +0100587 metadata:
588 host: 127.0.0.1
589 password: pass
590 backend:
591 engine: ml2
592 tenant_network_types: "flat,vxlan"
593 mechanism:
Elena Ezhovad6a080c2017-10-09 15:25:16 +0400594 ovs:
595 driver: openvswitch
Jiri Broulik74f61112016-11-21 20:23:47 +0100596
OlgaGusarenko838c9fd2018-07-31 00:22:44 +0300597Sample Linux network configuration for DVR:
Jiri Broulik74f61112016-11-21 20:23:47 +0100598
599.. code-block:: yaml
600
601 linux:
602 network:
603 bridge: openvswitch
604 interface:
605 eth1:
606 enabled: true
607 type: eth
608 mtu: 9000
609 proto: manual
610 eth2:
611 enabled: true
612 type: eth
613 mtu: 9000
614 proto: manual
615 eth3:
616 enabled: true
617 type: eth
618 mtu: 9000
619 proto: manual
620 br-int:
621 enabled: true
622 mtu: 9000
623 type: ovs_bridge
624 br-floating:
625 enabled: true
626 mtu: 9000
627 type: ovs_bridge
628 float-to-ex:
629 enabled: true
630 type: ovs_port
631 mtu: 65000
632 bridge: br-floating
633 br-mgmt:
634 enabled: true
635 type: bridge
636 mtu: 9000
637 address: ${_param:single_address}
638 netmask: 255.255.255.0
639 use_interfaces:
640 - eth1
641 br-mesh:
642 enabled: true
643 type: bridge
644 mtu: 9000
645 address: ${_param:tenant_address}
646 netmask: 255.255.255.0
647 use_interfaces:
648 - eth2
649 br-ex:
650 enabled: true
651 type: bridge
652 mtu: 9000
653 address: ${_param:external_address}
654 netmask: 255.255.255.0
655 use_interfaces:
656 - eth3
657 use_ovs_ports:
658 - float-to-ex
659
Thom Gerdes3282d072017-05-30 22:06:04 +0000660Additonal VXLAN tenant network settings
661---------------------------------------
662
OlgaGusarenko838c9fd2018-07-31 00:22:44 +0300663The default multicast group of ``224.0.0.1`` only multicasts
664to a single subnet. Allow overriding it to allow larger underlay
665network topologies.
Thom Gerdes3282d072017-05-30 22:06:04 +0000666
OlgaGusarenko838c9fd2018-07-31 00:22:44 +0300667Neutron Server:
Thom Gerdes3282d072017-05-30 22:06:04 +0000668
669.. code-block:: yaml
670
671 neutron:
672 server:
673 vxlan:
674 group: 239.0.0.0/8
675 vni_ranges: "2:65535"
676
Jiri Broulik74f61112016-11-21 20:23:47 +0100677Neutron VLAN tenant networks with Network Nodes
Aleš Komárek41e82312017-04-11 13:37:44 +0200678-----------------------------------------------
Jiri Broulik74f61112016-11-21 20:23:47 +0100679
680VLAN tenant provider
681
OlgaGusarenko838c9fd2018-07-31 00:22:44 +0300682Neutron Server only:
Jiri Broulik74f61112016-11-21 20:23:47 +0100683
684.. code-block:: yaml
685
686 neutron:
687 server:
688 version: mitaka
Jiri Broulik74f61112016-11-21 20:23:47 +0100689 ...
690 global_physnet_mtu: 9000
691 l3_ha: False
692 dvr: True
693 backend:
694 engine: ml2
695 tenant_network_types: "flat,vlan" # Can be mixed flat,vlan,vxlan
696 tenant_vlan_range: "1000:2000"
697 external_vlan_range: "100:200" # Does not have to be defined.
698 external_mtu: 9000
699 mechanism:
Elena Ezhovad6a080c2017-10-09 15:25:16 +0400700 ovs:
701 driver: openvswitch
Jiri Broulik74f61112016-11-21 20:23:47 +0100702
OlgaGusarenko838c9fd2018-07-31 00:22:44 +0300703Compute node:
Jiri Broulik74f61112016-11-21 20:23:47 +0100704
705.. code-block:: yaml
706
707 neutron:
708 compute:
709 version: mitaka
Jiri Broulik74f61112016-11-21 20:23:47 +0100710 ...
711 dvr: True
712 agent_mode: dvr
713 external_access: False
714 backend:
715 engine: ml2
716 tenant_network_types: "flat,vlan" # Can be mixed flat,vlan,vxlan
717 mechanism:
Elena Ezhovad6a080c2017-10-09 15:25:16 +0400718 ovs:
719 driver: openvswitch
Jiri Broulik74f61112016-11-21 20:23:47 +0100720
Oleg Bondarevddb9af12018-07-02 19:07:57 +0400721Neutron with explicit physical networks
722---------------------------------------
Oleg Bondarevada324f2018-06-04 14:55:38 +0400723
OlgaGusarenko838c9fd2018-07-31 00:22:44 +0300724Neutron Server only:
Oleg Bondarevada324f2018-06-04 14:55:38 +0400725
726.. code-block:: yaml
727
728 neutron:
729 server:
730 version: ocata
731 ...
732 backend:
733 engine: ml2
734 tenant_network_types: "flat,vlan" # Can be mixed flat,vlan,vxlan
735 ...
Oleg Bondarevddb9af12018-07-02 19:07:57 +0400736 # also need to configure corresponding bridge_mappings on
Oleg Bondarevada324f2018-06-04 14:55:38 +0400737 # compute and gateway nodes
Oleg Bondarev47d9e2d2018-07-03 13:22:26 +0400738 flat_networks_default: '*' # '*' to allow arbitrary names or '' to disable
Oleg Bondarevddb9af12018-07-02 19:07:57 +0400739 physnets: # only listed physnets will be configured (overrides physnet1/2/3)
740 external:
741 mtu: 1500
Oleg Bondarev47d9e2d2018-07-03 13:22:26 +0400742 types:
743 - flat # possible values - 'flat' or 'vlan'
Oleg Bondarevada324f2018-06-04 14:55:38 +0400744 sriov_net:
745 mtu: 9000 # Optional, defaults to 1500
Oleg Bondarevab324112018-11-19 17:56:57 +0400746 vlan_range: '100:200,300:400' # Optional
Oleg Bondarev47d9e2d2018-07-03 13:22:26 +0400747 types:
748 - vlan
Oleg Bondarevada324f2018-06-04 14:55:38 +0400749 ext_net2:
750 mtu: 1500
Oleg Bondarev47d9e2d2018-07-03 13:22:26 +0400751 types:
752 - flat
753 - vlan
Oleg Bondarevada324f2018-06-04 14:55:38 +0400754 mechanism:
755 ovs:
756 driver: openvswitch
757
Aleš Komárek41e82312017-04-11 13:37:44 +0200758Advanced Neutron Features (DPDK, SR-IOV)
Oleg Bondarev0575ae42017-07-28 16:36:25 +0400759----------------------------------------
Aleš Komárek41e82312017-04-11 13:37:44 +0200760
Jakub Pavlik8f83ccc2017-02-27 11:15:39 +0100761Neutron OVS DPDK
Jakub Pavlik8f83ccc2017-02-27 11:15:39 +0100762
OlgaGusarenko838c9fd2018-07-31 00:22:44 +0300763Enable datapath netdev for neutron openvswitch agent:
Jakub Pavlik8f83ccc2017-02-27 11:15:39 +0100764
765.. code-block:: yaml
766
767 neutron:
768 server:
769 version: mitaka
770 ...
771 dpdk: True
772 ...
773
774 neutron:
775 compute:
776 version: mitaka
Jakub Pavlik8f83ccc2017-02-27 11:15:39 +0100777 dpdk: True
Michael Polenchuk52911652018-04-12 22:09:49 +0400778 vhost_mode: client # options: client|server (default)
Oleg Bondarevee7e8302017-10-16 17:20:38 +0400779 vhost_socket_dir: /var/run/openvswitch
Jakub Pavlik8f83ccc2017-02-27 11:15:39 +0100780 backend:
781 engine: ml2
782 ...
783 mechanism:
Elena Ezhovad6a080c2017-10-09 15:25:16 +0400784 ovs:
785 driver: openvswitch
Jakub Pavlik8f83ccc2017-02-27 11:15:39 +0100786
OlgaGusarenko838c9fd2018-07-31 00:22:44 +0300787Neutron OVS SR-IOV:
Jakub Pavlik70555cb2017-02-26 18:48:02 +0100788
789.. code-block:: yaml
790
791 neutron:
792 server:
793 version: mitaka
Jakub Pavlik70555cb2017-02-26 18:48:02 +0100794 backend:
795 engine: ml2
796 ...
797 mechanism:
Elena Ezhovad6a080c2017-10-09 15:25:16 +0400798 ovs:
799 driver: openvswitch
800 sriov:
801 driver: sriovnicswitch
Michael Polenchuk0bf59a72018-06-19 18:06:56 +0400802 # Driver w/ highest number will be placed ahead in the list (default is 0).
803 # It's recommended for SR-IOV driver to set an order >0 to get it
804 # before (for example) the opendaylight one.
805 order: 9
Jakub Pavlik70555cb2017-02-26 18:48:02 +0100806
807 neutron:
808 compute:
809 version: mitaka
Jakub Pavlik70555cb2017-02-26 18:48:02 +0100810 ...
811 backend:
812 engine: ml2
813 tenant_network_types: "flat,vlan" # Can be mixed flat,vlan,vxlan
814 sriov:
815 nic_one:
816 devname: eth1
817 physical_network: physnet3
818 mechanism:
Elena Ezhovad6a080c2017-10-09 15:25:16 +0400819 ovs:
820 driver: openvswitch
Jakub Pavlik70555cb2017-02-26 18:48:02 +0100821
cdoddac35c9eb2018-11-07 23:18:10 -0600822Neutron with LinuxBridge Agents
823-------------------------------
824
825.. code-block:: yaml
826
827 neutron:
828 server:
829 firewall_driver: iptables
830 backend:
831 mechanism:
832 lb:
833 driver: linuxbridge
834 ....
835 compute:
836 backend:
837 mechanism:
838 lb:
839 driver: linuxbridge
840 ....
841 gateway:
842 backend:
843 mechanism:
844 lb:
845 driver: linuxbridge
846 agents:
847 dhcp:
848 interface_driver: linuxbridge
849 l3:
850 interface_driver: linuxbridge
851
852
Ilya Chukhnakovf4c2bb32017-06-08 02:03:15 +0300853Neutron with VLAN-aware-VMs
Oleg Bondarev0575ae42017-07-28 16:36:25 +0400854---------------------------
Ilya Chukhnakovf4c2bb32017-06-08 02:03:15 +0300855
856.. code-block:: yaml
857
858 neutron:
859 server:
860 vlan_aware_vms: true
861 ....
862 compute:
863 vlan_aware_vms: true
864 ....
865 gateway:
866 vlan_aware_vms: true
867
Oleg Bondarevacb2e532018-03-06 10:43:59 +0400868Neutron with BGP VPN (BaGPipe driver)
OlgaGusarenko838c9fd2018-07-31 00:22:44 +0300869-------------------------------------
Oleg Bondarevb63d27f2018-02-14 19:21:06 +0400870
871.. code-block:: yaml
872
873 neutron:
874 server:
875 version: pike
876 bgp_vpn:
Oleg Bondarevacb2e532018-03-06 10:43:59 +0400877 enabled: true
Michael Polenchuk0b3c5dd2018-06-27 12:04:32 +0400878 driver: bagpipe # Options: bagpipe/opencontrail/opendaylight[_v2]
Oleg Bondarevb63d27f2018-02-14 19:21:06 +0400879 ....
880 compute:
881 version: pike
882 bgp_vpn:
Oleg Bondarevacb2e532018-03-06 10:43:59 +0400883 enabled: true
Michael Polenchuk0b3c5dd2018-06-27 12:04:32 +0400884 driver: bagpipe # Options: bagpipe/opencontrail/opendaylight[_v2]
Oleg Bondarevacb2e532018-03-06 10:43:59 +0400885 bagpipe:
886 local_address: 192.168.20.20 # IP address for mpls/gre tunnels
887 peers: 192.168.20.30 # IP addresses of BGP peers
888 autonomous_system: 64512 # Autonomous System number
889 enable_rtc: True # Enable RT Constraint (RFC4684)
Oleg Bondarevb63d27f2018-02-14 19:21:06 +0400890 backend:
Oleg Bondarev878ac462018-04-23 17:48:15 +0400891 ovs_extension: # for OVS agent only, not supported in SRIOV agent
Oleg Bondarevb63d27f2018-02-14 19:21:06 +0400892 bagpipe_bgpvpn:
893 enabled: True
894
Oleksii Chupryn16cb4e02018-02-26 14:20:39 +0200895Neutron with DHCP agent on compute node
896---------------------------------------
897
898.. code-block:: yaml
899
900 neutron:
901 ....
902 compute:
903 dhcp_agent_enabled: true
904 ....
905
Dzmitry Stremkouski48df2a72018-10-12 16:38:11 +0200906Neutron with metadata agent on compute node
907-------------------------------------------
908
909.. code-block:: yaml
910
911 neutron:
912 ....
913 compute:
914 metadata_agent_enabled: true
915 ....
916
Oleg Bondarev0575ae42017-07-28 16:36:25 +0400917Neutron with OVN
918----------------
919
920Control node:
921
922.. code-block:: yaml
923
924 neutron:
925 server:
926 backend:
927 engine: ovn
928 mechanism:
929 ovn:
930 driver: ovn
931 tenant_network_types: "geneve,flat"
Michael Polenchukf59229b2018-06-19 16:24:49 +0400932 ovn:
933 ovn_l3_scheduler: leastloaded # valid options: chance, leastloaded
934 neutron_sync_mode: repair # valid options: log, off, repair
Michael Polenchuk58161ef2018-05-15 18:04:09 +0400935 metadata_enabled: True
Michael Polenchuka3d492b2017-12-27 15:49:43 +0400936 ovn_ctl_opts:
937 db-nb-create-insecure-remote: 'yes'
938 db-sb-create-insecure-remote: 'yes'
Oleg Bondarev0575ae42017-07-28 16:36:25 +0400939
940Compute node:
941
942.. code-block:: yaml
943
944 neutron:
945 compute:
946 local_ip: 10.2.0.105
947 controller_vip: 10.1.0.101
948 external_access: false
949 backend:
950 engine: ovn
Michael Polenchuk58161ef2018-05-15 18:04:09 +0400951 ovsdb_connection: tcp:127.0.0.1:6640
952 metadata:
953 enabled: true
954 ovsdb_server_iface: ptcp:6640:127.0.0.1
955 host: 10.1.0.101
956 password: unsegreto
957
Oleg Bondarev0575ae42017-07-28 16:36:25 +0400958
Michael Polenchukcccd1a52018-02-02 17:41:16 +0400959Neutron L2 Gateway
960----------------
961
962Control node:
963
964.. code-block:: yaml
965
966 neutron:
967 server:
968 version: pike
969 l2gw:
970 enabled: true
971 periodic_monitoring_interval: 5
972 quota_l2_gateway: 20
973 # service_provider=<service_type>:<name>:<driver>[:default]
974 service_provider: L2GW:OpenDaylight:networking_odl.l2gateway.driver.OpenDaylightL2gwDriver:default
975 backend:
976 engine: ml2
977
978Network/Gateway node:
979
980.. code-block:: yaml
981
982 neutron:
983 gateway:
984 version: pike
985 l2gw:
986 enabled: true
987 debug: true
988 socket_timeout: 20
989 ovsdb_hosts:
990 # <ovsdb_name>: <ip address>:<port>
991 # - ovsdb_name: a user defined symbolic identifier of physical switch
992 # - ip address: the address or dns name for the OVSDB server (i.e. pointer to the switch)
993 ovsdb1: 10.164.5.33:6632
994 ovsdb2: 10.164.4.33:6632
995
996
Michael Polenchuk87d2b742017-06-29 12:05:25 +0400997OpenDaylight integration
998------------------------
999
1000Control node:
1001
1002.. code-block:: yaml
1003
1004 neutron:
1005 server:
1006 backend:
1007 opendaylight: true
1008 router: odl-router_v2
1009 host: 10.20.0.77
1010 rest_api_port: 8282
1011 user: admin
1012 password: admin
1013 ovsdb_connection: tcp:127.0.0.1:6639
Oleksii Chuprynfed79572018-07-20 14:11:35 +03001014 ovsdb_interface: native
Michael Polenchuk87d2b742017-06-29 12:05:25 +04001015 enable_websocket: true
1016 enable_dhcp_service: false
1017 mechanism:
1018 ovs:
1019 driver: opendaylight_v2
Michael Polenchuk0bf59a72018-06-19 18:06:56 +04001020 order: 1
Michael Polenchuk87d2b742017-06-29 12:05:25 +04001021
1022Network/Gateway node:
1023
1024.. code-block:: yaml
1025
1026 neutron:
1027 gateway:
1028 backend:
1029 router: odl-router_v2
1030 ovsdb_connection: tcp:127.0.0.1:6639
Oleksii Chuprynfed79572018-07-20 14:11:35 +03001031 ovsdb_interface: native
Michael Polenchuk87d2b742017-06-29 12:05:25 +04001032 opendaylight:
1033 ovsdb_server_iface: ptcp:6639:127.0.0.1
1034 ovsdb_odl_iface: tcp:10.20.0.77:6640
1035 tunnel_ip: 10.1.0.110
1036 provider_mappings: physnet1:br-floating
1037
1038Compute node:
1039
1040.. code-block:: yaml
1041
1042 neutron:
1043 compute:
1044 opendaylight:
1045 ovsdb_server_iface: ptcp:6639:127.0.0.1
1046 ovsdb_odl_iface: tcp:10.20.0.77:6640
1047 tunnel_ip: 10.1.0.105
1048 provider_mappings: physnet1:br-floating
1049
1050
Michael Polenchuk9cccecc2018-09-14 14:54:18 +04001051Service Function Chaining Extension (SFC)
1052----------------
1053
1054.. code-block:: yaml
1055
1056 neutron:
1057 server:
1058 sfc:
1059 enabled: true
1060 sfc_drivers:
1061 - ovs # valid options: ovs, odl, ovn (not implemented yet)
1062 flow_classifier_drivers:
1063 - ovs # valid options: see above
1064 ....
1065 compute:
1066 backend:
1067 ovs_extension:
1068 sfc:
1069 enabled: True
1070
1071
Aleš Komárek41e82312017-04-11 13:37:44 +02001072Neutron Server
1073--------------
1074
OlgaGusarenko838c9fd2018-07-31 00:22:44 +03001075Neutron Server with OpenContrail:
Jiri Broulik74f61112016-11-21 20:23:47 +01001076
1077.. code-block:: yaml
1078
1079 neutron:
1080 server:
marcoa4428a32016-06-10 11:50:16 +02001081 backend:
1082 engine: contrail
1083 host: contrail_discovery_host
1084 port: 8082
1085 user: admin
1086 password: password
1087 tenant: admin
1088 token: token
1089
OlgaGusarenko838c9fd2018-07-31 00:22:44 +03001090Neutron Server with Midonet:
marcoa4428a32016-06-10 11:50:16 +02001091
1092.. code-block:: yaml
1093
1094 neutron:
1095 server:
1096 backend:
1097 engine: midonet
1098 host: midonet_api_host
1099 port: 8181
1100 user: admin
1101 password: password
1102
OlgaGusarenko838c9fd2018-07-31 00:22:44 +03001103Neutron Server with NSX:
Vasyl Saienko4549efe2018-07-26 16:06:04 +00001104
1105.. code-block:: yaml
1106
1107 neutron:
1108 server:
1109 backend:
1110 engine: vmware
1111 core_plugin: vmware_nsxv3
1112 vmware:
1113 nsx:
1114 extension_drivers:
1115 - vmware_nsxv3_dns
1116 v3:
1117 api_password: nsx_password
1118 api_user: nsx_username
1119 api_managers:
1120 01:
1121 scheme: https
1122 host: 192.168.10.120
1123 port: '443'
1124 insecure: true
1125
OlgaGusarenko838c9fd2018-07-31 00:22:44 +03001126Neutron Keystone region:
Jakub Pavlik6dd5c0a2016-03-09 14:18:15 +01001127
1128.. code-block:: yaml
1129
1130 neutron:
1131 server:
1132 enabled: true
1133 version: kilo
1134 ...
1135 identity:
1136 region: RegionTwo
1137 ...
1138 compute:
1139 region: RegionTwo
1140 ...
1141
OlgaGusarenko838c9fd2018-07-31 00:22:44 +03001142Client-side RabbitMQ HA setup:
Jiri Konecny93b19992016-04-12 11:15:39 +02001143
1144.. code-block:: yaml
1145
1146 neutron:
1147 server:
1148 ....
1149 message_queue:
1150 engine: rabbitmq
1151 members:
1152 - host: 10.0.16.1
1153 - host: 10.0.16.2
1154 - host: 10.0.16.3
1155 user: openstack
1156 password: pwd
1157 virtual_host: '/openstack'
1158 ....
1159
Kirill Bespalovdd748b62017-11-21 10:42:57 +03001160Configuring TLS communications
1161------------------------------
Kirill Bespalov8fffe022017-08-03 17:55:02 +03001162
OlgaGusarenko838c9fd2018-07-31 00:22:44 +03001163.. note:: By default, system-wide installed CA certs are used,
1164 so ``cacert_file`` param is optional, as well as ``cacert``.
Kirill Bespalovdd748b62017-11-21 10:42:57 +03001165
1166- **RabbitMQ TLS**
Kirill Bespalov8fffe022017-08-03 17:55:02 +03001167
OlgaGusarenko838c9fd2018-07-31 00:22:44 +03001168 .. code-block:: yaml
Kirill Bespalov8fffe022017-08-03 17:55:02 +03001169
OlgaGusarenko838c9fd2018-07-31 00:22:44 +03001170 neutron:
1171 server, gateway, compute:
1172 message_queue:
1173 port: 5671
1174 ssl:
1175 enabled: True
1176 (optional) cacert: cert body if the cacert_file does not exists
1177 (optional) cacert_file: /etc/openstack/rabbitmq-ca.pem
1178 (optional) version: TLSv1_2
Kirill Bespalov8fffe022017-08-03 17:55:02 +03001179
Kirill Bespalovdd748b62017-11-21 10:42:57 +03001180- **MySQL TLS**
Kirill Bespalov8fffe022017-08-03 17:55:02 +03001181
OlgaGusarenko838c9fd2018-07-31 00:22:44 +03001182 .. code-block:: yaml
Kirill Bespalov8fffe022017-08-03 17:55:02 +03001183
OlgaGusarenko838c9fd2018-07-31 00:22:44 +03001184 neutron:
1185 server:
1186 database:
1187 ssl:
1188 enabled: True
1189 (optional) cacert: cert body if the cacert_file does not exists
1190 (optional) cacert_file: /etc/openstack/mysql-ca.pem
Kirill Bespalov8fffe022017-08-03 17:55:02 +03001191
Kirill Bespalovdd748b62017-11-21 10:42:57 +03001192- **Openstack HTTPS API**
1193
OlgaGusarenko838c9fd2018-07-31 00:22:44 +03001194 .. code-block:: yaml
Kirill Bespalov8fffe022017-08-03 17:55:02 +03001195
OlgaGusarenko838c9fd2018-07-31 00:22:44 +03001196 neutron:
1197 server:
1198 identity:
1199 protocol: https
1200 (optional) cacert_file: /etc/openstack/proxy.pem
Kirill Bespalov8fffe022017-08-03 17:55:02 +03001201
OlgaGusarenko838c9fd2018-07-31 00:22:44 +03001202Enable auditing filter, ie: CADF:
Petr Michalec61f7ab22016-11-29 16:29:09 +01001203
1204.. code-block:: yaml
1205
1206 neutron:
1207 server:
1208 audit:
1209 enabled: true
1210 ....
1211 filter_factory: 'keystonemiddleware.audit:filter_factory'
1212 map_file: '/etc/pycadf/neutron_api_audit_map.conf'
1213 ....
1214 compute:
1215 audit:
1216 enabled: true
1217 ....
1218 filter_factory: 'keystonemiddleware.audit:filter_factory'
1219 map_file: '/etc/pycadf/neutron_api_audit_map.conf'
1220 ....
Jiri Konecny93b19992016-04-12 11:15:39 +02001221
OlgaGusarenko838c9fd2018-07-31 00:22:44 +03001222Neutron with security groups disabled:
Oleg Bondarev98870a32017-05-29 16:53:19 +04001223
1224.. code-block:: yaml
1225
1226 neutron:
1227 server:
1228 security_groups_enabled: False
1229 ....
1230 compute:
1231 security_groups_enabled: False
1232 ....
1233 gateway:
1234 security_groups_enabled: False
1235
Jiri Konecny93b19992016-04-12 11:15:39 +02001236
Aleš Komárek41e82312017-04-11 13:37:44 +02001237Neutron Client
1238--------------
Jiri Broulik5368cc52017-02-08 18:53:59 +01001239
OlgaGusarenko838c9fd2018-07-31 00:22:44 +03001240Neutron networks:
Jiri Broulik5368cc52017-02-08 18:53:59 +01001241
1242.. code-block:: yaml
1243
1244 neutron:
1245 client:
1246 enabled: true
1247 server:
1248 identity:
Richard Felklaac256a2017-03-23 15:43:49 +01001249 endpoint_type: internalURL
Jiri Broulik5368cc52017-02-08 18:53:59 +01001250 network:
1251 inet1:
1252 tenant: demo
1253 shared: False
1254 admin_state_up: True
1255 router_external: True
1256 provider_physical_network: inet
1257 provider_network_type: flat
1258 provider_segmentation_id: 2
1259 subnet:
1260 inet1-subnet1:
1261 cidr: 192.168.90.0/24
1262 enable_dhcp: False
1263 inet2:
1264 tenant: admin
1265 shared: False
1266 router_external: True
1267 provider_network_type: "vlan"
1268 subnet:
1269 inet2-subnet1:
1270 cidr: 192.168.92.0/24
1271 enable_dhcp: False
1272 inet2-subnet2:
1273 cidr: 192.168.94.0/24
1274 enable_dhcp: True
1275 identity1:
1276 network:
1277 ...
1278
OlgaGusarenko838c9fd2018-07-31 00:22:44 +03001279Neutron routers:
Jiri Broulik5368cc52017-02-08 18:53:59 +01001280
1281.. code-block:: yaml
1282
1283 neutron:
1284 client:
1285 enabled: true
1286 server:
1287 identity:
Richard Felklaac256a2017-03-23 15:43:49 +01001288 endpoint_type: internalURL
Jiri Broulik5368cc52017-02-08 18:53:59 +01001289 router:
1290 inet1-router:
1291 tenant: demo
1292 admin_state_up: True
1293 gateway_network: inet
1294 interfaces:
1295 - inet1-subnet1
1296 - inet1-subnet2
1297 identity1:
1298 router:
1299 ...
1300
OlgaGusarenko838c9fd2018-07-31 00:22:44 +03001301.. TODO implement adding new interfaces to a router while updating it
Jiri Broulik5368cc52017-02-08 18:53:59 +01001302
OlgaGusarenko838c9fd2018-07-31 00:22:44 +03001303Neutron security groups:
Jiri Broulik5368cc52017-02-08 18:53:59 +01001304
1305.. code-block:: yaml
1306
1307 neutron:
1308 client:
1309 enabled: true
1310 server:
1311 identity:
Richard Felklaac256a2017-03-23 15:43:49 +01001312 endpoint_type: internalURL
Jiri Broulik5368cc52017-02-08 18:53:59 +01001313 security_group:
1314 security_group1:
1315 tenant: demo
1316 description: security group 1
1317 rules:
1318 - direction: ingress
1319 ethertype: IPv4
1320 protocol: TCP
1321 port_range_min: 1
1322 port_range_max: 65535
1323 remote_ip_prefix: 0.0.0.0/0
1324 - direction: ingress
1325 ethertype: IPv4
1326 protocol: UDP
1327 port_range_min: 1
1328 port_range_max: 65535
1329 remote_ip_prefix: 0.0.0.0/0
1330 - direction: ingress
1331 protocol: ICMP
1332 remote_ip_prefix: 0.0.0.0/0
1333 identity1:
1334 security_group:
1335 ...
1336
OlgaGusarenko838c9fd2018-07-31 00:22:44 +03001337.. TODO: implement updating existing security rules (now it adds new rule if
1338 trying to update existing one)
Jiri Broulik5368cc52017-02-08 18:53:59 +01001339
OlgaGusarenko838c9fd2018-07-31 00:22:44 +03001340Floating IP addresses:
Jiri Broulikde2e2902017-02-13 15:03:47 +01001341
1342.. code-block:: yaml
1343
1344 neutron:
1345 client:
1346 enabled: true
1347 server:
1348 identity:
Richard Felklaac256a2017-03-23 15:43:49 +01001349 endpoint_type: internalURL
Jiri Broulikde2e2902017-02-13 15:03:47 +01001350 floating_ip:
1351 prx01-instance:
1352 server: prx01.mk22-lab-basic.local
1353 subnet: private-subnet1
1354 network: public-net1
1355 tenant: demo
1356 gtw01-instance:
1357 ...
1358
1359.. note:: The network must have flag router:external set to True.
OlgaGusarenko838c9fd2018-07-31 00:22:44 +03001360 Instance port in the stated subnet will be associated
1361 with the dynamically generated floating IP.
Oleg Iurchenkode71cc22017-09-18 17:58:56 +03001362
1363Enable Neutron extensions (QoS, DNS, etc.)
1364------------------------------------------
OlgaGusarenko838c9fd2018-07-31 00:22:44 +03001365
Oleg Iurchenkode71cc22017-09-18 17:58:56 +03001366.. code-block:: yaml
1367
1368 neutron:
1369 server:
1370 backend:
1371 extension:
Oleg Iurchenkoac17f4f2017-10-06 11:24:27 +03001372 dns:
1373 enabled: True
1374 host: 127.0.0.1
1375 port: 9001
1376 protocol: http
1377 ....
1378 qos
1379 enabled: True
Oleg Iurchenkode71cc22017-09-18 17:58:56 +03001380
Oleg Bondarev878ac462018-04-23 17:48:15 +04001381Different Neutron extensions for different agents
1382-------------------------------------------------
OlgaGusarenko838c9fd2018-07-31 00:22:44 +03001383
Oleg Bondarev878ac462018-04-23 17:48:15 +04001384.. code-block:: yaml
1385
1386 neutron:
1387 server:
1388 backend:
1389 extension: # common extensions for OVS and SRIOV agents
1390 dns:
1391 enabled: True
1392 ...
1393 qos
1394 enabled: True
1395 ovs_extension: # OVS specific extensions
1396 bagpipe_bgpvpn:
1397 enabled: True
1398 sriov_extension: # SRIOV specific extensions
1399 dummy:
1400 enabled: True
Oleg Iurchenkode71cc22017-09-18 17:58:56 +03001401
Oleg Iurchenko8cf6cf52017-09-18 15:44:03 +03001402Neutron with Designate
1403-----------------------------------------
OlgaGusarenko838c9fd2018-07-31 00:22:44 +03001404
Oleg Iurchenko8cf6cf52017-09-18 15:44:03 +03001405.. code-block:: yaml
1406
1407 neutron:
1408 server:
1409 backend:
1410 extension:
1411 dns:
1412 enabled: True
1413 host: 127.0.0.1
1414 port: 9001
1415 protocol: http
1416
Marek Celoud67ce2062018-01-31 13:44:55 +01001417Enable RBAC for OpenContrail engine
1418-----------------------------------
OlgaGusarenko838c9fd2018-07-31 00:22:44 +03001419
Marek Celoud67ce2062018-01-31 13:44:55 +01001420.. code-block:: yaml
1421
1422 neutron:
1423 server:
1424 backend:
1425 engine: contrail
1426 rbac:
1427 enabled: True
Oleg Iurchenko8cf6cf52017-09-18 15:44:03 +03001428
Dmitry Kalashnik35dd0e02017-12-07 14:16:25 +04001429Enhanced logging with logging.conf
1430----------------------------------
1431
OlgaGusarenko838c9fd2018-07-31 00:22:44 +03001432By default ``logging.conf`` is disabled.
Dmitry Kalashnik35dd0e02017-12-07 14:16:25 +04001433
1434That is possible to enable per-binary logging.conf with new variables:
Dmitry Kalashnik35dd0e02017-12-07 14:16:25 +04001435
OlgaGusarenko838c9fd2018-07-31 00:22:44 +03001436* ``openstack_log_appender``
1437 Set to true to enable ``log_config_append`` for all OpenStack services
1438
1439* ``openstack_fluentd_handler_enabled``
1440 Set to true to enable FluentHandler for all Openstack services
1441
1442* ``openstack_ossyslog_handler_enabled``
1443 Set to true to enable OSSysLogHandler for all Openstack services.
1444
1445Only ``WatchedFileHandler``, ``OSSysLogHandler``, and ``FluentHandler``
1446are available.
Dmitry Kalashnik35dd0e02017-12-07 14:16:25 +04001447
1448Also it is possible to configure this with pillar:
1449
1450.. code-block:: yaml
1451
1452 neutron:
1453 server:
1454 logging:
1455 log_appender: true
1456 log_handlers:
1457 watchedfile:
1458 enabled: true
1459 fluentd:
1460 enabled: true
Oleksii Chupryn156c5f42018-02-07 10:06:50 +02001461 ossyslog:
1462 enabled: true
Dmitry Kalashnik35dd0e02017-12-07 14:16:25 +04001463 ....
1464 compute:
1465 logging:
1466 log_appender: true
1467 log_handlers:
1468 watchedfile:
1469 enabled: true
1470 fluentd:
1471 enabled: true
Oleksii Chupryn156c5f42018-02-07 10:06:50 +02001472 ossyslog:
1473 enabled: true
Dmitry Kalashnik35dd0e02017-12-07 14:16:25 +04001474 ....
1475 gateway:
1476 logging:
1477 log_appender: true
1478 log_handlers:
1479 watchedfile:
1480 enabled: true
1481 fluentd:
1482 enabled: true
Oleksii Chupryn156c5f42018-02-07 10:06:50 +02001483 ossyslog:
1484 enabled: true
Oleg Iurchenko8cf6cf52017-09-18 15:44:03 +03001485
Oleksii Grudevfe73ee52018-05-14 14:08:11 +03001486Logging levels pillar example:
1487
1488.. code-block:: yaml
1489
1490 neutron:
1491 server:
1492 logging:
1493 log_appender: true
1494 loggers:
1495 root:
1496 level: 'DEBUG'
1497 neutron:
1498 level: 'DEBUG'
1499 amqplib:
1500 level: 'DEBUG'
1501 sqlalchemy:
1502 level: 'DEBUG'
1503 boto:
1504 level: 'DEBUG'
1505 suds:
1506 level: 'DEBUG'
1507 eventletwsgi:
1508 level: 'DEBUG'
1509 ......
Oleksandr Bryndzii3b0ac2c2018-10-04 11:06:24 +03001510Neutron server with memcached caching and security strategy:
1511
1512.. code-block:: yaml
1513
1514 neutron:
1515 server:
1516 enabled: true
1517 ...
1518 cache:
1519 engine: memcached
1520 members:
1521 - host: 127.0.0.1
1522 port: 11211
1523 - host: 127.0.0.1
1524 port: 11211
1525 security:
1526 enabled: true
1527 strategy: ENCRYPT
1528 secret_key: secret
Oleksii Grudevfe73ee52018-05-14 14:08:11 +03001529
Vasyl Saienkoba420732018-09-07 10:19:32 +00001530Upgrades
1531========
1532
1533Each openstack formula provide set of phases (logical bloks) that will help to
1534build flexible upgrade orchestration logic for particular components. The list
1535of phases might and theirs descriptions are listed in table below:
1536
1537+-------------------------------+------------------------------------------------------+
1538| State | Description |
1539+===============================+======================================================+
1540| <app>.upgrade.service_running | Ensure that all services for particular application |
1541| | are enabled for autostart and running |
1542+-------------------------------+------------------------------------------------------+
1543| <app>.upgrade.service_stopped | Ensure that all services for particular application |
1544| | disabled for autostart and dead |
1545+-------------------------------+------------------------------------------------------+
1546| <app>.upgrade.pkg_latest | Ensure that packages used by particular application |
1547| | are installed to latest available version. |
1548| | This will not upgrade data plane packages like qemu |
1549| | and openvswitch as usually minimal required version |
1550| | in openstack services is really old. The data plane |
1551| | packages should be upgraded separately by `apt-get |
1552| | upgrade` or `apt-get dist-upgrade` |
1553| | Applying this state will not autostart service. |
1554+-------------------------------+------------------------------------------------------+
1555| <app>.upgrade.render_config | Ensure configuration is rendered actual version. +
1556+-------------------------------+------------------------------------------------------+
1557| <app>.upgrade.pre | We assume this state is applied on all nodes in the |
1558| | cloud before running upgrade. |
1559| | Only non destructive actions will be applied during |
1560| | this phase. Perform service built in service check |
1561| | like (keystone-manage doctor and nova-status upgrade)|
1562+-------------------------------+------------------------------------------------------+
1563| <app>.upgrade.upgrade.pre | Mostly applicable for data plane nodes. During this |
1564| | phase resources will be gracefully removed from |
1565| | current node if it is allowed. Services for upgraded |
1566| | application will be set to admin disabled state to |
1567| | make sure node will not participate in resources |
1568| | scheduling. For example on gtw nodes this will set |
1569| | all agents to admin disable state and will move all |
1570| | routers to other agents. |
1571+-------------------------------+------------------------------------------------------+
1572| <app>.upgrade.upgrade | This state will basically upgrade application on |
1573| | particular target. Stop services, render |
1574| | configuration, install new packages, run offline |
1575| | dbsync (for ctl), start services. Data plane should |
1576| | not be affected, only OpenStack python services. |
1577+-------------------------------+------------------------------------------------------+
1578| <app>.upgrade.upgrade.post | Add services back to scheduling. |
1579+-------------------------------+------------------------------------------------------+
1580| <app>.upgrade.post | This phase should be launched only when upgrade of |
1581| | the cloud is completed. |
1582+-------------------------------+------------------------------------------------------+
1583| <app>.upgrade.verify | Here we will do basic health checks (API CRUD |
1584| | operations, verify do not have dead network |
1585| | agents/compute services) |
1586+-------------------------------+------------------------------------------------------+
1587
1588
Oleksandr Shyshkof51b94c2018-08-31 16:05:27 +03001589Enable x509 and ssl communication between Neutron and Galera cluster.
1590---------------------
1591By default communication between Neutron and Galera is unsecure.
1592
1593neutron:
1594 server:
1595 database:
1596 x509:
1597 enabled: True
1598
1599You able to set custom certificates in pillar:
1600
1601neutron:
1602 server:
1603 database:
1604 x509:
1605 cacert: (certificate content)
1606 cert: (certificate content)
1607 key: (certificate content)
1608
1609You can read more about it here:
1610 https://docs.openstack.org/security-guide/databases/database-access-control.html