blob: ef6796a53e48825b9444c68ae15986fe695606fc [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
Michael Polenchuk52911652018-04-12 22:09:49 +0400697 vhost_mode: client # options: client|server (default)
Oleg Bondarevee7e8302017-10-16 17:20:38 +0400698 vhost_socket_dir: /var/run/openvswitch
Jakub Pavlik8f83ccc2017-02-27 11:15:39 +0100699 backend:
700 engine: ml2
701 ...
702 mechanism:
Elena Ezhovad6a080c2017-10-09 15:25:16 +0400703 ovs:
704 driver: openvswitch
Jakub Pavlik8f83ccc2017-02-27 11:15:39 +0100705
Jakub Pavlik70555cb2017-02-26 18:48:02 +0100706Neutron OVS SR-IOV
Jakub Pavlik70555cb2017-02-26 18:48:02 +0100707
708.. code-block:: yaml
709
710 neutron:
711 server:
712 version: mitaka
Jakub Pavlik70555cb2017-02-26 18:48:02 +0100713 backend:
714 engine: ml2
715 ...
716 mechanism:
Elena Ezhovad6a080c2017-10-09 15:25:16 +0400717 ovs:
718 driver: openvswitch
719 sriov:
720 driver: sriovnicswitch
Jakub Pavlik70555cb2017-02-26 18:48:02 +0100721
722 neutron:
723 compute:
724 version: mitaka
Jakub Pavlik70555cb2017-02-26 18:48:02 +0100725 ...
726 backend:
727 engine: ml2
728 tenant_network_types: "flat,vlan" # Can be mixed flat,vlan,vxlan
729 sriov:
730 nic_one:
731 devname: eth1
732 physical_network: physnet3
733 mechanism:
Elena Ezhovad6a080c2017-10-09 15:25:16 +0400734 ovs:
735 driver: openvswitch
Jakub Pavlik70555cb2017-02-26 18:48:02 +0100736
Ilya Chukhnakovf4c2bb32017-06-08 02:03:15 +0300737Neutron with VLAN-aware-VMs
Oleg Bondarev0575ae42017-07-28 16:36:25 +0400738---------------------------
Ilya Chukhnakovf4c2bb32017-06-08 02:03:15 +0300739
740.. code-block:: yaml
741
742 neutron:
743 server:
744 vlan_aware_vms: true
745 ....
746 compute:
747 vlan_aware_vms: true
748 ....
749 gateway:
750 vlan_aware_vms: true
751
Oleg Bondarevacb2e532018-03-06 10:43:59 +0400752Neutron with BGP VPN (BaGPipe driver)
Oleg Bondarevb63d27f2018-02-14 19:21:06 +0400753---------------------------
754
755.. code-block:: yaml
756
757 neutron:
758 server:
759 version: pike
760 bgp_vpn:
Oleg Bondarevacb2e532018-03-06 10:43:59 +0400761 enabled: true
Oleg Bondarevb63d27f2018-02-14 19:21:06 +0400762 driver: bagpipe # Options: bagpipe/opencontrail/opendaylight
763 ....
764 compute:
765 version: pike
766 bgp_vpn:
Oleg Bondarevacb2e532018-03-06 10:43:59 +0400767 enabled: true
Oleg Bondarevb63d27f2018-02-14 19:21:06 +0400768 driver: bagpipe # Options: bagpipe/opencontrail/opendaylight
Oleg Bondarevacb2e532018-03-06 10:43:59 +0400769 bagpipe:
770 local_address: 192.168.20.20 # IP address for mpls/gre tunnels
771 peers: 192.168.20.30 # IP addresses of BGP peers
772 autonomous_system: 64512 # Autonomous System number
773 enable_rtc: True # Enable RT Constraint (RFC4684)
Oleg Bondarevb63d27f2018-02-14 19:21:06 +0400774 backend:
775 extension:
776 bagpipe_bgpvpn:
777 enabled: True
778
Oleksii Chupryn16cb4e02018-02-26 14:20:39 +0200779Neutron with DHCP agent on compute node
780---------------------------------------
781
782.. code-block:: yaml
783
784 neutron:
785 ....
786 compute:
787 dhcp_agent_enabled: true
788 ....
789
Oleg Bondarev0575ae42017-07-28 16:36:25 +0400790Neutron with OVN
791----------------
792
793Control node:
794
795.. code-block:: yaml
796
797 neutron:
798 server:
799 backend:
800 engine: ovn
801 mechanism:
802 ovn:
803 driver: ovn
804 tenant_network_types: "geneve,flat"
Michael Polenchuka3d492b2017-12-27 15:49:43 +0400805 ovn_ctl_opts:
806 db-nb-create-insecure-remote: 'yes'
807 db-sb-create-insecure-remote: 'yes'
Oleg Bondarev0575ae42017-07-28 16:36:25 +0400808
809Compute node:
810
811.. code-block:: yaml
812
813 neutron:
814 compute:
815 local_ip: 10.2.0.105
816 controller_vip: 10.1.0.101
817 external_access: false
818 backend:
819 engine: ovn
820
Michael Polenchukcccd1a52018-02-02 17:41:16 +0400821
822Neutron L2 Gateway
823----------------
824
825Control node:
826
827.. code-block:: yaml
828
829 neutron:
830 server:
831 version: pike
832 l2gw:
833 enabled: true
834 periodic_monitoring_interval: 5
835 quota_l2_gateway: 20
836 # service_provider=<service_type>:<name>:<driver>[:default]
837 service_provider: L2GW:OpenDaylight:networking_odl.l2gateway.driver.OpenDaylightL2gwDriver:default
838 backend:
839 engine: ml2
840
841Network/Gateway node:
842
843.. code-block:: yaml
844
845 neutron:
846 gateway:
847 version: pike
848 l2gw:
849 enabled: true
850 debug: true
851 socket_timeout: 20
852 ovsdb_hosts:
853 # <ovsdb_name>: <ip address>:<port>
854 # - ovsdb_name: a user defined symbolic identifier of physical switch
855 # - ip address: the address or dns name for the OVSDB server (i.e. pointer to the switch)
856 ovsdb1: 10.164.5.33:6632
857 ovsdb2: 10.164.4.33:6632
858
859
Michael Polenchuk87d2b742017-06-29 12:05:25 +0400860OpenDaylight integration
861------------------------
862
863Control node:
864
865.. code-block:: yaml
866
867 neutron:
868 server:
869 backend:
870 opendaylight: true
871 router: odl-router_v2
872 host: 10.20.0.77
873 rest_api_port: 8282
874 user: admin
875 password: admin
876 ovsdb_connection: tcp:127.0.0.1:6639
877 enable_websocket: true
878 enable_dhcp_service: false
879 mechanism:
880 ovs:
881 driver: opendaylight_v2
882
883Network/Gateway node:
884
885.. code-block:: yaml
886
887 neutron:
888 gateway:
889 backend:
890 router: odl-router_v2
891 ovsdb_connection: tcp:127.0.0.1:6639
892 opendaylight:
893 ovsdb_server_iface: ptcp:6639:127.0.0.1
894 ovsdb_odl_iface: tcp:10.20.0.77:6640
895 tunnel_ip: 10.1.0.110
896 provider_mappings: physnet1:br-floating
897
898Compute node:
899
900.. code-block:: yaml
901
902 neutron:
903 compute:
904 opendaylight:
905 ovsdb_server_iface: ptcp:6639:127.0.0.1
906 ovsdb_odl_iface: tcp:10.20.0.77:6640
907 tunnel_ip: 10.1.0.105
908 provider_mappings: physnet1:br-floating
909
910
Aleš Komárek41e82312017-04-11 13:37:44 +0200911Neutron Server
912--------------
913
Jiri Broulik74f61112016-11-21 20:23:47 +0100914Neutron Server with OpenContrail
Jiri Broulik74f61112016-11-21 20:23:47 +0100915
916.. code-block:: yaml
917
918 neutron:
919 server:
marcoa4428a32016-06-10 11:50:16 +0200920 backend:
921 engine: contrail
922 host: contrail_discovery_host
923 port: 8082
924 user: admin
925 password: password
926 tenant: admin
927 token: token
928
929Neutron Server with Midonet
930
931.. code-block:: yaml
932
933 neutron:
934 server:
935 backend:
936 engine: midonet
937 host: midonet_api_host
938 port: 8181
939 user: admin
940 password: password
941
Jakub Pavlik6dd5c0a2016-03-09 14:18:15 +0100942Neutron Keystone region
943
944.. code-block:: yaml
945
946 neutron:
947 server:
948 enabled: true
949 version: kilo
950 ...
951 identity:
952 region: RegionTwo
953 ...
954 compute:
955 region: RegionTwo
956 ...
957
Jiri Konecny93b19992016-04-12 11:15:39 +0200958Client-side RabbitMQ HA setup
959
960.. code-block:: yaml
961
962 neutron:
963 server:
964 ....
965 message_queue:
966 engine: rabbitmq
967 members:
968 - host: 10.0.16.1
969 - host: 10.0.16.2
970 - host: 10.0.16.3
971 user: openstack
972 password: pwd
973 virtual_host: '/openstack'
974 ....
975
Kirill Bespalov8fffe022017-08-03 17:55:02 +0300976
Kirill Bespalovdd748b62017-11-21 10:42:57 +0300977Configuring TLS communications
978------------------------------
Kirill Bespalov8fffe022017-08-03 17:55:02 +0300979
Kirill Bespalov8fffe022017-08-03 17:55:02 +0300980
Kirill Bespalovdd748b62017-11-21 10:42:57 +0300981**Note:** by default system wide installed CA certs are used, so ``cacert_file`` param is optional, as well as ``cacert``.
982
983
984- **RabbitMQ TLS**
Kirill Bespalov8fffe022017-08-03 17:55:02 +0300985
986.. code-block:: yaml
987
Kirill Bespalovdd748b62017-11-21 10:42:57 +0300988 neutron:
989 server, gateway, compute:
Kirill Bespalov8fffe022017-08-03 17:55:02 +0300990 message_queue:
Kirill Bespalovdd748b62017-11-21 10:42:57 +0300991 port: 5671
Kirill Bespalov8fffe022017-08-03 17:55:02 +0300992 ssl:
993 enabled: True
Kirill Bespalovdd748b62017-11-21 10:42:57 +0300994 (optional) cacert: cert body if the cacert_file does not exists
995 (optional) cacert_file: /etc/openstack/rabbitmq-ca.pem
996 (optional) version: TLSv1_2
Kirill Bespalov8fffe022017-08-03 17:55:02 +0300997
998
Kirill Bespalovdd748b62017-11-21 10:42:57 +0300999- **MySQL TLS**
Kirill Bespalov8fffe022017-08-03 17:55:02 +03001000
1001.. code-block:: yaml
1002
Kirill Bespalovdd748b62017-11-21 10:42:57 +03001003 neutron:
1004 server:
1005 database:
Kirill Bespalov8fffe022017-08-03 17:55:02 +03001006 ssl:
1007 enabled: True
Kirill Bespalovdd748b62017-11-21 10:42:57 +03001008 (optional) cacert: cert body if the cacert_file does not exists
1009 (optional) cacert_file: /etc/openstack/mysql-ca.pem
Kirill Bespalov8fffe022017-08-03 17:55:02 +03001010
Kirill Bespalovdd748b62017-11-21 10:42:57 +03001011- **Openstack HTTPS API**
1012
Kirill Bespalov8fffe022017-08-03 17:55:02 +03001013
1014.. code-block:: yaml
1015
Kirill Bespalovdd748b62017-11-21 10:42:57 +03001016 neutron:
1017 server:
1018 identity:
1019 protocol: https
1020 (optional) cacert_file: /etc/openstack/proxy.pem
Kirill Bespalov8fffe022017-08-03 17:55:02 +03001021
1022
Petr Michalec61f7ab22016-11-29 16:29:09 +01001023Enable auditing filter, ie: CADF
1024
1025.. code-block:: yaml
1026
1027 neutron:
1028 server:
1029 audit:
1030 enabled: true
1031 ....
1032 filter_factory: 'keystonemiddleware.audit:filter_factory'
1033 map_file: '/etc/pycadf/neutron_api_audit_map.conf'
1034 ....
1035 compute:
1036 audit:
1037 enabled: true
1038 ....
1039 filter_factory: 'keystonemiddleware.audit:filter_factory'
1040 map_file: '/etc/pycadf/neutron_api_audit_map.conf'
1041 ....
Jiri Konecny93b19992016-04-12 11:15:39 +02001042
Oleg Bondarev98870a32017-05-29 16:53:19 +04001043Neutron with security groups disabled
1044
1045.. code-block:: yaml
1046
1047 neutron:
1048 server:
1049 security_groups_enabled: False
1050 ....
1051 compute:
1052 security_groups_enabled: False
1053 ....
1054 gateway:
1055 security_groups_enabled: False
1056
Jiri Konecny93b19992016-04-12 11:15:39 +02001057
Aleš Komárek41e82312017-04-11 13:37:44 +02001058Neutron Client
1059--------------
Jiri Broulik5368cc52017-02-08 18:53:59 +01001060
1061Neutron networks
1062
1063.. code-block:: yaml
1064
1065 neutron:
1066 client:
1067 enabled: true
1068 server:
1069 identity:
Richard Felklaac256a2017-03-23 15:43:49 +01001070 endpoint_type: internalURL
Jiri Broulik5368cc52017-02-08 18:53:59 +01001071 network:
1072 inet1:
1073 tenant: demo
1074 shared: False
1075 admin_state_up: True
1076 router_external: True
1077 provider_physical_network: inet
1078 provider_network_type: flat
1079 provider_segmentation_id: 2
1080 subnet:
1081 inet1-subnet1:
1082 cidr: 192.168.90.0/24
1083 enable_dhcp: False
1084 inet2:
1085 tenant: admin
1086 shared: False
1087 router_external: True
1088 provider_network_type: "vlan"
1089 subnet:
1090 inet2-subnet1:
1091 cidr: 192.168.92.0/24
1092 enable_dhcp: False
1093 inet2-subnet2:
1094 cidr: 192.168.94.0/24
1095 enable_dhcp: True
1096 identity1:
1097 network:
1098 ...
1099
Jiri Broulik5368cc52017-02-08 18:53:59 +01001100Neutron routers
1101
1102.. code-block:: yaml
1103
1104 neutron:
1105 client:
1106 enabled: true
1107 server:
1108 identity:
Richard Felklaac256a2017-03-23 15:43:49 +01001109 endpoint_type: internalURL
Jiri Broulik5368cc52017-02-08 18:53:59 +01001110 router:
1111 inet1-router:
1112 tenant: demo
1113 admin_state_up: True
1114 gateway_network: inet
1115 interfaces:
1116 - inet1-subnet1
1117 - inet1-subnet2
1118 identity1:
1119 router:
1120 ...
1121
1122 TODO: implement adding new interfaces to a router while updating it
1123
1124
1125Neutron security groups
1126
1127.. code-block:: yaml
1128
1129 neutron:
1130 client:
1131 enabled: true
1132 server:
1133 identity:
Richard Felklaac256a2017-03-23 15:43:49 +01001134 endpoint_type: internalURL
Jiri Broulik5368cc52017-02-08 18:53:59 +01001135 security_group:
1136 security_group1:
1137 tenant: demo
1138 description: security group 1
1139 rules:
1140 - direction: ingress
1141 ethertype: IPv4
1142 protocol: TCP
1143 port_range_min: 1
1144 port_range_max: 65535
1145 remote_ip_prefix: 0.0.0.0/0
1146 - direction: ingress
1147 ethertype: IPv4
1148 protocol: UDP
1149 port_range_min: 1
1150 port_range_max: 65535
1151 remote_ip_prefix: 0.0.0.0/0
1152 - direction: ingress
1153 protocol: ICMP
1154 remote_ip_prefix: 0.0.0.0/0
1155 identity1:
1156 security_group:
1157 ...
1158
1159 TODO: implement updating existing security rules (now it adds new rule if trying to update existing one)
1160
Jiri Broulikde2e2902017-02-13 15:03:47 +01001161
1162Floating IP addresses
1163
1164.. code-block:: yaml
1165
1166 neutron:
1167 client:
1168 enabled: true
1169 server:
1170 identity:
Richard Felklaac256a2017-03-23 15:43:49 +01001171 endpoint_type: internalURL
Jiri Broulikde2e2902017-02-13 15:03:47 +01001172 floating_ip:
1173 prx01-instance:
1174 server: prx01.mk22-lab-basic.local
1175 subnet: private-subnet1
1176 network: public-net1
1177 tenant: demo
1178 gtw01-instance:
1179 ...
1180
1181.. note:: The network must have flag router:external set to True.
1182 Instance port in the stated subnet will be associated with the dynamically generated floating IP.
1183
1184
Oleg Iurchenkode71cc22017-09-18 17:58:56 +03001185
1186Enable Neutron extensions (QoS, DNS, etc.)
1187------------------------------------------
1188.. code-block:: yaml
1189
1190 neutron:
1191 server:
1192 backend:
1193 extension:
Oleg Iurchenkoac17f4f2017-10-06 11:24:27 +03001194 dns:
1195 enabled: True
1196 host: 127.0.0.1
1197 port: 9001
1198 protocol: http
1199 ....
1200 qos
1201 enabled: True
Oleg Iurchenkode71cc22017-09-18 17:58:56 +03001202
1203
Oleg Iurchenko8cf6cf52017-09-18 15:44:03 +03001204
1205Neutron with Designate
1206-----------------------------------------
1207.. code-block:: yaml
1208
1209 neutron:
1210 server:
1211 backend:
1212 extension:
1213 dns:
1214 enabled: True
1215 host: 127.0.0.1
1216 port: 9001
1217 protocol: http
1218
Marek Celoud67ce2062018-01-31 13:44:55 +01001219Enable RBAC for OpenContrail engine
1220-----------------------------------
1221.. code-block:: yaml
1222
1223 neutron:
1224 server:
1225 backend:
1226 engine: contrail
1227 rbac:
1228 enabled: True
Oleg Iurchenko8cf6cf52017-09-18 15:44:03 +03001229
Dmitry Kalashnik35dd0e02017-12-07 14:16:25 +04001230Enhanced logging with logging.conf
1231----------------------------------
1232
1233By default logging.conf is disabled.
1234
1235That is possible to enable per-binary logging.conf with new variables:
1236 * openstack_log_appender - set it to true to enable log_config_append for all OpenStack services;
1237 * openstack_fluentd_handler_enabled - set to true to enable FluentHandler for all Openstack services.
Oleksii Chupryn156c5f42018-02-07 10:06:50 +02001238 * openstack_ossyslog_handler_enabled - set to true to enable OSSysLogHandler for all Openstack services.
Dmitry Kalashnik35dd0e02017-12-07 14:16:25 +04001239
Oleksii Chupryn156c5f42018-02-07 10:06:50 +02001240Only WatchedFileHandler, OSSysLogHandler and FluentHandler are available.
Dmitry Kalashnik35dd0e02017-12-07 14:16:25 +04001241
1242Also it is possible to configure this with pillar:
1243
1244.. code-block:: yaml
1245
1246 neutron:
1247 server:
1248 logging:
1249 log_appender: true
1250 log_handlers:
1251 watchedfile:
1252 enabled: true
1253 fluentd:
1254 enabled: true
Oleksii Chupryn156c5f42018-02-07 10:06:50 +02001255 ossyslog:
1256 enabled: true
Dmitry Kalashnik35dd0e02017-12-07 14:16:25 +04001257 ....
1258 compute:
1259 logging:
1260 log_appender: true
1261 log_handlers:
1262 watchedfile:
1263 enabled: true
1264 fluentd:
1265 enabled: true
Oleksii Chupryn156c5f42018-02-07 10:06:50 +02001266 ossyslog:
1267 enabled: true
Dmitry Kalashnik35dd0e02017-12-07 14:16:25 +04001268 ....
1269 gateway:
1270 logging:
1271 log_appender: true
1272 log_handlers:
1273 watchedfile:
1274 enabled: true
1275 fluentd:
1276 enabled: true
Oleksii Chupryn156c5f42018-02-07 10:06:50 +02001277 ossyslog:
1278 enabled: true
Oleg Iurchenko8cf6cf52017-09-18 15:44:03 +03001279
Filip Pytloun20c0a442017-02-02 13:05:13 +01001280Documentation and Bugs
1281======================
1282
1283To learn how to install and update salt-formulas, consult the documentation
1284available online at:
1285
1286 http://salt-formulas.readthedocs.io/
1287
1288In the unfortunate event that bugs are discovered, they should be reported to
1289the appropriate issue tracker. Use Github issue tracker for specific salt
1290formula:
1291
1292 https://github.com/salt-formulas/salt-formula-neutron/issues
1293
1294For feature requests, bug reports or blueprints affecting entire ecosystem,
1295use Launchpad salt-formulas project:
1296
1297 https://launchpad.net/salt-formulas
1298
1299You can also join salt-formulas-users team and subscribe to mailing list:
1300
1301 https://launchpad.net/~salt-formulas-users
1302
1303Developers wishing to work on the salt-formulas projects should always base
1304their work on master branch and submit pull request against specific formula.
1305
1306 https://github.com/salt-formulas/salt-formula-neutron
1307
1308Any questions or feedback is always welcome so feel free to join our IRC
1309channel:
1310
1311 #salt-formulas @ irc.freenode.net