blob: 3b161e53e8d7c4d63db3fc59032937aaee0789cc [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 Ezhovad6a080c2017-10-09 15:25:16 +0400193 ovs:
194 driver: openvswitch
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 Ezhovad6a080c2017-10-09 15:25:16 +0400221 ovs:
222 driver: openvswitch
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 Ezhovad6a080c2017-10-09 15:25:16 +0400250 ovs:
251 driver: openvswitch
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 Ezhovad6a080c2017-10-09 15:25:16 +0400302 ovs:
303 driver: openvswitch
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 Ezhovad6a080c2017-10-09 15:25:16 +0400331 ovs:
332 driver: openvswitch
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 Ezhovad6a080c2017-10-09 15:25:16 +0400356 ovs:
357 driver: openvswitch
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 Ezhovad6a080c2017-10-09 15:25:16 +0400408 ovs:
409 driver: openvswitch
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 Ezhovad6a080c2017-10-09 15:25:16 +0400437 ovs:
438 driver: openvswitch
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 Ezhovad6a080c2017-10-09 15:25:16 +0400467 ovs:
468 driver: openvswitch
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 Ezhovad6a080c2017-10-09 15:25:16 +0400572 ovs:
573 driver: openvswitch
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 Ezhovad6a080c2017-10-09 15:25:16 +0400590 ovs:
591 driver: openvswitch
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 Ezhovad6a080c2017-10-09 15:25:16 +0400616 ovs:
617 driver: openvswitch
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 Ezhovad6a080c2017-10-09 15:25:16 +0400630 ovs:
631 driver: openvswitch
632 sriov:
633 driver: sriovnicswitch
Jakub Pavlik70555cb2017-02-26 18:48:02 +0100634
635 neutron:
636 compute:
637 version: mitaka
Jakub Pavlik70555cb2017-02-26 18:48:02 +0100638 ...
639 backend:
640 engine: ml2
641 tenant_network_types: "flat,vlan" # Can be mixed flat,vlan,vxlan
642 sriov:
643 nic_one:
644 devname: eth1
645 physical_network: physnet3
646 mechanism:
Elena Ezhovad6a080c2017-10-09 15:25:16 +0400647 ovs:
648 driver: openvswitch
Jakub Pavlik70555cb2017-02-26 18:48:02 +0100649
Ilya Chukhnakovf4c2bb32017-06-08 02:03:15 +0300650Neutron with VLAN-aware-VMs
651
652.. code-block:: yaml
653
654 neutron:
655 server:
656 vlan_aware_vms: true
657 ....
658 compute:
659 vlan_aware_vms: true
660 ....
661 gateway:
662 vlan_aware_vms: true
663
Aleš Komárek41e82312017-04-11 13:37:44 +0200664Neutron Server
665--------------
666
Jiri Broulik74f61112016-11-21 20:23:47 +0100667Neutron Server with OpenContrail
Jiri Broulik74f61112016-11-21 20:23:47 +0100668
669.. code-block:: yaml
670
671 neutron:
672 server:
marcoa4428a32016-06-10 11:50:16 +0200673 backend:
674 engine: contrail
675 host: contrail_discovery_host
676 port: 8082
677 user: admin
678 password: password
679 tenant: admin
680 token: token
681
682Neutron Server with Midonet
683
684.. code-block:: yaml
685
686 neutron:
687 server:
688 backend:
689 engine: midonet
690 host: midonet_api_host
691 port: 8181
692 user: admin
693 password: password
694
Filip Pytlouncd028e42015-10-06 16:28:32 +0200695
Jakub Pavlik6dd5c0a2016-03-09 14:18:15 +0100696Neutron Keystone region
697
698.. code-block:: yaml
699
700 neutron:
701 server:
702 enabled: true
703 version: kilo
704 ...
705 identity:
706 region: RegionTwo
707 ...
708 compute:
709 region: RegionTwo
710 ...
711
Jiri Konecny93b19992016-04-12 11:15:39 +0200712Client-side RabbitMQ HA setup
713
714.. code-block:: yaml
715
716 neutron:
717 server:
718 ....
719 message_queue:
720 engine: rabbitmq
721 members:
722 - host: 10.0.16.1
723 - host: 10.0.16.2
724 - host: 10.0.16.3
725 user: openstack
726 password: pwd
727 virtual_host: '/openstack'
728 ....
729
Kirill Bespalov8fffe022017-08-03 17:55:02 +0300730Client-side RabbitMQ TLS configuration:
731
732|
733
734To enable TLS for oslo.messaging you need to provide the CA certificate.
735
736By default system-wide CA certs are used. Nothing should be specified except `ssl.enabled`.
737
738.. code-block:: yaml
739
740 neutron:
741 server, gateway, compute:
742 ....
743 message_queue:
744 ssl:
745 enabled: True
746
747
748
749Use `cacert_file` option to specify the CA-cert file path explicitly:
750
751.. code-block:: yaml
752
753 neutron:
754 server, gateway, compute:
755 ....
756 message_queue:
757 ssl:
758 enabled: True
759 cacert_file: /etc/ssl/rabbitmq-ca.pem
760
761To manage content of the `cacert_file` use the `cacert` option:
762
763.. code-block:: yaml
764
765 neutron:
766 server, gateway, compute:
767 ....
768 message_queue:
769 ssl:
770 enabled: True
771 cacert: |
772
773 -----BEGIN CERTIFICATE-----
774 ...
775 -----END CERTIFICATE-------
776
777 cacert_file: /etc/openstack/rabbitmq-ca.pem
778
779
780Notice:
781 * The `message_queue.port` is set to **5671** (AMQPS) by default if `ssl.enabled=True`.
782 * 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.
783
784
Petr Michalec61f7ab22016-11-29 16:29:09 +0100785Enable auditing filter, ie: CADF
786
787.. code-block:: yaml
788
789 neutron:
790 server:
791 audit:
792 enabled: true
793 ....
794 filter_factory: 'keystonemiddleware.audit:filter_factory'
795 map_file: '/etc/pycadf/neutron_api_audit_map.conf'
796 ....
797 compute:
798 audit:
799 enabled: true
800 ....
801 filter_factory: 'keystonemiddleware.audit:filter_factory'
802 map_file: '/etc/pycadf/neutron_api_audit_map.conf'
803 ....
Jiri Konecny93b19992016-04-12 11:15:39 +0200804
Oleg Bondarev98870a32017-05-29 16:53:19 +0400805Neutron with security groups disabled
806
807.. code-block:: yaml
808
809 neutron:
810 server:
811 security_groups_enabled: False
812 ....
813 compute:
814 security_groups_enabled: False
815 ....
816 gateway:
817 security_groups_enabled: False
818
Jiri Konecny93b19992016-04-12 11:15:39 +0200819
Aleš Komárek41e82312017-04-11 13:37:44 +0200820Neutron Client
821--------------
Jiri Broulik5368cc52017-02-08 18:53:59 +0100822
823Neutron networks
824
825.. code-block:: yaml
826
827 neutron:
828 client:
829 enabled: true
830 server:
831 identity:
Richard Felklaac256a2017-03-23 15:43:49 +0100832 endpoint_type: internalURL
Jiri Broulik5368cc52017-02-08 18:53:59 +0100833 network:
834 inet1:
835 tenant: demo
836 shared: False
837 admin_state_up: True
838 router_external: True
839 provider_physical_network: inet
840 provider_network_type: flat
841 provider_segmentation_id: 2
842 subnet:
843 inet1-subnet1:
844 cidr: 192.168.90.0/24
845 enable_dhcp: False
846 inet2:
847 tenant: admin
848 shared: False
849 router_external: True
850 provider_network_type: "vlan"
851 subnet:
852 inet2-subnet1:
853 cidr: 192.168.92.0/24
854 enable_dhcp: False
855 inet2-subnet2:
856 cidr: 192.168.94.0/24
857 enable_dhcp: True
858 identity1:
859 network:
860 ...
861
Jiri Broulik5368cc52017-02-08 18:53:59 +0100862Neutron routers
863
864.. code-block:: yaml
865
866 neutron:
867 client:
868 enabled: true
869 server:
870 identity:
Richard Felklaac256a2017-03-23 15:43:49 +0100871 endpoint_type: internalURL
Jiri Broulik5368cc52017-02-08 18:53:59 +0100872 router:
873 inet1-router:
874 tenant: demo
875 admin_state_up: True
876 gateway_network: inet
877 interfaces:
878 - inet1-subnet1
879 - inet1-subnet2
880 identity1:
881 router:
882 ...
883
884 TODO: implement adding new interfaces to a router while updating it
885
886
887Neutron security groups
888
889.. code-block:: yaml
890
891 neutron:
892 client:
893 enabled: true
894 server:
895 identity:
Richard Felklaac256a2017-03-23 15:43:49 +0100896 endpoint_type: internalURL
Jiri Broulik5368cc52017-02-08 18:53:59 +0100897 security_group:
898 security_group1:
899 tenant: demo
900 description: security group 1
901 rules:
902 - direction: ingress
903 ethertype: IPv4
904 protocol: TCP
905 port_range_min: 1
906 port_range_max: 65535
907 remote_ip_prefix: 0.0.0.0/0
908 - direction: ingress
909 ethertype: IPv4
910 protocol: UDP
911 port_range_min: 1
912 port_range_max: 65535
913 remote_ip_prefix: 0.0.0.0/0
914 - direction: ingress
915 protocol: ICMP
916 remote_ip_prefix: 0.0.0.0/0
917 identity1:
918 security_group:
919 ...
920
921 TODO: implement updating existing security rules (now it adds new rule if trying to update existing one)
922
Jiri Broulikde2e2902017-02-13 15:03:47 +0100923
924Floating IP addresses
925
926.. code-block:: yaml
927
928 neutron:
929 client:
930 enabled: true
931 server:
932 identity:
Richard Felklaac256a2017-03-23 15:43:49 +0100933 endpoint_type: internalURL
Jiri Broulikde2e2902017-02-13 15:03:47 +0100934 floating_ip:
935 prx01-instance:
936 server: prx01.mk22-lab-basic.local
937 subnet: private-subnet1
938 network: public-net1
939 tenant: demo
940 gtw01-instance:
941 ...
942
943.. note:: The network must have flag router:external set to True.
944 Instance port in the stated subnet will be associated with the dynamically generated floating IP.
945
946
Oleg Iurchenkode71cc22017-09-18 17:58:56 +0300947
948Enable Neutron extensions (QoS, DNS, etc.)
949------------------------------------------
950.. code-block:: yaml
951
952 neutron:
953 server:
954 backend:
955 extension:
Oleg Iurchenkoac17f4f2017-10-06 11:24:27 +0300956 dns:
957 enabled: True
958 host: 127.0.0.1
959 port: 9001
960 protocol: http
961 ....
962 qos
963 enabled: True
Oleg Iurchenkode71cc22017-09-18 17:58:56 +0300964
965
Filip Pytloun20c0a442017-02-02 13:05:13 +0100966Documentation and Bugs
967======================
968
969To learn how to install and update salt-formulas, consult the documentation
970available online at:
971
972 http://salt-formulas.readthedocs.io/
973
974In the unfortunate event that bugs are discovered, they should be reported to
975the appropriate issue tracker. Use Github issue tracker for specific salt
976formula:
977
978 https://github.com/salt-formulas/salt-formula-neutron/issues
979
980For feature requests, bug reports or blueprints affecting entire ecosystem,
981use Launchpad salt-formulas project:
982
983 https://launchpad.net/salt-formulas
984
985You can also join salt-formulas-users team and subscribe to mailing list:
986
987 https://launchpad.net/~salt-formulas-users
988
989Developers wishing to work on the salt-formulas projects should always base
990their work on master branch and submit pull request against specific formula.
991
992 https://github.com/salt-formulas/salt-formula-neutron
993
994Any questions or feedback is always welcome so feel free to join our IRC
995channel:
996
997 #salt-formulas @ irc.freenode.net