blob: afcc97207af9f1bd1affaa3bce33fb08eafc5631 [file] [log] [blame]
Aleš Komárek41e82312017-04-11 13:37:44 +02001===============
2Neutron Formula
3===============
Filip Pytlouncd028e42015-10-06 16:28:32 +02004
Jakub Pavlik9ecf0262016-05-20 11:20:58 +02005Neutron is an OpenStack project to provide "networking as a service" between
6interface devices (e.g., vNICs) managed by other Openstack services (e.g.,
7nova).
Filip Pytlouncd028e42015-10-06 16:28:32 +02008
Jakub Pavlik9ecf0262016-05-20 11:20:58 +02009Starting in 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
Filip Pytlouncd028e42015-10-06 16:28:32 +020029 bind:
30 address: 172.20.0.1
31 port: 9696
Filip Pytlouncd028e42015-10-06 16:28:32 +020032 database:
33 engine: mysql
34 host: 127.0.0.1
35 port: 3306
36 name: neutron
37 user: neutron
38 password: pwd
39 identity:
40 engine: keystone
41 host: 127.0.0.1
42 port: 35357
43 user: neutron
44 password: pwd
45 tenant: service
Dennis Dmitriev37114722017-03-06 16:52:26 +020046 endpoint_type: internal
Filip Pytlouncd028e42015-10-06 16:28:32 +020047 message_queue:
48 engine: rabbitmq
49 host: 127.0.0.1
50 port: 5672
51 user: openstack
52 password: pwd
53 virtual_host: '/openstack'
54 metadata:
55 host: 127.0.0.1
56 port: 8775
57 password: pass
Mykyta Karpin253406d2017-12-08 17:01:37 +020058 workers: 2
Petr Michalec61f7ab22016-11-29 16:29:09 +010059 audit:
60 enabled: false
Filip Pytlouncd028e42015-10-06 16:28:32 +020061
Swann Croiset9407daf2017-02-02 15:27:56 +010062Note: The pagination is useful to retrieve a large bunch of resources,
63because a single request may fail (timeout). This is enabled with both
64parameters *allow_pagination* and *pagination_max_limit* as shown above.
65
Dmitry Ukov596ddcf2017-05-04 18:16:16 +040066
67Configuration of policy.json file
68
69.. code-block:: yaml
70
71 neutron:
72 server:
73 ....
74 policy:
75 create_subnet: 'rule:admin_or_network_owner'
76 'get_network:queue_id': 'rule:admin_only'
77 # Add key without value to remove line from policy.json
78 'create_network:shared':
79
Elena Ezhovacd67cfe2017-06-16 23:35:07 +040080Neutron LBaaSv2 enablement
81--------------------------
Ondrej Smola314eee22017-03-08 21:21:16 +010082
83.. code-block:: yaml
84
85 neutron:
86 server:
87 lbaas:
88 enabled: true
89 providers:
Elena Ezhovacd67cfe2017-06-16 23:35:07 +040090 octavia:
91 engine: octavia
92 driver_path: 'neutron_lbaas.drivers.octavia.driver.OctaviaDriver'
93 base_url: 'http://127.0.0.1:9876'
Ondrej Smola314eee22017-03-08 21:21:16 +010094 avi_adc:
Ondrej Smola314eee22017-03-08 21:21:16 +010095 engine: avinetworks
Elena Ezhovacd67cfe2017-06-16 23:35:07 +040096 driver_path: 'avi_lbaasv2.avi_driver.AviDriver'
Ondrej Smola314eee22017-03-08 21:21:16 +010097 controller_address: 10.182.129.239
98 controller_user: admin
99 controller_password: Cloudlab2016
100 controller_cloud_name: Default-Cloud
101 avi_adc2:
102 engine: avinetworks
103 ...
104
Elena Ezhovacd67cfe2017-06-16 23:35:07 +0400105Note: If the Contrail backend is set, Opencontrail loadbalancer would be enabled
106automatically. In this case lbaas should disabled in pillar:
Ondrej Smola314eee22017-03-08 21:21:16 +0100107
108.. code-block:: yaml
109
110 neutron:
111 server:
112 lbaas:
Elena Ezhovacd67cfe2017-06-16 23:35:07 +0400113 enabled: false
Ondrej Smola314eee22017-03-08 21:21:16 +0100114
Elena Ezhova166d4012017-08-17 12:53:52 +0400115
116Neutron FWaaSv1 enablement
117--------------------------
118
119.. code-block:: yaml
120
121 neutron:
122 fwaas:
123 enabled: true
124 version: ocata
125 api_version: v1
126
127
Ondrej Smola12ff8192017-04-28 12:39:11 +0200128Enable CORS parameters
Elena Ezhova166d4012017-08-17 12:53:52 +0400129----------------------
Ondrej Smola12ff8192017-04-28 12:39:11 +0200130
131.. code-block:: yaml
132
133 neutron:
134 server:
135 cors:
136 allowed_origin: https:localhost.local,http:localhost.local
137 expose_headers: X-Auth-Token,X-Openstack-Request-Id,X-Subject-Token
138 allow_methods: GET,PUT,POST,DELETE,PATCH
139 allow_headers: X-Auth-Token,X-Openstack-Request-Id,X-Subject-Token
140 allow_credentials: True
141 max_age: 86400
142
143
Aleš Komárek41e82312017-04-11 13:37:44 +0200144Neutron VXLAN tenant networks with Network nodes
145------------------------------------------------
Swann Croiset9407daf2017-02-02 15:27:56 +0100146
Aleš Komárek41e82312017-04-11 13:37:44 +0200147With DVR for East-West and Network node for North-South.
Jiri Broulik74f61112016-11-21 20:23:47 +0100148
149This use case describes a model utilising VxLAN overlay with DVR. The DVR
Aleš Komárek41e82312017-04-11 13:37:44 +0200150routers will only be utilized for traffic that is router within the cloud
Vasyl Saienko2fffc842017-06-14 10:35:26 +0300151infrastructure and that remains encapsulated. External traffic will be
152routed to via the network nodes.
Jiri Broulik74f61112016-11-21 20:23:47 +0100153
Vasyl Saienko2fffc842017-06-14 10:35:26 +0300154The intention is that each tenant will require at least two (2) vrouters
155one to be utilised
Jiri Broulik74f61112016-11-21 20:23:47 +0100156
Aleš Komárek41e82312017-04-11 13:37:44 +0200157Neutron Server
marcoa4428a32016-06-10 11:50:16 +0200158
159.. code-block:: yaml
160
161 neutron:
162 server:
Jiri Broulik74f61112016-11-21 20:23:47 +0100163 version: mitaka
Dmitry Stremkouski3c1be3e2017-11-18 11:04:20 +0300164 path_mtu: 1500
Jiri Broulik74f61112016-11-21 20:23:47 +0100165 bind:
166 address: 172.20.0.1
167 port: 9696
168 database:
169 engine: mysql
170 host: 127.0.0.1
171 port: 3306
172 name: neutron
173 user: neutron
174 password: pwd
175 identity:
176 engine: keystone
177 host: 127.0.0.1
178 port: 35357
179 user: neutron
180 password: pwd
181 tenant: service
Dennis Dmitriev37114722017-03-06 16:52:26 +0200182 endpoint_type: internal
Jiri Broulik74f61112016-11-21 20:23:47 +0100183 message_queue:
184 engine: rabbitmq
185 host: 127.0.0.1
186 port: 5672
187 user: openstack
188 password: pwd
189 virtual_host: '/openstack'
190 global_physnet_mtu: 9000
191 l3_ha: False # Which type of router will be created by default
192 dvr: True # disabled for non DVR use case
193 backend:
194 engine: ml2
195 tenant_network_types: "flat,vxlan"
196 external_mtu: 9000
197 mechanism:
Elena Ezhovad6a080c2017-10-09 15:25:16 +0400198 ovs:
199 driver: openvswitch
Jiri Broulik74f61112016-11-21 20:23:47 +0100200
Aleš Komárek41e82312017-04-11 13:37:44 +0200201Network Node
Jiri Broulik74f61112016-11-21 20:23:47 +0100202
203.. code-block:: yaml
204
205 neutron:
206 gateway:
207 enabled: True
208 version: mitaka
209 message_queue:
210 engine: rabbitmq
211 host: 127.0.0.1
212 port: 5672
213 user: openstack
214 password: pwd
215 virtual_host: '/openstack'
216 local_ip: 192.168.20.20 # br-mesh ip address
217 dvr: True # disabled for non DVR use case
218 agent_mode: dvr_snat
219 metadata:
220 host: 127.0.0.1
221 password: pass
222 backend:
223 engine: ml2
224 tenant_network_types: "flat,vxlan"
225 mechanism:
Elena Ezhovad6a080c2017-10-09 15:25:16 +0400226 ovs:
227 driver: openvswitch
Jiri Broulik74f61112016-11-21 20:23:47 +0100228
229Compute Node
Jiri Broulik74f61112016-11-21 20:23:47 +0100230
231.. code-block:: yaml
232
233 neutron:
234 compute:
235 enabled: True
236 version: mitaka
237 message_queue:
238 engine: rabbitmq
239 host: 127.0.0.1
240 port: 5672
241 user: openstack
242 password: pwd
243 virtual_host: '/openstack'
244 local_ip: 192.168.20.20 # br-mesh ip address
245 dvr: True # disabled for non DVR use case
246 agent_mode: dvr
247 external_access: false # Compute node with DVR for east-west only, Network Node has True as default
248 metadata:
249 host: 127.0.0.1
Vasyl Saienko2fffc842017-06-14 10:35:26 +0300250 password: pass
Jiri Broulik74f61112016-11-21 20:23:47 +0100251 backend:
252 engine: ml2
253 tenant_network_types: "flat,vxlan"
254 mechanism:
Elena Ezhovad6a080c2017-10-09 15:25:16 +0400255 ovs:
256 driver: openvswitch
Petr Michalec61f7ab22016-11-29 16:29:09 +0100257 audit:
258 enabled: false
Jiri Broulik74f61112016-11-21 20:23:47 +0100259
Aleš Komárek41e82312017-04-11 13:37:44 +0200260
Dmitry Stremkouskia3a4ab42017-10-23 17:37:12 +0300261Disable physnet1 bridge
262-----------------------
263
264By default we have external access turned on, so among any physnets in
265your reclass there would be additional one: physnet1, which is mapped to
266br-floating
267
268If you need internal nets only without this bridge, remove br-floating
269and configurations mappings. Disable mappings for this bridge on
270neutron-servers:
271
272.. code-block:: yaml
273
274 neutron:
275 server:
276 external_access: false
277
278gateways:
279
280.. code-block:: yaml
281
282 neutron:
283 gateway:
284 external_access: false
285
286compute nodes:
287
288.. code-block:: yaml
289
290 neutron:
291 compute:
292 external_access: false
293
294
Marcin Iwinskic50137a2018-01-22 14:18:24 +0100295Add additional bridge mappings for OVS bridges
296----------------------------------------------
297
298By default we have external access turned on, so among any physnets in
299your reclass there would be additional one: physnet1, which is mapped to
300br-floating
301
302If you need to add extra non-default bridge mappings they can be defined
303separately for both gateways and compute nodes:
304
305gateways:
306
307.. code-block:: yaml
308
309 neutron:
310 gateway:
311 bridge_mappings:
312 physnet4: br-floating-internet
313
314compute nodes:
315
316.. code-block:: yaml
317
318 neutron:
319 compute:
320 bridge_mappings:
321 physnet4: br-floating-internet
322
323
Dmitry Stremkouski4b410222017-11-18 11:29:55 +0300324Specify different mtu values for different physnets
325---------------------------------------------------
326
327Neutron Server
328
329.. code-block:: yaml
330
331 neutron:
332 server:
333 version: mitaka
334 backend:
335 external_mtu: 1500
336 tenant_net_mtu: 9000
337 ironic_net_mtu: 9000
338
Jiri Broulik74f61112016-11-21 20:23:47 +0100339Neutron VXLAN tenant networks with Network Nodes (non DVR)
Aleš Komárek41e82312017-04-11 13:37:44 +0200340----------------------------------------------------------
Jiri Broulik74f61112016-11-21 20:23:47 +0100341
342This section describes a network solution that utilises VxLAN overlay
343 networks without DVR with all routers being managed on the network nodes.
344
Aleš Komárek41e82312017-04-11 13:37:44 +0200345Neutron Server
Jiri Broulik74f61112016-11-21 20:23:47 +0100346
347.. code-block:: yaml
348
349 neutron:
350 server:
351 version: mitaka
Jiri Broulik74f61112016-11-21 20:23:47 +0100352 bind:
353 address: 172.20.0.1
354 port: 9696
355 database:
356 engine: mysql
357 host: 127.0.0.1
358 port: 3306
359 name: neutron
360 user: neutron
361 password: pwd
362 identity:
363 engine: keystone
364 host: 127.0.0.1
365 port: 35357
366 user: neutron
367 password: pwd
368 tenant: service
Dennis Dmitriev37114722017-03-06 16:52:26 +0200369 endpoint_type: internal
Jiri Broulik74f61112016-11-21 20:23:47 +0100370 message_queue:
371 engine: rabbitmq
372 host: 127.0.0.1
373 port: 5672
374 user: openstack
375 password: pwd
376 virtual_host: '/openstack'
377 global_physnet_mtu: 9000
378 l3_ha: True
379 dvr: False
380 backend:
381 engine: ml2
382 tenant_network_types= "flat,vxlan"
383 external_mtu: 9000
384 mechanism:
Elena Ezhovad6a080c2017-10-09 15:25:16 +0400385 ovs:
386 driver: openvswitch
Jiri Broulik74f61112016-11-21 20:23:47 +0100387
Aleš Komárek41e82312017-04-11 13:37:44 +0200388Network Node
Jiri Broulik74f61112016-11-21 20:23:47 +0100389
390.. code-block:: yaml
391
392 neutron:
393 gateway:
394 enabled: True
395 version: mitaka
396 message_queue:
397 engine: rabbitmq
398 host: 127.0.0.1
399 port: 5672
400 user: openstack
401 password: pwd
402 virtual_host: '/openstack'
403 local_ip: 192.168.20.20 # br-mesh ip address
404 dvr: False
405 agent_mode: legacy
Simon Pasquierc03af112017-04-10 10:35:14 +0200406 availability_zone: az1
Jiri Broulik74f61112016-11-21 20:23:47 +0100407 metadata:
408 host: 127.0.0.1
409 password: pass
410 backend:
411 engine: ml2
412 tenant_network_types: "flat,vxlan"
413 mechanism:
Elena Ezhovad6a080c2017-10-09 15:25:16 +0400414 ovs:
415 driver: openvswitch
Jiri Broulik74f61112016-11-21 20:23:47 +0100416
417Compute Node
Jiri Broulik74f61112016-11-21 20:23:47 +0100418
419.. code-block:: yaml
420
421 neutron:
422 compute:
423 enabled: True
424 version: mitaka
425 message_queue:
426 engine: rabbitmq
427 host: 127.0.0.1
428 port: 5672
429 user: openstack
430 password: pwd
431 virtual_host: '/openstack'
432 local_ip: 192.168.20.20 # br-mesh ip address
433 external_access: False
Vasyl Saienko2fffc842017-06-14 10:35:26 +0300434 dvr: False
Jiri Broulik74f61112016-11-21 20:23:47 +0100435 backend:
436 engine: ml2
437 tenant_network_types: "flat,vxlan"
438 mechanism:
Elena Ezhovad6a080c2017-10-09 15:25:16 +0400439 ovs:
440 driver: openvswitch
Jiri Broulik74f61112016-11-21 20:23:47 +0100441
Aleš Komárek41e82312017-04-11 13:37:44 +0200442Neutron VXLAN tenant networks with Network Nodes with DVR
443---------------------------------------------------------
444
445With DVR for East-West and North-South, DVR everywhere, Network node for SNAT.
Jiri Broulik74f61112016-11-21 20:23:47 +0100446
Vasyl Saienko2fffc842017-06-14 10:35:26 +0300447This section describes a network solution that utilises VxLAN
448overlay networks with DVR with North-South and East-West. Network
Jiri Broulik74f61112016-11-21 20:23:47 +0100449Node is used only for SNAT.
450
Aleš Komárek41e82312017-04-11 13:37:44 +0200451Neutron Server
Jiri Broulik74f61112016-11-21 20:23:47 +0100452
453.. code-block:: yaml
454
455 neutron:
456 server:
457 version: mitaka
Jiri Broulik74f61112016-11-21 20:23:47 +0100458 bind:
459 address: 172.20.0.1
460 port: 9696
461 database:
462 engine: mysql
463 host: 127.0.0.1
464 port: 3306
465 name: neutron
466 user: neutron
467 password: pwd
468 identity:
469 engine: keystone
470 host: 127.0.0.1
471 port: 35357
472 user: neutron
473 password: pwd
474 tenant: service
Dennis Dmitriev37114722017-03-06 16:52:26 +0200475 endpoint_type: internal
Jiri Broulik74f61112016-11-21 20:23:47 +0100476 message_queue:
477 engine: rabbitmq
478 host: 127.0.0.1
479 port: 5672
480 user: openstack
481 password: pwd
482 virtual_host: '/openstack'
483 global_physnet_mtu: 9000
484 l3_ha: False
485 dvr: True
486 backend:
487 engine: ml2
488 tenant_network_types= "flat,vxlan"
489 external_mtu: 9000
490 mechanism:
Elena Ezhovad6a080c2017-10-09 15:25:16 +0400491 ovs:
492 driver: openvswitch
Jiri Broulik74f61112016-11-21 20:23:47 +0100493
Aleš Komárek41e82312017-04-11 13:37:44 +0200494Network Node
Jiri Broulik74f61112016-11-21 20:23:47 +0100495
496.. code-block:: yaml
497
498 neutron:
499 gateway:
500 enabled: True
501 version: mitaka
502 message_queue:
503 engine: rabbitmq
504 host: 127.0.0.1
505 port: 5672
506 user: openstack
507 password: pwd
508 virtual_host: '/openstack'
509 local_ip: 192.168.20.20 # br-mesh ip address
510 dvr: True
511 agent_mode: dvr_snat
Simon Pasquierc03af112017-04-10 10:35:14 +0200512 availability_zone: az1
Jiri Broulik74f61112016-11-21 20:23:47 +0100513 metadata:
514 host: 127.0.0.1
515 password: pass
516 backend:
517 engine: ml2
518 tenant_network_types: "flat,vxlan"
519 mechanism:
Elena Ezhovad6a080c2017-10-09 15:25:16 +0400520 ovs:
521 driver: openvswitch
Jiri Broulik74f61112016-11-21 20:23:47 +0100522
523Compute Node
Jiri Broulik74f61112016-11-21 20:23:47 +0100524
525.. code-block:: yaml
526
527 neutron:
528 compute:
529 enabled: True
530 version: mitaka
531 message_queue:
532 engine: rabbitmq
533 host: 127.0.0.1
534 port: 5672
535 user: openstack
536 password: pwd
537 virtual_host: '/openstack'
538 local_ip: 192.168.20.20 # br-mesh ip address
539 dvr: True
Vasyl Saienko2fffc842017-06-14 10:35:26 +0300540 external_access: True
Jiri Broulik74f61112016-11-21 20:23:47 +0100541 agent_mode: dvr
Simon Pasquierc03af112017-04-10 10:35:14 +0200542 availability_zone: az1
Jiri Broulik74f61112016-11-21 20:23:47 +0100543 metadata:
544 host: 127.0.0.1
545 password: pass
546 backend:
547 engine: ml2
548 tenant_network_types: "flat,vxlan"
549 mechanism:
Elena Ezhovad6a080c2017-10-09 15:25:16 +0400550 ovs:
551 driver: openvswitch
Jiri Broulik74f61112016-11-21 20:23:47 +0100552
553Sample Linux network configuration for DVR
Jiri Broulik74f61112016-11-21 20:23:47 +0100554
555.. code-block:: yaml
556
557 linux:
558 network:
559 bridge: openvswitch
560 interface:
561 eth1:
562 enabled: true
563 type: eth
564 mtu: 9000
565 proto: manual
566 eth2:
567 enabled: true
568 type: eth
569 mtu: 9000
570 proto: manual
571 eth3:
572 enabled: true
573 type: eth
574 mtu: 9000
575 proto: manual
576 br-int:
577 enabled: true
578 mtu: 9000
579 type: ovs_bridge
580 br-floating:
581 enabled: true
582 mtu: 9000
583 type: ovs_bridge
584 float-to-ex:
585 enabled: true
586 type: ovs_port
587 mtu: 65000
588 bridge: br-floating
589 br-mgmt:
590 enabled: true
591 type: bridge
592 mtu: 9000
593 address: ${_param:single_address}
594 netmask: 255.255.255.0
595 use_interfaces:
596 - eth1
597 br-mesh:
598 enabled: true
599 type: bridge
600 mtu: 9000
601 address: ${_param:tenant_address}
602 netmask: 255.255.255.0
603 use_interfaces:
604 - eth2
605 br-ex:
606 enabled: true
607 type: bridge
608 mtu: 9000
609 address: ${_param:external_address}
610 netmask: 255.255.255.0
611 use_interfaces:
612 - eth3
613 use_ovs_ports:
614 - float-to-ex
615
Thom Gerdes3282d072017-05-30 22:06:04 +0000616Additonal VXLAN tenant network settings
617---------------------------------------
618
619The default multicast group of 224.0.0.1 only multicasts to a single subnet.
620Allow overriding it to allow larger underlay network topologies.
621
622Neutron Server
623
624.. code-block:: yaml
625
626 neutron:
627 server:
628 vxlan:
629 group: 239.0.0.0/8
630 vni_ranges: "2:65535"
631
Jiri Broulik74f61112016-11-21 20:23:47 +0100632Neutron VLAN tenant networks with Network Nodes
Aleš Komárek41e82312017-04-11 13:37:44 +0200633-----------------------------------------------
Jiri Broulik74f61112016-11-21 20:23:47 +0100634
635VLAN tenant provider
636
637Neutron Server only
Jiri Broulik74f61112016-11-21 20:23:47 +0100638
639.. code-block:: yaml
640
641 neutron:
642 server:
643 version: mitaka
Jiri Broulik74f61112016-11-21 20:23:47 +0100644 ...
645 global_physnet_mtu: 9000
646 l3_ha: False
647 dvr: True
648 backend:
649 engine: ml2
650 tenant_network_types: "flat,vlan" # Can be mixed flat,vlan,vxlan
651 tenant_vlan_range: "1000:2000"
652 external_vlan_range: "100:200" # Does not have to be defined.
653 external_mtu: 9000
654 mechanism:
Elena Ezhovad6a080c2017-10-09 15:25:16 +0400655 ovs:
656 driver: openvswitch
Jiri Broulik74f61112016-11-21 20:23:47 +0100657
658Compute node
Jiri Broulik74f61112016-11-21 20:23:47 +0100659
660.. code-block:: yaml
661
662 neutron:
663 compute:
664 version: mitaka
Jiri Broulik74f61112016-11-21 20:23:47 +0100665 ...
666 dvr: True
667 agent_mode: dvr
668 external_access: False
669 backend:
670 engine: ml2
671 tenant_network_types: "flat,vlan" # Can be mixed flat,vlan,vxlan
672 mechanism:
Elena Ezhovad6a080c2017-10-09 15:25:16 +0400673 ovs:
674 driver: openvswitch
Jiri Broulik74f61112016-11-21 20:23:47 +0100675
Aleš Komárek41e82312017-04-11 13:37:44 +0200676Advanced Neutron Features (DPDK, SR-IOV)
Oleg Bondarev0575ae42017-07-28 16:36:25 +0400677----------------------------------------
Aleš Komárek41e82312017-04-11 13:37:44 +0200678
Jakub Pavlik8f83ccc2017-02-27 11:15:39 +0100679Neutron OVS DPDK
Jakub Pavlik8f83ccc2017-02-27 11:15:39 +0100680
681Enable datapath netdev for neutron openvswitch agent
682
683.. code-block:: yaml
684
685 neutron:
686 server:
687 version: mitaka
688 ...
689 dpdk: True
690 ...
691
692 neutron:
693 compute:
694 version: mitaka
Jakub Pavlik8f83ccc2017-02-27 11:15:39 +0100695 dpdk: True
Oleg Bondarevee7e8302017-10-16 17:20:38 +0400696 vhost_socket_dir: /var/run/openvswitch
Jakub Pavlik8f83ccc2017-02-27 11:15:39 +0100697 backend:
698 engine: ml2
699 ...
700 mechanism:
Elena Ezhovad6a080c2017-10-09 15:25:16 +0400701 ovs:
702 driver: openvswitch
Jakub Pavlik8f83ccc2017-02-27 11:15:39 +0100703
Jakub Pavlik70555cb2017-02-26 18:48:02 +0100704Neutron OVS SR-IOV
Jakub Pavlik70555cb2017-02-26 18:48:02 +0100705
706.. code-block:: yaml
707
708 neutron:
709 server:
710 version: mitaka
Jakub Pavlik70555cb2017-02-26 18:48:02 +0100711 backend:
712 engine: ml2
713 ...
714 mechanism:
Elena Ezhovad6a080c2017-10-09 15:25:16 +0400715 ovs:
716 driver: openvswitch
717 sriov:
718 driver: sriovnicswitch
Jakub Pavlik70555cb2017-02-26 18:48:02 +0100719
720 neutron:
721 compute:
722 version: mitaka
Jakub Pavlik70555cb2017-02-26 18:48:02 +0100723 ...
724 backend:
725 engine: ml2
726 tenant_network_types: "flat,vlan" # Can be mixed flat,vlan,vxlan
727 sriov:
728 nic_one:
729 devname: eth1
730 physical_network: physnet3
731 mechanism:
Elena Ezhovad6a080c2017-10-09 15:25:16 +0400732 ovs:
733 driver: openvswitch
Jakub Pavlik70555cb2017-02-26 18:48:02 +0100734
Ilya Chukhnakovf4c2bb32017-06-08 02:03:15 +0300735Neutron with VLAN-aware-VMs
Oleg Bondarev0575ae42017-07-28 16:36:25 +0400736---------------------------
Ilya Chukhnakovf4c2bb32017-06-08 02:03:15 +0300737
738.. code-block:: yaml
739
740 neutron:
741 server:
742 vlan_aware_vms: true
743 ....
744 compute:
745 vlan_aware_vms: true
746 ....
747 gateway:
748 vlan_aware_vms: true
749
Oleksii Chupryn16cb4e02018-02-26 14:20:39 +0200750Neutron with DHCP agent on compute node
751---------------------------------------
752
753.. code-block:: yaml
754
755 neutron:
756 ....
757 compute:
758 dhcp_agent_enabled: true
759 ....
760
Oleg Bondarev0575ae42017-07-28 16:36:25 +0400761Neutron with OVN
762----------------
763
764Control node:
765
766.. code-block:: yaml
767
768 neutron:
769 server:
770 backend:
771 engine: ovn
772 mechanism:
773 ovn:
774 driver: ovn
775 tenant_network_types: "geneve,flat"
Michael Polenchuka3d492b2017-12-27 15:49:43 +0400776 ovn_ctl_opts:
777 db-nb-create-insecure-remote: 'yes'
778 db-sb-create-insecure-remote: 'yes'
Oleg Bondarev0575ae42017-07-28 16:36:25 +0400779
780Compute node:
781
782.. code-block:: yaml
783
784 neutron:
785 compute:
786 local_ip: 10.2.0.105
787 controller_vip: 10.1.0.101
788 external_access: false
789 backend:
790 engine: ovn
791
Michael Polenchukcccd1a52018-02-02 17:41:16 +0400792
793Neutron L2 Gateway
794----------------
795
796Control node:
797
798.. code-block:: yaml
799
800 neutron:
801 server:
802 version: pike
803 l2gw:
804 enabled: true
805 periodic_monitoring_interval: 5
806 quota_l2_gateway: 20
807 # service_provider=<service_type>:<name>:<driver>[:default]
808 service_provider: L2GW:OpenDaylight:networking_odl.l2gateway.driver.OpenDaylightL2gwDriver:default
809 backend:
810 engine: ml2
811
812Network/Gateway node:
813
814.. code-block:: yaml
815
816 neutron:
817 gateway:
818 version: pike
819 l2gw:
820 enabled: true
821 debug: true
822 socket_timeout: 20
823 ovsdb_hosts:
824 # <ovsdb_name>: <ip address>:<port>
825 # - ovsdb_name: a user defined symbolic identifier of physical switch
826 # - ip address: the address or dns name for the OVSDB server (i.e. pointer to the switch)
827 ovsdb1: 10.164.5.33:6632
828 ovsdb2: 10.164.4.33:6632
829
830
Aleš Komárek41e82312017-04-11 13:37:44 +0200831Neutron Server
832--------------
833
Jiri Broulik74f61112016-11-21 20:23:47 +0100834Neutron Server with OpenContrail
Jiri Broulik74f61112016-11-21 20:23:47 +0100835
836.. code-block:: yaml
837
838 neutron:
839 server:
marcoa4428a32016-06-10 11:50:16 +0200840 backend:
841 engine: contrail
842 host: contrail_discovery_host
843 port: 8082
844 user: admin
845 password: password
846 tenant: admin
847 token: token
848
849Neutron Server with Midonet
850
851.. code-block:: yaml
852
853 neutron:
854 server:
855 backend:
856 engine: midonet
857 host: midonet_api_host
858 port: 8181
859 user: admin
860 password: password
861
Jakub Pavlik6dd5c0a2016-03-09 14:18:15 +0100862Neutron Keystone region
863
864.. code-block:: yaml
865
866 neutron:
867 server:
868 enabled: true
869 version: kilo
870 ...
871 identity:
872 region: RegionTwo
873 ...
874 compute:
875 region: RegionTwo
876 ...
877
Jiri Konecny93b19992016-04-12 11:15:39 +0200878Client-side RabbitMQ HA setup
879
880.. code-block:: yaml
881
882 neutron:
883 server:
884 ....
885 message_queue:
886 engine: rabbitmq
887 members:
888 - host: 10.0.16.1
889 - host: 10.0.16.2
890 - host: 10.0.16.3
891 user: openstack
892 password: pwd
893 virtual_host: '/openstack'
894 ....
895
Kirill Bespalov8fffe022017-08-03 17:55:02 +0300896
Kirill Bespalovdd748b62017-11-21 10:42:57 +0300897Configuring TLS communications
898------------------------------
Kirill Bespalov8fffe022017-08-03 17:55:02 +0300899
Kirill Bespalov8fffe022017-08-03 17:55:02 +0300900
Kirill Bespalovdd748b62017-11-21 10:42:57 +0300901**Note:** by default system wide installed CA certs are used, so ``cacert_file`` param is optional, as well as ``cacert``.
902
903
904- **RabbitMQ TLS**
Kirill Bespalov8fffe022017-08-03 17:55:02 +0300905
906.. code-block:: yaml
907
Kirill Bespalovdd748b62017-11-21 10:42:57 +0300908 neutron:
909 server, gateway, compute:
Kirill Bespalov8fffe022017-08-03 17:55:02 +0300910 message_queue:
Kirill Bespalovdd748b62017-11-21 10:42:57 +0300911 port: 5671
Kirill Bespalov8fffe022017-08-03 17:55:02 +0300912 ssl:
913 enabled: True
Kirill Bespalovdd748b62017-11-21 10:42:57 +0300914 (optional) cacert: cert body if the cacert_file does not exists
915 (optional) cacert_file: /etc/openstack/rabbitmq-ca.pem
916 (optional) version: TLSv1_2
Kirill Bespalov8fffe022017-08-03 17:55:02 +0300917
918
Kirill Bespalovdd748b62017-11-21 10:42:57 +0300919- **MySQL TLS**
Kirill Bespalov8fffe022017-08-03 17:55:02 +0300920
921.. code-block:: yaml
922
Kirill Bespalovdd748b62017-11-21 10:42:57 +0300923 neutron:
924 server:
925 database:
Kirill Bespalov8fffe022017-08-03 17:55:02 +0300926 ssl:
927 enabled: True
Kirill Bespalovdd748b62017-11-21 10:42:57 +0300928 (optional) cacert: cert body if the cacert_file does not exists
929 (optional) cacert_file: /etc/openstack/mysql-ca.pem
Kirill Bespalov8fffe022017-08-03 17:55:02 +0300930
Kirill Bespalovdd748b62017-11-21 10:42:57 +0300931- **Openstack HTTPS API**
932
Kirill Bespalov8fffe022017-08-03 17:55:02 +0300933
934.. code-block:: yaml
935
Kirill Bespalovdd748b62017-11-21 10:42:57 +0300936 neutron:
937 server:
938 identity:
939 protocol: https
940 (optional) cacert_file: /etc/openstack/proxy.pem
Kirill Bespalov8fffe022017-08-03 17:55:02 +0300941
942
Petr Michalec61f7ab22016-11-29 16:29:09 +0100943Enable auditing filter, ie: CADF
944
945.. code-block:: yaml
946
947 neutron:
948 server:
949 audit:
950 enabled: true
951 ....
952 filter_factory: 'keystonemiddleware.audit:filter_factory'
953 map_file: '/etc/pycadf/neutron_api_audit_map.conf'
954 ....
955 compute:
956 audit:
957 enabled: true
958 ....
959 filter_factory: 'keystonemiddleware.audit:filter_factory'
960 map_file: '/etc/pycadf/neutron_api_audit_map.conf'
961 ....
Jiri Konecny93b19992016-04-12 11:15:39 +0200962
Oleg Bondarev98870a32017-05-29 16:53:19 +0400963Neutron with security groups disabled
964
965.. code-block:: yaml
966
967 neutron:
968 server:
969 security_groups_enabled: False
970 ....
971 compute:
972 security_groups_enabled: False
973 ....
974 gateway:
975 security_groups_enabled: False
976
Jiri Konecny93b19992016-04-12 11:15:39 +0200977
Aleš Komárek41e82312017-04-11 13:37:44 +0200978Neutron Client
979--------------
Jiri Broulik5368cc52017-02-08 18:53:59 +0100980
981Neutron networks
982
983.. code-block:: yaml
984
985 neutron:
986 client:
987 enabled: true
988 server:
989 identity:
Richard Felklaac256a2017-03-23 15:43:49 +0100990 endpoint_type: internalURL
Jiri Broulik5368cc52017-02-08 18:53:59 +0100991 network:
992 inet1:
993 tenant: demo
994 shared: False
995 admin_state_up: True
996 router_external: True
997 provider_physical_network: inet
998 provider_network_type: flat
999 provider_segmentation_id: 2
1000 subnet:
1001 inet1-subnet1:
1002 cidr: 192.168.90.0/24
1003 enable_dhcp: False
1004 inet2:
1005 tenant: admin
1006 shared: False
1007 router_external: True
1008 provider_network_type: "vlan"
1009 subnet:
1010 inet2-subnet1:
1011 cidr: 192.168.92.0/24
1012 enable_dhcp: False
1013 inet2-subnet2:
1014 cidr: 192.168.94.0/24
1015 enable_dhcp: True
1016 identity1:
1017 network:
1018 ...
1019
Jiri Broulik5368cc52017-02-08 18:53:59 +01001020Neutron routers
1021
1022.. code-block:: yaml
1023
1024 neutron:
1025 client:
1026 enabled: true
1027 server:
1028 identity:
Richard Felklaac256a2017-03-23 15:43:49 +01001029 endpoint_type: internalURL
Jiri Broulik5368cc52017-02-08 18:53:59 +01001030 router:
1031 inet1-router:
1032 tenant: demo
1033 admin_state_up: True
1034 gateway_network: inet
1035 interfaces:
1036 - inet1-subnet1
1037 - inet1-subnet2
1038 identity1:
1039 router:
1040 ...
1041
1042 TODO: implement adding new interfaces to a router while updating it
1043
1044
1045Neutron security groups
1046
1047.. code-block:: yaml
1048
1049 neutron:
1050 client:
1051 enabled: true
1052 server:
1053 identity:
Richard Felklaac256a2017-03-23 15:43:49 +01001054 endpoint_type: internalURL
Jiri Broulik5368cc52017-02-08 18:53:59 +01001055 security_group:
1056 security_group1:
1057 tenant: demo
1058 description: security group 1
1059 rules:
1060 - direction: ingress
1061 ethertype: IPv4
1062 protocol: TCP
1063 port_range_min: 1
1064 port_range_max: 65535
1065 remote_ip_prefix: 0.0.0.0/0
1066 - direction: ingress
1067 ethertype: IPv4
1068 protocol: UDP
1069 port_range_min: 1
1070 port_range_max: 65535
1071 remote_ip_prefix: 0.0.0.0/0
1072 - direction: ingress
1073 protocol: ICMP
1074 remote_ip_prefix: 0.0.0.0/0
1075 identity1:
1076 security_group:
1077 ...
1078
1079 TODO: implement updating existing security rules (now it adds new rule if trying to update existing one)
1080
Jiri Broulikde2e2902017-02-13 15:03:47 +01001081
1082Floating IP addresses
1083
1084.. code-block:: yaml
1085
1086 neutron:
1087 client:
1088 enabled: true
1089 server:
1090 identity:
Richard Felklaac256a2017-03-23 15:43:49 +01001091 endpoint_type: internalURL
Jiri Broulikde2e2902017-02-13 15:03:47 +01001092 floating_ip:
1093 prx01-instance:
1094 server: prx01.mk22-lab-basic.local
1095 subnet: private-subnet1
1096 network: public-net1
1097 tenant: demo
1098 gtw01-instance:
1099 ...
1100
1101.. note:: The network must have flag router:external set to True.
1102 Instance port in the stated subnet will be associated with the dynamically generated floating IP.
1103
1104
Oleg Iurchenkode71cc22017-09-18 17:58:56 +03001105
1106Enable Neutron extensions (QoS, DNS, etc.)
1107------------------------------------------
1108.. code-block:: yaml
1109
1110 neutron:
1111 server:
1112 backend:
1113 extension:
Oleg Iurchenkoac17f4f2017-10-06 11:24:27 +03001114 dns:
1115 enabled: True
1116 host: 127.0.0.1
1117 port: 9001
1118 protocol: http
1119 ....
1120 qos
1121 enabled: True
Oleg Iurchenkode71cc22017-09-18 17:58:56 +03001122
1123
Oleg Iurchenko8cf6cf52017-09-18 15:44:03 +03001124
1125Neutron with Designate
1126-----------------------------------------
1127.. code-block:: yaml
1128
1129 neutron:
1130 server:
1131 backend:
1132 extension:
1133 dns:
1134 enabled: True
1135 host: 127.0.0.1
1136 port: 9001
1137 protocol: http
1138
Marek Celoud67ce2062018-01-31 13:44:55 +01001139Enable RBAC for OpenContrail engine
1140-----------------------------------
1141.. code-block:: yaml
1142
1143 neutron:
1144 server:
1145 backend:
1146 engine: contrail
1147 rbac:
1148 enabled: True
Oleg Iurchenko8cf6cf52017-09-18 15:44:03 +03001149
Dmitry Kalashnik35dd0e02017-12-07 14:16:25 +04001150Enhanced logging with logging.conf
1151----------------------------------
1152
1153By default logging.conf is disabled.
1154
1155That is possible to enable per-binary logging.conf with new variables:
1156 * openstack_log_appender - set it to true to enable log_config_append for all OpenStack services;
1157 * openstack_fluentd_handler_enabled - set to true to enable FluentHandler for all Openstack services.
Oleksii Chupryn156c5f42018-02-07 10:06:50 +02001158 * openstack_ossyslog_handler_enabled - set to true to enable OSSysLogHandler for all Openstack services.
Dmitry Kalashnik35dd0e02017-12-07 14:16:25 +04001159
Oleksii Chupryn156c5f42018-02-07 10:06:50 +02001160Only WatchedFileHandler, OSSysLogHandler and FluentHandler are available.
Dmitry Kalashnik35dd0e02017-12-07 14:16:25 +04001161
1162Also it is possible to configure this with pillar:
1163
1164.. code-block:: yaml
1165
1166 neutron:
1167 server:
1168 logging:
1169 log_appender: true
1170 log_handlers:
1171 watchedfile:
1172 enabled: true
1173 fluentd:
1174 enabled: true
Oleksii Chupryn156c5f42018-02-07 10:06:50 +02001175 ossyslog:
1176 enabled: true
Dmitry Kalashnik35dd0e02017-12-07 14:16:25 +04001177 ....
1178 compute:
1179 logging:
1180 log_appender: true
1181 log_handlers:
1182 watchedfile:
1183 enabled: true
1184 fluentd:
1185 enabled: true
Oleksii Chupryn156c5f42018-02-07 10:06:50 +02001186 ossyslog:
1187 enabled: true
Dmitry Kalashnik35dd0e02017-12-07 14:16:25 +04001188 ....
1189 gateway:
1190 logging:
1191 log_appender: true
1192 log_handlers:
1193 watchedfile:
1194 enabled: true
1195 fluentd:
1196 enabled: true
Oleksii Chupryn156c5f42018-02-07 10:06:50 +02001197 ossyslog:
1198 enabled: true
Oleg Iurchenko8cf6cf52017-09-18 15:44:03 +03001199
Filip Pytloun20c0a442017-02-02 13:05:13 +01001200Documentation and Bugs
1201======================
1202
1203To learn how to install and update salt-formulas, consult the documentation
1204available online at:
1205
1206 http://salt-formulas.readthedocs.io/
1207
1208In the unfortunate event that bugs are discovered, they should be reported to
1209the appropriate issue tracker. Use Github issue tracker for specific salt
1210formula:
1211
1212 https://github.com/salt-formulas/salt-formula-neutron/issues
1213
1214For feature requests, bug reports or blueprints affecting entire ecosystem,
1215use Launchpad salt-formulas project:
1216
1217 https://launchpad.net/salt-formulas
1218
1219You can also join salt-formulas-users team and subscribe to mailing list:
1220
1221 https://launchpad.net/~salt-formulas-users
1222
1223Developers wishing to work on the salt-formulas projects should always base
1224their work on master branch and submit pull request against specific formula.
1225
1226 https://github.com/salt-formulas/salt-formula-neutron
1227
1228Any questions or feedback is always welcome so feel free to join our IRC
1229channel:
1230
1231 #salt-formulas @ irc.freenode.net