MTU 考虑事项¶
网络服务使用底层物理网络的 MTU 来计算虚拟网络组件(包括实例网络接口)的 MTU。默认情况下,它假定底层物理网络的标准 MTU 为 1500 字节。
网络服务仅引用底层物理网络的 MTU。更改底层物理网络设备的 MTU 需要配置物理网络设备,例如交换机和路由器。
巨帧¶
网络服务支持使用巨帧的底层物理网络,并允许实例使用巨帧减去任何覆盖协议开销。例如,具有 9000 字节 MTU 的底层物理网络,对于使用 IPv4 端点的 VXLAN 网络,实例的 MTU 为 8950 字节。使用 IPv6 端点进行覆盖网络会增加 20 字节的开销,适用于任何协议。
网络服务支持以下底层物理网络架构。案例 1 指的是最常见的架构。通常,应避免案例 2 和 3。
注意
在调整 neutron.conf 和 ml2_conf.ini 中的 MTU 配置选项后,应更新需要新 MTU 的所有现有网络的 mtu 属性。(网络 MTU 更新适用于实现 net-mtu-writable API 扩展的所有核心插件。)
案例 1¶
对于实现单个 MTU 值的典型底层物理网络架构,可以使用两种选项来利用巨帧,一种在 neutron.conf 文件中,另一种在 ml2_conf.ini 文件中。大多数环境应使用此配置。
例如,引用具有 9000 字节 MTU 的底层物理网络
在
neutron.conf文件中[DEFAULT] global_physnet_mtu = 9000
在
ml2_conf.ini文件中[ml2] path_mtu = 9000
案例 2¶
某些底层物理网络架构包含具有不同 MTU 值的多个 Layer-2 网络。您可以配置桥接或接口映射选项的 Layer-2 代理中的每个扁平或 VLAN 提供程序网络,以引用唯一的 MTU 值。
例如,引用 provider2 的 4000 字节 MTU,provider3 的 1500 字节 MTU,以及使用 Open vSwitch 代理的其他网络的 9000 字节 MTU
在
neutron.conf文件中[DEFAULT] global_physnet_mtu = 9000
在
openvswitch_agent.ini文件中[ovs] bridge_mappings = provider1:eth1,provider2:eth2,provider3:eth3
在
ml2_conf.ini文件中[ml2] physical_network_mtus = provider2:4000,provider3:1500 path_mtu = 9000
案例 3¶
某些底层物理网络架构包含一个用于使用 VXLAN 和 GRE 等协议的覆盖网络的唯一 Layer-2 网络。
例如,引用覆盖网络的 4000 字节 MTU 和其他网络的 9000 字节 MTU
在
neutron.conf文件中[DEFAULT] global_physnet_mtu = 9000
在
ml2_conf.ini文件中[ml2] path_mtu = 4000
注意
其他网络,包括提供程序网络和扁平或 VLAN 自助服务网络,假定
global_physnet_mtu选项的值。
实例网络接口 (VIF)¶
DHCP 代理使用 IPv4 向实例提供适当的 MTU 值,而 L3 代理使用 IPv6 向实例提供适当的 MTU 值。IPv6 使用通过 L3 代理的 RA,因为 DHCP 代理仅支持 IPv4。使用 IPv4 和 IPv6 的实例应获得相同的 MTU 值,无论使用哪种方法。
注意
如果网络上的 MTU 值低于 1280,请在创建任何子网之前阅读 IPv6 配置指南 中列出的警告。
启用 VLAN 透明度的网络¶
对于启用 VLAN 透明度的网络,如果在来宾 VM 内部配置了额外的 VLAN 标签,则必须将 MTU 降低 4 字节,以便在数据包的标头中为额外的 VLAN 标签腾出空间。例如,如果网络的 MTU 设置为 1500,则应手动将来宾 VM 中接口配置的值设置为 1496 字节或更少。