blob: 9fddb6199bbe35da37ab9099780e7ed6ff99abf6 [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
Filip Pytlouncd028e42015-10-06 16:28:32 +020026 bind:
27 address: 172.20.0.1
28 port: 9696
Filip Pytlouncd028e42015-10-06 16:28:32 +020029 database:
30 engine: mysql
31 host: 127.0.0.1
32 port: 3306
33 name: neutron
34 user: neutron
35 password: pwd
36 identity:
37 engine: keystone
38 host: 127.0.0.1
39 port: 35357
40 user: neutron
41 password: pwd
42 tenant: service
Dennis Dmitriev37114722017-03-06 16:52:26 +020043 endpoint_type: internal
Filip Pytlouncd028e42015-10-06 16:28:32 +020044 message_queue:
45 engine: rabbitmq
46 host: 127.0.0.1
47 port: 5672
48 user: openstack
49 password: pwd
50 virtual_host: '/openstack'
51 metadata:
52 host: 127.0.0.1
53 port: 8775
54 password: pass
Petr Michalec61f7ab22016-11-29 16:29:09 +010055 audit:
56 enabled: false
Filip Pytlouncd028e42015-10-06 16:28:32 +020057
Swann Croiset9407daf2017-02-02 15:27:56 +010058Note: The pagination is useful to retrieve a large bunch of resources,
59because a single request may fail (timeout). This is enabled with both
60parameters *allow_pagination* and *pagination_max_limit* as shown above.
61
Dmitry Ukov596ddcf2017-05-04 18:16:16 +040062
63Configuration of policy.json file
64
65.. code-block:: yaml
66
67 neutron:
68 server:
69 ....
70 policy:
71 create_subnet: 'rule:admin_or_network_owner'
72 'get_network:queue_id': 'rule:admin_only'
73 # Add key without value to remove line from policy.json
74 'create_network:shared':
75
Elena Ezhovacd67cfe2017-06-16 23:35:07 +040076Neutron LBaaSv2 enablement
77--------------------------
Ondrej Smola314eee22017-03-08 21:21:16 +010078
79.. code-block:: yaml
80
81 neutron:
82 server:
83 lbaas:
84 enabled: true
85 providers:
Elena Ezhovacd67cfe2017-06-16 23:35:07 +040086 octavia:
87 engine: octavia
88 driver_path: 'neutron_lbaas.drivers.octavia.driver.OctaviaDriver'
89 base_url: 'http://127.0.0.1:9876'
Ondrej Smola314eee22017-03-08 21:21:16 +010090 avi_adc:
Ondrej Smola314eee22017-03-08 21:21:16 +010091 engine: avinetworks
Elena Ezhovacd67cfe2017-06-16 23:35:07 +040092 driver_path: 'avi_lbaasv2.avi_driver.AviDriver'
Ondrej Smola314eee22017-03-08 21:21:16 +010093 controller_address: 10.182.129.239
94 controller_user: admin
95 controller_password: Cloudlab2016
96 controller_cloud_name: Default-Cloud
97 avi_adc2:
98 engine: avinetworks
99 ...
100
Elena Ezhovacd67cfe2017-06-16 23:35:07 +0400101Note: If the Contrail backend is set, Opencontrail loadbalancer would be enabled
102automatically. In this case lbaas should disabled in pillar:
Ondrej Smola314eee22017-03-08 21:21:16 +0100103
104.. code-block:: yaml
105
106 neutron:
107 server:
108 lbaas:
Elena Ezhovacd67cfe2017-06-16 23:35:07 +0400109 enabled: false
Ondrej Smola314eee22017-03-08 21:21:16 +0100110
Elena Ezhova166d4012017-08-17 12:53:52 +0400111
112Neutron FWaaSv1 enablement
113--------------------------
114
115.. code-block:: yaml
116
117 neutron:
118 fwaas:
119 enabled: true
120 version: ocata
121 api_version: v1
122
123
Ondrej Smola12ff8192017-04-28 12:39:11 +0200124Enable CORS parameters
Elena Ezhova166d4012017-08-17 12:53:52 +0400125----------------------
Ondrej Smola12ff8192017-04-28 12:39:11 +0200126
127.. code-block:: yaml
128
129 neutron:
130 server:
131 cors:
132 allowed_origin: https:localhost.local,http:localhost.local
133 expose_headers: X-Auth-Token,X-Openstack-Request-Id,X-Subject-Token
134 allow_methods: GET,PUT,POST,DELETE,PATCH
135 allow_headers: X-Auth-Token,X-Openstack-Request-Id,X-Subject-Token
136 allow_credentials: True
137 max_age: 86400
138
139
Aleš Komárek41e82312017-04-11 13:37:44 +0200140Neutron VXLAN tenant networks with Network nodes
141------------------------------------------------
Swann Croiset9407daf2017-02-02 15:27:56 +0100142
Aleš Komárek41e82312017-04-11 13:37:44 +0200143With DVR for East-West and Network node for North-South.
Jiri Broulik74f61112016-11-21 20:23:47 +0100144
145This use case describes a model utilising VxLAN overlay with DVR. The DVR
Aleš Komárek41e82312017-04-11 13:37:44 +0200146routers will only be utilized for traffic that is router within the cloud
Vasyl Saienko2fffc842017-06-14 10:35:26 +0300147infrastructure and that remains encapsulated. External traffic will be
148routed to via the network nodes.
Jiri Broulik74f61112016-11-21 20:23:47 +0100149
Vasyl Saienko2fffc842017-06-14 10:35:26 +0300150The intention is that each tenant will require at least two (2) vrouters
151one to be utilised
Jiri Broulik74f61112016-11-21 20:23:47 +0100152
Aleš Komárek41e82312017-04-11 13:37:44 +0200153Neutron Server
marcoa4428a32016-06-10 11:50:16 +0200154
155.. code-block:: yaml
156
157 neutron:
158 server:
Jiri Broulik74f61112016-11-21 20:23:47 +0100159 version: mitaka
Jiri Broulik74f61112016-11-21 20:23:47 +0100160 bind:
161 address: 172.20.0.1
162 port: 9696
163 database:
164 engine: mysql
165 host: 127.0.0.1
166 port: 3306
167 name: neutron
168 user: neutron
169 password: pwd
170 identity:
171 engine: keystone
172 host: 127.0.0.1
173 port: 35357
174 user: neutron
175 password: pwd
176 tenant: service
Dennis Dmitriev37114722017-03-06 16:52:26 +0200177 endpoint_type: internal
Jiri Broulik74f61112016-11-21 20:23:47 +0100178 message_queue:
179 engine: rabbitmq
180 host: 127.0.0.1
181 port: 5672
182 user: openstack
183 password: pwd
184 virtual_host: '/openstack'
185 global_physnet_mtu: 9000
186 l3_ha: False # Which type of router will be created by default
187 dvr: True # disabled for non DVR use case
188 backend:
189 engine: ml2
190 tenant_network_types: "flat,vxlan"
191 external_mtu: 9000
192 mechanism:
Elena Ezhova79ffa262017-09-27 16:24:07 +0400193 - openvswitch
194 - l2population
Jiri Broulik74f61112016-11-21 20:23:47 +0100195
Aleš Komárek41e82312017-04-11 13:37:44 +0200196Network Node
Jiri Broulik74f61112016-11-21 20:23:47 +0100197
198.. code-block:: yaml
199
200 neutron:
201 gateway:
202 enabled: True
203 version: mitaka
204 message_queue:
205 engine: rabbitmq
206 host: 127.0.0.1
207 port: 5672
208 user: openstack
209 password: pwd
210 virtual_host: '/openstack'
211 local_ip: 192.168.20.20 # br-mesh ip address
212 dvr: True # disabled for non DVR use case
213 agent_mode: dvr_snat
214 metadata:
215 host: 127.0.0.1
216 password: pass
217 backend:
218 engine: ml2
219 tenant_network_types: "flat,vxlan"
220 mechanism:
Elena Ezhova79ffa262017-09-27 16:24:07 +0400221 - openvswitch
222 - l2population
Jiri Broulik74f61112016-11-21 20:23:47 +0100223
224Compute Node
Jiri Broulik74f61112016-11-21 20:23:47 +0100225
226.. code-block:: yaml
227
228 neutron:
229 compute:
230 enabled: True
231 version: mitaka
232 message_queue:
233 engine: rabbitmq
234 host: 127.0.0.1
235 port: 5672
236 user: openstack
237 password: pwd
238 virtual_host: '/openstack'
239 local_ip: 192.168.20.20 # br-mesh ip address
240 dvr: True # disabled for non DVR use case
241 agent_mode: dvr
242 external_access: false # Compute node with DVR for east-west only, Network Node has True as default
243 metadata:
244 host: 127.0.0.1
Vasyl Saienko2fffc842017-06-14 10:35:26 +0300245 password: pass
Jiri Broulik74f61112016-11-21 20:23:47 +0100246 backend:
247 engine: ml2
248 tenant_network_types: "flat,vxlan"
249 mechanism:
Elena Ezhova79ffa262017-09-27 16:24:07 +0400250 - openvswitch
251 - l2population
Petr Michalec61f7ab22016-11-29 16:29:09 +0100252 audit:
253 enabled: false
Jiri Broulik74f61112016-11-21 20:23:47 +0100254
Aleš Komárek41e82312017-04-11 13:37:44 +0200255
Jiri Broulik74f61112016-11-21 20:23:47 +0100256Neutron VXLAN tenant networks with Network Nodes (non DVR)
Aleš Komárek41e82312017-04-11 13:37:44 +0200257----------------------------------------------------------
Jiri Broulik74f61112016-11-21 20:23:47 +0100258
259This section describes a network solution that utilises VxLAN overlay
260 networks without DVR with all routers being managed on the network nodes.
261
Aleš Komárek41e82312017-04-11 13:37:44 +0200262Neutron Server
Jiri Broulik74f61112016-11-21 20:23:47 +0100263
264.. code-block:: yaml
265
266 neutron:
267 server:
268 version: mitaka
Jiri Broulik74f61112016-11-21 20:23:47 +0100269 bind:
270 address: 172.20.0.1
271 port: 9696
272 database:
273 engine: mysql
274 host: 127.0.0.1
275 port: 3306
276 name: neutron
277 user: neutron
278 password: pwd
279 identity:
280 engine: keystone
281 host: 127.0.0.1
282 port: 35357
283 user: neutron
284 password: pwd
285 tenant: service
Dennis Dmitriev37114722017-03-06 16:52:26 +0200286 endpoint_type: internal
Jiri Broulik74f61112016-11-21 20:23:47 +0100287 message_queue:
288 engine: rabbitmq
289 host: 127.0.0.1
290 port: 5672
291 user: openstack
292 password: pwd
293 virtual_host: '/openstack'
294 global_physnet_mtu: 9000
295 l3_ha: True
296 dvr: False
297 backend:
298 engine: ml2
299 tenant_network_types= "flat,vxlan"
300 external_mtu: 9000
301 mechanism:
Elena Ezhova79ffa262017-09-27 16:24:07 +0400302 - openvswitch
303 - l2population
Jiri Broulik74f61112016-11-21 20:23:47 +0100304
Aleš Komárek41e82312017-04-11 13:37:44 +0200305Network Node
Jiri Broulik74f61112016-11-21 20:23:47 +0100306
307.. code-block:: yaml
308
309 neutron:
310 gateway:
311 enabled: True
312 version: mitaka
313 message_queue:
314 engine: rabbitmq
315 host: 127.0.0.1
316 port: 5672
317 user: openstack
318 password: pwd
319 virtual_host: '/openstack'
320 local_ip: 192.168.20.20 # br-mesh ip address
321 dvr: False
322 agent_mode: legacy
Simon Pasquierc03af112017-04-10 10:35:14 +0200323 availability_zone: az1
Jiri Broulik74f61112016-11-21 20:23:47 +0100324 metadata:
325 host: 127.0.0.1
326 password: pass
327 backend:
328 engine: ml2
329 tenant_network_types: "flat,vxlan"
330 mechanism:
Elena Ezhova79ffa262017-09-27 16:24:07 +0400331 - openvswitch
332 - l2population
Jiri Broulik74f61112016-11-21 20:23:47 +0100333
334Compute Node
Jiri Broulik74f61112016-11-21 20:23:47 +0100335
336.. code-block:: yaml
337
338 neutron:
339 compute:
340 enabled: True
341 version: mitaka
342 message_queue:
343 engine: rabbitmq
344 host: 127.0.0.1
345 port: 5672
346 user: openstack
347 password: pwd
348 virtual_host: '/openstack'
349 local_ip: 192.168.20.20 # br-mesh ip address
350 external_access: False
Vasyl Saienko2fffc842017-06-14 10:35:26 +0300351 dvr: False
Jiri Broulik74f61112016-11-21 20:23:47 +0100352 backend:
353 engine: ml2
354 tenant_network_types: "flat,vxlan"
355 mechanism:
Elena Ezhova79ffa262017-09-27 16:24:07 +0400356 - openvswitch
357 - l2population
Jiri Broulik74f61112016-11-21 20:23:47 +0100358
Aleš Komárek41e82312017-04-11 13:37:44 +0200359Neutron VXLAN tenant networks with Network Nodes with DVR
360---------------------------------------------------------
361
362With DVR for East-West and North-South, DVR everywhere, Network node for SNAT.
Jiri Broulik74f61112016-11-21 20:23:47 +0100363
Vasyl Saienko2fffc842017-06-14 10:35:26 +0300364This section describes a network solution that utilises VxLAN
365overlay networks with DVR with North-South and East-West. Network
Jiri Broulik74f61112016-11-21 20:23:47 +0100366Node is used only for SNAT.
367
Aleš Komárek41e82312017-04-11 13:37:44 +0200368Neutron Server
Jiri Broulik74f61112016-11-21 20:23:47 +0100369
370.. code-block:: yaml
371
372 neutron:
373 server:
374 version: mitaka
Jiri Broulik74f61112016-11-21 20:23:47 +0100375 bind:
376 address: 172.20.0.1
377 port: 9696
378 database:
379 engine: mysql
380 host: 127.0.0.1
381 port: 3306
382 name: neutron
383 user: neutron
384 password: pwd
385 identity:
386 engine: keystone
387 host: 127.0.0.1
388 port: 35357
389 user: neutron
390 password: pwd
391 tenant: service
Dennis Dmitriev37114722017-03-06 16:52:26 +0200392 endpoint_type: internal
Jiri Broulik74f61112016-11-21 20:23:47 +0100393 message_queue:
394 engine: rabbitmq
395 host: 127.0.0.1
396 port: 5672
397 user: openstack
398 password: pwd
399 virtual_host: '/openstack'
400 global_physnet_mtu: 9000
401 l3_ha: False
402 dvr: True
403 backend:
404 engine: ml2
405 tenant_network_types= "flat,vxlan"
406 external_mtu: 9000
407 mechanism:
Elena Ezhova79ffa262017-09-27 16:24:07 +0400408 - openvswitch
409 - l2population
Jiri Broulik74f61112016-11-21 20:23:47 +0100410
Aleš Komárek41e82312017-04-11 13:37:44 +0200411Network Node
Jiri Broulik74f61112016-11-21 20:23:47 +0100412
413.. code-block:: yaml
414
415 neutron:
416 gateway:
417 enabled: True
418 version: mitaka
419 message_queue:
420 engine: rabbitmq
421 host: 127.0.0.1
422 port: 5672
423 user: openstack
424 password: pwd
425 virtual_host: '/openstack'
426 local_ip: 192.168.20.20 # br-mesh ip address
427 dvr: True
428 agent_mode: dvr_snat
Simon Pasquierc03af112017-04-10 10:35:14 +0200429 availability_zone: az1
Jiri Broulik74f61112016-11-21 20:23:47 +0100430 metadata:
431 host: 127.0.0.1
432 password: pass
433 backend:
434 engine: ml2
435 tenant_network_types: "flat,vxlan"
436 mechanism:
Elena Ezhova79ffa262017-09-27 16:24:07 +0400437 - openvswitch
438 - l2population
Jiri Broulik74f61112016-11-21 20:23:47 +0100439
440Compute Node
Jiri Broulik74f61112016-11-21 20:23:47 +0100441
442.. code-block:: yaml
443
444 neutron:
445 compute:
446 enabled: True
447 version: mitaka
448 message_queue:
449 engine: rabbitmq
450 host: 127.0.0.1
451 port: 5672
452 user: openstack
453 password: pwd
454 virtual_host: '/openstack'
455 local_ip: 192.168.20.20 # br-mesh ip address
456 dvr: True
Vasyl Saienko2fffc842017-06-14 10:35:26 +0300457 external_access: True
Jiri Broulik74f61112016-11-21 20:23:47 +0100458 agent_mode: dvr
Simon Pasquierc03af112017-04-10 10:35:14 +0200459 availability_zone: az1
Jiri Broulik74f61112016-11-21 20:23:47 +0100460 metadata:
461 host: 127.0.0.1
462 password: pass
463 backend:
464 engine: ml2
465 tenant_network_types: "flat,vxlan"
466 mechanism:
Elena Ezhova79ffa262017-09-27 16:24:07 +0400467 - openvswitch
468 - l2population
Jiri Broulik74f61112016-11-21 20:23:47 +0100469
470Sample Linux network configuration for DVR
Jiri Broulik74f61112016-11-21 20:23:47 +0100471
472.. code-block:: yaml
473
474 linux:
475 network:
476 bridge: openvswitch
477 interface:
478 eth1:
479 enabled: true
480 type: eth
481 mtu: 9000
482 proto: manual
483 eth2:
484 enabled: true
485 type: eth
486 mtu: 9000
487 proto: manual
488 eth3:
489 enabled: true
490 type: eth
491 mtu: 9000
492 proto: manual
493 br-int:
494 enabled: true
495 mtu: 9000
496 type: ovs_bridge
497 br-floating:
498 enabled: true
499 mtu: 9000
500 type: ovs_bridge
501 float-to-ex:
502 enabled: true
503 type: ovs_port
504 mtu: 65000
505 bridge: br-floating
506 br-mgmt:
507 enabled: true
508 type: bridge
509 mtu: 9000
510 address: ${_param:single_address}
511 netmask: 255.255.255.0
512 use_interfaces:
513 - eth1
514 br-mesh:
515 enabled: true
516 type: bridge
517 mtu: 9000
518 address: ${_param:tenant_address}
519 netmask: 255.255.255.0
520 use_interfaces:
521 - eth2
522 br-ex:
523 enabled: true
524 type: bridge
525 mtu: 9000
526 address: ${_param:external_address}
527 netmask: 255.255.255.0
528 use_interfaces:
529 - eth3
530 use_ovs_ports:
531 - float-to-ex
532
Thom Gerdes3282d072017-05-30 22:06:04 +0000533Additonal VXLAN tenant network settings
534---------------------------------------
535
536The default multicast group of 224.0.0.1 only multicasts to a single subnet.
537Allow overriding it to allow larger underlay network topologies.
538
539Neutron Server
540
541.. code-block:: yaml
542
543 neutron:
544 server:
545 vxlan:
546 group: 239.0.0.0/8
547 vni_ranges: "2:65535"
548
Jiri Broulik74f61112016-11-21 20:23:47 +0100549Neutron VLAN tenant networks with Network Nodes
Aleš Komárek41e82312017-04-11 13:37:44 +0200550-----------------------------------------------
Jiri Broulik74f61112016-11-21 20:23:47 +0100551
552VLAN tenant provider
553
554Neutron Server only
Jiri Broulik74f61112016-11-21 20:23:47 +0100555
556.. code-block:: yaml
557
558 neutron:
559 server:
560 version: mitaka
Jiri Broulik74f61112016-11-21 20:23:47 +0100561 ...
562 global_physnet_mtu: 9000
563 l3_ha: False
564 dvr: True
565 backend:
566 engine: ml2
567 tenant_network_types: "flat,vlan" # Can be mixed flat,vlan,vxlan
568 tenant_vlan_range: "1000:2000"
569 external_vlan_range: "100:200" # Does not have to be defined.
570 external_mtu: 9000
571 mechanism:
Elena Ezhova79ffa262017-09-27 16:24:07 +0400572 - openvswitch
573 - l2population
Jiri Broulik74f61112016-11-21 20:23:47 +0100574
575Compute node
Jiri Broulik74f61112016-11-21 20:23:47 +0100576
577.. code-block:: yaml
578
579 neutron:
580 compute:
581 version: mitaka
Jiri Broulik74f61112016-11-21 20:23:47 +0100582 ...
583 dvr: True
584 agent_mode: dvr
585 external_access: False
586 backend:
587 engine: ml2
588 tenant_network_types: "flat,vlan" # Can be mixed flat,vlan,vxlan
589 mechanism:
Elena Ezhova79ffa262017-09-27 16:24:07 +0400590 - openvswitch
591 - l2population
Jiri Broulik74f61112016-11-21 20:23:47 +0100592
Aleš Komárek41e82312017-04-11 13:37:44 +0200593Advanced Neutron Features (DPDK, SR-IOV)
594
Jakub Pavlik8f83ccc2017-02-27 11:15:39 +0100595Neutron OVS DPDK
Jakub Pavlik8f83ccc2017-02-27 11:15:39 +0100596
597Enable datapath netdev for neutron openvswitch agent
598
599.. code-block:: yaml
600
601 neutron:
602 server:
603 version: mitaka
604 ...
605 dpdk: True
606 ...
607
608 neutron:
609 compute:
610 version: mitaka
Jakub Pavlik8f83ccc2017-02-27 11:15:39 +0100611 dpdk: True
612 backend:
613 engine: ml2
614 ...
615 mechanism:
Elena Ezhova79ffa262017-09-27 16:24:07 +0400616 - openvswitch
617 - l2population
Jakub Pavlik8f83ccc2017-02-27 11:15:39 +0100618
Jakub Pavlik70555cb2017-02-26 18:48:02 +0100619Neutron OVS SR-IOV
Jakub Pavlik70555cb2017-02-26 18:48:02 +0100620
621.. code-block:: yaml
622
623 neutron:
624 server:
625 version: mitaka
Jakub Pavlik70555cb2017-02-26 18:48:02 +0100626 backend:
627 engine: ml2
628 ...
629 mechanism:
Elena Ezhova79ffa262017-09-27 16:24:07 +0400630 - openvswitch
631 - sriovnicswitch
632 - l2population
Jakub Pavlik70555cb2017-02-26 18:48:02 +0100633
634 neutron:
635 compute:
636 version: mitaka
Jakub Pavlik70555cb2017-02-26 18:48:02 +0100637 ...
638 backend:
639 engine: ml2
640 tenant_network_types: "flat,vlan" # Can be mixed flat,vlan,vxlan
641 sriov:
642 nic_one:
643 devname: eth1
644 physical_network: physnet3
645 mechanism:
Elena Ezhova79ffa262017-09-27 16:24:07 +0400646 - openvswitch
647 - l2population
Jakub Pavlik70555cb2017-02-26 18:48:02 +0100648
Ilya Chukhnakovf4c2bb32017-06-08 02:03:15 +0300649Neutron with VLAN-aware-VMs
650
651.. code-block:: yaml
652
653 neutron:
654 server:
655 vlan_aware_vms: true
656 ....
657 compute:
658 vlan_aware_vms: true
659 ....
660 gateway:
661 vlan_aware_vms: true
662
Aleš Komárek41e82312017-04-11 13:37:44 +0200663Neutron Server
664--------------
665
Jiri Broulik74f61112016-11-21 20:23:47 +0100666Neutron Server with OpenContrail
Jiri Broulik74f61112016-11-21 20:23:47 +0100667
668.. code-block:: yaml
669
670 neutron:
671 server:
marcoa4428a32016-06-10 11:50:16 +0200672 backend:
673 engine: contrail
674 host: contrail_discovery_host
675 port: 8082
676 user: admin
677 password: password
678 tenant: admin
679 token: token
680
681Neutron Server with Midonet
682
683.. code-block:: yaml
684
685 neutron:
686 server:
687 backend:
688 engine: midonet
689 host: midonet_api_host
690 port: 8181
691 user: admin
692 password: password
693
Filip Pytlouncd028e42015-10-06 16:28:32 +0200694
Jakub Pavlik6dd5c0a2016-03-09 14:18:15 +0100695Neutron Keystone region
696
697.. code-block:: yaml
698
699 neutron:
700 server:
701 enabled: true
702 version: kilo
703 ...
704 identity:
705 region: RegionTwo
706 ...
707 compute:
708 region: RegionTwo
709 ...
710
Jiri Konecny93b19992016-04-12 11:15:39 +0200711Client-side RabbitMQ HA setup
712
713.. code-block:: yaml
714
715 neutron:
716 server:
717 ....
718 message_queue:
719 engine: rabbitmq
720 members:
721 - host: 10.0.16.1
722 - host: 10.0.16.2
723 - host: 10.0.16.3
724 user: openstack
725 password: pwd
726 virtual_host: '/openstack'
727 ....
728
Kirill Bespalov8fffe022017-08-03 17:55:02 +0300729Client-side RabbitMQ TLS configuration:
730
731|
732
733To enable TLS for oslo.messaging you need to provide the CA certificate.
734
735By default system-wide CA certs are used. Nothing should be specified except `ssl.enabled`.
736
737.. code-block:: yaml
738
739 neutron:
740 server, gateway, compute:
741 ....
742 message_queue:
743 ssl:
744 enabled: True
745
746
747
748Use `cacert_file` option to specify the CA-cert file path explicitly:
749
750.. code-block:: yaml
751
752 neutron:
753 server, gateway, compute:
754 ....
755 message_queue:
756 ssl:
757 enabled: True
758 cacert_file: /etc/ssl/rabbitmq-ca.pem
759
760To manage content of the `cacert_file` use the `cacert` option:
761
762.. code-block:: yaml
763
764 neutron:
765 server, gateway, compute:
766 ....
767 message_queue:
768 ssl:
769 enabled: True
770 cacert: |
771
772 -----BEGIN CERTIFICATE-----
773 ...
774 -----END CERTIFICATE-------
775
776 cacert_file: /etc/openstack/rabbitmq-ca.pem
777
778
779Notice:
780 * The `message_queue.port` is set to **5671** (AMQPS) by default if `ssl.enabled=True`.
781 * Use `message_queue.ssl.version` if you need to specify protocol version. By default is TLSv1 for python < 2.7.9 and TLSv1_2 for version above.
782
783
Petr Michalec61f7ab22016-11-29 16:29:09 +0100784Enable auditing filter, ie: CADF
785
786.. code-block:: yaml
787
788 neutron:
789 server:
790 audit:
791 enabled: true
792 ....
793 filter_factory: 'keystonemiddleware.audit:filter_factory'
794 map_file: '/etc/pycadf/neutron_api_audit_map.conf'
795 ....
796 compute:
797 audit:
798 enabled: true
799 ....
800 filter_factory: 'keystonemiddleware.audit:filter_factory'
801 map_file: '/etc/pycadf/neutron_api_audit_map.conf'
802 ....
Jiri Konecny93b19992016-04-12 11:15:39 +0200803
Oleg Bondarev98870a32017-05-29 16:53:19 +0400804Neutron with security groups disabled
805
806.. code-block:: yaml
807
808 neutron:
809 server:
810 security_groups_enabled: False
811 ....
812 compute:
813 security_groups_enabled: False
814 ....
815 gateway:
816 security_groups_enabled: False
817
Jiri Konecny93b19992016-04-12 11:15:39 +0200818
Aleš Komárek41e82312017-04-11 13:37:44 +0200819Neutron Client
820--------------
Jiri Broulik5368cc52017-02-08 18:53:59 +0100821
822Neutron networks
823
824.. code-block:: yaml
825
826 neutron:
827 client:
828 enabled: true
829 server:
830 identity:
Richard Felklaac256a2017-03-23 15:43:49 +0100831 endpoint_type: internalURL
Jiri Broulik5368cc52017-02-08 18:53:59 +0100832 network:
833 inet1:
834 tenant: demo
835 shared: False
836 admin_state_up: True
837 router_external: True
838 provider_physical_network: inet
839 provider_network_type: flat
840 provider_segmentation_id: 2
841 subnet:
842 inet1-subnet1:
843 cidr: 192.168.90.0/24
844 enable_dhcp: False
845 inet2:
846 tenant: admin
847 shared: False
848 router_external: True
849 provider_network_type: "vlan"
850 subnet:
851 inet2-subnet1:
852 cidr: 192.168.92.0/24
853 enable_dhcp: False
854 inet2-subnet2:
855 cidr: 192.168.94.0/24
856 enable_dhcp: True
857 identity1:
858 network:
859 ...
860
Jiri Broulik5368cc52017-02-08 18:53:59 +0100861Neutron routers
862
863.. code-block:: yaml
864
865 neutron:
866 client:
867 enabled: true
868 server:
869 identity:
Richard Felklaac256a2017-03-23 15:43:49 +0100870 endpoint_type: internalURL
Jiri Broulik5368cc52017-02-08 18:53:59 +0100871 router:
872 inet1-router:
873 tenant: demo
874 admin_state_up: True
875 gateway_network: inet
876 interfaces:
877 - inet1-subnet1
878 - inet1-subnet2
879 identity1:
880 router:
881 ...
882
883 TODO: implement adding new interfaces to a router while updating it
884
885
886Neutron security groups
887
888.. code-block:: yaml
889
890 neutron:
891 client:
892 enabled: true
893 server:
894 identity:
Richard Felklaac256a2017-03-23 15:43:49 +0100895 endpoint_type: internalURL
Jiri Broulik5368cc52017-02-08 18:53:59 +0100896 security_group:
897 security_group1:
898 tenant: demo
899 description: security group 1
900 rules:
901 - direction: ingress
902 ethertype: IPv4
903 protocol: TCP
904 port_range_min: 1
905 port_range_max: 65535
906 remote_ip_prefix: 0.0.0.0/0
907 - direction: ingress
908 ethertype: IPv4
909 protocol: UDP
910 port_range_min: 1
911 port_range_max: 65535
912 remote_ip_prefix: 0.0.0.0/0
913 - direction: ingress
914 protocol: ICMP
915 remote_ip_prefix: 0.0.0.0/0
916 identity1:
917 security_group:
918 ...
919
920 TODO: implement updating existing security rules (now it adds new rule if trying to update existing one)
921
Jiri Broulikde2e2902017-02-13 15:03:47 +0100922
923Floating IP addresses
924
925.. code-block:: yaml
926
927 neutron:
928 client:
929 enabled: true
930 server:
931 identity:
Richard Felklaac256a2017-03-23 15:43:49 +0100932 endpoint_type: internalURL
Jiri Broulikde2e2902017-02-13 15:03:47 +0100933 floating_ip:
934 prx01-instance:
935 server: prx01.mk22-lab-basic.local
936 subnet: private-subnet1
937 network: public-net1
938 tenant: demo
939 gtw01-instance:
940 ...
941
942.. note:: The network must have flag router:external set to True.
943 Instance port in the stated subnet will be associated with the dynamically generated floating IP.
944
945
Oleg Iurchenkode71cc22017-09-18 17:58:56 +0300946
947Enable Neutron extensions (QoS, DNS, etc.)
948------------------------------------------
949.. code-block:: yaml
950
951 neutron:
952 server:
953 backend:
954 extension:
955 - dns
956 - qos
957
958
Filip Pytloun20c0a442017-02-02 13:05:13 +0100959Documentation and Bugs
960======================
961
962To learn how to install and update salt-formulas, consult the documentation
963available online at:
964
965 http://salt-formulas.readthedocs.io/
966
967In the unfortunate event that bugs are discovered, they should be reported to
968the appropriate issue tracker. Use Github issue tracker for specific salt
969formula:
970
971 https://github.com/salt-formulas/salt-formula-neutron/issues
972
973For feature requests, bug reports or blueprints affecting entire ecosystem,
974use Launchpad salt-formulas project:
975
976 https://launchpad.net/salt-formulas
977
978You can also join salt-formulas-users team and subscribe to mailing list:
979
980 https://launchpad.net/~salt-formulas-users
981
982Developers wishing to work on the salt-formulas projects should always base
983their work on master branch and submit pull request against specific formula.
984
985 https://github.com/salt-formulas/salt-formula-neutron
986
987Any questions or feedback is always welcome so feel free to join our IRC
988channel:
989
990 #salt-formulas @ irc.freenode.net