示例:在 Contrail 环境中设置 VXLAN 第 2 层网关和 OVSDB 连接(支持未标记数据包的中继接口)
在物理网络中,支持虚拟可扩展 LAN (VXLAN) 的瞻博网络交换机可用作硬件虚拟隧道端点 (VTEP)。在此角色中,瞻博网络交换机将从直接在物理服务器上运行的软件应用程序接收的第 2 层以太网帧封装在 VXLAN 数据包中。VXLAN 数据包通过第 3 层传输网络进行隧道传输。收到 VXLAN 数据包后,虚拟网络中的软件 VTEP 会解封装数据包并将其转发到虚拟机 (VM)。
在此 VXLAN 环境中,您还可以包括 Contrail 控制器,并在用作硬件 VTEP 的瞻博网络交换机上实施 Open vSwitch 数据库 (OVSDB) 管理协议。
OVSDB 的 Junos OS 实施提供了一种方法,Contrail 控制器和瞻博网络交换机可以通过该方法交换物理和虚拟网络中实体的 MAC 地址。这种 MAC 地址交换使充当硬件 VTEP 的瞻博网络交换机能够将流量转发至虚拟网络中的软件 VTEP,并使虚拟网络中的软件 VTEP 能够将流量转发至物理网络中的瞻博网络交换机。
此示例介绍如何将瞻博网络交换机配置为硬件 VTEP,用作第 2 层网关,并使用与 Contrail 控制器的 OVSDB 连接设置此交换机。
在此示例中,仅部署了一个 VXLAN。在这种情况下,在物理服务器上运行的应用程序和 VXLAN 中的 VM 之间交换的数据包将被取消标记。因此,在此示例中,中继接口用于物理服务器和交换机之间的连接,以及本地 VLAN。本地 VLAN 使中继接口能够处理未标记的数据包。
要求
此示例包括以下硬件和软件组件:
软件应用程序直接运行的物理服务器。
运行 Junos OS 15.1X53-D30 或更高版本的 QFX10002 交换机。
在瞻博网络交换机上,物理接口 ge-1/0/0 提供与物理服务器 1 的连接。
Contrail 控制器。
Contrail Web 用户界面。
一个 vRouter,其中包含由虚拟机管理程序管理的 VM,其中包括软件 VTEP。
Contrail 环境(Contrail 控制器、TSN、Contrail Web 用户界面和 vRouter)中的所有组件都必须运行 Contrail 版本 2.20 或更高版本。
有关 Contrail 组件的信息,请参阅 使用 TOR 交换机和 OVSDB 将 Contrail 群集扩展到其他实例。
准备工作:
创建 SSL 私有密钥和证书(如果尚不存在)。私钥和证书必须安装在瞻博网络交换机的 /var/db/certs 目录中。请参阅 在瞻博网络设备上创建和安装 SSL 密钥和证书以连接 SDN 控制器
概述和拓扑
图 1 显示了一种拓扑,其中直接在物理网络中的物理服务器 1 上运行的软件应用程序需要与 VXLAN 1 中的虚拟机 VM 1 通信,反之亦然。
![VXLAN-OVSDB Layer 2 Gateway Topology with a Contrail Controller](/documentation/us/en/software/junos/ovsdb-vxlan-contrail/images/g043322.png)
要在 VXLAN 1 中的物理服务器 1 和虚拟机 1 上的软件应用程序之间建立通信,在瞻博网络交换机的管理接口上配置了与 Contrail 控制器的连接。
OVSDB-VXLAN 拓扑中的某些实体必须在 Contrail Web 用户界面和瞻博网络交换机上配置。 表 1 提供了必须配置的实体以及必须配置这些实体的位置的摘要。
用于 Contrail Web 用户界面中配置的实体的术语可能与用于瞻博网络交换机上配置的实体的术语基本不同。为防止混淆, 表 1 并排显示了 Contrail Web 用户界面和 Junos OS 实体。
实体 |
要在 Contrail Web 用户界面中配置的实体 |
要在瞻博网络交换机上配置的实体 |
---|---|---|
VXLAN 1 |
VXLAN 1 的虚拟网络 |
VXLAN 1
注意:
瞻博网络交换机动态配置此 VXLAN。 |
物理服务器 1 和瞻博网络交换机之间的物理接口 (ge-1/0/0) |
– |
OVSDB 管理。指定接口 ge-1/0/0 由 OVSDB 管理。 |
一个与 VXLAN 1 关联的逻辑接口 (ge-1/0/0.0) |
一个用于 VXLAN 1 的逻辑接口。对于此接口,请指定 VLAN ID 0。
注意:
VLAN ID 为 0 表示接口必须处理未标记的数据包。 |
一个用于 VXLAN 1 的逻辑接口 (ge-1/0/0.0)。
注意:
瞻博网络交换机动态配置此逻辑接口。 |
瞻博网络交换机(硬件 VTEP 1) |
物理路由器 |
硬件 VTEP 功能。将瞻博网络交换机配置为用作硬件 VTEP。 |
在 Contrail Web 用户界面中,配置了虚拟网络。在此配置中,指定了 VXLAN 标识符 100。此外,分配给虚拟网络的通用唯一标识符 (UUID) 是 Contrail-28805c1d-0122-495d-85df-19abd647d772。基于此配置,瞻博网络交换机会为 Junos OS 等效 VXLAN 动态创建以下配置:
set vlans Contrail-28805c1d-0122-495d-85df-19abd647d772 vxlan vni 100
根据 Contrail Web 用户界面中的逻辑接口配置(VLAN 编号 0),瞻博网络交换机会动态为 Junos OS 等效接口创建以下配置:
set interfaces ge-1/0/0 flexible-vlan-tagging set interfaces ge-1/0/0 native-vlan-id 4094 set interfaces ge-1/0/0 encapsulation extended-vlan-bridge set interfaces ge-1/0/0 unit 0 vlan-id 4094 set vlans Contrail-28805c1d-0122-495d-85df-19abd647d772 interface ge-1/0/0.0
此示例配置执行以下操作:
将物理接口 ge-1/0/0 配置为第 2 层中继接口。
创建 ID 为 4094 的本征 VLAN。
创建逻辑接口 ge-1/0/0.0,并指定它是本征 VLAN 的成员。
将逻辑接口 ge-1/0/0.0 与 VXLAN Contrail-28805c1d-0122-495d-85df-19abd647d772 相关联。
作为上述配置的结果,逻辑接口 ge-1/0/0.0 处理传入的未标记数据包。
表 2 提供了在瞻博网络交换机上配置的 VXLAN-OVSDB 拓扑组件的摘要以及每个组件的配置设置。
拓扑学
元件 |
设置 |
---|---|
Contrail 控制器 |
IP 地址:10.94.184.1 |
OVSDB 托管的 physcal 接口 |
接口名称:ge-1/0/0 本征 VLAN ID:4094 |
VXLAN 1 和关联的逻辑接口 |
注意:
瞻博网络交换机动态配置 VXLAN 和相关逻辑接口,这些接口基于 Contrail Web 用户界面中的虚拟网络和关联逻辑接口配置。因此,无需手动配置。 VXLAN 名称:Contrail-28805c1d-0122-495d-85df-19abd647d772 VNI:100 逻辑接口名称:ge-1/0/0.0 接口类型:中继 本地 VLAN 4094 的成员 与 VXLAN Contrail-28805c1d-0122-495d-85df-19abd647d772 关联 |
OVSDB 跟踪操作 |
文件名: /var/log/ovsdb 文件大小: 10 MB 标志 : 全部 |
硬件 VTEP |
主机名:hw-vtep1 源接口:loopback (lo0.0) 源 IP 地址:10.17.17.17/32 |
处理 VXLAN Contrail-28805c1d-0122-495d-85df-19abd647d772 中的第 2 层 BUM 流量 |
TSN
注意:
默认情况下,一个或多个 TSN 处理 VXLAN 中的第 2 层 BUM 流量;因此,无需手动配置。 |
非 OVSDB 和非 VXLAN 配置
CLI 快速配置
要快速配置此示例,请复制以下命令,将其粘贴到文本文件中,删除所有换行符,更改与您的配置匹配所需的任何详细信息,将命令复制并粘贴到层次结构级别的 CLI 中 [edit
] ,然后从配置模式进入 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
程序
逐步过程
要配置第 3 层网络,物理服务器 1 和 VM 1 之间交换的数据包通过该网络进行隧道传输:
配置第 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 快速配置
要快速配置此示例,请复制以下命令,将其粘贴到文本文件中,删除所有换行符,更改与您的配置匹配所需的任何详细信息,将命令复制并粘贴到层次结构级别的 CLI 中 [edit
] ,然后从配置模式进入 commit
。
set system host-name hw-vtep1 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,并与 Contrail 控制器建立 OVSDB 连接:
为瞻博网络交换机配置唯一的主机名。
[edit system] user@switch# set host-name hw-vtep1
启用瞻博网络交换机以动态配置 OVSDB 托管的 VXLAN 和相关接口。
[edit switch-options] user@switch# ovsdb-managed
配置与 Contrail 控制器的连接。
[edit protocols] user@switch# set ovsdb controller 10.94.184.1
指定硬件 VTEP 1 和物理服务器 1 之间的接口由 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
在 Contrail Web 用户界面中,为 VXLAN 1 配置虚拟网络。请参阅 用作硬件 VTEP 的瞻博网络设备的 Contrail 配置。
在 Contrail Web 用户界面中,为您在步骤 6 中创建的虚拟网络配置逻辑接口。请参阅 用作硬件 VTEP 的瞻博网络设备的 Contrail 配置。
在 Contrail Web 用户界面中,配置物理路由器,使 Contrail 控制器能够将瞻博网络交换机识别为 VTEP。请参阅 用作硬件 VTEP 的瞻博网络设备的 Contrail 配置。
验证
确认配置工作正常:
验证逻辑交换机配置
目的
在 Contrail Web 用户界面中,您为 VXLAN 1 配置了虚拟网络。使用与物理设备的 OVSDB 架构相同的术语,虚拟网络也称为 logical switch.验证 OVSDB 架构中是否存在 UUID 为 Contrail-28805c1d-0122-495d-85df-19abd647d772 的逻辑交换机配置,以及逻辑交换机的 Flags 字段是否为 Created by both
。
行动
在操作模式下,输入 show ovsdb logical-switch
命令。
user@switch> show ovsdb logical-switch Logical switch information: Logical Switch Name: Contrail-28805c1d-0122-495d-85df-19abd647d772 Flags: Created by both VNI: 100 Num of Remote MAC: 1 Num of Local MAC: 0
意义
输出将验证逻辑交换机的配置是否存在。该 Created by both
状态表示虚拟网络已在 Contrail Web 用户界面中配置,并且瞻博网络交换机动态创建了相应的 VXLAN。在此状态下,虚拟网络和 VXLAN 正常运行。
如果逻辑交换机的状态不是 Created by both
,请参阅 非运行逻辑交换机故障排除和相应的 Junos OS OVSDB 托管 VXLAN。
验证 VM 1 的 MAC 地址
目的
验证 VM 1 的 MAC 地址是否存在于 OVSDB 架构中。
行动
在操作模式下,输入 show ovsdb mac remote
命令。
user@switch> show ovsdb mac remote Logical Switch Name: Contrail-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
意义
输出显示虚拟机 1 的 MAC 地址存在,并与逻辑交换机关联,其 UUID 为 Contrail-28805c1d-0122-495d-85df-19abd647d772。如果存在 MAC 地址,则可以通过瞻博网络交换机访问虚拟机 1,该交换机用作硬件 VTEP。
验证 Contrail 控制器连接
目的
验证与 Contrail 控制器的连接是否已启动。
行动
在操作模式下,输入 show ovsdb controller
命令以验证 Contrail 控制器连接状态是否为 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
意义
输出显示连接的状态为 up
,此外还有有关连接的其他信息。该 up
状态表示 OVSDB 已在瞻博网络交换机上启用。
验证 OVSDB 管理的接口
目的
验证接口 ge-1/0/0.0 是否由 OVSDB 管理。
行动
在操作模式下,输入 show ovsdb interface
命令以验证接口 ge-1/0/0.0 是否由 OVSDB 管理。
user@switch> show ovsdb interface Interface VLAN ID Bridge-domain ge-1/0/0 0 Contrail-28805c1d-0122-495d-85df-19abd647d772
意义
输出显示接口 ge-1/0/0 由 OVSDB 管理。它还表示接口与 VXLAN Contrail-28805c1d-0122-495d-85df-19abd647d772 相关联,后者的 VLAN ID 为 0。