blob: 16a261da45004cdb5350cea8bb01371dd8ad12e1 [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
Michael Polenchuk1ff88652018-03-06 16:15:57 +040029 root_helper_daemon: false
Filip Pytlouncd028e42015-10-06 16:28:32 +020030 bind:
31 address: 172.20.0.1
32 port: 9696
Filip Pytlouncd028e42015-10-06 16:28:32 +020033 database:
34 engine: mysql
35 host: 127.0.0.1
36 port: 3306
37 name: neutron
38 user: neutron
39 password: pwd
40 identity:
41 engine: keystone
42 host: 127.0.0.1
43 port: 35357
44 user: neutron
45 password: pwd
46 tenant: service
Dennis Dmitriev37114722017-03-06 16:52:26 +020047 endpoint_type: internal
Filip Pytlouncd028e42015-10-06 16:28:32 +020048 message_queue:
49 engine: rabbitmq
50 host: 127.0.0.1
51 port: 5672
52 user: openstack
53 password: pwd
54 virtual_host: '/openstack'
55 metadata:
56 host: 127.0.0.1
57 port: 8775
58 password: pass
Mykyta Karpin253406d2017-12-08 17:01:37 +020059 workers: 2
Petr Michalec61f7ab22016-11-29 16:29:09 +010060 audit:
61 enabled: false
Filip Pytlouncd028e42015-10-06 16:28:32 +020062
Swann Croiset9407daf2017-02-02 15:27:56 +010063Note: The pagination is useful to retrieve a large bunch of resources,
64because a single request may fail (timeout). This is enabled with both
65parameters *allow_pagination* and *pagination_max_limit* as shown above.
66
Dmitry Ukov596ddcf2017-05-04 18:16:16 +040067
68Configuration of policy.json file
69
70.. code-block:: yaml
71
72 neutron:
73 server:
74 ....
75 policy:
76 create_subnet: 'rule:admin_or_network_owner'
77 'get_network:queue_id': 'rule:admin_only'
78 # Add key without value to remove line from policy.json
79 'create_network:shared':
80
Elena Ezhovacd67cfe2017-06-16 23:35:07 +040081Neutron LBaaSv2 enablement
82--------------------------
Ondrej Smola314eee22017-03-08 21:21:16 +010083
84.. code-block:: yaml
85
86 neutron:
87 server:
88 lbaas:
89 enabled: true
90 providers:
Elena Ezhovacd67cfe2017-06-16 23:35:07 +040091 octavia:
92 engine: octavia
93 driver_path: 'neutron_lbaas.drivers.octavia.driver.OctaviaDriver'
94 base_url: 'http://127.0.0.1:9876'
Ondrej Smola314eee22017-03-08 21:21:16 +010095 avi_adc:
Ondrej Smola314eee22017-03-08 21:21:16 +010096 engine: avinetworks
Elena Ezhovacd67cfe2017-06-16 23:35:07 +040097 driver_path: 'avi_lbaasv2.avi_driver.AviDriver'
Ondrej Smola314eee22017-03-08 21:21:16 +010098 controller_address: 10.182.129.239
99 controller_user: admin
100 controller_password: Cloudlab2016
101 controller_cloud_name: Default-Cloud
102 avi_adc2:
103 engine: avinetworks
104 ...
105
Elena Ezhovacd67cfe2017-06-16 23:35:07 +0400106Note: If the Contrail backend is set, Opencontrail loadbalancer would be enabled
107automatically. In this case lbaas should disabled in pillar:
Ondrej Smola314eee22017-03-08 21:21:16 +0100108
109.. code-block:: yaml
110
111 neutron:
112 server:
113 lbaas:
Elena Ezhovacd67cfe2017-06-16 23:35:07 +0400114 enabled: false
Ondrej Smola314eee22017-03-08 21:21:16 +0100115
Elena Ezhova166d4012017-08-17 12:53:52 +0400116
117Neutron FWaaSv1 enablement
118--------------------------
119
120.. code-block:: yaml
121
122 neutron:
123 fwaas:
124 enabled: true
125 version: ocata
126 api_version: v1
127
128
Ondrej Smola12ff8192017-04-28 12:39:11 +0200129Enable CORS parameters
Elena Ezhova166d4012017-08-17 12:53:52 +0400130----------------------
Ondrej Smola12ff8192017-04-28 12:39:11 +0200131
132.. code-block:: yaml
133
134 neutron:
135 server:
136 cors:
137 allowed_origin: https:localhost.local,http:localhost.local
138 expose_headers: X-Auth-Token,X-Openstack-Request-Id,X-Subject-Token
139 allow_methods: GET,PUT,POST,DELETE,PATCH
140 allow_headers: X-Auth-Token,X-Openstack-Request-Id,X-Subject-Token
141 allow_credentials: True
142 max_age: 86400
143
144
Aleš Komárek41e82312017-04-11 13:37:44 +0200145Neutron VXLAN tenant networks with Network nodes
146------------------------------------------------
Swann Croiset9407daf2017-02-02 15:27:56 +0100147
Aleš Komárek41e82312017-04-11 13:37:44 +0200148With DVR for East-West and Network node for North-South.
Jiri Broulik74f61112016-11-21 20:23:47 +0100149
150This use case describes a model utilising VxLAN overlay with DVR. The DVR
Aleš Komárek41e82312017-04-11 13:37:44 +0200151routers will only be utilized for traffic that is router within the cloud
Vasyl Saienko2fffc842017-06-14 10:35:26 +0300152infrastructure and that remains encapsulated. External traffic will be
153routed to via the network nodes.
Jiri Broulik74f61112016-11-21 20:23:47 +0100154
Vasyl Saienko2fffc842017-06-14 10:35:26 +0300155The intention is that each tenant will require at least two (2) vrouters
156one to be utilised
Jiri Broulik74f61112016-11-21 20:23:47 +0100157
Aleš Komárek41e82312017-04-11 13:37:44 +0200158Neutron Server
marcoa4428a32016-06-10 11:50:16 +0200159
160.. code-block:: yaml
161
162 neutron:
163 server:
Jiri Broulik74f61112016-11-21 20:23:47 +0100164 version: mitaka
Dmitry Stremkouski3c1be3e2017-11-18 11:04:20 +0300165 path_mtu: 1500
Jiri Broulik74f61112016-11-21 20:23:47 +0100166 bind:
167 address: 172.20.0.1
168 port: 9696
169 database:
170 engine: mysql
171 host: 127.0.0.1
172 port: 3306
173 name: neutron
174 user: neutron
175 password: pwd
176 identity:
177 engine: keystone
178 host: 127.0.0.1
179 port: 35357
180 user: neutron
181 password: pwd
182 tenant: service
Dennis Dmitriev37114722017-03-06 16:52:26 +0200183 endpoint_type: internal
Jiri Broulik74f61112016-11-21 20:23:47 +0100184 message_queue:
185 engine: rabbitmq
186 host: 127.0.0.1
187 port: 5672
188 user: openstack
189 password: pwd
190 virtual_host: '/openstack'
191 global_physnet_mtu: 9000
192 l3_ha: False # Which type of router will be created by default
193 dvr: True # disabled for non DVR use case
194 backend:
195 engine: ml2
196 tenant_network_types: "flat,vxlan"
197 external_mtu: 9000
198 mechanism:
Elena Ezhovad6a080c2017-10-09 15:25:16 +0400199 ovs:
200 driver: openvswitch
Jiri Broulik74f61112016-11-21 20:23:47 +0100201
Aleš Komárek41e82312017-04-11 13:37:44 +0200202Network Node
Jiri Broulik74f61112016-11-21 20:23:47 +0100203
204.. code-block:: yaml
205
206 neutron:
207 gateway:
208 enabled: True
209 version: mitaka
210 message_queue:
211 engine: rabbitmq
212 host: 127.0.0.1
213 port: 5672
214 user: openstack
215 password: pwd
216 virtual_host: '/openstack'
217 local_ip: 192.168.20.20 # br-mesh ip address
218 dvr: True # disabled for non DVR use case
219 agent_mode: dvr_snat
220 metadata:
221 host: 127.0.0.1
222 password: pass
223 backend:
224 engine: ml2
225 tenant_network_types: "flat,vxlan"
226 mechanism:
Elena Ezhovad6a080c2017-10-09 15:25:16 +0400227 ovs:
228 driver: openvswitch
Jiri Broulik74f61112016-11-21 20:23:47 +0100229
230Compute Node
Jiri Broulik74f61112016-11-21 20:23:47 +0100231
232.. code-block:: yaml
233
234 neutron:
235 compute:
236 enabled: True
237 version: mitaka
238 message_queue:
239 engine: rabbitmq
240 host: 127.0.0.1
241 port: 5672
242 user: openstack
243 password: pwd
244 virtual_host: '/openstack'
245 local_ip: 192.168.20.20 # br-mesh ip address
246 dvr: True # disabled for non DVR use case
247 agent_mode: dvr
248 external_access: false # Compute node with DVR for east-west only, Network Node has True as default
249 metadata:
250 host: 127.0.0.1
Vasyl Saienko2fffc842017-06-14 10:35:26 +0300251 password: pass
Jiri Broulik74f61112016-11-21 20:23:47 +0100252 backend:
253 engine: ml2
254 tenant_network_types: "flat,vxlan"
255 mechanism:
Elena Ezhovad6a080c2017-10-09 15:25:16 +0400256 ovs:
257 driver: openvswitch
Petr Michalec61f7ab22016-11-29 16:29:09 +0100258 audit:
259 enabled: false
Jiri Broulik74f61112016-11-21 20:23:47 +0100260
Aleš Komárek41e82312017-04-11 13:37:44 +0200261
Dmitry Stremkouskia3a4ab42017-10-23 17:37:12 +0300262Disable physnet1 bridge
263-----------------------
264
265By default we have external access turned on, so among any physnets in
266your reclass there would be additional one: physnet1, which is mapped to
267br-floating
268
269If you need internal nets only without this bridge, remove br-floating
270and configurations mappings. Disable mappings for this bridge on
271neutron-servers:
272
273.. code-block:: yaml
274
275 neutron:
276 server:
277 external_access: false
278
279gateways:
280
281.. code-block:: yaml
282
283 neutron:
284 gateway:
285 external_access: false
286
287compute nodes:
288
289.. code-block:: yaml
290
291 neutron:
292 compute:
293 external_access: false
294
295
Marcin Iwinskic50137a2018-01-22 14:18:24 +0100296Add additional bridge mappings for OVS bridges
297----------------------------------------------
298
299By default we have external access turned on, so among any physnets in
300your reclass there would be additional one: physnet1, which is mapped to
301br-floating
302
303If you need to add extra non-default bridge mappings they can be defined
304separately for both gateways and compute nodes:
305
306gateways:
307
308.. code-block:: yaml
309
310 neutron:
311 gateway:
312 bridge_mappings:
313 physnet4: br-floating-internet
314
315compute nodes:
316
317.. code-block:: yaml
318
319 neutron:
320 compute:
321 bridge_mappings:
322 physnet4: br-floating-internet
323
324
Dmitry Stremkouski4b410222017-11-18 11:29:55 +0300325Specify different mtu values for different physnets
326---------------------------------------------------
327
328Neutron Server
329
330.. code-block:: yaml
331
332 neutron:
333 server:
334 version: mitaka
335 backend:
336 external_mtu: 1500
337 tenant_net_mtu: 9000
338 ironic_net_mtu: 9000
339
Jiri Broulik74f61112016-11-21 20:23:47 +0100340Neutron VXLAN tenant networks with Network Nodes (non DVR)
Aleš Komárek41e82312017-04-11 13:37:44 +0200341----------------------------------------------------------
Jiri Broulik74f61112016-11-21 20:23:47 +0100342
343This section describes a network solution that utilises VxLAN overlay
344 networks without DVR with all routers being managed on the network nodes.
345
Aleš Komárek41e82312017-04-11 13:37:44 +0200346Neutron Server
Jiri Broulik74f61112016-11-21 20:23:47 +0100347
348.. code-block:: yaml
349
350 neutron:
351 server:
352 version: mitaka
Jiri Broulik74f61112016-11-21 20:23:47 +0100353 bind:
354 address: 172.20.0.1
355 port: 9696
356 database:
357 engine: mysql
358 host: 127.0.0.1
359 port: 3306
360 name: neutron
361 user: neutron
362 password: pwd
363 identity:
364 engine: keystone
365 host: 127.0.0.1
366 port: 35357
367 user: neutron
368 password: pwd
369 tenant: service
Dennis Dmitriev37114722017-03-06 16:52:26 +0200370 endpoint_type: internal
Jiri Broulik74f61112016-11-21 20:23:47 +0100371 message_queue:
372 engine: rabbitmq
373 host: 127.0.0.1
374 port: 5672
375 user: openstack
376 password: pwd
377 virtual_host: '/openstack'
378 global_physnet_mtu: 9000
379 l3_ha: True
380 dvr: False
381 backend:
382 engine: ml2
383 tenant_network_types= "flat,vxlan"
384 external_mtu: 9000
385 mechanism:
Elena Ezhovad6a080c2017-10-09 15:25:16 +0400386 ovs:
387 driver: openvswitch
Jiri Broulik74f61112016-11-21 20:23:47 +0100388
Aleš Komárek41e82312017-04-11 13:37:44 +0200389Network Node
Jiri Broulik74f61112016-11-21 20:23:47 +0100390
391.. code-block:: yaml
392
393 neutron:
394 gateway:
395 enabled: True
396 version: mitaka
397 message_queue:
398 engine: rabbitmq
399 host: 127.0.0.1
400 port: 5672
401 user: openstack
402 password: pwd
403 virtual_host: '/openstack'
404 local_ip: 192.168.20.20 # br-mesh ip address
405 dvr: False
406 agent_mode: legacy
Simon Pasquierc03af112017-04-10 10:35:14 +0200407 availability_zone: az1
Jiri Broulik74f61112016-11-21 20:23:47 +0100408 metadata:
409 host: 127.0.0.1
410 password: pass
411 backend:
412 engine: ml2
413 tenant_network_types: "flat,vxlan"
414 mechanism:
Elena Ezhovad6a080c2017-10-09 15:25:16 +0400415 ovs:
416 driver: openvswitch
Jiri Broulik74f61112016-11-21 20:23:47 +0100417
418Compute Node
Jiri Broulik74f61112016-11-21 20:23:47 +0100419
420.. code-block:: yaml
421
422 neutron:
423 compute:
424 enabled: True
425 version: mitaka
426 message_queue:
427 engine: rabbitmq
428 host: 127.0.0.1
429 port: 5672
430 user: openstack
431 password: pwd
432 virtual_host: '/openstack'
433 local_ip: 192.168.20.20 # br-mesh ip address
434 external_access: False
Vasyl Saienko2fffc842017-06-14 10:35:26 +0300435 dvr: False
Jiri Broulik74f61112016-11-21 20:23:47 +0100436 backend:
437 engine: ml2
438 tenant_network_types: "flat,vxlan"
439 mechanism:
Elena Ezhovad6a080c2017-10-09 15:25:16 +0400440 ovs:
441 driver: openvswitch
Jiri Broulik74f61112016-11-21 20:23:47 +0100442
Aleš Komárek41e82312017-04-11 13:37:44 +0200443Neutron VXLAN tenant networks with Network Nodes with DVR
444---------------------------------------------------------
445
446With DVR for East-West and North-South, DVR everywhere, Network node for SNAT.
Jiri Broulik74f61112016-11-21 20:23:47 +0100447
Vasyl Saienko2fffc842017-06-14 10:35:26 +0300448This section describes a network solution that utilises VxLAN
449overlay networks with DVR with North-South and East-West. Network
Jiri Broulik74f61112016-11-21 20:23:47 +0100450Node is used only for SNAT.
451
Aleš Komárek41e82312017-04-11 13:37:44 +0200452Neutron Server
Jiri Broulik74f61112016-11-21 20:23:47 +0100453
454.. code-block:: yaml
455
456 neutron:
457 server:
458 version: mitaka
Jiri Broulik74f61112016-11-21 20:23:47 +0100459 bind:
460 address: 172.20.0.1
461 port: 9696
462 database:
463 engine: mysql
464 host: 127.0.0.1
465 port: 3306
466 name: neutron
467 user: neutron
468 password: pwd
469 identity:
470 engine: keystone
471 host: 127.0.0.1
472 port: 35357
473 user: neutron
474 password: pwd
475 tenant: service
Dennis Dmitriev37114722017-03-06 16:52:26 +0200476 endpoint_type: internal
Jiri Broulik74f61112016-11-21 20:23:47 +0100477 message_queue:
478 engine: rabbitmq
479 host: 127.0.0.1
480 port: 5672
481 user: openstack
482 password: pwd
483 virtual_host: '/openstack'
484 global_physnet_mtu: 9000
485 l3_ha: False
486 dvr: True
487 backend:
488 engine: ml2
489 tenant_network_types= "flat,vxlan"
490 external_mtu: 9000
491 mechanism:
Elena Ezhovad6a080c2017-10-09 15:25:16 +0400492 ovs:
493 driver: openvswitch
Jiri Broulik74f61112016-11-21 20:23:47 +0100494
Aleš Komárek41e82312017-04-11 13:37:44 +0200495Network Node
Jiri Broulik74f61112016-11-21 20:23:47 +0100496
497.. code-block:: yaml
498
499 neutron:
500 gateway:
501 enabled: True
502 version: mitaka
503 message_queue:
504 engine: rabbitmq
505 host: 127.0.0.1
506 port: 5672
507 user: openstack
508 password: pwd
509 virtual_host: '/openstack'
510 local_ip: 192.168.20.20 # br-mesh ip address
511 dvr: True
512 agent_mode: dvr_snat
Simon Pasquierc03af112017-04-10 10:35:14 +0200513 availability_zone: az1
Jiri Broulik74f61112016-11-21 20:23:47 +0100514 metadata:
515 host: 127.0.0.1
516 password: pass
517 backend:
518 engine: ml2
519 tenant_network_types: "flat,vxlan"
520 mechanism:
Elena Ezhovad6a080c2017-10-09 15:25:16 +0400521 ovs:
522 driver: openvswitch
Jiri Broulik74f61112016-11-21 20:23:47 +0100523
524Compute Node
Jiri Broulik74f61112016-11-21 20:23:47 +0100525
526.. code-block:: yaml
527
528 neutron:
529 compute:
530 enabled: True
531 version: mitaka
532 message_queue:
533 engine: rabbitmq
534 host: 127.0.0.1
535 port: 5672
536 user: openstack
537 password: pwd
538 virtual_host: '/openstack'
539 local_ip: 192.168.20.20 # br-mesh ip address
540 dvr: True
Vasyl Saienko2fffc842017-06-14 10:35:26 +0300541 external_access: True
Jiri Broulik74f61112016-11-21 20:23:47 +0100542 agent_mode: dvr
Simon Pasquierc03af112017-04-10 10:35:14 +0200543 availability_zone: az1
Jiri Broulik74f61112016-11-21 20:23:47 +0100544 metadata:
545 host: 127.0.0.1
546 password: pass
547 backend:
548 engine: ml2
549 tenant_network_types: "flat,vxlan"
550 mechanism:
Elena Ezhovad6a080c2017-10-09 15:25:16 +0400551 ovs:
552 driver: openvswitch
Jiri Broulik74f61112016-11-21 20:23:47 +0100553
554Sample Linux network configuration for DVR
Jiri Broulik74f61112016-11-21 20:23:47 +0100555
556.. code-block:: yaml
557
558 linux:
559 network:
560 bridge: openvswitch
561 interface:
562 eth1:
563 enabled: true
564 type: eth
565 mtu: 9000
566 proto: manual
567 eth2:
568 enabled: true
569 type: eth
570 mtu: 9000
571 proto: manual
572 eth3:
573 enabled: true
574 type: eth
575 mtu: 9000
576 proto: manual
577 br-int:
578 enabled: true
579 mtu: 9000
580 type: ovs_bridge
581 br-floating:
582 enabled: true
583 mtu: 9000
584 type: ovs_bridge
585 float-to-ex:
586 enabled: true
587 type: ovs_port
588 mtu: 65000
589 bridge: br-floating
590 br-mgmt:
591 enabled: true
592 type: bridge
593 mtu: 9000
594 address: ${_param:single_address}
595 netmask: 255.255.255.0
596 use_interfaces:
597 - eth1
598 br-mesh:
599 enabled: true
600 type: bridge
601 mtu: 9000
602 address: ${_param:tenant_address}
603 netmask: 255.255.255.0
604 use_interfaces:
605 - eth2
606 br-ex:
607 enabled: true
608 type: bridge
609 mtu: 9000
610 address: ${_param:external_address}
611 netmask: 255.255.255.0
612 use_interfaces:
613 - eth3
614 use_ovs_ports:
615 - float-to-ex
616
Thom Gerdes3282d072017-05-30 22:06:04 +0000617Additonal VXLAN tenant network settings
618---------------------------------------
619
620The default multicast group of 224.0.0.1 only multicasts to a single subnet.
621Allow overriding it to allow larger underlay network topologies.
622
623Neutron Server
624
625.. code-block:: yaml
626
627 neutron:
628 server:
629 vxlan:
630 group: 239.0.0.0/8
631 vni_ranges: "2:65535"
632
Jiri Broulik74f61112016-11-21 20:23:47 +0100633Neutron VLAN tenant networks with Network Nodes
Aleš Komárek41e82312017-04-11 13:37:44 +0200634-----------------------------------------------
Jiri Broulik74f61112016-11-21 20:23:47 +0100635
636VLAN tenant provider
637
638Neutron Server only
Jiri Broulik74f61112016-11-21 20:23:47 +0100639
640.. code-block:: yaml
641
642 neutron:
643 server:
644 version: mitaka
Jiri Broulik74f61112016-11-21 20:23:47 +0100645 ...
646 global_physnet_mtu: 9000
647 l3_ha: False
648 dvr: True
649 backend:
650 engine: ml2
651 tenant_network_types: "flat,vlan" # Can be mixed flat,vlan,vxlan
652 tenant_vlan_range: "1000:2000"
653 external_vlan_range: "100:200" # Does not have to be defined.
654 external_mtu: 9000
655 mechanism:
Elena Ezhovad6a080c2017-10-09 15:25:16 +0400656 ovs:
657 driver: openvswitch
Jiri Broulik74f61112016-11-21 20:23:47 +0100658
659Compute node
Jiri Broulik74f61112016-11-21 20:23:47 +0100660
661.. code-block:: yaml
662
663 neutron:
664 compute:
665 version: mitaka
Jiri Broulik74f61112016-11-21 20:23:47 +0100666 ...
667 dvr: True
668 agent_mode: dvr
669 external_access: False
670 backend:
671 engine: ml2
672 tenant_network_types: "flat,vlan" # Can be mixed flat,vlan,vxlan
673 mechanism:
Elena Ezhovad6a080c2017-10-09 15:25:16 +0400674 ovs:
675 driver: openvswitch
Jiri Broulik74f61112016-11-21 20:23:47 +0100676
Aleš Komárek41e82312017-04-11 13:37:44 +0200677Advanced Neutron Features (DPDK, SR-IOV)
Oleg Bondarev0575ae42017-07-28 16:36:25 +0400678----------------------------------------
Aleš Komárek41e82312017-04-11 13:37:44 +0200679
Jakub Pavlik8f83ccc2017-02-27 11:15:39 +0100680Neutron OVS DPDK
Jakub Pavlik8f83ccc2017-02-27 11:15:39 +0100681
682Enable datapath netdev for neutron openvswitch agent
683
684.. code-block:: yaml
685
686 neutron:
687 server:
688 version: mitaka
689 ...
690 dpdk: True
691 ...
692
693 neutron:
694 compute:
695 version: mitaka
Jakub Pavlik8f83ccc2017-02-27 11:15:39 +0100696 dpdk: True
Oleg Bondarevee7e8302017-10-16 17:20:38 +0400697 vhost_socket_dir: /var/run/openvswitch
Jakub Pavlik8f83ccc2017-02-27 11:15:39 +0100698 backend:
699 engine: ml2
700 ...
701 mechanism:
Elena Ezhovad6a080c2017-10-09 15:25:16 +0400702 ovs:
703 driver: openvswitch
Jakub Pavlik8f83ccc2017-02-27 11:15:39 +0100704
Jakub Pavlik70555cb2017-02-26 18:48:02 +0100705Neutron OVS SR-IOV
Jakub Pavlik70555cb2017-02-26 18:48:02 +0100706
707.. code-block:: yaml
708
709 neutron:
710 server:
711 version: mitaka
Jakub Pavlik70555cb2017-02-26 18:48:02 +0100712 backend:
713 engine: ml2
714 ...
715 mechanism:
Elena Ezhovad6a080c2017-10-09 15:25:16 +0400716 ovs:
717 driver: openvswitch
718 sriov:
719 driver: sriovnicswitch
Jakub Pavlik70555cb2017-02-26 18:48:02 +0100720
721 neutron:
722 compute:
723 version: mitaka
Jakub Pavlik70555cb2017-02-26 18:48:02 +0100724 ...
725 backend:
726 engine: ml2
727 tenant_network_types: "flat,vlan" # Can be mixed flat,vlan,vxlan
728 sriov:
729 nic_one:
730 devname: eth1
731 physical_network: physnet3
732 mechanism:
Elena Ezhovad6a080c2017-10-09 15:25:16 +0400733 ovs:
734 driver: openvswitch
Jakub Pavlik70555cb2017-02-26 18:48:02 +0100735
Ilya Chukhnakovf4c2bb32017-06-08 02:03:15 +0300736Neutron with VLAN-aware-VMs
Oleg Bondarev0575ae42017-07-28 16:36:25 +0400737---------------------------
Ilya Chukhnakovf4c2bb32017-06-08 02:03:15 +0300738
739.. code-block:: yaml
740
741 neutron:
742 server:
743 vlan_aware_vms: true
744 ....
745 compute:
746 vlan_aware_vms: true
747 ....
748 gateway:
749 vlan_aware_vms: true
750
Oleg Bondarevacb2e532018-03-06 10:43:59 +0400751Neutron with BGP VPN (BaGPipe driver)
Oleg Bondarevb63d27f2018-02-14 19:21:06 +0400752---------------------------
753
754.. code-block:: yaml
755
756 neutron:
757 server:
758 version: pike
759 bgp_vpn:
Oleg Bondarevacb2e532018-03-06 10:43:59 +0400760 enabled: true
Oleg Bondarevb63d27f2018-02-14 19:21:06 +0400761 driver: bagpipe # Options: bagpipe/opencontrail/opendaylight
762 ....
763 compute:
764 version: pike
765 bgp_vpn:
Oleg Bondarevacb2e532018-03-06 10:43:59 +0400766 enabled: true
Oleg Bondarevb63d27f2018-02-14 19:21:06 +0400767 driver: bagpipe # Options: bagpipe/opencontrail/opendaylight
Oleg Bondarevacb2e532018-03-06 10:43:59 +0400768 bagpipe:
769 local_address: 192.168.20.20 # IP address for mpls/gre tunnels
770 peers: 192.168.20.30 # IP addresses of BGP peers
771 autonomous_system: 64512 # Autonomous System number
772 enable_rtc: True # Enable RT Constraint (RFC4684)
Oleg Bondarevb63d27f2018-02-14 19:21:06 +0400773 backend:
774 extension:
775 bagpipe_bgpvpn:
776 enabled: True
777
Oleksii Chupryn16cb4e02018-02-26 14:20:39 +0200778Neutron with DHCP agent on compute node
779---------------------------------------
780
781.. code-block:: yaml
782
783 neutron:
784 ....
785 compute:
786 dhcp_agent_enabled: true
787 ....
788
Oleg Bondarev0575ae42017-07-28 16:36:25 +0400789Neutron with OVN
790----------------
791
792Control node:
793
794.. code-block:: yaml
795
796 neutron:
797 server:
798 backend:
799 engine: ovn
800 mechanism:
801 ovn:
802 driver: ovn
803 tenant_network_types: "geneve,flat"
Michael Polenchuka3d492b2017-12-27 15:49:43 +0400804 ovn_ctl_opts:
805 db-nb-create-insecure-remote: 'yes'
806 db-sb-create-insecure-remote: 'yes'
Oleg Bondarev0575ae42017-07-28 16:36:25 +0400807
808Compute node:
809
810.. code-block:: yaml
811
812 neutron:
813 compute:
814 local_ip: 10.2.0.105
815 controller_vip: 10.1.0.101
816 external_access: false
817 backend:
818 engine: ovn
819
Michael Polenchukcccd1a52018-02-02 17:41:16 +0400820
821Neutron L2 Gateway
822----------------
823
824Control node:
825
826.. code-block:: yaml
827
828 neutron:
829 server:
830 version: pike
831 l2gw:
832 enabled: true
833 periodic_monitoring_interval: 5
834 quota_l2_gateway: 20
835 # service_provider=<service_type>:<name>:<driver>[:default]
836 service_provider: L2GW:OpenDaylight:networking_odl.l2gateway.driver.OpenDaylightL2gwDriver:default
837 backend:
838 engine: ml2
839
840Network/Gateway node:
841
842.. code-block:: yaml
843
844 neutron:
845 gateway:
846 version: pike
847 l2gw:
848 enabled: true
849 debug: true
850 socket_timeout: 20
851 ovsdb_hosts:
852 # <ovsdb_name>: <ip address>:<port>
853 # - ovsdb_name: a user defined symbolic identifier of physical switch
854 # - ip address: the address or dns name for the OVSDB server (i.e. pointer to the switch)
855 ovsdb1: 10.164.5.33:6632
856 ovsdb2: 10.164.4.33:6632
857
858
Michael Polenchuk87d2b742017-06-29 12:05:25 +0400859OpenDaylight integration
860------------------------
861
862Control node:
863
864.. code-block:: yaml
865
866 neutron:
867 server:
868 backend:
869 opendaylight: true
870 router: odl-router_v2
871 host: 10.20.0.77
872 rest_api_port: 8282
873 user: admin
874 password: admin
875 ovsdb_connection: tcp:127.0.0.1:6639
876 enable_websocket: true
877 enable_dhcp_service: false
878 mechanism:
879 ovs:
880 driver: opendaylight_v2
881
882Network/Gateway node:
883
884.. code-block:: yaml
885
886 neutron:
887 gateway:
888 backend:
889 router: odl-router_v2
890 ovsdb_connection: tcp:127.0.0.1:6639
891 opendaylight:
892 ovsdb_server_iface: ptcp:6639:127.0.0.1
893 ovsdb_odl_iface: tcp:10.20.0.77:6640
894 tunnel_ip: 10.1.0.110
895 provider_mappings: physnet1:br-floating
896
897Compute node:
898
899.. code-block:: yaml
900
901 neutron:
902 compute:
903 opendaylight:
904 ovsdb_server_iface: ptcp:6639:127.0.0.1
905 ovsdb_odl_iface: tcp:10.20.0.77:6640
906 tunnel_ip: 10.1.0.105
907 provider_mappings: physnet1:br-floating
908
909
Aleš Komárek41e82312017-04-11 13:37:44 +0200910Neutron Server
911--------------
912
Jiri Broulik74f61112016-11-21 20:23:47 +0100913Neutron Server with OpenContrail
Jiri Broulik74f61112016-11-21 20:23:47 +0100914
915.. code-block:: yaml
916
917 neutron:
918 server:
marcoa4428a32016-06-10 11:50:16 +0200919 backend:
920 engine: contrail
921 host: contrail_discovery_host
922 port: 8082
923 user: admin
924 password: password
925 tenant: admin
926 token: token
927
928Neutron Server with Midonet
929
930.. code-block:: yaml
931
932 neutron:
933 server:
934 backend:
935 engine: midonet
936 host: midonet_api_host
937 port: 8181
938 user: admin
939 password: password
940
Jakub Pavlik6dd5c0a2016-03-09 14:18:15 +0100941Neutron Keystone region
942
943.. code-block:: yaml
944
945 neutron:
946 server:
947 enabled: true
948 version: kilo
949 ...
950 identity:
951 region: RegionTwo
952 ...
953 compute:
954 region: RegionTwo
955 ...
956
Jiri Konecny93b19992016-04-12 11:15:39 +0200957Client-side RabbitMQ HA setup
958
959.. code-block:: yaml
960
961 neutron:
962 server:
963 ....
964 message_queue:
965 engine: rabbitmq
966 members:
967 - host: 10.0.16.1
968 - host: 10.0.16.2
969 - host: 10.0.16.3
970 user: openstack
971 password: pwd
972 virtual_host: '/openstack'
973 ....
974
Kirill Bespalov8fffe022017-08-03 17:55:02 +0300975
Kirill Bespalovdd748b62017-11-21 10:42:57 +0300976Configuring TLS communications
977------------------------------
Kirill Bespalov8fffe022017-08-03 17:55:02 +0300978
Kirill Bespalov8fffe022017-08-03 17:55:02 +0300979
Kirill Bespalovdd748b62017-11-21 10:42:57 +0300980**Note:** by default system wide installed CA certs are used, so ``cacert_file`` param is optional, as well as ``cacert``.
981
982
983- **RabbitMQ TLS**
Kirill Bespalov8fffe022017-08-03 17:55:02 +0300984
985.. code-block:: yaml
986
Kirill Bespalovdd748b62017-11-21 10:42:57 +0300987 neutron:
988 server, gateway, compute:
Kirill Bespalov8fffe022017-08-03 17:55:02 +0300989 message_queue:
Kirill Bespalovdd748b62017-11-21 10:42:57 +0300990 port: 5671
Kirill Bespalov8fffe022017-08-03 17:55:02 +0300991 ssl:
992 enabled: True
Kirill Bespalovdd748b62017-11-21 10:42:57 +0300993 (optional) cacert: cert body if the cacert_file does not exists
994 (optional) cacert_file: /etc/openstack/rabbitmq-ca.pem
995 (optional) version: TLSv1_2
Kirill Bespalov8fffe022017-08-03 17:55:02 +0300996
997
Kirill Bespalovdd748b62017-11-21 10:42:57 +0300998- **MySQL TLS**
Kirill Bespalov8fffe022017-08-03 17:55:02 +0300999
1000.. code-block:: yaml
1001
Kirill Bespalovdd748b62017-11-21 10:42:57 +03001002 neutron:
1003 server:
1004 database:
Kirill Bespalov8fffe022017-08-03 17:55:02 +03001005 ssl:
1006 enabled: True
Kirill Bespalovdd748b62017-11-21 10:42:57 +03001007 (optional) cacert: cert body if the cacert_file does not exists
1008 (optional) cacert_file: /etc/openstack/mysql-ca.pem
Kirill Bespalov8fffe022017-08-03 17:55:02 +03001009
Kirill Bespalovdd748b62017-11-21 10:42:57 +03001010- **Openstack HTTPS API**
1011
Kirill Bespalov8fffe022017-08-03 17:55:02 +03001012
1013.. code-block:: yaml
1014
Kirill Bespalovdd748b62017-11-21 10:42:57 +03001015 neutron:
1016 server:
1017 identity:
1018 protocol: https
1019 (optional) cacert_file: /etc/openstack/proxy.pem
Kirill Bespalov8fffe022017-08-03 17:55:02 +03001020
1021
Petr Michalec61f7ab22016-11-29 16:29:09 +01001022Enable auditing filter, ie: CADF
1023
1024.. code-block:: yaml
1025
1026 neutron:
1027 server:
1028 audit:
1029 enabled: true
1030 ....
1031 filter_factory: 'keystonemiddleware.audit:filter_factory'
1032 map_file: '/etc/pycadf/neutron_api_audit_map.conf'
1033 ....
1034 compute:
1035 audit:
1036 enabled: true
1037 ....
1038 filter_factory: 'keystonemiddleware.audit:filter_factory'
1039 map_file: '/etc/pycadf/neutron_api_audit_map.conf'
1040 ....
Jiri Konecny93b19992016-04-12 11:15:39 +02001041
Oleg Bondarev98870a32017-05-29 16:53:19 +04001042Neutron with security groups disabled
1043
1044.. code-block:: yaml
1045
1046 neutron:
1047 server:
1048 security_groups_enabled: False
1049 ....
1050 compute:
1051 security_groups_enabled: False
1052 ....
1053 gateway:
1054 security_groups_enabled: False
1055
Jiri Konecny93b19992016-04-12 11:15:39 +02001056
Aleš Komárek41e82312017-04-11 13:37:44 +02001057Neutron Client
1058--------------
Jiri Broulik5368cc52017-02-08 18:53:59 +01001059
1060Neutron networks
1061
1062.. code-block:: yaml
1063
1064 neutron:
1065 client:
1066 enabled: true
1067 server:
1068 identity:
Richard Felklaac256a2017-03-23 15:43:49 +01001069 endpoint_type: internalURL
Jiri Broulik5368cc52017-02-08 18:53:59 +01001070 network:
1071 inet1:
1072 tenant: demo
1073 shared: False
1074 admin_state_up: True
1075 router_external: True
1076 provider_physical_network: inet
1077 provider_network_type: flat
1078 provider_segmentation_id: 2
1079 subnet:
1080 inet1-subnet1:
1081 cidr: 192.168.90.0/24
1082 enable_dhcp: False
1083 inet2:
1084 tenant: admin
1085 shared: False
1086 router_external: True
1087 provider_network_type: "vlan"
1088 subnet:
1089 inet2-subnet1:
1090 cidr: 192.168.92.0/24
1091 enable_dhcp: False
1092 inet2-subnet2:
1093 cidr: 192.168.94.0/24
1094 enable_dhcp: True
1095 identity1:
1096 network:
1097 ...
1098
Jiri Broulik5368cc52017-02-08 18:53:59 +01001099Neutron routers
1100
1101.. code-block:: yaml
1102
1103 neutron:
1104 client:
1105 enabled: true
1106 server:
1107 identity:
Richard Felklaac256a2017-03-23 15:43:49 +01001108 endpoint_type: internalURL
Jiri Broulik5368cc52017-02-08 18:53:59 +01001109 router:
1110 inet1-router:
1111 tenant: demo
1112 admin_state_up: True
1113 gateway_network: inet
1114 interfaces:
1115 - inet1-subnet1
1116 - inet1-subnet2
1117 identity1:
1118 router:
1119 ...
1120
1121 TODO: implement adding new interfaces to a router while updating it
1122
1123
1124Neutron security groups
1125
1126.. code-block:: yaml
1127
1128 neutron:
1129 client:
1130 enabled: true
1131 server:
1132 identity:
Richard Felklaac256a2017-03-23 15:43:49 +01001133 endpoint_type: internalURL
Jiri Broulik5368cc52017-02-08 18:53:59 +01001134 security_group:
1135 security_group1:
1136 tenant: demo
1137 description: security group 1
1138 rules:
1139 - direction: ingress
1140 ethertype: IPv4
1141 protocol: TCP
1142 port_range_min: 1
1143 port_range_max: 65535
1144 remote_ip_prefix: 0.0.0.0/0
1145 - direction: ingress
1146 ethertype: IPv4
1147 protocol: UDP
1148 port_range_min: 1
1149 port_range_max: 65535
1150 remote_ip_prefix: 0.0.0.0/0
1151 - direction: ingress
1152 protocol: ICMP
1153 remote_ip_prefix: 0.0.0.0/0
1154 identity1:
1155 security_group:
1156 ...
1157
1158 TODO: implement updating existing security rules (now it adds new rule if trying to update existing one)
1159
Jiri Broulikde2e2902017-02-13 15:03:47 +01001160
1161Floating IP addresses
1162
1163.. code-block:: yaml
1164
1165 neutron:
1166 client:
1167 enabled: true
1168 server:
1169 identity:
Richard Felklaac256a2017-03-23 15:43:49 +01001170 endpoint_type: internalURL
Jiri Broulikde2e2902017-02-13 15:03:47 +01001171 floating_ip:
1172 prx01-instance:
1173 server: prx01.mk22-lab-basic.local
1174 subnet: private-subnet1
1175 network: public-net1
1176 tenant: demo
1177 gtw01-instance:
1178 ...
1179
1180.. note:: The network must have flag router:external set to True.
1181 Instance port in the stated subnet will be associated with the dynamically generated floating IP.
1182
1183
Oleg Iurchenkode71cc22017-09-18 17:58:56 +03001184
1185Enable Neutron extensions (QoS, DNS, etc.)
1186------------------------------------------
1187.. code-block:: yaml
1188
1189 neutron:
1190 server:
1191 backend:
1192 extension:
Oleg Iurchenkoac17f4f2017-10-06 11:24:27 +03001193 dns:
1194 enabled: True
1195 host: 127.0.0.1
1196 port: 9001
1197 protocol: http
1198 ....
1199 qos
1200 enabled: True
Oleg Iurchenkode71cc22017-09-18 17:58:56 +03001201
1202
Oleg Iurchenko8cf6cf52017-09-18 15:44:03 +03001203
1204Neutron with Designate
1205-----------------------------------------
1206.. code-block:: yaml
1207
1208 neutron:
1209 server:
1210 backend:
1211 extension:
1212 dns:
1213 enabled: True
1214 host: 127.0.0.1
1215 port: 9001
1216 protocol: http
1217
Marek Celoud67ce2062018-01-31 13:44:55 +01001218Enable RBAC for OpenContrail engine
1219-----------------------------------
1220.. code-block:: yaml
1221
1222 neutron:
1223 server:
1224 backend:
1225 engine: contrail
1226 rbac:
1227 enabled: True
Oleg Iurchenko8cf6cf52017-09-18 15:44:03 +03001228
Dmitry Kalashnik35dd0e02017-12-07 14:16:25 +04001229Enhanced logging with logging.conf
1230----------------------------------
1231
1232By default logging.conf is disabled.
1233
1234That is possible to enable per-binary logging.conf with new variables:
1235 * openstack_log_appender - set it to true to enable log_config_append for all OpenStack services;
1236 * openstack_fluentd_handler_enabled - set to true to enable FluentHandler for all Openstack services.
Oleksii Chupryn156c5f42018-02-07 10:06:50 +02001237 * openstack_ossyslog_handler_enabled - set to true to enable OSSysLogHandler for all Openstack services.
Dmitry Kalashnik35dd0e02017-12-07 14:16:25 +04001238
Oleksii Chupryn156c5f42018-02-07 10:06:50 +02001239Only WatchedFileHandler, OSSysLogHandler and FluentHandler are available.
Dmitry Kalashnik35dd0e02017-12-07 14:16:25 +04001240
1241Also it is possible to configure this with pillar:
1242
1243.. code-block:: yaml
1244
1245 neutron:
1246 server:
1247 logging:
1248 log_appender: true
1249 log_handlers:
1250 watchedfile:
1251 enabled: true
1252 fluentd:
1253 enabled: true
Oleksii Chupryn156c5f42018-02-07 10:06:50 +02001254 ossyslog:
1255 enabled: true
Dmitry Kalashnik35dd0e02017-12-07 14:16:25 +04001256 ....
1257 compute:
1258 logging:
1259 log_appender: true
1260 log_handlers:
1261 watchedfile:
1262 enabled: true
1263 fluentd:
1264 enabled: true
Oleksii Chupryn156c5f42018-02-07 10:06:50 +02001265 ossyslog:
1266 enabled: true
Dmitry Kalashnik35dd0e02017-12-07 14:16:25 +04001267 ....
1268 gateway:
1269 logging:
1270 log_appender: true
1271 log_handlers:
1272 watchedfile:
1273 enabled: true
1274 fluentd:
1275 enabled: true
Oleksii Chupryn156c5f42018-02-07 10:06:50 +02001276 ossyslog:
1277 enabled: true
Oleg Iurchenko8cf6cf52017-09-18 15:44:03 +03001278
Filip Pytloun20c0a442017-02-02 13:05:13 +01001279Documentation and Bugs
1280======================
1281
1282To learn how to install and update salt-formulas, consult the documentation
1283available online at:
1284
1285 http://salt-formulas.readthedocs.io/
1286
1287In the unfortunate event that bugs are discovered, they should be reported to
1288the appropriate issue tracker. Use Github issue tracker for specific salt
1289formula:
1290
1291 https://github.com/salt-formulas/salt-formula-neutron/issues
1292
1293For feature requests, bug reports or blueprints affecting entire ecosystem,
1294use Launchpad salt-formulas project:
1295
1296 https://launchpad.net/salt-formulas
1297
1298You can also join salt-formulas-users team and subscribe to mailing list:
1299
1300 https://launchpad.net/~salt-formulas-users
1301
1302Developers wishing to work on the salt-formulas projects should always base
1303their work on master branch and submit pull request against specific formula.
1304
1305 https://github.com/salt-formulas/salt-formula-neutron
1306
1307Any questions or feedback is always welcome so feel free to join our IRC
1308channel:
1309
1310 #salt-formulas @ irc.freenode.net