Update docs for new network config with ansible
This updates docs to use the new network inerface config format with ansible. Change-Id: I448c18f59ffeb040cb51463007f6ea96fdbee1d2
This commit is contained in:
parent
b0962f8b40
commit
affbf8d875
@ -186,8 +186,12 @@ Create Network Environment Overrides File
|
|||||||
The environment file will describe the network environment and will point to
|
The environment file will describe the network environment and will point to
|
||||||
the network interface configuration files to use for the overcloud nodes.
|
the network interface configuration files to use for the overcloud nodes.
|
||||||
|
|
||||||
In order to configure the ``resource registry`` section of the network
|
Earlier method of generating network interface configurations with heat has
|
||||||
environment of the cluster, copy the generated
|
been deprecated since victoria. To use a custom network configuration copy
|
||||||
|
an appropriate sample network interface configuration file from
|
||||||
|
`tripleo-ansible <tripleo_ansible_>`_ and make necessary changes.
|
||||||
|
|
||||||
|
Then copy the generated
|
||||||
``net-single-nic-with-vlans.yaml`` file to apply the required cluster specific
|
``net-single-nic-with-vlans.yaml`` file to apply the required cluster specific
|
||||||
changes, which overrides the defaults::
|
changes, which overrides the defaults::
|
||||||
|
|
||||||
@ -201,28 +205,33 @@ allow the OpenStack Public APIs and the Horizon Dashboard to be reachable.
|
|||||||
Without a valid default route, the post-deployment steps cannot be performed.
|
Without a valid default route, the post-deployment steps cannot be performed.
|
||||||
|
|
||||||
.. note::
|
.. note::
|
||||||
The ``resource_registry`` section of the
|
|
||||||
``network-environment-overrides.yaml`` contains pointers to the network
|
The ``parameter_defaults`` section of the ``network-environment-overrides.yaml``
|
||||||
interface configurations for the deployed roles. These files must exist at
|
contains pointers to the network interface configuration files for the deployed
|
||||||
the path referenced here, and will be copied later in this guide.
|
roles. These files must exist at the path referenced here.
|
||||||
|
|
||||||
Example::
|
Example::
|
||||||
|
|
||||||
resource_registry:
|
|
||||||
OS::TripleO::BlockStorage::Net::SoftwareConfig: /home/stack/templates/nic-configs/cinder-storage.yaml
|
|
||||||
OS::TripleO::Compute::Net::SoftwareConfig: /home/stack/templates/nic-configs/compute.yaml
|
|
||||||
OS::TripleO::Controller::Net::SoftwareConfig: /home/stack/templates/nic-configs/controller.yaml
|
|
||||||
OS::TripleO::ObjectStorage::Net::SoftwareConfig: /home/stack/templates/nic-configs/swift-storage.yaml
|
|
||||||
OS::TripleO::CephStorage::Net::SoftwareConfig: /home/stack/templates/nic-configs/ceph-storage.yaml
|
|
||||||
|
|
||||||
parameter_defaults:
|
parameter_defaults:
|
||||||
|
ControllerNetworkConfigTemplate: 'templates/single_nic_vlans/single_nic_vlans.j2'
|
||||||
|
ComputeNetworkConfigTemplate: 'templates/single_nic_vlans/single_nic_vlans.j2'
|
||||||
|
BlockStorageNetworkConfigTemplate: 'templates/single_nic_vlans/single_nic_vlans_storage.j2'
|
||||||
|
|
||||||
# May set to br-ex if using floating IPs only on native VLAN on bridge br-ex
|
# May set to br-ex if using floating IPs only on native VLAN on bridge br-ex
|
||||||
NeutronExternalNetworkBridge: "''"
|
NeutronExternalNetworkBridge: "''"
|
||||||
NeutronNetworkType: 'vxlan,vlan'
|
NeutronNetworkType: 'vxlan,vlan'
|
||||||
NeutronTunnelTypes: 'vxlan'
|
NeutronTunnelTypes: 'vxlan'
|
||||||
# Customize bonding options if required (ignored if bonds are not used)
|
# Customize bonding options if required (ignored if bonds are not used)
|
||||||
BondInterfaceOvsOptions:
|
BondInterfaceOvsOptions: "lacp=active other-config:lacp-fallback-ab=true"
|
||||||
"lacp=active other-config:lacp-fallback-ab=true"
|
|
||||||
|
|
||||||
|
Users can still use the old network interface configuration heat templates
|
||||||
|
for custom network configuration. Set ``NetworkConfigWithAnsible`` parameter
|
||||||
|
to ``false`` to use them::
|
||||||
|
|
||||||
|
parameter_defaults:
|
||||||
|
NetworkConfigWithAnsible: false
|
||||||
|
|
||||||
|
|
||||||
Configure IP Subnets
|
Configure IP Subnets
|
||||||
--------------------
|
--------------------
|
||||||
@ -302,27 +311,26 @@ Creating Custom Interface Templates
|
|||||||
In order to configure the network interfaces on each node, the network
|
In order to configure the network interfaces on each node, the network
|
||||||
interface templates may need to be customized.
|
interface templates may need to be customized.
|
||||||
|
|
||||||
Start by copying the generated configurations from one of the example
|
Start by copying the existing templates in `tripleo-ansible <tripleo_ansible_>`_.
|
||||||
directories. The first example copies the templates which include network
|
The first example copies the templates which include network bonding. The second
|
||||||
bonding. The second example copies the templates which use a single network
|
example copies the templates which use a single network interface with multiple
|
||||||
interface with multiple VLANs (this configuration is mostly intended for
|
VLANs (this configuration is mostly intended for testing).
|
||||||
testing).
|
|
||||||
|
.. _tripleo_ansible: https://opendev.org/openstack/tripleo-ansible/src/branch/master/tripleo_ansible/roles/tripleo_network_config/templates
|
||||||
|
|
||||||
To copy the bonded example interface configurations, run::
|
To copy the bonded example interface configurations, run::
|
||||||
|
|
||||||
$ cp ~/generated-openstack-tripleo-heat-templates/network/config/bond-with-vlans/* \
|
$ cp /usr/share/ansible/roles/tripleo_network_config/templates/bonds_vlans/* \
|
||||||
~/templates/nic-configs
|
~/templates/nic-configs
|
||||||
|
|
||||||
To copy the single NIC with VLANs example interface configurations, run::
|
To copy the single NIC with VLANs example interface configurations, run::
|
||||||
|
|
||||||
$ cp ~/generated-openstack-tripleo-heat-templates/network/config/single-nic-vlans/* \
|
$ cp /usr/share/ansible/roles/tripleo_network_config/templates/single_nic_vlans/* \
|
||||||
~/templates/nic-configs
|
~/templates/nic-configs
|
||||||
|
|
||||||
Or, if you have custom NIC templates from another source, copy them to the
|
Or, if you have custom NIC templates from another source, copy them to the
|
||||||
location referenced in the ``resource_registry`` section of the environment
|
location referenced in the ``parameter_defaults`` section of the environment
|
||||||
file. And ensure that the whole ``parameters`` section of all the custom NIC
|
file.
|
||||||
templates are replaced with the ``parameters`` section of the generated
|
|
||||||
NIC templates.
|
|
||||||
|
|
||||||
Customizing the Interface Templates
|
Customizing the Interface Templates
|
||||||
-----------------------------------
|
-----------------------------------
|
||||||
@ -339,185 +347,102 @@ but will have only a subset of the networks attached.
|
|||||||
|
|
||||||
Example::
|
Example::
|
||||||
|
|
||||||
heat_template_version: 2015-04-30
|
---
|
||||||
|
{% set mtu_list = [ctlplane_mtu] %}
|
||||||
|
{% for network in role_networks %}
|
||||||
|
{{ mtu_list.append(lookup('vars', role_networks_lower[network] ~ '_mtu')) }}
|
||||||
|
{%- endfor %}
|
||||||
|
{% set min_viable_mtu = mtu_list | max %}
|
||||||
|
network_config:
|
||||||
|
- type: interface
|
||||||
|
name: nic1
|
||||||
|
mtu: {{ ctlplane_mtu }}
|
||||||
|
use_dhcp: false
|
||||||
|
addresses:
|
||||||
|
- ip_netmask: {{ ctlplane_ip }}/{{ ctlplane_subnet_cidr }}
|
||||||
|
routes: {{ ctlplane_host_routes }}
|
||||||
|
- type: ovs_bridge
|
||||||
|
name: {{ neutron_physical_bridge_name }}
|
||||||
|
dns_servers: {{ ctlplane_dns_nameservers }}
|
||||||
|
domain: {{ dns_search_domains }}
|
||||||
|
members:
|
||||||
|
- type: ovs_bond
|
||||||
|
name: bond1
|
||||||
|
mtu: {{ min_viable_mtu }}
|
||||||
|
ovs_options: {{ bond_interface_ovs_options }}
|
||||||
|
members:
|
||||||
|
- type: interface
|
||||||
|
name: nic3
|
||||||
|
mtu: {{ min_viable_mtu }}
|
||||||
|
primary: true
|
||||||
|
- type: interface
|
||||||
|
name: nic4
|
||||||
|
mtu: {{ min_viable_mtu }}
|
||||||
|
{% for network in role_networks %}
|
||||||
|
- type: vlan
|
||||||
|
mtu: {{ lookup('vars', role_networks_lower[network] ~ '_mtu') }}
|
||||||
|
vlan_id: {{ lookup('vars', role_networks_lower[network] ~ '_vlan_id') }}
|
||||||
|
addresses:
|
||||||
|
- ip_netmask: {{ lookup('vars', role_networks_lower[network] ~ '_ip') }}/{{ lookup('vars', role_networks_lower[network] ~ '_cidr') }}
|
||||||
|
routes: {{ lookup('vars', role_networks_lower[network] ~ '_host_routes') }}
|
||||||
|
{%- endfor %}
|
||||||
|
|
||||||
description: >
|
.. note::
|
||||||
Software Config to drive os-net-config with 2 bonded nics on a bridge
|
If you are using old heat network interface configuration templates from versions
|
||||||
with a VLANs attached for the controller role.
|
prior to Victoria, you may need to make updates to the templates. See below.
|
||||||
|
|
||||||
parameters:
|
Updating Existing Network Interface Configuration Templates
|
||||||
ControlPlaneIp:
|
-----------------------------------------------------------
|
||||||
default: ''
|
|
||||||
description: IP address/subnet on the ctlplane network
|
Prior to Victoria relase the network interface configuration file
|
||||||
type: string
|
used a ``OS::Heat::SoftwareConfig`` resource to configure interfaces::
|
||||||
ExternalIpSubnet:
|
|
||||||
default: ''
|
|
||||||
description: IP address/subnet on the external network
|
|
||||||
type: string
|
|
||||||
InternalApiIpSubnet:
|
|
||||||
default: ''
|
|
||||||
description: IP address/subnet on the internal API network
|
|
||||||
type: string
|
|
||||||
StorageIpSubnet:
|
|
||||||
default: ''
|
|
||||||
description: IP address/subnet on the storage network
|
|
||||||
type: string
|
|
||||||
StorageMgmtIpSubnet:
|
|
||||||
default: ''
|
|
||||||
description: IP address/subnet on the storage mgmt network
|
|
||||||
type: string
|
|
||||||
TenantIpSubnet:
|
|
||||||
default: ''
|
|
||||||
description: IP address/subnet on the tenant network
|
|
||||||
type: string
|
|
||||||
BondInterfaceOvsOptions:
|
|
||||||
default: ''
|
|
||||||
description: The ovs_options string for the bond interface. Set things like
|
|
||||||
lacp=active and/or bond_mode=balance-slb using this option.
|
|
||||||
type: string
|
|
||||||
ExternalNetworkVlanID:
|
|
||||||
default: 10
|
|
||||||
description: Vlan ID for the external network traffic.
|
|
||||||
type: number
|
|
||||||
InternalApiNetworkVlanID:
|
|
||||||
default: 20
|
|
||||||
description: Vlan ID for the internal_api network traffic.
|
|
||||||
type: number
|
|
||||||
StorageNetworkVlanID:
|
|
||||||
default: 30
|
|
||||||
description: Vlan ID for the storage network traffic.
|
|
||||||
type: number
|
|
||||||
StorageMgmtNetworkVlanID:
|
|
||||||
default: 40
|
|
||||||
description: Vlan ID for the storage mgmt network traffic.
|
|
||||||
type: number
|
|
||||||
TenantNetworkVlanID:
|
|
||||||
default: 50
|
|
||||||
description: Vlan ID for the tenant network traffic.
|
|
||||||
type: number
|
|
||||||
ExternalInterfaceDefaultRoute:
|
|
||||||
default: '10.0.0.1'
|
|
||||||
description: Default route for the external network.
|
|
||||||
type: string
|
|
||||||
ControlPlaneSubnetCidr: # Override this via parameter_defaults
|
|
||||||
default: '24'
|
|
||||||
description: The subnet CIDR of the control plane network.
|
|
||||||
type: string
|
|
||||||
DnsServers: # Override this via parameter_defaults
|
|
||||||
default: []
|
|
||||||
description: A list of DNS servers (2 max) to add to resolv.conf.
|
|
||||||
type: json
|
|
||||||
EC2MetadataIp: # Override this via parameter_defaults
|
|
||||||
description: The IP address of the EC2 metadata server.
|
|
||||||
type: string
|
|
||||||
|
|
||||||
resources:
|
resources:
|
||||||
OsNetConfigImpl:
|
OsNetConfigImpl:
|
||||||
type: OS::Heat::StructuredConfig
|
type: OS::Heat::SoftwareConfig
|
||||||
properties:
|
properties:
|
||||||
group: script
|
group: script
|
||||||
config:
|
config:
|
||||||
str_replace:
|
str_replace:
|
||||||
template:
|
template:
|
||||||
get_file: ../../scripts/run-os-net-config.sh
|
get_file: /usr/share/openstack-tripleo-heat-templates/network/scripts/run-os-net-config.sh
|
||||||
params:
|
params:
|
||||||
$network_config:
|
$network_config:
|
||||||
network_config:
|
network_config:
|
||||||
-
|
[NETWORK INTERFACE CONFIGURATION HERE]
|
||||||
type: interface
|
|
||||||
name: nic1
|
|
||||||
use_dhcp: false
|
|
||||||
addresses:
|
|
||||||
-
|
|
||||||
ip_netmask:
|
|
||||||
list_join:
|
|
||||||
- '/'
|
|
||||||
- - {get_param: ControlPlaneIp}
|
|
||||||
- {get_param: ControlPlaneSubnetCidr}
|
|
||||||
routes:
|
|
||||||
-
|
|
||||||
ip_netmask: 169.254.169.254/32
|
|
||||||
next_hop: {get_param: EC2MetadataIp}
|
|
||||||
-
|
|
||||||
type: ovs_bridge
|
|
||||||
name: bridge_name
|
|
||||||
dns_servers: {get_param: DnsServers}
|
|
||||||
members:
|
|
||||||
-
|
|
||||||
type: ovs_bond
|
|
||||||
name: bond1
|
|
||||||
ovs_options: {get_param: BondInterfaceOvsOptions}
|
|
||||||
members:
|
|
||||||
-
|
|
||||||
type: interface
|
|
||||||
name: nic3
|
|
||||||
primary: true
|
|
||||||
-
|
|
||||||
type: interface
|
|
||||||
name: nic4
|
|
||||||
-
|
|
||||||
type: vlan
|
|
||||||
device: bond1
|
|
||||||
vlan_id: {get_param: ExternalNetworkVlanID}
|
|
||||||
addresses:
|
|
||||||
-
|
|
||||||
ip_netmask: {get_param: ExternalIpSubnet}
|
|
||||||
routes:
|
|
||||||
-
|
|
||||||
ip_netmask: 0.0.0.0/0
|
|
||||||
next_hop: {get_param: ExternalInterfaceDefaultRoute}
|
|
||||||
-
|
|
||||||
type: vlan
|
|
||||||
device: bond1
|
|
||||||
vlan_id: {get_param: InternalApiNetworkVlanID}
|
|
||||||
addresses:
|
|
||||||
-
|
|
||||||
ip_netmask: {get_param: InternalApiIpSubnet}
|
|
||||||
-
|
|
||||||
type: vlan
|
|
||||||
device: bond1
|
|
||||||
vlan_id: {get_param: StorageNetworkVlanID}
|
|
||||||
addresses:
|
|
||||||
-
|
|
||||||
ip_netmask: {get_param: StorageIpSubnet}
|
|
||||||
-
|
|
||||||
type: vlan
|
|
||||||
device: bond1
|
|
||||||
vlan_id: {get_param: StorageMgmtNetworkVlanID}
|
|
||||||
addresses:
|
|
||||||
-
|
|
||||||
ip_netmask: {get_param: StorageMgmtIpSubnet}
|
|
||||||
-
|
|
||||||
type: vlan
|
|
||||||
device: bond1
|
|
||||||
vlan_id: {get_param: TenantNetworkVlanID}
|
|
||||||
addresses:
|
|
||||||
-
|
|
||||||
ip_netmask: {get_param: TenantIpSubnet}
|
|
||||||
|
|
||||||
outputs:
|
These templates are now expected to use ``OS::Heat::Value`` resource::
|
||||||
OS::stack_id:
|
|
||||||
description: The OsNetConfigImpl resource.
|
|
||||||
value: {get_resource: OsNetConfigImpl}
|
|
||||||
|
|
||||||
.. note::
|
resources:
|
||||||
If you are using network interface configuration templates from versions
|
OsNetConfigImpl:
|
||||||
prior to Ocata, you may need to make updates to the templates. See below.
|
type: OS::Heat::Value
|
||||||
|
properties:
|
||||||
|
value:
|
||||||
|
network_config:
|
||||||
|
[NETWORK INTERFACE CONFIGURATION HERE]
|
||||||
|
outputs:
|
||||||
|
config:
|
||||||
|
value: get_attr[OsNetConfigImpl, value]
|
||||||
|
|
||||||
Updating Existing Network Interface Configuration Templates
|
|
||||||
-----------------------------------------------------------
|
|
||||||
|
|
||||||
Prior to the Ocata release, the network interface configuration files used
|
|
||||||
a different mechanism for running os-net-config. Ocata introduced the
|
Old network inteface configuration heat templates can be converted using
|
||||||
run-os-net-config.sh script, and the old mechanism was deprecated. The
|
the provided conversion `convert-nic-config.py <convert_nic_config_>`_ script.
|
||||||
deprecated mechanism was removed in Queens, so older templates must be
|
|
||||||
updated. The resource definition must be changed, and {get_input: bridge_name} is
|
.. _convert_nic_config: https://opendev.org/openstack/tripleo-heat-templates/src/branch/master/tools/convert_nic_config.py
|
||||||
replaced with the special token "bridge_name", which will be replaced with
|
|
||||||
the value of the NeutronPhysicalBridge.
|
|
||||||
|
Prior to the Ocata release, the network interface configuration files used
|
||||||
|
a different mechanism for running os-net-config. Ocata introduced the
|
||||||
|
run-os-net-config.sh script, and the old mechanism was deprecated. The
|
||||||
|
deprecated mechanism was removed in Queens, so older templates must be
|
||||||
|
updated. The resource definition must be changed, and {get_input: bridge_name} is
|
||||||
|
replaced with the special token "bridge_name", which will be replaced with
|
||||||
|
the value of the NeutronPhysicalBridge.
|
||||||
|
|
||||||
Old Header::
|
Old Header::
|
||||||
|
|
||||||
resources:
|
resources:
|
||||||
OsNetConfigImpl:
|
OsNetConfigImpl:
|
||||||
type: OS::Heat::StructuredConfig
|
type: OS::Heat::StructuredConfig
|
||||||
properties:
|
properties:
|
||||||
@ -525,22 +450,17 @@ Old Header::
|
|||||||
config:
|
config:
|
||||||
os_net_config:
|
os_net_config:
|
||||||
network_config:
|
network_config:
|
||||||
|
[NETWORK INTERFACE CONFIGURATION HERE]
|
||||||
|
|
||||||
New Header::
|
New Header::
|
||||||
|
|
||||||
resources:
|
resources:
|
||||||
OsNetConfigImpl:
|
OsNetConfigImpl:
|
||||||
type: OS::Heat::SoftwareConfig
|
type: OS::Heat::Value
|
||||||
properties:
|
properties:
|
||||||
group: script
|
value:
|
||||||
config:
|
network_config:
|
||||||
str_replace:
|
[NETWORK INTERFACE CONFIGURATION HERE]
|
||||||
template:
|
|
||||||
# This filename can be relative to template root or absolute
|
|
||||||
get_file: ../../scripts/run-os-net-config.sh
|
|
||||||
params:
|
|
||||||
$network_config:
|
|
||||||
network_config:
|
|
||||||
|
|
||||||
Old Bridge Definition::
|
Old Bridge Definition::
|
||||||
|
|
||||||
@ -561,30 +481,27 @@ NICs for the bond:
|
|||||||
|
|
||||||
Example::
|
Example::
|
||||||
|
|
||||||
network_config:
|
network_config:
|
||||||
# Add a DHCP infrastructure network to nic2
|
- type: interface
|
||||||
-
|
name: nic2
|
||||||
type: interface
|
mtu: {{ ctlplane_mtu }}
|
||||||
name: nic2
|
use_dhcp: true
|
||||||
use_dhcp: true
|
defroute: no
|
||||||
defroute: false
|
- type: ovs_bridge
|
||||||
-
|
name: {{ neutron_physical_bridge_name }}
|
||||||
type: ovs_bridge
|
members:
|
||||||
name: bridge_name
|
- type: ovs_bond
|
||||||
members:
|
name: bond1
|
||||||
-
|
mtu: {{ min_viable_mtu }}
|
||||||
type: ovs_bond
|
ovs_options: {{ bound_interface_ovs_options }}
|
||||||
name: bond1
|
members:
|
||||||
ovs_options: {get_param: BondInterfaceOvsOptions}
|
- type: interface
|
||||||
members:
|
name: nic3
|
||||||
# Modify bond NICs to use nic3 and nic4
|
mtu: {{ min_viable_mtu }}
|
||||||
-
|
primary: true
|
||||||
type: interface
|
- type: interface
|
||||||
name: nic3
|
name: nic4
|
||||||
primary: true
|
mtu: {{ min_viable_mtu }}
|
||||||
-
|
|
||||||
type: interface
|
|
||||||
name: nic4
|
|
||||||
|
|
||||||
When using numbered interfaces ("nic1", "nic2", etc.) instead of named
|
When using numbered interfaces ("nic1", "nic2", etc.) instead of named
|
||||||
interfaces ("eth0", "eno2", etc.), the network interfaces of hosts within
|
interfaces ("eth0", "eno2", etc.), the network interfaces of hosts within
|
||||||
@ -615,17 +532,14 @@ to routes learned via DHCP):
|
|||||||
|
|
||||||
Example::
|
Example::
|
||||||
|
|
||||||
# No default route on the Provisioning network
|
network_config:
|
||||||
-
|
- type: interface
|
||||||
type: interface
|
name: nic1
|
||||||
name: nic1
|
use_dhcp: true
|
||||||
use_dhcp: true
|
defroute: no
|
||||||
defroute: no
|
- type: interface
|
||||||
# Instead use this DHCP infrastructure VLAN as the default route
|
name: nic2
|
||||||
-
|
use_dhcp: true
|
||||||
type: interface
|
|
||||||
name: nic2
|
|
||||||
use_dhcp: true
|
|
||||||
|
|
||||||
To set a static route on an interface with a static IP, specify a route to the
|
To set a static route on an interface with a static IP, specify a route to the
|
||||||
subnet. For instance, here is a hypothetical route to the 10.1.2.0/24 subnet
|
subnet. For instance, here is a hypothetical route to the 10.1.2.0/24 subnet
|
||||||
@ -633,17 +547,15 @@ via the gateway at 172.17.0.1 on the Internal API network:
|
|||||||
|
|
||||||
Example::
|
Example::
|
||||||
|
|
||||||
-
|
- type: vlan
|
||||||
type: vlan
|
device: bond1
|
||||||
device: bond1
|
vlan_id: {{ internal_api_vlan_id }}
|
||||||
vlan_id: {get_param: InternalApiNetworkVlanID}
|
addresses:
|
||||||
addresses:
|
- ip_netmask: {{ internal_api_ip ~ '/' ~ internal_api_cidr }}
|
||||||
-
|
routes:
|
||||||
ip_netmask: {get_param: InternalApiIpSubnet}
|
- ip_netmask: 10.1.2.0/24
|
||||||
routes:
|
next_hop: 172.17.0.1
|
||||||
-
|
|
||||||
ip_netmask: 10.1.2.0/24
|
|
||||||
next_hop: 172.17.0.1
|
|
||||||
|
|
||||||
Using a Dedicated Interface For Tenant VLANs
|
Using a Dedicated Interface For Tenant VLANs
|
||||||
--------------------------------------------
|
--------------------------------------------
|
||||||
@ -654,14 +566,12 @@ VLANs, you would add the following to the Controller and Compute templates:
|
|||||||
|
|
||||||
Example::
|
Example::
|
||||||
|
|
||||||
-
|
- type: ovs_bridge
|
||||||
type: ovs_bridge
|
name: br-vlan
|
||||||
name: br-vlan
|
members:
|
||||||
members:
|
- type: interface
|
||||||
-
|
name: nic4
|
||||||
type: interface
|
primary: true
|
||||||
name: nic4
|
|
||||||
primary: true
|
|
||||||
|
|
||||||
A similar configuration may be used to define an interface or a bridge that
|
A similar configuration may be used to define an interface or a bridge that
|
||||||
will be used for Provider VLANs. Provider VLANs are external networks which
|
will be used for Provider VLANs. Provider VLANs are external networks which
|
||||||
@ -704,30 +614,22 @@ configuration would look like this:
|
|||||||
|
|
||||||
Example::
|
Example::
|
||||||
|
|
||||||
-
|
- type: ovs_bridge
|
||||||
type: ovs_bridge
|
name: bridge_name
|
||||||
name: bridge_name
|
dns_servers: {{ ctlplane_dns_nameservers }}
|
||||||
dns_servers: {get_param: DnsServers}
|
addresses:
|
||||||
addresses:
|
- ip_netmask: {{ external_ip ~ '/' ~ external_cidr }}
|
||||||
-
|
routes: {{ external_host_routes }}
|
||||||
ip_netmask: {get_param: ExternalIpSubnet}
|
members:
|
||||||
routes:
|
- type: ovs_bond
|
||||||
-
|
name: bond1
|
||||||
ip_netmask: 0.0.0.0/0
|
ovs_options: {{ bond_interface_ovs_options }}
|
||||||
next_hop: {get_param: ExternalInterfaceDefaultRoute}
|
members:
|
||||||
members:
|
- type: interface
|
||||||
-
|
name: nic3
|
||||||
type: ovs_bond
|
primary: true
|
||||||
name: bond1
|
- type: interface
|
||||||
ovs_options: {get_param: BondInterfaceOvsOptions}
|
name: nic4
|
||||||
members:
|
|
||||||
-
|
|
||||||
type: interface
|
|
||||||
name: nic3
|
|
||||||
primary: true
|
|
||||||
-
|
|
||||||
type: interface
|
|
||||||
name: nic4
|
|
||||||
|
|
||||||
.. note::
|
.. note::
|
||||||
When moving the address (and possibly route) statements onto the bridge, be
|
When moving the address (and possibly route) statements onto the bridge, be
|
||||||
@ -761,42 +663,30 @@ over 300% greater when using jumbo frames in conjunction with VXLAN tunnels.
|
|||||||
|
|
||||||
Example::
|
Example::
|
||||||
|
|
||||||
-
|
- type: ovs_bond
|
||||||
type: ovs_bond
|
|
||||||
name: bond1
|
name: bond1
|
||||||
mtu: 9000
|
mtu: 9000
|
||||||
ovs_options: {get_param: BondInterfaceOvsOptions}
|
ovs_options: {{ bond_interface_ovs_options }}
|
||||||
members:
|
members:
|
||||||
-
|
- type: interface
|
||||||
type: interface
|
name: nic3
|
||||||
name: nic3
|
mtu: 9000
|
||||||
mtu: 9000
|
primary: true
|
||||||
primary: true
|
- type: interface
|
||||||
-
|
name: nic4
|
||||||
type: interface
|
mtu: 9000
|
||||||
name: nic4
|
- type: vlan
|
||||||
mtu: 9000
|
|
||||||
-
|
|
||||||
# The external interface should stay at default
|
|
||||||
type: vlan
|
|
||||||
device: bond1
|
device: bond1
|
||||||
vlan_id: {get_param: ExternalNetworkVlanID}
|
vlan_id: {{ external_vlan_id }}
|
||||||
addresses:
|
addresses:
|
||||||
-
|
- ip_netmask: {{ external_ip ~ '/' ~ external_cidr }}
|
||||||
ip_netmask: {get_param: ExternalIpSubnet}
|
routes: {{ external_host_routes }}
|
||||||
routes:
|
- type: vlan
|
||||||
-
|
|
||||||
ip_netmask: 0.0.0.0/0
|
|
||||||
next_hop: {get_param: ExternalInterfaceDefaultRoute}
|
|
||||||
-
|
|
||||||
# MTU 9000 for Internal API, Storage, and Storage Management
|
|
||||||
type: vlan
|
|
||||||
device: bond1
|
device: bond1
|
||||||
mtu: 9000
|
mtu: 9000
|
||||||
vlan_id: {get_param: InternalApiNetworkVlanID}
|
vlan_id: {{ internal_api_vlan_id }}
|
||||||
addresses:
|
addresses:
|
||||||
-
|
- ip_netmask: {{ internal_api_ip ~ '/' ~ internal_api_cidr }}
|
||||||
ip_netmask: {get_param: InternalApiIpSubnet}
|
|
||||||
|
|
||||||
Assigning OpenStack Services to Isolated Networks
|
Assigning OpenStack Services to Isolated Networks
|
||||||
-------------------------------------------------
|
-------------------------------------------------
|
||||||
|
@ -10,7 +10,7 @@ possible we will use the ``single-nic-with-vlans`` network isolation
|
|||||||
templates to create isolated VLANs on top of the single NIC already
|
templates to create isolated VLANs on top of the single NIC already
|
||||||
used for the provisioning/``ctlplane``.
|
used for the provisioning/``ctlplane``.
|
||||||
|
|
||||||
The ``single-nic-vlans`` templates work well for many virtualized environments
|
The ``single_nic_vlans.j2`` template work well for many virtualized environments
|
||||||
because they do not require adding any extra NICs. Additionally, Open vSwitch
|
because they do not require adding any extra NICs. Additionally, Open vSwitch
|
||||||
automatically trunks VLANs for us, so there is no extra switch configuration
|
automatically trunks VLANs for us, so there is no extra switch configuration
|
||||||
required.
|
required.
|
||||||
|
Loading…
Reference in New Issue
Block a user