blob: 2812d40d811a18da8b7c70366340ada5f0293c55 [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
Vasyl Saienko0b2451b2018-12-16 19:38:38 +0000538Configuring networking-generic-switch ml2 plugin used for
539baremetal integration:
540
541.. code-block:: yaml
542
543 neutron:
544 server:
545 backend:
546 mechanism:
547 ngs:
548 driver: genericswitch
549 n_g_s:
550 enabled: true
551 coordination:
552 enabled: true
553 backend_url: "etcd3+http://1.2.3.4:2379"
554 devices:
555 s1brbm:
556 options:
557 device_type:
558 value: netmiko_ovs_linux
559 ip:
560 value: 1.2.3.4
561 username:
562 value: ngs_ovs_manager
563 password:
564 value: password
565
OlgaGusarenko838c9fd2018-07-31 00:22:44 +0300566Network Node:
Jiri Broulik74f61112016-11-21 20:23:47 +0100567
568.. code-block:: yaml
569
570 neutron:
571 gateway:
572 enabled: True
573 version: mitaka
574 message_queue:
575 engine: rabbitmq
576 host: 127.0.0.1
577 port: 5672
578 user: openstack
579 password: pwd
580 virtual_host: '/openstack'
581 local_ip: 192.168.20.20 # br-mesh ip address
582 dvr: True
583 agent_mode: dvr_snat
Simon Pasquierc03af112017-04-10 10:35:14 +0200584 availability_zone: az1
Jiri Broulik74f61112016-11-21 20:23:47 +0100585 metadata:
586 host: 127.0.0.1
587 password: pass
588 backend:
589 engine: ml2
590 tenant_network_types: "flat,vxlan"
591 mechanism:
Elena Ezhovad6a080c2017-10-09 15:25:16 +0400592 ovs:
593 driver: openvswitch
Jiri Broulik74f61112016-11-21 20:23:47 +0100594
OlgaGusarenko838c9fd2018-07-31 00:22:44 +0300595Compute Node:
Jiri Broulik74f61112016-11-21 20:23:47 +0100596
597.. code-block:: yaml
598
599 neutron:
600 compute:
601 enabled: True
602 version: mitaka
603 message_queue:
604 engine: rabbitmq
605 host: 127.0.0.1
606 port: 5672
607 user: openstack
608 password: pwd
609 virtual_host: '/openstack'
610 local_ip: 192.168.20.20 # br-mesh ip address
611 dvr: True
Vasyl Saienko2fffc842017-06-14 10:35:26 +0300612 external_access: True
Jiri Broulik74f61112016-11-21 20:23:47 +0100613 agent_mode: dvr
Simon Pasquierc03af112017-04-10 10:35:14 +0200614 availability_zone: az1
Jiri Broulik74f61112016-11-21 20:23:47 +0100615 metadata:
616 host: 127.0.0.1
617 password: pass
618 backend:
619 engine: ml2
620 tenant_network_types: "flat,vxlan"
621 mechanism:
Elena Ezhovad6a080c2017-10-09 15:25:16 +0400622 ovs:
623 driver: openvswitch
Jiri Broulik74f61112016-11-21 20:23:47 +0100624
OlgaGusarenko838c9fd2018-07-31 00:22:44 +0300625Sample Linux network configuration for DVR:
Jiri Broulik74f61112016-11-21 20:23:47 +0100626
627.. code-block:: yaml
628
629 linux:
630 network:
631 bridge: openvswitch
632 interface:
633 eth1:
634 enabled: true
635 type: eth
636 mtu: 9000
637 proto: manual
638 eth2:
639 enabled: true
640 type: eth
641 mtu: 9000
642 proto: manual
643 eth3:
644 enabled: true
645 type: eth
646 mtu: 9000
647 proto: manual
648 br-int:
649 enabled: true
650 mtu: 9000
651 type: ovs_bridge
652 br-floating:
653 enabled: true
654 mtu: 9000
655 type: ovs_bridge
656 float-to-ex:
657 enabled: true
658 type: ovs_port
659 mtu: 65000
660 bridge: br-floating
661 br-mgmt:
662 enabled: true
663 type: bridge
664 mtu: 9000
665 address: ${_param:single_address}
666 netmask: 255.255.255.0
667 use_interfaces:
668 - eth1
669 br-mesh:
670 enabled: true
671 type: bridge
672 mtu: 9000
673 address: ${_param:tenant_address}
674 netmask: 255.255.255.0
675 use_interfaces:
676 - eth2
677 br-ex:
678 enabled: true
679 type: bridge
680 mtu: 9000
681 address: ${_param:external_address}
682 netmask: 255.255.255.0
683 use_interfaces:
684 - eth3
685 use_ovs_ports:
686 - float-to-ex
687
Thom Gerdes3282d072017-05-30 22:06:04 +0000688Additonal VXLAN tenant network settings
689---------------------------------------
690
OlgaGusarenko838c9fd2018-07-31 00:22:44 +0300691The default multicast group of ``224.0.0.1`` only multicasts
692to a single subnet. Allow overriding it to allow larger underlay
693network topologies.
Thom Gerdes3282d072017-05-30 22:06:04 +0000694
OlgaGusarenko838c9fd2018-07-31 00:22:44 +0300695Neutron Server:
Thom Gerdes3282d072017-05-30 22:06:04 +0000696
697.. code-block:: yaml
698
699 neutron:
700 server:
701 vxlan:
702 group: 239.0.0.0/8
703 vni_ranges: "2:65535"
704
Jiri Broulik74f61112016-11-21 20:23:47 +0100705Neutron VLAN tenant networks with Network Nodes
Aleš Komárek41e82312017-04-11 13:37:44 +0200706-----------------------------------------------
Jiri Broulik74f61112016-11-21 20:23:47 +0100707
708VLAN tenant provider
709
OlgaGusarenko838c9fd2018-07-31 00:22:44 +0300710Neutron Server only:
Jiri Broulik74f61112016-11-21 20:23:47 +0100711
712.. code-block:: yaml
713
714 neutron:
715 server:
716 version: mitaka
Jiri Broulik74f61112016-11-21 20:23:47 +0100717 ...
718 global_physnet_mtu: 9000
719 l3_ha: False
720 dvr: True
721 backend:
722 engine: ml2
723 tenant_network_types: "flat,vlan" # Can be mixed flat,vlan,vxlan
724 tenant_vlan_range: "1000:2000"
725 external_vlan_range: "100:200" # Does not have to be defined.
726 external_mtu: 9000
727 mechanism:
Elena Ezhovad6a080c2017-10-09 15:25:16 +0400728 ovs:
729 driver: openvswitch
Jiri Broulik74f61112016-11-21 20:23:47 +0100730
OlgaGusarenko838c9fd2018-07-31 00:22:44 +0300731Compute node:
Jiri Broulik74f61112016-11-21 20:23:47 +0100732
733.. code-block:: yaml
734
735 neutron:
736 compute:
737 version: mitaka
Jiri Broulik74f61112016-11-21 20:23:47 +0100738 ...
739 dvr: True
740 agent_mode: dvr
741 external_access: False
742 backend:
743 engine: ml2
744 tenant_network_types: "flat,vlan" # Can be mixed flat,vlan,vxlan
745 mechanism:
Elena Ezhovad6a080c2017-10-09 15:25:16 +0400746 ovs:
747 driver: openvswitch
Jiri Broulik74f61112016-11-21 20:23:47 +0100748
Oleg Bondarevddb9af12018-07-02 19:07:57 +0400749Neutron with explicit physical networks
750---------------------------------------
Oleg Bondarevada324f2018-06-04 14:55:38 +0400751
OlgaGusarenko838c9fd2018-07-31 00:22:44 +0300752Neutron Server only:
Oleg Bondarevada324f2018-06-04 14:55:38 +0400753
754.. code-block:: yaml
755
756 neutron:
757 server:
758 version: ocata
759 ...
760 backend:
761 engine: ml2
762 tenant_network_types: "flat,vlan" # Can be mixed flat,vlan,vxlan
763 ...
Oleg Bondarevddb9af12018-07-02 19:07:57 +0400764 # also need to configure corresponding bridge_mappings on
Oleg Bondarevada324f2018-06-04 14:55:38 +0400765 # compute and gateway nodes
Oleg Bondarev47d9e2d2018-07-03 13:22:26 +0400766 flat_networks_default: '*' # '*' to allow arbitrary names or '' to disable
Oleg Bondarevddb9af12018-07-02 19:07:57 +0400767 physnets: # only listed physnets will be configured (overrides physnet1/2/3)
768 external:
769 mtu: 1500
Oleg Bondarev47d9e2d2018-07-03 13:22:26 +0400770 types:
771 - flat # possible values - 'flat' or 'vlan'
Oleg Bondarevada324f2018-06-04 14:55:38 +0400772 sriov_net:
773 mtu: 9000 # Optional, defaults to 1500
Oleg Bondarevab324112018-11-19 17:56:57 +0400774 vlan_range: '100:200,300:400' # Optional
Oleg Bondarev47d9e2d2018-07-03 13:22:26 +0400775 types:
776 - vlan
Oleg Bondarevada324f2018-06-04 14:55:38 +0400777 ext_net2:
778 mtu: 1500
Oleg Bondarev47d9e2d2018-07-03 13:22:26 +0400779 types:
780 - flat
781 - vlan
Oleg Bondarevada324f2018-06-04 14:55:38 +0400782 mechanism:
783 ovs:
784 driver: openvswitch
785
Aleš Komárek41e82312017-04-11 13:37:44 +0200786Advanced Neutron Features (DPDK, SR-IOV)
Oleg Bondarev0575ae42017-07-28 16:36:25 +0400787----------------------------------------
Aleš Komárek41e82312017-04-11 13:37:44 +0200788
Jakub Pavlik8f83ccc2017-02-27 11:15:39 +0100789Neutron OVS DPDK
Jakub Pavlik8f83ccc2017-02-27 11:15:39 +0100790
OlgaGusarenko838c9fd2018-07-31 00:22:44 +0300791Enable datapath netdev for neutron openvswitch agent:
Jakub Pavlik8f83ccc2017-02-27 11:15:39 +0100792
793.. code-block:: yaml
794
795 neutron:
796 server:
797 version: mitaka
798 ...
799 dpdk: True
800 ...
801
802 neutron:
803 compute:
804 version: mitaka
Jakub Pavlik8f83ccc2017-02-27 11:15:39 +0100805 dpdk: True
Michael Polenchuk52911652018-04-12 22:09:49 +0400806 vhost_mode: client # options: client|server (default)
Oleg Bondarevee7e8302017-10-16 17:20:38 +0400807 vhost_socket_dir: /var/run/openvswitch
Jakub Pavlik8f83ccc2017-02-27 11:15:39 +0100808 backend:
809 engine: ml2
810 ...
811 mechanism:
Elena Ezhovad6a080c2017-10-09 15:25:16 +0400812 ovs:
813 driver: openvswitch
Jakub Pavlik8f83ccc2017-02-27 11:15:39 +0100814
OlgaGusarenko838c9fd2018-07-31 00:22:44 +0300815Neutron OVS SR-IOV:
Jakub Pavlik70555cb2017-02-26 18:48:02 +0100816
817.. code-block:: yaml
818
819 neutron:
820 server:
821 version: mitaka
Jakub Pavlik70555cb2017-02-26 18:48:02 +0100822 backend:
823 engine: ml2
824 ...
825 mechanism:
Elena Ezhovad6a080c2017-10-09 15:25:16 +0400826 ovs:
827 driver: openvswitch
828 sriov:
829 driver: sriovnicswitch
Michael Polenchuk0bf59a72018-06-19 18:06:56 +0400830 # Driver w/ highest number will be placed ahead in the list (default is 0).
831 # It's recommended for SR-IOV driver to set an order >0 to get it
832 # before (for example) the opendaylight one.
833 order: 9
Jakub Pavlik70555cb2017-02-26 18:48:02 +0100834
835 neutron:
836 compute:
837 version: mitaka
Jakub Pavlik70555cb2017-02-26 18:48:02 +0100838 ...
839 backend:
840 engine: ml2
841 tenant_network_types: "flat,vlan" # Can be mixed flat,vlan,vxlan
842 sriov:
843 nic_one:
844 devname: eth1
845 physical_network: physnet3
846 mechanism:
Elena Ezhovad6a080c2017-10-09 15:25:16 +0400847 ovs:
848 driver: openvswitch
Jakub Pavlik70555cb2017-02-26 18:48:02 +0100849
cdoddac35c9eb2018-11-07 23:18:10 -0600850Neutron with LinuxBridge Agents
851-------------------------------
852
853.. code-block:: yaml
854
855 neutron:
856 server:
857 firewall_driver: iptables
858 backend:
859 mechanism:
860 lb:
861 driver: linuxbridge
862 ....
863 compute:
864 backend:
865 mechanism:
866 lb:
867 driver: linuxbridge
868 ....
869 gateway:
870 backend:
871 mechanism:
872 lb:
873 driver: linuxbridge
874 agents:
875 dhcp:
876 interface_driver: linuxbridge
877 l3:
878 interface_driver: linuxbridge
879
880
Ilya Chukhnakovf4c2bb32017-06-08 02:03:15 +0300881Neutron with VLAN-aware-VMs
Oleg Bondarev0575ae42017-07-28 16:36:25 +0400882---------------------------
Ilya Chukhnakovf4c2bb32017-06-08 02:03:15 +0300883
884.. code-block:: yaml
885
886 neutron:
887 server:
888 vlan_aware_vms: true
889 ....
890 compute:
891 vlan_aware_vms: true
892 ....
893 gateway:
894 vlan_aware_vms: true
895
Oleg Bondarevacb2e532018-03-06 10:43:59 +0400896Neutron with BGP VPN (BaGPipe driver)
OlgaGusarenko838c9fd2018-07-31 00:22:44 +0300897-------------------------------------
Oleg Bondarevb63d27f2018-02-14 19:21:06 +0400898
899.. code-block:: yaml
900
901 neutron:
902 server:
903 version: pike
904 bgp_vpn:
Oleg Bondarevacb2e532018-03-06 10:43:59 +0400905 enabled: true
Michael Polenchuk0b3c5dd2018-06-27 12:04:32 +0400906 driver: bagpipe # Options: bagpipe/opencontrail/opendaylight[_v2]
Oleg Bondarevb63d27f2018-02-14 19:21:06 +0400907 ....
908 compute:
909 version: pike
910 bgp_vpn:
Oleg Bondarevacb2e532018-03-06 10:43:59 +0400911 enabled: true
Michael Polenchuk0b3c5dd2018-06-27 12:04:32 +0400912 driver: bagpipe # Options: bagpipe/opencontrail/opendaylight[_v2]
Oleg Bondarevacb2e532018-03-06 10:43:59 +0400913 bagpipe:
914 local_address: 192.168.20.20 # IP address for mpls/gre tunnels
915 peers: 192.168.20.30 # IP addresses of BGP peers
916 autonomous_system: 64512 # Autonomous System number
917 enable_rtc: True # Enable RT Constraint (RFC4684)
Oleg Bondarevb63d27f2018-02-14 19:21:06 +0400918 backend:
Oleg Bondarev878ac462018-04-23 17:48:15 +0400919 ovs_extension: # for OVS agent only, not supported in SRIOV agent
Oleg Bondarevb63d27f2018-02-14 19:21:06 +0400920 bagpipe_bgpvpn:
921 enabled: True
922
Oleksii Chupryn16cb4e02018-02-26 14:20:39 +0200923Neutron with DHCP agent on compute node
924---------------------------------------
925
926.. code-block:: yaml
927
928 neutron:
929 ....
930 compute:
931 dhcp_agent_enabled: true
932 ....
933
Dzmitry Stremkouski48df2a72018-10-12 16:38:11 +0200934Neutron with metadata agent on compute node
935-------------------------------------------
936
937.. code-block:: yaml
938
939 neutron:
940 ....
941 compute:
942 metadata_agent_enabled: true
943 ....
944
Oleg Bondarev0575ae42017-07-28 16:36:25 +0400945Neutron with OVN
946----------------
947
948Control node:
949
950.. code-block:: yaml
951
952 neutron:
953 server:
954 backend:
955 engine: ovn
956 mechanism:
957 ovn:
958 driver: ovn
959 tenant_network_types: "geneve,flat"
Michael Polenchukf59229b2018-06-19 16:24:49 +0400960 ovn:
961 ovn_l3_scheduler: leastloaded # valid options: chance, leastloaded
962 neutron_sync_mode: repair # valid options: log, off, repair
Michael Polenchuk58161ef2018-05-15 18:04:09 +0400963 metadata_enabled: True
Michael Polenchuka3d492b2017-12-27 15:49:43 +0400964 ovn_ctl_opts:
965 db-nb-create-insecure-remote: 'yes'
966 db-sb-create-insecure-remote: 'yes'
Oleg Bondarev0575ae42017-07-28 16:36:25 +0400967
968Compute node:
969
970.. code-block:: yaml
971
972 neutron:
973 compute:
974 local_ip: 10.2.0.105
975 controller_vip: 10.1.0.101
976 external_access: false
977 backend:
978 engine: ovn
Michael Polenchuk58161ef2018-05-15 18:04:09 +0400979 ovsdb_connection: tcp:127.0.0.1:6640
980 metadata:
981 enabled: true
982 ovsdb_server_iface: ptcp:6640:127.0.0.1
983 host: 10.1.0.101
984 password: unsegreto
985
Oleg Bondarev0575ae42017-07-28 16:36:25 +0400986
Michael Polenchukcccd1a52018-02-02 17:41:16 +0400987Neutron L2 Gateway
988----------------
989
990Control node:
991
992.. code-block:: yaml
993
994 neutron:
995 server:
996 version: pike
997 l2gw:
998 enabled: true
999 periodic_monitoring_interval: 5
1000 quota_l2_gateway: 20
1001 # service_provider=<service_type>:<name>:<driver>[:default]
1002 service_provider: L2GW:OpenDaylight:networking_odl.l2gateway.driver.OpenDaylightL2gwDriver:default
1003 backend:
1004 engine: ml2
1005
1006Network/Gateway node:
1007
1008.. code-block:: yaml
1009
1010 neutron:
1011 gateway:
1012 version: pike
1013 l2gw:
1014 enabled: true
1015 debug: true
1016 socket_timeout: 20
1017 ovsdb_hosts:
1018 # <ovsdb_name>: <ip address>:<port>
1019 # - ovsdb_name: a user defined symbolic identifier of physical switch
1020 # - ip address: the address or dns name for the OVSDB server (i.e. pointer to the switch)
1021 ovsdb1: 10.164.5.33:6632
1022 ovsdb2: 10.164.4.33:6632
1023
1024
Michael Polenchuk87d2b742017-06-29 12:05:25 +04001025OpenDaylight integration
1026------------------------
1027
1028Control node:
1029
1030.. code-block:: yaml
1031
1032 neutron:
1033 server:
1034 backend:
1035 opendaylight: true
1036 router: odl-router_v2
1037 host: 10.20.0.77
1038 rest_api_port: 8282
1039 user: admin
1040 password: admin
1041 ovsdb_connection: tcp:127.0.0.1:6639
Oleksii Chuprynfed79572018-07-20 14:11:35 +03001042 ovsdb_interface: native
Michael Polenchuk87d2b742017-06-29 12:05:25 +04001043 enable_websocket: true
1044 enable_dhcp_service: false
1045 mechanism:
1046 ovs:
1047 driver: opendaylight_v2
Michael Polenchuk0bf59a72018-06-19 18:06:56 +04001048 order: 1
Michael Polenchuk87d2b742017-06-29 12:05:25 +04001049
1050Network/Gateway node:
1051
1052.. code-block:: yaml
1053
1054 neutron:
1055 gateway:
1056 backend:
1057 router: odl-router_v2
1058 ovsdb_connection: tcp:127.0.0.1:6639
Oleksii Chuprynfed79572018-07-20 14:11:35 +03001059 ovsdb_interface: native
Michael Polenchuk87d2b742017-06-29 12:05:25 +04001060 opendaylight:
1061 ovsdb_server_iface: ptcp:6639:127.0.0.1
1062 ovsdb_odl_iface: tcp:10.20.0.77:6640
1063 tunnel_ip: 10.1.0.110
1064 provider_mappings: physnet1:br-floating
1065
1066Compute node:
1067
1068.. code-block:: yaml
1069
1070 neutron:
1071 compute:
1072 opendaylight:
1073 ovsdb_server_iface: ptcp:6639:127.0.0.1
1074 ovsdb_odl_iface: tcp:10.20.0.77:6640
1075 tunnel_ip: 10.1.0.105
1076 provider_mappings: physnet1:br-floating
1077
1078
Michael Polenchuk9cccecc2018-09-14 14:54:18 +04001079Service Function Chaining Extension (SFC)
1080----------------
1081
1082.. code-block:: yaml
1083
1084 neutron:
1085 server:
1086 sfc:
1087 enabled: true
1088 sfc_drivers:
1089 - ovs # valid options: ovs, odl, ovn (not implemented yet)
1090 flow_classifier_drivers:
1091 - ovs # valid options: see above
1092 ....
1093 compute:
1094 backend:
1095 ovs_extension:
1096 sfc:
1097 enabled: True
1098
1099
Aleš Komárek41e82312017-04-11 13:37:44 +02001100Neutron Server
1101--------------
1102
OlgaGusarenko838c9fd2018-07-31 00:22:44 +03001103Neutron Server with OpenContrail:
Jiri Broulik74f61112016-11-21 20:23:47 +01001104
1105.. code-block:: yaml
1106
1107 neutron:
1108 server:
marcoa4428a32016-06-10 11:50:16 +02001109 backend:
1110 engine: contrail
1111 host: contrail_discovery_host
1112 port: 8082
1113 user: admin
1114 password: password
1115 tenant: admin
1116 token: token
1117
OlgaGusarenko838c9fd2018-07-31 00:22:44 +03001118Neutron Server with Midonet:
marcoa4428a32016-06-10 11:50:16 +02001119
1120.. code-block:: yaml
1121
1122 neutron:
1123 server:
1124 backend:
1125 engine: midonet
1126 host: midonet_api_host
1127 port: 8181
1128 user: admin
1129 password: password
1130
OlgaGusarenko838c9fd2018-07-31 00:22:44 +03001131Neutron Server with NSX:
Vasyl Saienko4549efe2018-07-26 16:06:04 +00001132
1133.. code-block:: yaml
1134
1135 neutron:
1136 server:
1137 backend:
1138 engine: vmware
1139 core_plugin: vmware_nsxv3
1140 vmware:
1141 nsx:
1142 extension_drivers:
1143 - vmware_nsxv3_dns
1144 v3:
1145 api_password: nsx_password
1146 api_user: nsx_username
1147 api_managers:
1148 01:
1149 scheme: https
1150 host: 192.168.10.120
1151 port: '443'
1152 insecure: true
1153
OlgaGusarenko838c9fd2018-07-31 00:22:44 +03001154Neutron Keystone region:
Jakub Pavlik6dd5c0a2016-03-09 14:18:15 +01001155
1156.. code-block:: yaml
1157
1158 neutron:
1159 server:
1160 enabled: true
1161 version: kilo
1162 ...
1163 identity:
1164 region: RegionTwo
1165 ...
1166 compute:
1167 region: RegionTwo
1168 ...
1169
OlgaGusarenko838c9fd2018-07-31 00:22:44 +03001170Client-side RabbitMQ HA setup:
Jiri Konecny93b19992016-04-12 11:15:39 +02001171
1172.. code-block:: yaml
1173
1174 neutron:
1175 server:
1176 ....
1177 message_queue:
1178 engine: rabbitmq
1179 members:
1180 - host: 10.0.16.1
1181 - host: 10.0.16.2
1182 - host: 10.0.16.3
1183 user: openstack
1184 password: pwd
1185 virtual_host: '/openstack'
1186 ....
1187
Kirill Bespalovdd748b62017-11-21 10:42:57 +03001188Configuring TLS communications
1189------------------------------
Kirill Bespalov8fffe022017-08-03 17:55:02 +03001190
OlgaGusarenko838c9fd2018-07-31 00:22:44 +03001191.. note:: By default, system-wide installed CA certs are used,
1192 so ``cacert_file`` param is optional, as well as ``cacert``.
Kirill Bespalovdd748b62017-11-21 10:42:57 +03001193
1194- **RabbitMQ TLS**
Kirill Bespalov8fffe022017-08-03 17:55:02 +03001195
OlgaGusarenko838c9fd2018-07-31 00:22:44 +03001196 .. code-block:: yaml
Kirill Bespalov8fffe022017-08-03 17:55:02 +03001197
OlgaGusarenko838c9fd2018-07-31 00:22:44 +03001198 neutron:
1199 server, gateway, compute:
1200 message_queue:
1201 port: 5671
1202 ssl:
1203 enabled: True
1204 (optional) cacert: cert body if the cacert_file does not exists
1205 (optional) cacert_file: /etc/openstack/rabbitmq-ca.pem
1206 (optional) version: TLSv1_2
Kirill Bespalov8fffe022017-08-03 17:55:02 +03001207
Kirill Bespalovdd748b62017-11-21 10:42:57 +03001208- **MySQL TLS**
Kirill Bespalov8fffe022017-08-03 17:55:02 +03001209
OlgaGusarenko838c9fd2018-07-31 00:22:44 +03001210 .. code-block:: yaml
Kirill Bespalov8fffe022017-08-03 17:55:02 +03001211
OlgaGusarenko838c9fd2018-07-31 00:22:44 +03001212 neutron:
1213 server:
1214 database:
1215 ssl:
1216 enabled: True
1217 (optional) cacert: cert body if the cacert_file does not exists
1218 (optional) cacert_file: /etc/openstack/mysql-ca.pem
Kirill Bespalov8fffe022017-08-03 17:55:02 +03001219
Kirill Bespalovdd748b62017-11-21 10:42:57 +03001220- **Openstack HTTPS API**
1221
OlgaGusarenko838c9fd2018-07-31 00:22:44 +03001222 .. code-block:: yaml
Kirill Bespalov8fffe022017-08-03 17:55:02 +03001223
OlgaGusarenko838c9fd2018-07-31 00:22:44 +03001224 neutron:
1225 server:
1226 identity:
1227 protocol: https
1228 (optional) cacert_file: /etc/openstack/proxy.pem
Kirill Bespalov8fffe022017-08-03 17:55:02 +03001229
OlgaGusarenko838c9fd2018-07-31 00:22:44 +03001230Enable auditing filter, ie: CADF:
Petr Michalec61f7ab22016-11-29 16:29:09 +01001231
1232.. code-block:: yaml
1233
1234 neutron:
1235 server:
1236 audit:
1237 enabled: true
1238 ....
1239 filter_factory: 'keystonemiddleware.audit:filter_factory'
1240 map_file: '/etc/pycadf/neutron_api_audit_map.conf'
1241 ....
1242 compute:
1243 audit:
1244 enabled: true
1245 ....
1246 filter_factory: 'keystonemiddleware.audit:filter_factory'
1247 map_file: '/etc/pycadf/neutron_api_audit_map.conf'
1248 ....
Jiri Konecny93b19992016-04-12 11:15:39 +02001249
OlgaGusarenko838c9fd2018-07-31 00:22:44 +03001250Neutron with security groups disabled:
Oleg Bondarev98870a32017-05-29 16:53:19 +04001251
1252.. code-block:: yaml
1253
1254 neutron:
1255 server:
1256 security_groups_enabled: False
1257 ....
1258 compute:
1259 security_groups_enabled: False
1260 ....
1261 gateway:
1262 security_groups_enabled: False
1263
Jiri Konecny93b19992016-04-12 11:15:39 +02001264
Aleš Komárek41e82312017-04-11 13:37:44 +02001265Neutron Client
1266--------------
Jiri Broulik5368cc52017-02-08 18:53:59 +01001267
OlgaGusarenko838c9fd2018-07-31 00:22:44 +03001268Neutron networks:
Jiri Broulik5368cc52017-02-08 18:53:59 +01001269
1270.. code-block:: yaml
1271
1272 neutron:
1273 client:
1274 enabled: true
1275 server:
1276 identity:
Richard Felklaac256a2017-03-23 15:43:49 +01001277 endpoint_type: internalURL
Jiri Broulik5368cc52017-02-08 18:53:59 +01001278 network:
1279 inet1:
1280 tenant: demo
1281 shared: False
1282 admin_state_up: True
1283 router_external: True
1284 provider_physical_network: inet
1285 provider_network_type: flat
1286 provider_segmentation_id: 2
1287 subnet:
1288 inet1-subnet1:
1289 cidr: 192.168.90.0/24
1290 enable_dhcp: False
1291 inet2:
1292 tenant: admin
1293 shared: False
1294 router_external: True
1295 provider_network_type: "vlan"
1296 subnet:
1297 inet2-subnet1:
1298 cidr: 192.168.92.0/24
1299 enable_dhcp: False
1300 inet2-subnet2:
1301 cidr: 192.168.94.0/24
1302 enable_dhcp: True
1303 identity1:
1304 network:
1305 ...
1306
OlgaGusarenko838c9fd2018-07-31 00:22:44 +03001307Neutron routers:
Jiri Broulik5368cc52017-02-08 18:53:59 +01001308
1309.. code-block:: yaml
1310
1311 neutron:
1312 client:
1313 enabled: true
1314 server:
1315 identity:
Richard Felklaac256a2017-03-23 15:43:49 +01001316 endpoint_type: internalURL
Jiri Broulik5368cc52017-02-08 18:53:59 +01001317 router:
1318 inet1-router:
1319 tenant: demo
1320 admin_state_up: True
1321 gateway_network: inet
1322 interfaces:
1323 - inet1-subnet1
1324 - inet1-subnet2
1325 identity1:
1326 router:
1327 ...
1328
OlgaGusarenko838c9fd2018-07-31 00:22:44 +03001329.. TODO implement adding new interfaces to a router while updating it
Jiri Broulik5368cc52017-02-08 18:53:59 +01001330
OlgaGusarenko838c9fd2018-07-31 00:22:44 +03001331Neutron security groups:
Jiri Broulik5368cc52017-02-08 18:53:59 +01001332
1333.. code-block:: yaml
1334
1335 neutron:
1336 client:
1337 enabled: true
1338 server:
1339 identity:
Richard Felklaac256a2017-03-23 15:43:49 +01001340 endpoint_type: internalURL
Jiri Broulik5368cc52017-02-08 18:53:59 +01001341 security_group:
1342 security_group1:
1343 tenant: demo
1344 description: security group 1
1345 rules:
1346 - direction: ingress
1347 ethertype: IPv4
1348 protocol: TCP
1349 port_range_min: 1
1350 port_range_max: 65535
1351 remote_ip_prefix: 0.0.0.0/0
1352 - direction: ingress
1353 ethertype: IPv4
1354 protocol: UDP
1355 port_range_min: 1
1356 port_range_max: 65535
1357 remote_ip_prefix: 0.0.0.0/0
1358 - direction: ingress
1359 protocol: ICMP
1360 remote_ip_prefix: 0.0.0.0/0
1361 identity1:
1362 security_group:
1363 ...
1364
OlgaGusarenko838c9fd2018-07-31 00:22:44 +03001365.. TODO: implement updating existing security rules (now it adds new rule if
1366 trying to update existing one)
Jiri Broulik5368cc52017-02-08 18:53:59 +01001367
OlgaGusarenko838c9fd2018-07-31 00:22:44 +03001368Floating IP addresses:
Jiri Broulikde2e2902017-02-13 15:03:47 +01001369
1370.. code-block:: yaml
1371
1372 neutron:
1373 client:
1374 enabled: true
1375 server:
1376 identity:
Richard Felklaac256a2017-03-23 15:43:49 +01001377 endpoint_type: internalURL
Jiri Broulikde2e2902017-02-13 15:03:47 +01001378 floating_ip:
1379 prx01-instance:
1380 server: prx01.mk22-lab-basic.local
1381 subnet: private-subnet1
1382 network: public-net1
1383 tenant: demo
1384 gtw01-instance:
1385 ...
1386
1387.. note:: The network must have flag router:external set to True.
OlgaGusarenko838c9fd2018-07-31 00:22:44 +03001388 Instance port in the stated subnet will be associated
1389 with the dynamically generated floating IP.
Oleg Iurchenkode71cc22017-09-18 17:58:56 +03001390
1391Enable Neutron extensions (QoS, DNS, etc.)
1392------------------------------------------
OlgaGusarenko838c9fd2018-07-31 00:22:44 +03001393
Oleg Iurchenkode71cc22017-09-18 17:58:56 +03001394.. code-block:: yaml
1395
1396 neutron:
1397 server:
1398 backend:
1399 extension:
Oleg Iurchenkoac17f4f2017-10-06 11:24:27 +03001400 dns:
1401 enabled: True
1402 host: 127.0.0.1
1403 port: 9001
1404 protocol: http
1405 ....
1406 qos
1407 enabled: True
Oleg Iurchenkode71cc22017-09-18 17:58:56 +03001408
Oleg Bondarev878ac462018-04-23 17:48:15 +04001409Different Neutron extensions for different agents
1410-------------------------------------------------
OlgaGusarenko838c9fd2018-07-31 00:22:44 +03001411
Oleg Bondarev878ac462018-04-23 17:48:15 +04001412.. code-block:: yaml
1413
1414 neutron:
1415 server:
1416 backend:
1417 extension: # common extensions for OVS and SRIOV agents
1418 dns:
1419 enabled: True
1420 ...
1421 qos
1422 enabled: True
1423 ovs_extension: # OVS specific extensions
1424 bagpipe_bgpvpn:
1425 enabled: True
1426 sriov_extension: # SRIOV specific extensions
1427 dummy:
1428 enabled: True
Oleg Iurchenkode71cc22017-09-18 17:58:56 +03001429
Oleg Iurchenko8cf6cf52017-09-18 15:44:03 +03001430Neutron with Designate
1431-----------------------------------------
OlgaGusarenko838c9fd2018-07-31 00:22:44 +03001432
Oleg Iurchenko8cf6cf52017-09-18 15:44:03 +03001433.. code-block:: yaml
1434
1435 neutron:
1436 server:
1437 backend:
1438 extension:
1439 dns:
1440 enabled: True
1441 host: 127.0.0.1
1442 port: 9001
1443 protocol: http
1444
Marek Celoud67ce2062018-01-31 13:44:55 +01001445Enable RBAC for OpenContrail engine
1446-----------------------------------
OlgaGusarenko838c9fd2018-07-31 00:22:44 +03001447
Marek Celoud67ce2062018-01-31 13:44:55 +01001448.. code-block:: yaml
1449
1450 neutron:
1451 server:
1452 backend:
1453 engine: contrail
1454 rbac:
1455 enabled: True
Oleg Iurchenko8cf6cf52017-09-18 15:44:03 +03001456
Dmitry Kalashnik35dd0e02017-12-07 14:16:25 +04001457Enhanced logging with logging.conf
1458----------------------------------
1459
OlgaGusarenko838c9fd2018-07-31 00:22:44 +03001460By default ``logging.conf`` is disabled.
Dmitry Kalashnik35dd0e02017-12-07 14:16:25 +04001461
1462That is possible to enable per-binary logging.conf with new variables:
Dmitry Kalashnik35dd0e02017-12-07 14:16:25 +04001463
OlgaGusarenko838c9fd2018-07-31 00:22:44 +03001464* ``openstack_log_appender``
1465 Set to true to enable ``log_config_append`` for all OpenStack services
1466
1467* ``openstack_fluentd_handler_enabled``
1468 Set to true to enable FluentHandler for all Openstack services
1469
1470* ``openstack_ossyslog_handler_enabled``
1471 Set to true to enable OSSysLogHandler for all Openstack services.
1472
1473Only ``WatchedFileHandler``, ``OSSysLogHandler``, and ``FluentHandler``
1474are available.
Dmitry Kalashnik35dd0e02017-12-07 14:16:25 +04001475
1476Also it is possible to configure this with pillar:
1477
1478.. code-block:: yaml
1479
1480 neutron:
1481 server:
1482 logging:
1483 log_appender: true
1484 log_handlers:
1485 watchedfile:
1486 enabled: true
1487 fluentd:
1488 enabled: true
Oleksii Chupryn156c5f42018-02-07 10:06:50 +02001489 ossyslog:
1490 enabled: true
Dmitry Kalashnik35dd0e02017-12-07 14:16:25 +04001491 ....
1492 compute:
1493 logging:
1494 log_appender: true
1495 log_handlers:
1496 watchedfile:
1497 enabled: true
1498 fluentd:
1499 enabled: true
Oleksii Chupryn156c5f42018-02-07 10:06:50 +02001500 ossyslog:
1501 enabled: true
Dmitry Kalashnik35dd0e02017-12-07 14:16:25 +04001502 ....
1503 gateway:
1504 logging:
1505 log_appender: true
1506 log_handlers:
1507 watchedfile:
1508 enabled: true
1509 fluentd:
1510 enabled: true
Oleksii Chupryn156c5f42018-02-07 10:06:50 +02001511 ossyslog:
1512 enabled: true
Oleg Iurchenko8cf6cf52017-09-18 15:44:03 +03001513
Oleksii Grudevfe73ee52018-05-14 14:08:11 +03001514Logging levels pillar example:
1515
1516.. code-block:: yaml
1517
1518 neutron:
1519 server:
1520 logging:
1521 log_appender: true
1522 loggers:
1523 root:
1524 level: 'DEBUG'
1525 neutron:
1526 level: 'DEBUG'
1527 amqplib:
1528 level: 'DEBUG'
1529 sqlalchemy:
1530 level: 'DEBUG'
1531 boto:
1532 level: 'DEBUG'
1533 suds:
1534 level: 'DEBUG'
1535 eventletwsgi:
1536 level: 'DEBUG'
1537 ......
Oleksandr Bryndzii3b0ac2c2018-10-04 11:06:24 +03001538Neutron server with memcached caching and security strategy:
1539
1540.. code-block:: yaml
1541
1542 neutron:
1543 server:
1544 enabled: true
1545 ...
1546 cache:
1547 engine: memcached
1548 members:
1549 - host: 127.0.0.1
1550 port: 11211
1551 - host: 127.0.0.1
1552 port: 11211
1553 security:
1554 enabled: true
1555 strategy: ENCRYPT
1556 secret_key: secret
Oleksii Grudevfe73ee52018-05-14 14:08:11 +03001557
Vasyl Saienkoba420732018-09-07 10:19:32 +00001558Upgrades
1559========
1560
1561Each openstack formula provide set of phases (logical bloks) that will help to
1562build flexible upgrade orchestration logic for particular components. The list
1563of phases might and theirs descriptions are listed in table below:
1564
1565+-------------------------------+------------------------------------------------------+
1566| State | Description |
1567+===============================+======================================================+
1568| <app>.upgrade.service_running | Ensure that all services for particular application |
1569| | are enabled for autostart and running |
1570+-------------------------------+------------------------------------------------------+
1571| <app>.upgrade.service_stopped | Ensure that all services for particular application |
1572| | disabled for autostart and dead |
1573+-------------------------------+------------------------------------------------------+
1574| <app>.upgrade.pkg_latest | Ensure that packages used by particular application |
1575| | are installed to latest available version. |
1576| | This will not upgrade data plane packages like qemu |
1577| | and openvswitch as usually minimal required version |
1578| | in openstack services is really old. The data plane |
1579| | packages should be upgraded separately by `apt-get |
1580| | upgrade` or `apt-get dist-upgrade` |
1581| | Applying this state will not autostart service. |
1582+-------------------------------+------------------------------------------------------+
1583| <app>.upgrade.render_config | Ensure configuration is rendered actual version. +
1584+-------------------------------+------------------------------------------------------+
1585| <app>.upgrade.pre | We assume this state is applied on all nodes in the |
1586| | cloud before running upgrade. |
1587| | Only non destructive actions will be applied during |
1588| | this phase. Perform service built in service check |
1589| | like (keystone-manage doctor and nova-status upgrade)|
1590+-------------------------------+------------------------------------------------------+
1591| <app>.upgrade.upgrade.pre | Mostly applicable for data plane nodes. During this |
1592| | phase resources will be gracefully removed from |
1593| | current node if it is allowed. Services for upgraded |
1594| | application will be set to admin disabled state to |
1595| | make sure node will not participate in resources |
1596| | scheduling. For example on gtw nodes this will set |
1597| | all agents to admin disable state and will move all |
1598| | routers to other agents. |
1599+-------------------------------+------------------------------------------------------+
1600| <app>.upgrade.upgrade | This state will basically upgrade application on |
1601| | particular target. Stop services, render |
1602| | configuration, install new packages, run offline |
1603| | dbsync (for ctl), start services. Data plane should |
1604| | not be affected, only OpenStack python services. |
1605+-------------------------------+------------------------------------------------------+
1606| <app>.upgrade.upgrade.post | Add services back to scheduling. |
1607+-------------------------------+------------------------------------------------------+
1608| <app>.upgrade.post | This phase should be launched only when upgrade of |
1609| | the cloud is completed. |
1610+-------------------------------+------------------------------------------------------+
1611| <app>.upgrade.verify | Here we will do basic health checks (API CRUD |
1612| | operations, verify do not have dead network |
1613| | agents/compute services) |
1614+-------------------------------+------------------------------------------------------+
1615
1616
Oleksandr Shyshkof51b94c2018-08-31 16:05:27 +03001617Enable x509 and ssl communication between Neutron and Galera cluster.
1618---------------------
1619By default communication between Neutron and Galera is unsecure.
1620
1621neutron:
1622 server:
1623 database:
1624 x509:
1625 enabled: True
1626
1627You able to set custom certificates in pillar:
1628
1629neutron:
1630 server:
1631 database:
1632 x509:
1633 cacert: (certificate content)
1634 cert: (certificate content)
1635 key: (certificate content)
1636
1637You can read more about it here:
1638 https://docs.openstack.org/security-guide/databases/database-access-control.html