示例:在 VMware NSX 环境中设置 VXLAN 第 2 层网关和 OVSDB 连接(支持标记数据包的中继接口)
在物理网络中,支持虚拟可扩展 LAN (VXLAN) 的瞻博网络设备可以充当硬件虚拟隧道端点 (VTEP)。在此角色中,瞻博网络设备将从直接在物理服务器上运行的软件应用程序接收的第 2 层以太网帧封装在 VXLAN 数据包中。VXLAN 数据包在第 3 层传输网络上建立隧道。收到 VXLAN 数据包后,虚拟网络中的软件 VTEP 会对数据包进行解封装,并将数据包转发到虚拟机 (VM)。
在此 VXLAN 环境中,您还可以加入 VMware NSX 控制器,并在充当硬件 VTEP 的瞻博网络设备上实施 Open vSwitch 数据库 (OVSDB) 管理协议。OVSDB 的 Junos OS 实施为 VMware NSX 控制器和瞻博网络设备提供了一种交换物理和虚拟网络中实体的 MAC 地址的方法。通过这种 MAC 地址交换,充当硬件 VTEP 的瞻博网络设备能够将流量转发到虚拟网络中的软件 VTEP,以及虚拟网络中的软件 VTEP,从而将流量转发到物理网络中的瞻博网络设备。
此示例说明如何将支持 VXLAN 的瞻博网络设备配置为硬件 VTEP。(VTEP 用作第 2 层网关。)此示例还说明了如何使用与 NSX 控制器的 OVSDB 连接配置此设备。
从适用于 QFX5100 交换机的 Junos OS 14.1X53-D15 版本、用于 QFX10002 交换机的 15.1X53-D10、用于 QFX10008 交换机的 15.1X53-D30、用于 QFX10016 交换机的 15.1X53-D60、用于 QFX5110 和QFX5200交换机的 15.1X53-D210 以及用于 QFX5210 交换机的 18.1R1 开始,支持中继接口的动态配置及其与 OVSDB 管理的 VXLAN 的关联。在此示例中,直接在物理服务器上运行的应用程序需要与 VXLAN 中的虚拟机通信,而物理服务器上的另一个应用程序需要与另一个 VXLAN 中的虚拟机通信。因此,将标记在物理服务器上运行的应用程序与它们必须与之通信的相应虚拟机之间交换的数据包。因此,中继接口用于物理服务器与瞻博网络设备之间的连接。
要求
此示例包括以下硬件和软件组件:
直接运行软件应用程序的物理服务器。
支持 VXLAN 和 OVSDB 的瞻博网络交换机。此交换机可以是运行 Junos OS 版本 14.1X53-D15 或更高版本的QFX5100交换机。
在瞻博网络交换机上,物理接口 ge-1/0/0 提供与物理服务器 1 的连接。
包含五个 NSX 控制器的群集。(在此示例中,您将显式配置与一个 NSX 控制器的连接。
NSX 管理器。
一个服务节点,用于处理 VXLAN 内第 2 层广播、未知单播和组播 (BUM) 流量的复制和转发。
包含 VM 的两个主机。每个主机都由一个虚拟机管理程序管理,每个虚拟机管理程序都包含一个软件 VTEP。
在开始配置之前,必须执行以下任务:
创建 SSL 私钥和证书,并将其安装在瞻博网络交换机的 /var/db/certs 目录中。请参阅 在瞻博网络设备上创建和安装 SSL 密钥和证书以连接 SDN 控制器。
使用 NSX 管理器指定服务节点的 IP 地址。
有关使用 NSX 管理器的信息,请参见 NSX 管理器随附的文档。
概述和拓扑
图 1 显示了一种拓扑结构,其中直接在物理网络中的物理服务器 1 上运行的软件应用程序需要与 VXLAN 1 中的虚拟机 VM 1 通信,反之亦然,物理服务器 1 上的另一个软件应用程序需要与 VXLAN 2 中的虚拟机 VM 3 和 VM 4 通信,反之亦然。

要在物理服务器 1 上的软件应用程序与 VXLAN 1 和 2 中的虚拟机之间建立通信,必须在 NSX Manager 和瞻博网络交换机上配置 VXLAN-OVSDB 拓扑中的某些实体。 表 1 提供了必须配置的实体及其配置位置的摘要。
用于在 NSX Manager 中配置的实体的术语可能与用于在 Junos 网络交换机上配置的实质上相同的实体的术语不同。为避免混淆, 表 1 并排显示了 NSX Manager 和 Junos OS 实体。
实体 |
必须在 NSX 管理器中配置的内容 |
瞻博网络交换机上必须配置的内容 |
---|---|---|
VXLAN 1 VXLAN 2 |
适用于 VXLAN 1 的逻辑交换机 适用于 VXLAN 2 的逻辑交换机 |
VXLAN 1 VXLAN 2
注意:
瞻博网络交换机会动态配置这些 VXLAN。 |
物理服务器 1 与瞻博网络交换机之间的接口 (ge-1/0/0) |
网关服务。对于网关服务类型,请选择 VTEP L2 网关服务。 |
OVSDB 管理。指定接口 ge-1/0/0 由 OVSDB 管理。 |
一个与 VXLAN 1 关联的逻辑接口 一个与 VXLAN 2 关联的逻辑接口 |
一个用于 VXLAN 1 的逻辑交换机端口。对于此端口,请指定 VLAN 编号 10。 一个用于 VXLAN 2 的逻辑交换机端口。对于此端口,请指定 VLAN 编号 20。
注意:
从 到 的 1 4000 VLAN 编号表示该端口是中继端口。 |
一个用于 VXLAN 1 的逻辑接口 (ge-1/0/0.10) 一个用于 VXLAN 2 的逻辑接口 (ge-1/0/0.20)
注意:
瞻博网络交换机动态配置这些逻辑接口。 |
瞻博网络交换机(硬件 VTEP 1) |
网关 |
– |
根据 表 1 中所述的 NSX Manager 中的实体配置,瞻博网络交换机会动态创建 VXLAN 1 和 2 及其关联的逻辑接口。 表 2 提供了相关的 NSX Manager 配置以及生成的瞻博网络交换机动态配置的 VXLAN 和关联的逻辑接口。
NSX Manager 配置:逻辑交换机和逻辑交换机端口 |
由瞻博网络交换机动态配置的 VXLAN 和相关逻辑接口 |
---|---|
逻辑交换机配置: UUID: 28805c1d-0122-495d-85df-19abd647d772 VNI: 100 逻辑交换机端口配置: VLAN ID:10 |
对于 VXLAN 1: set vlans 28805c1d-0122-495d-85df-19abd647d772 vxlan vni 100 对于关联的逻辑接口 ge-1/0/0.10: set interfaces ge-1/0/0 flexible-vlan-tagging set interfaces ge-1/0/0 encapsulation extended-vlan-bridge set interfaces ge-1/0/0 unit 10 vlan-id 10 set vlans 28805c1d-0122-495d-85df-19abd647d772 interfaces ge-1/0/0.10 |
逻辑交换机配置: UUID: 9acc24b3-7b0a-4c2e-b572-3370c3e1acff VNI: 200 逻辑交换机端口配置: VLAN ID:20 |
对于 VXLAN 2: set vlans 9acc24b3-7b0a-4c2e-b572-3370c3e1acff vxlan vni 200 对于关联的逻辑接口 ge-1/0/0.20: set interfaces ge-1/0/0 flexible-vlan-tagging set interfaces ge-1/0/0 encapsulation extended-vlan-bridge set interfaces ge-1/0/0 unit 20 vlan-id 20 set vlans 9acc24b3-7b0a-4c2e-b572-3370c3e1acff interfaces ge-1/0/0.20 |
对于 VXLAN 1 和 2,瞻博网络交换机将使用为相应逻辑交换机提供的 UUID 和 VNI 值。
在 NSX Manager 的逻辑交换机端口配置中,指定了 VLAN ID 值 10 和 20 以及逻辑交换机映射。因此,瞻博网络交换机会分别创建逻辑接口 ge-1/0/0.10 和 ge-1/0/0.20。这两个逻辑接口都用作中继接口。瞻博网络交换机还将逻辑接口 ge-1/0/0.10 和 ge-1/0/0.20 映射到各自的 VXLAN。
根据瞻博网络交换机生成的配置,接口 ge-1/0/0.10 接受来自 VXLAN 1 的 VLAN 标记为 10 的数据包,接口 ge-1/0/0.20 接受来自 VXLAN 2 的 VLAN 标记为 20 的数据包。从 VXLAN 1 接收数据包时,会将 VLAN 标记 100 添加到数据包中,并将 VLAN 标记 200 添加到来自 VXLAN 2 的数据包中。这些标记将添加到相应的数据包流中,以将特定 VXLAN 中的 VLAN ID 映射到相应的 VNI。
表 3 汇总了瞻博网络交换机上配置的组件。除非另有说明,否则所有配置均在 Junos OS CLI 中手动执行。
拓扑学
组件 |
设置 |
---|---|
NSX 控制器 |
IP 地址: 10.94.184.1 |
OVSDB 管理的接口 |
接口名称:ge-1/0/0 |
VXLAN 1 和关联的逻辑接口 |
注意:
瞻博网络交换机根据 NSX Manager 中的逻辑交换机和逻辑交换机端口配置动态配置 VXLAN 和关联的逻辑接口。因此,不需要手动配置。 VXLAN 名称:28805c1d-0122-495d-85df-19abd647d772 VNI: 100 逻辑接口名称:ge-1/0/0.10 VLAN ID:10 接口类型:中继 |
VXLAN 2 和关联的逻辑接口 |
注意:
瞻博网络交换机根据 NSX Manager 中的逻辑交换机和逻辑交换机端口配置动态配置 VXLAN 和关联接口。因此,不需要手动配置。 VXLAN 名称: VXLAN 9acc24b3-7b0a-4c2e-b572-3370c3e1acff VNI: 200 逻辑接口名称:ge-1/0/0.20 VLAN ID:20 接口类型:中继 |
OVSDB 跟踪操作 |
文件名: /var/log/ovsdb 文件大小: 10 MB 标志:全部 |
硬件 VTEP 源标识符 |
源接口:环回 (lo0.0) 源 IP 地址:10.17.17.17/32 |
处理 VXLAN 28805c1d-0122-495d-85df-19abd647d772 和 VXLAN 9acc24b3-7b0a-4c2e-b572-3370c3e1acff 内的第 2 层 BUM 流量 |
服务节点
注意:
默认情况下,一个或多个服务节点处理 VXLAN 中的第 2 层 BUM 流量;因此,不需要配置。 |
非 OVSDB 和非 VXLAN 配置
CLI 快速配置
要快速配置此示例,请复制以下命令,将其粘贴到文本文件中,删除所有换行符,更改与您的配置匹配所需的任何详细信息,将命令复制并粘贴到 [edit
] 层次结构级别的 CLI 中,然后从配置模式进入 commit
。
set interfaces ge-1/0/9 unit 0 family inet address 10.40.40.1/24 set routing-options static route 10.19.19.19/32 next-hop 10.40.40.2 set routing-options router-id 10.17.17.17 set protocols ospf area 0.0.0.0 interface lo0.0 set protocols ospf area 0.0.0.0 interface ge-1/0/9.0
程序
分步过程
要配置物理服务器 1 和 VM1 之间交换的数据包通过隧道传输的第 3 层网络,请执行以下操作:
配置第 3 层接口。
[edit interfaces] user@switch# set ge-1/0/9 unit 0 family inet address 10.40.40.1/24
设置路由选项。
[edit routing-options] user@switch# set static route 10.19.19.19/32 next-hop 10.40.40.2 user@switch# set router-id 10.17.17.17
配置路由协议。
[edit protocols] user@switch# set ospf area 0.0.0.0 interface lo0.0 user@switch# set ospf area 0.0.0.0 interface ge-1/0/9.0
OVSDB 和 VXLAN 配置
CLI 快速配置
要快速配置此示例,请复制以下命令,将其粘贴到文本文件中,删除所有换行符,更改与您的配置匹配所需的任何详细信息,将命令复制并粘贴到 [edit
] 层次结构级别的 CLI 中,然后从配置模式进入 commit
。
set switch-options ovsdb-managed set protocols ovsdb controller 10.94.184.1 set protocols ovsdb interfaces ge-1/0/0 set protocols ovsdb traceoptions file ovsdb set protocols ovsdb traceoptions file size 10m set protocols ovsdb traceoptions flag all set interfaces lo0 unit 0 family inet address 10.17.17.17/32 primary set interfaces lo0 unit 0 family inet address 10.17.17.17/32 preferred set switch-options vtep-source-interface lo0.0
程序
分步过程
要将瞻博网络交换机配置为硬件 VTEP 1 并使用 OVSDB 连接到 NSX 控制器:
启用瞻博网络交换机,动态配置 OVSDB 管理的 VXLAN 和相关接口。
[edit switch-options] user@switch# set ovsdb-managed
显式配置与 NSX 控制器的连接。
[edit protocols] user@switch# set ovsdb controller 10.94.184.1
指定接口 ge-1/0/0 由 OVSDB 管理。
[edit protocols] user@switch# set ovsdb interfaces ge-1/0/0
设置 OVSDB 跟踪操作。
[edit protocols] user@switch# set ovsdb traceoptions file ovsdb user@switch# set ovsdb traceoptions file size 10m user@switch# set ovsdb traceoptions flag all
指定环路接口的 IP 地址。此 IP 地址用作任何 VXLAN 封装数据包的外部标头中的源 IP 地址。
[edit interfaces] user@switch# set lo0 unit 0 family inet address 10.17.17.17/32 primary user@switch# set lo0 unit 0 family inet address 10.17.17.17/32 preferred
-
将环路接口设置为标识硬件 VTEP 1 的接口。
[edit switch-options] user@switch# set vtep-source-interface lo0.0
在 NSX Manager 中,为 VXLAN 1 配置逻辑交换机,为 VXLAN 2 配置逻辑交换机。请参见 NSX 管理器随附的文档。
在 NSX Manager 中,为瞻博网络交换机配置网关,为 OVSDB 管理的接口 ge-1/0/0 配置网关服务,为与 VXLAN 1 关联的逻辑接口 ge-1/0/0.10 配置逻辑交换机端口,为与 VXLAN 2 关联的逻辑接口 ge-1/0/0.20 配置逻辑交换机端口。
验证
确认配置工作正常。
验证逻辑交换机配置
目的
验证物理设备的 OVSDB 架构中是否存在 UUID 为 28805c1d-0122-495d-85df-19abd647d772 和 9acc24b3-7b0a-4c2e-b572-3370c3e1acff 的逻辑交换机配置,以及输出的 show ovsdb logical-switch
Flags 字段是否由两者创建。
行动
在操作模式下,输入 show ovsdb logical-switch
命令。
user@switch> show ovsdb logical-switch Logical switch information: Logical Switch Name: 28805c1d-0122-495d-85df-19abd647d772 Flags: Created by both VNI: 100 Num of Remote MAC: 1 Num of Local MAC: 0 Logical Switch Name: 9acc24b3-7b0a-4c2e-b572-3370c3e1acff Flags: Created by both VNI: 200 Num of Remote MAC: 2 Num of Local MAC: 0
意义
输出验证逻辑交换机的配置是否存在。该 Created by both
状态表示逻辑交换机已在 NSX Manager 中配置,并且瞻博网络交换机动态配置了相应的 VXLAN。在此状态下,逻辑交换机和 VXLAN 正常运行。
如果逻辑交换机的状态不是 Created by both
,请参阅对无法运行的逻辑交换机进行故障排除和相应的 Junos OS OVSDB 管理的 VXLAN。
验证虚拟机 1、虚拟机 3 和虚拟机 4 的 MAC 地址
目的
验证虚拟机 1、虚拟机 3 和虚拟机 4 的 MAC 地址是否存在于 OVSDB 架构中。
行动
在操作模式下,输入 show ovsdb mac remote
命令。
user@switch> show ovsdb mac remote Logical Switch Name: 28805c1d-0122-495d-85df-19abd647d772 Mac IP Encapsulation Vtep Address Address Address a8:59:5e:f6:38:90 0.0.0.0 Vxlan over Ipv4 10.17.17.17 Logical Switch Name: 9acc24b3-7b0a-4c2e-b572-3370c3e1acff Mac IP Encapsulation Vtep Address Address Address 00:23:9c:5e:a7:f0 0.0.0.0 Vxlan over Ipv4 10.17.17.17 00:23:9c:5e:a7:f0 0.0.0.0 Vxlan over Ipv4 10.17.17.17
意义
输出显示虚拟机 1、虚拟机 3 和虚拟机 4 的 MAC 地址存在,并与其各自的逻辑交换机相关联。如果存在 MAC 地址,则可以通过充当硬件 VTEP 的瞻博网络交换机访问虚拟机 1、虚拟机 3 和虚拟机 4。
验证 NSX 控制器连接
目的
验证与 NSX 控制器的连接是否已启动。
行动
在操作模式下,输入命令以 show ovsdb controller
验证控制器连接状态是否为 up
。
user@switch> show ovsdb controller VTEP controller information: Controller IP address: 10.94.184.1 Controller protocol: ssl Controller port: 6632 Controller connection: up Controller seconds-since-connect: 542325 Controller seconds-since-disconnect: 542346 Controller connection status: active
意义
输出显示 NSX 控制器 up
的连接状态为 ,以及有关控制器的其他信息。由于建立此连接,则会在瞻博网络交换机上启用 OVSDB。
验证 OVSDB 管理的接口
目的
验证接口 ge-1/0/0 是否由 OVSDB 管理。
行动
在操作模式下,输入 show ovsdb interface
命令,并验证逻辑接口 ge-1/0/0.10 和 ge-1/0/0.20 是否由 OVSDB 管理。
user@switch> show ovsdb interface Interface VLAN ID Bridge-domain ge-1/0/0 10 28805c1d-0122-495d-85df-19abd647d772 ge-1/0/0 20 9acc24b3-7b0a-4c2e-b572-3370c3e1acff
意义
输出显示逻辑接口ge-1/0/0.10
ge-1/0/0.20
,并由 OVSDB 管理。它还指示接口ge-1/0/0.10
与 VXLAN 28805c1d-0122-495d-85df-19abd647d772
关联,接口ge-1/0/0.20
与 VXLAN 9acc24b3-7b0a-4c2e-b572-3370c3e1acff
关联。
更改历史记录表
功能支持由您使用的平台和版本决定。使用 功能资源管理器 确定您的平台是否支持某个功能。