@@ -13,19 +13,65 @@ Neutron is enabled by default in ``/etc/kolla/globals.yml``:
13
13
14
14
# enable_neutron: "{{ enable_openstack_core | bool }}"
15
15
16
+ Network interfaces
17
+ ~~~~~~~~~~~~~~~~~~
18
+
16
19
Neutron external interface is used for communication with the external world,
17
- for example provider networks and floating IPs.
18
- For setting up the neutron external interface please modify
20
+ for example provider networks, routers and floating IPs.
21
+ For setting up the neutron external interface modify
19
22
``/etc/kolla/globals.yml `` setting ``neutron_external_interface `` to the
20
- desired interface name, ``eth1 `` in the example below:
23
+ desired interface name. This interface is used by hosts in the ``network ``
24
+ group. It is also used by hosts in the ``compute `` group if
25
+ ``enable_neutron_provider_networks `` is set or DVR is enabled.
26
+
27
+ The interface is plugged into a bridge (Open vSwitch or Linux Bridge, depending
28
+ on the driver) defined by ``neutron_bridge_name ``, which defaults to ``br-ex ``.
29
+ The default Neutron physical network is ``physnet1 ``.
30
+
31
+ Example: single interface
32
+ -------------------------
33
+
34
+ In the case where we have only a single Neutron external interface,
35
+ configuration is simple:
21
36
22
37
.. code-block :: yaml
23
38
24
39
neutron_external_interface : " eth1"
25
40
26
- .. note ::
27
- This is used by hosts in the ``network `` group, and hosts in the ``compute ``
28
- group if ``enable_neutron_provider_networks `` is set or DVR is enabled.
41
+ Example: multiple interfaces
42
+ ----------------------------
43
+
44
+ In some cases it may be necessary to have multiple external network interfaces.
45
+ This may be achieved via comma-separated lists:
46
+
47
+ .. code-block :: yaml
48
+
49
+ neutron_external_interface : " eth1,eth2"
50
+ neutron_bridge_name : " br-ex1,br-ex2"
51
+
52
+ These two lists are "zipped" together, such that ``eth1 `` is plugged into the
53
+ ``br-ex1 `` bridge, and ``eth2 `` is plugged into the ``br-ex2 `` bridge. Kolla
54
+ Ansible maps these interfaces to Neutron physical networks ``physnet1 `` and
55
+ ``physnet2 `` respectively.
56
+
57
+ Example: shared interface
58
+ -------------------------
59
+
60
+ Sometimes an interface used for Neutron external networking may also be used
61
+ for other traffic. Plugging an interface directly into a bridge would prevent
62
+ us from having a usable IP address on the interface. One solution to this issue
63
+ is to use an intermediate Linux bridge and virtual Ethernet pair, then assign
64
+ IP addresses on the Linux bridge. This setup is supported by
65
+ :kayobe-doc: `Kayobe </> `. It is out of scope here, as it is non-trivial to set
66
+ up in a persistent manner.
67
+
68
+ Provider networks
69
+ ~~~~~~~~~~~~~~~~~
70
+
71
+ Provider networks allow to connect compute instances directly to physical
72
+ networks avoiding tunnels. This is necessary for example for some performance
73
+ critical applications. Only administrators of OpenStack can create such
74
+ networks.
29
75
30
76
To use provider networks in instances you also need to set the following in
31
77
``/etc/kolla/globals.yml ``:
@@ -34,9 +80,12 @@ To use provider networks in instances you also need to set the following in
34
80
35
81
enable_neutron_provider_networks : yes
36
82
37
- .. note ::
38
- ``enable_neutron_provider_networks `` ensures ``neutron_external_interface ``
39
- is used on hosts in the ``compute `` group.
83
+ For provider networks, compute hosts must have an external bridge
84
+ created and configured by Ansible (this is also necessary when
85
+ :neutron-doc: `Neutron Distributed Virtual Routing (DVR)
86
+ <admin/deploy-ovs-ha-dvr.html> ` mode is enabled). In this case, ensure
87
+ ``neutron_external_interface `` is configured correctly for hosts in the
88
+ ``compute `` group.
40
89
41
90
OpenvSwitch (ml2/ovs)
42
91
~~~~~~~~~~~~~~~~~~~~~
0 commit comments