第 8 章 为 OpenStack 网络配置物理交换机

本章介绍了 OpenStack Networking 所需的常规物理交换机配置步骤。另外,也包括了对一些流行厂商(如 Cisco、Extreme Networks 和 Juniper)的交换机进行配置的介绍。

8.1. 规划物理网络环境

OpenStack 节点中的物理网络适配器可能会需要处理不同类型的网络流量,如与实例相关的网络流量、存储数据网络流量或身份验证请求的网络流量。网卡所要处理的不同网络流量类型会影响到如何在物理交换机上对它们的端口进行配置。

首先,您需要决定 Compute 节点上的不同物理网络需要处理哪种类型的网络流量。然后,当网卡被插入到物理交换机接口后,物理交换机接口需要进行相应的配置来允许主干网络流量(trunked traffic)或一般的网络流量。

例如,这个图示有一个带有两个网卡(eth0 和 eth1)的 Compute 节点,每个网络都被连接到一个物理交换机的 Gigabit 以太网网口中。eth0 被用来处理与实例相关的网络流量,eth1 用来处理与 OpenStack 服务相关的网络数据:

交换机示例

注意

这个图示没有包括提供容错功能的额外网卡。

8.2. 配置 Cisco Catalyst 交换机

8.2.1. 配置主干(trunk)端口

OpenStack Networking 允许实例连接到已存在于物理网络中的 VLAN。主干(trunk)这个术语被用来描述一个端口,这个端口允许多个 VLAN 通过它。通过主干,VLAN 就可以分布于包括虚拟交换机在内的多个交换机中。例如,物理网络中的带有 VLAN110 tag 的网络数据可以到达 Compute 节点,它的 8021q 模块会把带有 tag 的网络数据发送到 vSwitch 中的相关 VLAN 中。

8.2.1.1. 为 Cisco Catalyst 交换机配置主干(trunk)端口

如果使用运行 Cisco IOS 的 Cisco Catalyst 交换机,则需要使用以下配置来允许到 VLAN 110 和 111 的数据可以被发送到您的实例。这个配置假设物理节点已有一个连接到物理交换机中的 GigabitEthernet1/0/12 接口的以太网网线。

注意

以下只是一个示例。如果在没有根据您的具体情况对相关值进行修改的情况下把它们复制到您的交换机配置中,则可能会导致一些意料外的问题。

interface GigabitEthernet1/0/12
  description Trunk to Compute Node
  spanning-tree portfast trunk
  switchport trunk encapsulation dot1q
  switchport mode trunk
  switchport trunk native vlan 1
  switchport trunk allowed vlan 1,110,111

这些设置描述如下:

描述

interface GigabitEthernet1/0/12

这是节点网卡输入的交换机端口。这只是一个示例,您需要确保根据具体情况使用了正确的端口。可以使用 show interface 命令查看端口列表。

description Trunk to Compute Node

使用 show interface 命令列出所有接口时显示的描述信息。它应该提供了足够信息以使用户可以知道哪个系统被插入到这个端口,以及这个连接所要实现的功能。

spanning-tree portfast trunk

假设您的环境使用 STP,告诉 Port Fast 这个端口被用来处理 trunk 网络流量。

switchport trunk encapsulation dot1q

启用 802.1q trunking 标准(而不是 ISL)。这会根据您所使用的交换机所支持的标准有所不同。

switchport mode trunk

把这个端口配置为一个主干(trunk)端口,而不是一个访问端口。这意味着,它将允许所有 VLAN 网络流量通过虚拟交换机。

switchport trunk native vlan 1

设置一个原生的 VLAN,交换机会发送没有经过 tag 处理的(non-VLAN)网络数据。

switchport trunk allowed vlan 1,110,111

指定哪些 VLAN 允许通过这个 trunk 端口。

注意

因为这个端口与 SDN 交换机相集成,所以只配置 spanning-tree portfast 可能会导致 switching loop 问题使端口被阻塞。

8.2.2. 配置访问端口

因为不是 Compute 节点上的所有网卡都需要处理网络数据,所以不需要配置为允许多个 VLAN 通过。这些端口只需要配置一个 VLAN 就可能实现其它操作需求(如传递管理网络流量或 Block Storage 的数据)。这些端口通常被称为访问端口(access port),它们的配置会比 trunk 端口的配置简单。

8.2.2.1. 为 Cisco Catalyst 交换机配置访问端口

继续使用以前的示图,这个例子把 Cisco Catalyst 交换机上的 GigabitEthernet1/0/13 配置为 eth1 的一个访问端口。这个配置假设您的物理节点有一个连接到物理交换机中的 GigabitEthernet1/0/12 接口的以太网网线。

注意

以下只是一个示例。如果在没有根据您的具体情况对相关值进行修改的情况下把它们复制到您的交换机配置中,则可能会导致一些意料外的问题。

interface GigabitEthernet1/0/13
 description Access port for Compute Node
 switchport mode access
 switchport access vlan 200
 spanning-tree portfast

这些设置描述如下:

描述

interface GigabitEthernet1/0/13

这是节点网卡输入的交换机端口。这个接口值只是一个例子,您需要确保根据具体情况使用了正确的端口。可以使用 show interface 命令查看端口列表。

description Access port for Compute Node

使用 show interface 命令列出所有接口时显示的描述信息。它应该提供了足够信息以使用户可以知道哪个系统被插入到这个端口,以及这个连接所要实现的功能。

switchport mode access

把这个端口配置为一个访问端口,而不是一个主干(trunk)端口。

switchport access vlan 200

把这个端口配置为允许 VLAN 200 中的网络数据。您的 Compute 节点也应该被配置为使用这个 VLAN 中的一个 IP 地址。

spanning-tree portfast

在使用 STP 时,这个设置会告知 STP 不要在初始连接时把它作为一个主干。这个设置可以加快初始连接时(如重启服务器)端口握手的速度。

8.2.3. 配置 LACP 端口聚合

LACP 允许您把多个物理网卡结合在一起成为一个单独的逻辑通道。LACP 在 Linux 中也被称为绑定模式 4,它会创建一个动态的绑定来实现负载均衡和容错功能。LACP 需要在物理的 NIC 端和物理的交换机端口端都进行配置。

8.2.3.1. 在网络网卡上配置 LACP

1. 编辑 /home/stack/network-environment.yaml 文件:

- type: linux_bond
  name: bond1
  mtu: 9000
  bonding_options:{get_param: BondInterfaceOvsOptions};
  members:
    - type: interface
      name: nic3
      mtu: 9000
      primary: true
    - type: interface
      name: nic4
      mtu: 9000

2. 配置 Open vSwitch 网桥来使用 LACP

BondInterfaceOvsOptions:
    "mode=802.3ad"

如需了解配置网络绑定的信息,请参阅 Director 安装和使用指南

8.2.3.2. 在 Cisco Catalyst 交换机上配置 LACP

在这个例子中,Compute 节点有两个使用 VLAN 100 的网卡:

1. 把 Compute 节点的两个网卡物理地连接到交换机(例如,连接到端口 12 和 13)。

2. 创建 LACP 端口频道:

interface port-channel1
  switchport access vlan 100
  switchport mode access
  spanning-tree portfast disable
  spanning-tree bpduguard disable
  spanning-tree guard root

3. 配置交换机端口 12(Gi1/0/12)和 13(Gi1/0/13):

sw01# config t
Enter configuration commands, one per line.  End with CNTL/Z.

sw01(config) interface GigabitEthernet1/0/12
   switchport access vlan 100
   switchport mode access
   speed 1000
   duplex full
   channel-group 10 mode active
   channel-protocol lacp

interface GigabitEthernet1/0/13
  switchport access vlan 100
  switchport mode access
  speed 1000
  duplex full
  channel-group 10 mode active
  channel-protocol lacp

4. 复查新的端口频道。这个结果输出应该列出新创建的端口频道 Po1,它包括端口 Gi1/0/12Gi1/0/13

sw01# show etherchannel summary
<snip>

Number of channel-groups in use: 1
Number of aggregators:           1

Group  Port-channel  Protocol    Ports
------+-------------+-----------+-----------------------------------------------
1      Po1(SD)         LACP      Gi1/0/12(D)  Gi1/0/13(D)
注意

为了使所做的修改生效,把 running-config 复制到 startup-config:copy running-config startup-config

8.2.4. 配置 MTU 设置

一些特定的网络流量可能需要对 MTU 的大小进行调整才可以正常工作。例如,特定的 NFS 或 iSCSI 网络数据可能需要设置巨型帧(9000 字节)。

注意

对 MTU 设置的修改需要在数据经过的所有节点上进行,这包括虚拟交换机。如需了解更多与在 OpenStack 环境中修改 MTU 的信息,请参阅 第 9 章 配置 MTU 设置

8.2.4.1. 在 Cisco Catalyst 交换机上配置 MTU 的设置

这个例子会在 Cisco Catalyst 3750 交换机上启用巨型帧(jumbo frame)。

1. 查看当前的 MTU 设置:

sw01# show system mtu

System MTU size is 1600 bytes
System Jumbo MTU size is 1600 bytes
System Alternate MTU size is 1600 bytes
Routing MTU size is 1600 bytes

2. MTU 的设置会在 3750 交换机的范围内改变,而不是只针对于特定接口。这个命令把交换机配置为使用 9000 字节的巨型帧:

sw01# config t
Enter configuration commands, one per line.  End with CNTL/Z.

sw01(config)# system mtu jumbo 9000
Changes to the system jumbo MTU will not take effect until the next reload is done
注意

为了使所做的修改生效,把 running-config 复制到 startup-config:copy running-config startup-config

3. 在可能的情况下,重新加载交换机以使改变生效。在重新加载的过程中,所有依赖于这个交换机的设备上的网络功能都会暂时失效。

sw01# reload
Proceed with reload? [confirm]

4. 在交换机重新加载完成后,检查新的 MTU 设置:

sw01# show system mtu

System MTU size is 1600 bytes
System Jumbo MTU size is 9000 bytes
System Alternate MTU size is 1600 bytes
Routing MTU size is 1600 bytes
8.2.5. 配置 LLDP 发现(LLDP discovery)

ironic-python-agent 服务会监听来自于连接的交换机中的 LLDP 数据包。它所收集的信息包括交换机名、端口详情和有效的 VLAN。与 CDP(Cisco Discovery Protocol)相似,LLDP 会在 director 的 introspection(内省)过程中帮助发现物理硬件。

8.2.5.1. 在 Cisco Catalyst 交换机上配置 LLDP

1. 使用 lldp run 在 Cisco Catalyst 交换机的全局范围内启用 LLDP:

sw01# config t
Enter configuration commands, one per line.  End with CNTL/Z.

sw01(config)# lldp run

2. 查看附近 LLDP 兼容的设置:

sw01# show lldp neighbor
Capability codes:
    (R) Router, (B) Bridge, (T) Telephone, (C) DOCSIS Cable Device
    (W) WLAN Access Point, (P) Repeater, (S) Station, (O) Other

Device ID           Local Intf     Hold-time  Capability      Port ID
DEP42037061562G3     Gi1/0/11       180        B,T             422037061562G3:P1

Total entries displayed: 1
注意

为了使所做的修改生效,把 running-config 复制到 startup-config:copy running-config startup-config

8.3. 配置 Cisco Nexus 交换机

8.3.1. 配置主干(trunk)端口

OpenStack Networking 允许实例连接到已存在于物理网络中的 VLAN。主干(trunk)这个术语被用来描述一个端口,这个端口允许多个 VLAN 通过它。通过主干,VLAN 就可以分布于包括虚拟交换机在内的多个交换机中。例如,物理网络中的带有 VLAN110 tag 的网络数据可以到达 Compute 节点,它的 8021q 模块会把带有 tag 的网络数据发送到 vSwitch 中的相关 VLAN 中。

8.3.1.1. 为 Cisco Nexus 交换机配置主干(trunk)端口

如果使用 Cisco Nexus,则需要使用以下配置来允许到 VLAN 110 和 111 的数据可以被发送到您的实例。这个配置假设物理节点已有一个连接到物理交换机中的 Ethernet1/12 接口的以太网网线。

注意

以下只是一个示例。如果在没有根据您的具体情况对相关值进行修改的情况下把它们复制到您的交换机配置中,则可能会导致一些意料外的问题。

interface Ethernet1/12
  description Trunk to Compute Node
  switchport mode trunk
  switchport trunk allowed vlan 1,110,111
  switchport trunk native vlan 1
end
8.3.2. 配置访问端口

因为不是 Compute 节点上的所有网卡都需要处理网络数据,所以不需要配置为允许多个 VLAN 通过。这些端口只需要配置一个 VLAN 就可能实现其它操作需求(如传递管理网络流量或 Block Storage 的数据)。这些端口通常被称为访问端口(access port),它们的配置会比 trunk 端口的配置简单。

8.3.2.1. 为 Cisco Nexus 交换机配置访问端口

继续使用以前的示图,这个例子把 Cisco Nexus 交换机上的 Ethernet1/13 配置为 eth1 的一个访问端口。这个配置假设您的物理节点有一个连接到物理交换机中的 Ethernet1/13 接口的以太网网线。

注意

以下只是一个示例。如果在没有根据您的具体情况对相关值进行修改的情况下把它们复制到您的交换机配置中,则可能会导致一些意料外的问题。

interface Ethernet1/13
 description Access port for Compute Node
 switchport mode access
 switchport access vlan 200
8.3.3. 配置 LACP 端口聚合

LACP 允许您把多个物理网卡结合在一起成为一个单独的逻辑通道。LACP 在 Linux 中也被称为绑定模式 4,它会创建一个动态的绑定来实现负载均衡和容错功能。LACP 需要在物理的 NIC 端和物理的交换机端口端都进行配置。

8.3.3.1. 在网络网卡上配置 LACP

1. 编辑 /home/stack/network-environment.yaml 文件:

- type: linux_bond
  name: bond1
  mtu: 9000
  bonding_options:{get_param: BondInterfaceOvsOptions};
  members:
    - type: interface
      name: nic3
      mtu: 9000
      primary: true
    - type: interface
      name: nic4
      mtu: 9000

2. 配置 Open vSwitch 网桥来使用 LACP

BondInterfaceOvsOptions:
    "mode=802.3ad"

如需了解配置网络绑定的信息,请参阅 Director 安装和使用指南

8.3.3.2. 在 Cisco Nexus 交换机上配置 LACP

在这个例子中,Compute 节点有两个使用 VLAN 100 的网卡:

1. 把 Compute 节点的两个网卡物理地连接到交换机(例如,连接到端口 12 和 13)。

2. 确认 LACP 已被启用:

(config)# show feature | include lacp
lacp                  1         enabled

3. 把端口 1/12 和 1/13 配置为访问端口,并作为一个频道组的成员:

interface Ethernet1/13
 description Access port for Compute Node
 switchport mode access
 switchport access vlan 200
 channel-group 10 mode active

interface Ethernet1/13
 description Access port for Compute Node
 switchport mode access
 switchport access vlan 200
 channel-group 10 mode active
8.3.4. 配置 MTU 设置

一些特定的网络流量可能需要对 MTU 的大小进行调整才可以正常工作。例如,特定的 NFS 或 iSCSI 网络数据可能需要设置巨型帧(9000 字节)。

注意

对 MTU 设置的修改需要在数据经过的所有节点上进行,这包括虚拟交换机。如需了解更多与在 OpenStack 环境中修改 MTU 的信息,请参阅 第 9 章 配置 MTU 设置

8.3.4.1. 在 Cisco Nexus 7000 交换机上配置 MTU 设置

在 7000 系列的交换机中,MTU 的设置可以只应用于一个单独的接口。以下命令会把接口 1/12 配置为使用 9000 字节的巨型帧:

interface ethernet 1/12
  mtu 9216
  exit
8.3.5. 配置 LLDP 发现(LLDP discovery)

ironic-python-agent 服务会监听来自于连接的交换机中的 LLDP 数据包。它所收集的信息包括交换机名、端口详情和有效的 VLAN。与 CDP(Cisco Discovery Protocol)相似,LLDP 会在 director 的 introspection(内省)过程中帮助发现物理硬件。

8.3.5.1. 在 Cisco Nexus 7000 交换机上配置 LLDP

在 Cisco Nexus 7000 系列交换机中可以为单独的接口启用 LLDP:

interface ethernet 1/12
  lldp transmit
  lldp receive

interface ethernet 1/13
  lldp transmit
  lldp receive
注意

为了使所做的修改生效,把 running-config 复制到 startup-config:copy running-config startup-config

8.4. 配置 Cumulus Linux 交换机

8.4.1. 配置主干(trunk)端口

OpenStack Networking 允许实例连接到已存在于物理网络中的 VLAN。主干(trunk)这个术语被用来描述一个端口,这个端口允许多个 VLAN 通过它。通过主干,VLAN 就可以分布于包括虚拟交换机在内的多个交换机中。例如,物理网络中的带有 VLAN110 tag 的网络数据可以到达 Compute 节点,它的 8021q 模块会把带有 tag 的网络数据发送到 vSwitch 中的相关 VLAN 中。

8.4.1.1. 为 Cumulus Linux 交换机配置主干(trunk)端口

如果使用 Cumulus Linux 交换机,需要使用以下配置来允许 VLANs 100 和 200 的数据可以发送到您的示例。这个配置假设物理节点已有一个连接到物理交换机中的端口 swp1swp2 的收发器。

注意

以下只是一个示例。如果在没有根据您的具体情况对相关值进行修改的情况下把它们复制到您的交换机配置中,则可能会导致一些意料外的问题。

auto bridge
iface bridge
  bridge-vlan-aware yes
  bridge-ports glob swp1-2
  bridge-vids 100 200
8.4.2. 配置访问端口

因为不是 Compute 节点上的所有网卡都需要处理网络数据,所以不需要配置为允许多个 VLAN 通过。这些端口只需要配置一个 VLAN 就可能实现其它操作需求(如传递管理网络流量或 Block Storage 的数据)。这些端口通常被称为访问端口(access port),它们的配置会比 trunk 端口的配置简单。

8.4.2.1. 为 Cumulus Linux 交换机配置访问端口

继续使用以前的示图,这个例子把 Cumulus Linux 交换机上的 swp1 配置为一个访问端口。这个配置假设您的物理节点有一个连接到物理交换机中的接口的以太网网线。Cumulus Linux 使用 eth 作为管理接口,使用 swp 作为访问/主干接口。

注意

以下只是一个示例。如果在没有根据您的具体情况对相关值进行修改的情况下把它们复制到您的交换机配置中,则可能会导致一些意料外的问题。

auto bridge
iface bridge
  bridge-vlan-aware yes
  bridge-ports glob swp1-2
  bridge-vids 100 200


auto swp1
iface swp1
  bridge-access 100


auto swp2
iface swp2
  bridge-access 200
8.4.3. 配置 LACP 端口聚合

LACP 允许您把多个物理网卡结合在一起成为一个单独的逻辑通道。LACP 在 Linux 中也被称为绑定模式 4,它会创建一个动态的绑定来实现负载均衡和容错功能。LACP 需要在物理的 NIC 端和物理的交换机端口端都进行配置。

8.4.3.1. 在网络网卡上配置 LACP

Cumulus Linux 中的物理网卡不需要配置。

8.4.3.2. 在 Cumulus Linux 交换机上配置 LACP

/etc/network/interfaces 中为 bond0 添加以下内容来配置绑定:

auto bond0
iface bond0
   address 10.0.0.1/30
   bond-slaves swp1 swp2 swp3 swp4
注意

运行 sudo ifreload -a 来重新加载更新的配置以使修改生效

8.4.4. 配置 MTU 设置

一些特定的网络流量可能需要对 MTU 的大小进行调整才可以正常工作。例如,特定的 NFS 或 iSCSI 网络数据可能需要设置巨型帧(9000 字节)。

注意

对 MTU 设置的修改需要在数据经过的所有节点上进行,这包括虚拟交换机。如需了解更多与在 OpenStack 环境中修改 MTU 的信息,请参阅 第 9 章 配置 MTU 设置

8.4.4.1. 在 Cumulus Linux 交换机上配置 MTU 设置

以下例子会在 Cumulus Linux 交换机上启用巨型帧。

auto swp1
iface swp1
  mtu 9000

运行 sudo ifreload -a 来重新加载更新的配置以使修改生效

8.4.5. 配置 LLDP 发现(LLDP discovery)

在默认情况下,LLDP 服务(lldpd)会在交换机引导时以守护进程的形式运行。

运行以下命令查看所有端口/接口附近的所有 LLDP

cumulus@switch$ netshow lldp
Local Port  Speed  Mode         Remote Port   Remote Host Summary
----------  ---    ---------    -----  -----  ----------- --------
eth0        10G    Mgmt         ====   swp6   mgmt-sw     IP: 10.0.1.11/24
swp51       10G    Interface/L3 ====   swp1   spine01     IP: 10.0.0.11/32
swp52       10G    Interface/L  ====   swp1   spine02     IP: 10.0.0.11/32

8.5. 配置 Extreme Networks EXOS 交换机

8.5.1. 配置主干(trunk)端口

OpenStack Networking 允许实例连接到已存在于物理网络中的 VLAN。主干(trunk)这个术语被用来描述一个端口,这个端口允许多个 VLAN 通过它。通过主干,VLAN 就可以分布于包括虚拟交换机在内的多个交换机中。例如,物理网络中的带有 VLAN110 tag 的网络数据可以到达 Compute 节点,它的 8021q 模块会把带有 tag 的网络数据发送到 vSwitch 中的相关 VLAN 中。

8.5.1.1. 在 Extreme Networks EXOS 交换机上配置主干网络

如果使用 X-670 系列交换机,可能会需要使用以下配置来允许到 VLANs 110 和 111 的数据可以被发送到您的实例。这个配置假设物理节点已有一个连接到物理交换机中的 24 接口的以太网网线。在这个例子中,DATAMNGT 是 VLAN 的名称。

注意

以下只是一个示例。如果在没有根据您的具体情况对相关值进行修改的情况下把它们复制到您的交换机配置中,则可能会导致一些意料外的问题。

#create vlan DATA tag 110
#create vlan MNGT tag 111
#configure vlan DATA add ports 24 tagged
#configure vlan MNGT add ports 24 tagged
8.5.2. 配置访问端口

因为不是 Compute 节点上的所有网卡都需要处理网络数据,所以不需要配置为允许多个 VLAN 通过。这些端口只需要配置一个 VLAN 就可能实现其它操作需求(如传递管理网络流量或 Block Storage 的数据)。这些端口通常被称为访问端口(access port),它们的配置会比 trunk 端口的配置简单。

8.5.2.1. 为 Extreme Networks EXOS 交换机配置访问端口

继续使用以前的示图,这个例子把 Extreme Networks X-670 系列交换机上的 10 配置为 eth1 的一个访问端口。您可以使用以下配置来允许 VLAN 110111 的数据通过来到达您的实例。这个配置假设您的物理节点有一个连接到物理交换机中的 10 接口的以太网网线。

注意

以下只是一个示例。如果在没有根据您的具体情况对相关值进行修改的情况下把它们复制到您的交换机配置中,则可能会导致一些意料外的问题。

create vlan VLANNAME tag NUMBER
configure vlan Default delete ports PORTSTRING
configure vlan VLANNAME add ports PORTSTRING untagged

例如:

#create vlan DATA tag 110
#configure vlan Default delete ports 10
#configure vlan DATA add ports 10 untagged
8.5.3. 配置 LACP 端口聚合

LACP 允许您把多个物理网卡结合在一起成为一个单独的逻辑通道。LACP 在 Linux 中也被称为绑定模式 4,它会创建一个动态的绑定来实现负载均衡和容错功能。LACP 需要在物理的 NIC 端和物理的交换机端口端都进行配置。

8.5.3.1. 在网络网卡上配置 LACP

1. 编辑 /home/stack/network-environment.yaml 文件:

- type: linux_bond
  name: bond1
  mtu: 9000
  bonding_options:{get_param: BondInterfaceOvsOptions};
  members:
    - type: interface
      name: nic3
      mtu: 9000
      primary: true
    - type: interface
      name: nic4
      mtu: 9000

2. 配置 Open vSwitch 网桥来使用 LACP

BondInterfaceOvsOptions:
    "mode=802.3ad"

如需了解配置网络绑定的信息,请参阅 Director 安装和使用指南

8.5.3.2. 在 Extreme Networks EXOS 交换机上配置 LACP

在这个例子中,Compute 节点有两个使用 VLAN 100 的网卡:

enable sharing MASTERPORT grouping ALL_LAG_PORTS lacp
configure vlan VLANNAME add ports PORTSTRING tagged

例如:

#enable sharing 11 grouping 11,12 lacp
#configure vlan DATA add port 11 untagged
8.5.4. 配置 MTU 设置

一些特定的网络流量可能需要对 MTU 的大小进行调整才可以正常工作。例如,特定的 NFS 或 iSCSI 网络数据可能需要设置巨型帧(9000 字节)。

注意

对 MTU 设置的修改需要在数据经过的所有节点上进行,这包括虚拟交换机。如需了解更多与在 OpenStack 环境中修改 MTU 的信息,请参阅 第 9 章 配置 MTU 设置

8.5.4.1. 在 Extreme Networks EXOS 交换机上配置 MTU 设置

以下例子会在 Extreme Networks EXOS 交换机上启用巨型帧,并支持转发带有 9000 字节的 IP 数据包:

enable jumbo-frame ports PORTSTRING
configure ip-mtu 9000 vlan VLANNAME

例如:

# enable jumbo-frame ports 11
# configure ip-mtu 9000 vlan DATA
8.5.5. 配置 LLDP 发现(LLDP discovery)

ironic-python-agent 服务会监听来自于连接的交换机中的 LLDP 数据包。它所收集的信息包括交换机名、端口详情和有效的 VLAN。与 CDP(Cisco Discovery Protocol)相似,LLDP 会在 director 的 introspection(内省)过程中帮助发现物理硬件。

8.5.5.1. 在 Extreme Networks EXOS 交换机上配置 LLDP 设置

这个例子允许在任何 Extreme Networks EXOS 交换机上配置 LLDP 设置。在这个例子中,11 代表端口字符串:

enable lldp ports 11

8.6. 配置 Juniper EX 系列交换机

8.6.1. 配置主干(trunk)端口

OpenStack Networking 允许实例连接到已存在于物理网络中的 VLAN。主干(trunk)这个术语被用来描述一个端口,这个端口允许多个 VLAN 通过它。通过主干,VLAN 就可以分布于包括虚拟交换机在内的多个交换机中。例如,物理网络中的带有 VLAN110 tag 的网络数据可以到达 Compute 节点,它的 8021q 模块会把带有 tag 的网络数据发送到 vSwitch 中的相关 VLAN 中。

8.6.1.1. 在 Juniper EX 系列交换机上配置主干端口

如果使用运行 Juniper JunOS 的 Juniper EX 系列交换机,则可能需要使用以下配置来允许到 110111 的数据可以被发送到您的实例。这个配置假设物理节点已有一个连接到物理交换机中的 ge-1/0/12 接口的以太网网线。

注意

以下只是一个示例。如果在没有根据您的具体情况对相关值进行修改的情况下把它们复制到您的交换机配置中,则可能会导致一些意料外的问题。

 ge-1/0/12 {
          description Trunk to Compute Node;
              unit 0 {
                  family ethernet-switching {
                      port-mode trunk;
                      vlan {
                          members [110 111];
                           }
                      native-vlan-id 1;
                  }
              }
}
8.6.2. 配置访问端口

因为不是 Compute 节点上的所有网卡都需要处理网络数据,所以不需要配置为允许多个 VLAN 通过。这些端口只需要配置一个 VLAN 就可能实现其它操作需求(如传递管理网络流量或 Block Storage 的数据)。这些端口通常被称为访问端口(access port),它们的配置会比 trunk 端口的配置简单。

8.6.2.1. 为 Juniper EX 系列交换机配置访问端口

继续使用以前的示图,这个例子把 Juniper EX 系列交换机上的 ge-1/0/13 配置为 eth1 的一个访问端口。这个配置假设您的物理节点有一个连接到物理交换机中的 ge-1/0/13 接口的以太网网线。

注意

以下只是一个示例。如果在没有根据您的具体情况对相关值进行修改的情况下把它们复制到您的交换机配置中,则可能会导致一些意料外的问题。

 ge-1/0/13 {
          description Access port for Compute Node
              unit 0 {
                  family ethernet-switching {
                      port-mode access;
                      vlan {
                          members 200;
                           }
                      native-vlan-id 1;
                  }
              }
}
8.6.3. 配置 LACP 端口聚合

LACP 允许您把多个物理网卡结合在一起成为一个单独的逻辑通道。LACP 在 Linux 中也被称为绑定模式 4,它会创建一个动态的绑定来实现负载均衡和容错功能。LACP 需要在物理的 NIC 端和物理的交换机端口端都进行配置。

8.6.3.1. 在网络网卡上配置 LACP

1. 编辑 /home/stack/network-environment.yaml 文件:

- type: linux_bond
  name: bond1
  mtu: 9000
  bonding_options:{get_param: BondInterfaceOvsOptions};
  members:
    - type: interface
      name: nic3
      mtu: 9000
      primary: true
    - type: interface
      name: nic4
      mtu: 9000

2. 配置 Open vSwitch 网桥来使用 LACP

BondInterfaceOvsOptions:
    "mode=802.3ad"

如需了解配置网络绑定的信息,请参阅 Director 安装和使用指南

8.6.3.2. 在 EX 系列交换机上配置 LACP

在这个例子中,Compute 节点有两个使用 VLAN 100 的网卡:

1. 把 Compute 节点的两个网卡物理地连接到交换机(例如,连接到端口 12 和 13)。

2. 创建端口聚合:

chassis {
    aggregated-devices {
        ethernet {
            device-count 1;
        }
    }
}

3. 配置交换端口 12 (ge-1/0/12) 和 13 (ge-1/0/13) 加入到端口聚合 ae1

interfaces {
    ge-1/0/12 {
        gigether-options {
            802.3ad ae1;
        }
    }
    ge-1/0/13 {
        gigether-options {
            802.3ad ae1;
            }
        }
}

4. 在端口聚合 ae1 上启用 LACP:

interfaces {
    ae1 {
        aggregated-ether-options {
            lacp {
                active;
            }
        }
    }
}

5. 把聚合 ae1 添加到 VLAN 100:

interfaces {
    ae1 {
        vlan-tagging;
        unit 100 {
            vlan-id 100;
        }
    }
}

6. 复查新的端口频道。这个结果输出应该列出新创建的端口聚合 ae1,它包括 ge-1/0/12ge-1/0/13

> show lacp statistics interfaces ae1

Aggregated interface: ae1
LACP Statistics: LACP Rx LACP Tx Unknown Rx Illegal Rx
ge-1/0/12 0 0 0 0
ge-1/0/13 0 0 0 0
注意

运行 commit 命令来使所做的改变生效。

8.6.4. 配置 MTU 设置

一些特定的网络流量可能需要对 MTU 的大小进行调整才可以正常工作。例如,特定的 NFS 或 iSCSI 网络数据可能需要设置巨型帧(9000 字节)。

注意

对 MTU 设置的修改需要在数据经过的所有节点上进行,这包括虚拟交换机。如需了解更多与在 OpenStack 环境中修改 MTU 的信息,请参阅 第 9 章 配置 MTU 设置

8.6.4.1. 在 Juniper EX 系列交换机上配置 MTU 设置

以下示例在 Juniper EX4200 交换机上启用巨型帧。

1. 对于 Juniper EX 系列交换机,MTU 的设置是针对于独立接口的。以下命令在 ge-1/0/14 和 ge-1/0/15 端口上配置巨型帧:

set interfaces ge-1/0/14 mtu 9216
set interfaces ge-1/0/15 mtu 9216
注意

运行 commit 命令保存所做的改变。

2. 如果使用 LACP 聚合,需要在聚合中设置 MTU 的大小,而不是在成员网卡中进行设置。例如,以下在 ae1 聚合中设置 MTU 的大小:

 set interfaces ae1 mtu 9200
8.6.5. 配置 LLDP 发现(LLDP discovery)

ironic-python-agent 服务会监听来自于连接的交换机中的 LLDP 数据包。它所收集的信息包括交换机名、端口详情和有效的 VLAN。与 CDP(Cisco Discovery Protocol)相似,LLDP 会在 director 的 introspection(内省)过程中帮助发现物理硬件。

8.6.5.1. 在 Juniper EX 系列交换机上配置 LLDP

您可以在所有接口中启用 LLDP,或只在独立端口上启用:

1. 例如,使用以下方法在 Juniper EX 4200 交换机的所有接口上启用 LLDP:

lldp {
	interface all{
		enable;
	}
	}
}

2. 或者,只在接口 ge-1/0/14 中启用 LLDP:

lldp {
	interface ge-1/0/14{
		enable;
	}
	}
}
注意

运行 commit 命令来使所做的改变生效。