附录 F. 网络接口模板示例
在这个附录中包括了一组 Heat 模板示例,它们展示了网络接口的配置。
F.1. 配置接口 复制链接链接已复制到粘贴板!
每个接口可能会需要根据实际情况进行修改。例如,如果您需要使用第二个 NIC 连接到一个使用 DHCP 地址的网络,并使用第 3 和第 4 个 NIC 进行网络绑定时,您所需要进行的修改如下:
网络接口模板可以使用实际的接口名("eth0"、"eth1"、"enp0s25"),或使用一组接口编号("nic1"、"nic2"、"nic3")。当使用接口编号(如 nic1
、nic2
等)而不是使用接口名(如 eth0
、eno2
等)时,在一个角色中的主机网络接口不需要是完全相同的。例如,一个主机可能有接口 em1
和 em2
,而另外一个主机有接口 eno1
和 eno2
,您可以使用 nic1
和 nic2
来指代这两个主机的接口。
编号的接口顺序与使用名称的网络接口类型相对应:
-
ethX
接口,如eth0
、eth1
等。这些通常是板上的内置接口。 -
enoX
接口,如eno0
、eno1
等。这些通常是板上的内置接口。 -
enX
接口,以字母顺序排序,如enp3s0
、enp3s1
、ens3
等。这些通常是额外附加的接口。
编号的 NIC 机制只会考虑有效的接口(如有网线连接到交换机)。如果您有一些带有 4 个接口的 主机,另外还有一些带有 6 个接口的主机,则应该使用 nic1
到 nic4
,并只在每个主机中的 4 个接口中连接网线。
F.2. 配置路由和默认路由 复制链接链接已复制到粘贴板!
主机可以通过两种方法获得默认路由设置。如果接口使用 DHCP,而且 DHCP 服务器提供了一个网关地址,系统会使用那个网关作为默认路由。在其它情况下,您可以使用一个静态 IP 在一个接口上设置一个默认的路由。
虽然 Linux 内核支持多个默认网关,但它只会使用 metric 值最低的那个。当有多个 DHCP 接口时,就可能会造成不可预测的默认网关。在这种情况下,推荐为不被用作默认路由使用的接口设置 defroute=no
。
例如,您可能需要一个 DHCP 接口(nic3
)作为默认的路由。使用以下 YAML 禁用另外一个 DHCP 接口(nic2
)上的路由:
defroute
参数只会应用到通过 DHCP 获得的路由。
如需在一个接口上使用静态 IP 设置一个静态路由,为子网指定一个路由。例如,在 Internal API 网络上把到 10.1.2.0/24 子网的路由设置为使用地址为 172.17.0.1 的网关:
F.3. 为浮动 IP 使用原生 VLAN 复制链接链接已复制到粘贴板!
Neutron 使用一个默认的空字符串作为它的外部网络映射,这会把物理接口映射到 br-int
,而不是直接使用 br-ex
。这种模式允许多个 Floating IP 网络使用 VLAN 或多个物理连接。
在网络分离环境文件中的 parameter_defaults
部分使用 NeutronExternalNetworkBridge
参数:
parameter_defaults: # Set to "br-ex" when using floating IPs on the native VLAN NeutronExternalNetworkBridge: "''"
parameter_defaults:
# Set to "br-ex" when using floating IPs on the native VLAN
NeutronExternalNetworkBridge: "''"
在一个网桥的原生 VLAN 中只使用一个 Floating IP 网络意味着,可以选择设置 neutron 外部网桥。这会导致网络数据包只通过一个网桥,而不是通过两个网桥,从而使网络数据通过 Floating IP 网络时,少量降低对 CPU 的使用。
下一节包括了放置到原生 VLAN 的 External 网络中的 NIC 配置的改变。如果 External 网络被映射到 br-ex
,除了可以用于 Horizon 仪表板和 Public API,External 网络还可以被用于 Floating IP。
F.4. 在一个主干接口上使用原生 VLAN 复制链接链接已复制到粘贴板!
如果一个主干接口或绑定有一个在原生 VLAN 中的网络,IP 地址将会被直接分配到网桥,而不会创建一个 VLAN 接口。
例如,当 External 网络在一个原生 VLAN 中时,一个绑定的配置将会和以下类似:
当把地址(以及可能的路由)声明移到网桥上时,需要把相应的 VLAN 接口从网桥上删除。这个改变需要在所有相关的节点上进行。External 网络只会位于控制器上,所以只有控制器模板需要被修改。Storage 网络的情况则不同,它可以被附加到所有角色上,因此当 Storage 网络位于默认的 VLAN 中时,所有的角色都需要被修改。
F.5. 配置大型帧 复制链接链接已复制到粘贴板!
最大传输单元(Maximum Transmission Unit,简称 MTU)的设置决定了一个以太网帧可以传输的最大的数据量。因为每个帧除了数据外都需要一个头数据,所以为 MTU 设置一个较大的值可以减少系统的额外消耗。它的默认值是 1500,如果使用一个更高的数值,则需要把交换端口配置为支持大型帧。多数交换设备都最少支持 MTU 的值为 9000,但一些设备把这个值默认设置为 1500。
VLAN 的 MTU 值不能超过物理接口的 MTU 的值。请确保在绑定和接口中包括了 MTU 的值。
使用大型帧对 Storage 网络、Storage Management 网络、Internal API 网络和 Tenant 网络都有好处。作为测试结果,当和 VXLAN tunnel 一起使用大型帧时,Tenant 网络的吞吐量会提高 300%。
我们推荐 Provisioning 接口、External 接口和所有浮动 IP 接口使用默认的 MTU 值 - 1500。如果使用其它值,可能会出现一些连接的问题。这是因为,路由器通常无法在第 3 层网络边界间转发大型的数据帧。