neutron: remove tenant MTU configuration options
Since Mitaka, Neutron and Nova do the right thing for MTU, correctly calculating and applying MTU per network, considering its network type and underlying physical network MTU (1500 by default). Neutron now also correctly advertise proper MTU to instances through DHCP and RA mechanisms. With that, there is no reason to have those MTU hacks in deployment tools. Actually, they not only do no good, but break some setups (Jumbo frame aware infrastructure), or at least make them non-optimal (lowering instance MTU to 1400 when it's not needed, or when tunnel overhead does not require 100 bytes). Note that Neutron still has a set of configuration options to allow for custom physical network MTUs (global_physnet_mtu, path_mtu, physical_network_mtus). Those options define underlying infrastructure though, not tenant MTUs. To support Jumbo frames, TripleO should allow to set those options. That said, it's not the immediate goal of the patch, and hence such an effort would require a separate patch. Mitaka+ documentation on MTU configuration for Neutron: http://docs.openstack.org/mitaka/networking-guide/adv-config-mtu.html Change-Id: I540ba5dc69d0506f71b59746efcce94c73f9317f
This commit is contained in:
parent
56398e72be
commit
2a64b67cef
@ -134,15 +134,6 @@ parameters:
|
||||
description: Shared secret to prevent spoofing
|
||||
type: string
|
||||
hidden: true
|
||||
NeutronTenantMtu:
|
||||
description: >
|
||||
The default MTU for tenant networks. For VXLAN/GRE tunneling, this should
|
||||
be at least 50 bytes smaller than the MTU on the physical network. This
|
||||
value will be used to set the MTU on the virtual Ethernet device.
|
||||
This value will be used to construct the NeutronDnsmasqOptions, since that
|
||||
will determine the MTU that is assigned to the VM host through DHCP.
|
||||
default: "1400"
|
||||
type: string
|
||||
NeutronTunnelTypes:
|
||||
default: 'vxlan'
|
||||
description: |
|
||||
@ -820,7 +811,6 @@ resources:
|
||||
MysqlInnodbBufferPoolSize: {get_param: MysqlInnodbBufferPoolSize}
|
||||
MysqlMaxConnections: {get_param: MysqlMaxConnections}
|
||||
MysqlRootPassword: {get_attr: [MysqlRootPassword, value]}
|
||||
NeutronTenantMtu: {get_param: NeutronTenantMtu}
|
||||
NeutronPublicInterface: {get_param: NeutronPublicInterface}
|
||||
NeutronPassword: {get_param: NeutronPassword}
|
||||
NeutronMetadataProxySharedSecret: {get_param: NeutronMetadataProxySharedSecret}
|
||||
@ -886,7 +876,6 @@ resources:
|
||||
KeystoneAdminApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
|
||||
KeystonePublicApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
|
||||
NeutronBridgeMappings: {get_param: NeutronBridgeMappings}
|
||||
NeutronTenantMtu: {get_param: NeutronTenantMtu}
|
||||
NeutronEnableTunnelling: {get_param: NeutronEnableTunnelling}
|
||||
NeutronEnableL2Pop : {get_param: NeutronEnableL2Pop}
|
||||
NeutronFlatNetworks: {get_param: NeutronFlatNetworks}
|
||||
|
@ -118,15 +118,6 @@ parameters:
|
||||
default: nic1
|
||||
description: A port to add to the NeutronPhysicalBridge.
|
||||
type: string
|
||||
NeutronTenantMtu:
|
||||
description: >
|
||||
The default MTU for tenant networks. For VXLAN/GRE tunneling, this should
|
||||
be at least 50 bytes smaller than the MTU on the physical network. This
|
||||
value will be used to set the MTU on the virtual Ethernet device.
|
||||
This number is related to the value of NeutronDnsmasqOptions, since that
|
||||
will determine the MTU that is assigned to the VM host through DHCP.
|
||||
default: 1400
|
||||
type: number
|
||||
NeutronTunnelTypes:
|
||||
type: comma_delimited_list
|
||||
description: |
|
||||
@ -517,7 +508,6 @@ resources:
|
||||
nova::migration::live_migration_tunnelled: {get_input: nova_enable_rbd_backend}
|
||||
rbd_persistent_storage: {get_input: cinder_enable_rbd_backend}
|
||||
nova_password: {get_input: nova_password}
|
||||
nova::compute::network_device_mtu: {get_input: neutron_tenant_mtu}
|
||||
nova::compute::vncserver_proxyclient_address: {get_input: nova_vnc_proxyclient_address}
|
||||
nova::vncproxy::common::vncproxy_protocol: {get_input: nova_vncproxy_protocol}
|
||||
nova::vncproxy::common::vncproxy_host: {get_input: nova_vncproxy_host}
|
||||
@ -543,7 +533,6 @@ resources:
|
||||
neutron_host: {get_input: neutron_host}
|
||||
neutron::agents::ml2::ovs::local_ip: {get_input: neutron_local_ip}
|
||||
|
||||
neutron::network_device_mtu: {get_input: neutron_tenant_mtu}
|
||||
neutron::plugins::ml2::tenant_network_types: {get_input: neutron_tenant_network_types}
|
||||
neutron::agents::ml2::ovs::tunnel_types: {get_input: neutron_tunnel_types}
|
||||
neutron::agents::ml2::ovs::extensions: {get_input: neutron_agent_extensions}
|
||||
@ -643,7 +632,6 @@ resources:
|
||||
template: MAPPINGS
|
||||
params:
|
||||
MAPPINGS: {get_param: NeutronBridgeMappings}
|
||||
neutron_tenant_mtu: {get_param: NeutronTenantMtu}
|
||||
neutron_enable_tunneling: {get_param: NeutronEnableTunnelling}
|
||||
neutron_enable_l2pop: {get_param: NeutronEnableL2Pop}
|
||||
neutron_physical_bridge: {get_param: NeutronPhysicalBridge}
|
||||
|
@ -236,15 +236,6 @@ parameters:
|
||||
default: nic1
|
||||
description: What interface to bridge onto br-ex for network nodes.
|
||||
type: string
|
||||
NeutronTenantMtu:
|
||||
description: >
|
||||
The default MTU for tenant networks. For VXLAN/GRE tunneling, this should
|
||||
be at least 50 bytes smaller than the MTU on the physical network. This
|
||||
value will be used to set the MTU on the virtual Ethernet device.
|
||||
This number is related to the value of NeutronDnsmasqOptions, since that
|
||||
will determine the MTU that is assigned to the VM host through DHCP.
|
||||
default: 1400
|
||||
type: number
|
||||
NovaEnableDBPurge:
|
||||
default: true
|
||||
description: |
|
||||
@ -584,7 +575,6 @@ resources:
|
||||
CLUSTER: {get_param: MysqlClusterUniquePart}
|
||||
neutron_metadata_proxy_shared_secret: {get_param: NeutronMetadataProxySharedSecret}
|
||||
neutron_password: {get_param: NeutronPassword}
|
||||
neutron_tenant_mtu: {get_param: NeutronTenantMtu}
|
||||
neutron_internal_url: { get_param: [ EndpointMap, NeutronInternal, uri ] }
|
||||
neutron_public_url: { get_param: [ EndpointMap, NeutronPublic, uri ] }
|
||||
neutron_admin_url: { get_param: [ EndpointMap, NeutronAdmin, uri ] }
|
||||
@ -856,7 +846,6 @@ resources:
|
||||
|
||||
# Neutron
|
||||
neutron::bind_host: {get_input: neutron_api_network}
|
||||
neutron::network_device_mtu: {get_input: neutron_tenant_mtu}
|
||||
neutron::agents::ml2::ovs::local_ip: {get_input: neutron_local_ip}
|
||||
neutron::agents::metadata::metadata_ip: {get_input: neutron_api_network}
|
||||
neutron::keystone::auth::public_url: {get_input: neutron_public_url }
|
||||
@ -950,7 +939,6 @@ resources:
|
||||
nova::api::api_bind_address: {get_input: nova_api_network}
|
||||
nova::api::metadata_listen: {get_input: nova_metadata_network}
|
||||
nova::api::admin_password: {get_input: nova_password}
|
||||
nova::compute::network_device_mtu: {get_input: neutron_tenant_mtu}
|
||||
nova::database_connection: {get_input: nova_dsn}
|
||||
nova::api_database_connection: {get_input: nova_api_dsn}
|
||||
nova::glance_api_servers: {get_input: glance_api_servers}
|
||||
|
@ -13,22 +13,6 @@ parameters:
|
||||
default: 'False'
|
||||
description: If True, DHCP provide metadata route to VM.
|
||||
type: string
|
||||
NeutronDnsmasqOptions:
|
||||
default: 'dhcp-option-force=26,%MTU%'
|
||||
description: >
|
||||
Dnsmasq options for neutron-dhcp-agent. The default value here forces MTU
|
||||
to be set to the value of NeutronTenantMtu, which should be set to account
|
||||
for tunnel overhead.
|
||||
type: string
|
||||
NeutronTenantMtu:
|
||||
description: >
|
||||
The default MTU for tenant networks. For VXLAN/GRE tunneling, this should
|
||||
be at least 50 bytes smaller than the MTU on the physical network. This
|
||||
value will be used to set the MTU on the virtual Ethernet device.
|
||||
This value will be used to construct the NeutronDnsmasqOptions, since that
|
||||
will determine the MTU that is assigned to the VM host through DHCP.
|
||||
default: "1400"
|
||||
type: string
|
||||
|
||||
resources:
|
||||
|
||||
@ -42,12 +26,6 @@ outputs:
|
||||
config_settings:
|
||||
map_merge:
|
||||
- get_attr: [NeutronBase, role_data, config_settings]
|
||||
- neutron::agents::dhcp::dnsmasq_config_file: /etc/neutron/dnsmasq-neutron.conf
|
||||
tripleo::profile::base::neutron::dhcp:
|
||||
str_replace:
|
||||
template: {get_param: NeutronDnsmasqOptions}
|
||||
params:
|
||||
'%MTU%': {get_param: NeutronTenantMtu}
|
||||
neutron::agents::dhcp::enable_isolated_metadata: {get_param: NeutronEnableIsolatedMetadata}
|
||||
- neutron::agents::dhcp::enable_isolated_metadata: {get_param: NeutronEnableIsolatedMetadata}
|
||||
step_config: |
|
||||
include tripleo::profile::base::neutron::dhcp
|
||||
|
Loading…
Reference in New Issue
Block a user