示例:在数据中心中设置 VXLAN 间单播路由和 OVSDB 连接
此示例说明如何设置一个数据中心,不同虚拟可扩展 LAN (VXLAN) 中的虚拟机 (VM) 需要在此通信。集成到此环境的瞻博网络设备充当硬件虚拟隧道端点 (VTEP),可将虚拟机流量从一个 VXLAN(第 2 层)环境路由到另一个环境。
瞻博网络设备实施 Open vSwitch 数据库 (OVSDB) 管理协议,并与 VMware NSX 控制器建立连接,这两个控制器均使设备和 NSX 控制器能够交换往返于物理和虚拟网络中的虚拟机的 MAC 路由。
此示例说明如何将瞻博网络设备配置为硬件 VTEP,在 VXLAN 之间设置单播数据包路由,以及如何与 NSX 控制器建立 OVSDB 连接。有关在 VXLAN 之间设置单播和组播数据包路由的信息,请参阅 示例:在数据中心中设置 VXLAN 间单播和组播路由以及 OVSDB 连接。
要求
此示例的拓扑包含以下硬件和软件组件:
一个由五个 NSX 控制器组成群集。
NSX 管理器。
一个服务节点,用于处理两个 VXLAN 中的每个 VXLAN 中的广播、未知单播和组播 (BUM) 流量。
两个主机,每个主机都包括由虚拟机管理程序管理的虚拟机。每个虚拟机管理程序都包含一个软件 VTEP。每个主机上的虚拟机都属于不同的 VXLAN。
一款瞻博网络设备,在两个 VXLAN 之间路由虚拟机流量。例如,运行 Junos OS 14.1R2 或更高版本的 MX 系列路由器,或者运行 Junos OS 14.2 或更高版本的 EX9200 交换机。瞻博网络设备还必须运行 OVSDB 软件包,并且此软件包的版本必须与设备上运行的 Junos OS 版本相同。此设备配置为硬件 VTEP。
开始配置瞻博网络设备之前,您需要执行以下任务:
在 NSX Manager 或 NSX API 中,指定服务节点的 IP 地址。
在 NSX Manager 或 NSX API 中,为 OVSDB 管理的每个 VXLAN 配置一个逻辑交换机。此示例实施两个 OVSDB 托管的 VXLAN;因此,您必须配置两个逻辑交换机。配置每个逻辑交换机后,NSX 将自动生成该逻辑交换机的通用唯一标识符 (UUID)。如果尚未检索,请检索每个逻辑交换机的 UUID。示例 UUID 为 28805c1d-0122-495d-85df-19abd647d772。在瞻博网络设备上配置等效 VXLAN 时,您必须将逻辑交换机的 UUID 用作桥接域或 VLAN 名称。
有关逻辑交换机和 VXLAN 的更多信息,请参阅 了解如何手动配置 OVSDB 托管的 VXLAN。
创建 SSL 私钥和证书,并将其安装在瞻博网络设备的 /var/db/certs 目录中。有关更多信息,请参阅 在瞻博网络设备上创建和安装 SSL 密钥和证书,以便与 SDN 控制器连接。
有关使用 NSX Manager 或 NSX API 执行这些配置任务的信息,请参阅相应产品随附的文档。
概述和拓扑
在 图 1 所示的拓扑中,VXLAN 1 中的 VM 1 需要与 VXLAN 2 中的 VM 3 通信。要启用此通信,硬件 VTEP 1(可以是 MX 系列路由器或 EX9200 交换机)配置为在两个 VXLAN 之间路由 VM 单播流量。
在硬件 VTEP 1 上,会设置路由实例(虚拟交换机)。在路由实例中,配置了两个 VXLAN:VXLAN 1 和 VXLAN 2。每个 VXLAN 都有一个与之关联的集成路由和桥接 (IRB) 接口。IRB 接口处理 VXLAN 之间虚拟机单播流量的路由
在两个 VXLAN 中的每一个中,服务节点会复制第 2 层 BUM 数据包,然后将副本转发到 VXLAN 中的所有接口。默认行为是让服务节点处理第 2 层 BUM 流量,此瞻博网络设备无需配置。
在硬件 VTEP 1 上,管理接口上配置与 NSX 控制器的连接(fxp0 用于 MX 系列路由器,me0 用于 EX9200 交换机)。此配置使 NSX 控制器可以通过物理设备的 OVSDB 方案中的远程单播 MAC 地址表将 VM 1 和 VM 3 的 MAC 路由推送至硬件 VTEP。
每个 VXLAN 封装的数据包都必须在外部 IP 报头中包含一个源 IP 地址,用于识别源硬件或软件 VTEP。在此示例中,对于硬件 VTEP 1,将使用环路接口 (lo0.0) 的 IP 地址。
在此示例中,配置了所有 OVSDB 事件的跟踪。OVSDB 事件的输出被放置在名为 ovsdb 的文件中,该文件存储在 /var/log 目录中。默认情况下,最多可以存在 10 个跟踪文件,每个文件配置的最大大小为 50 MB。
拓扑
表 1 介绍了用于设置 VXLAN 间路由和 OVSDB 连接的组件。
财产 |
设置 |
---|---|
路由实例 |
名称:vx1 类型:虚拟交换机 包括 OVSDB 托管的 VXLAN:VXLAN 1 和 VXLAN 2 |
VXLAN 1 |
与 28805c1d-0122-495d-85df-19abd647d72 关联的网桥域或 VLAN 接口:xe-0/0/2.0 VLAN ID:100 VNI:100 |
VXLAN 2 |
与 96a382cd-a570-4ac8-a77a-8bb8b16bde70 关联的网桥域或 VLAN 接口:xe-1/2/0.0 VLAN ID:200 VNI:200 |
使用 IRB 接口实现 VXLAN 间单播路由和转发 |
VXLAN 1:irb.0;10.20.20.1/24;与路由接口 vx1 和桥接域或 VLAN 28805c1d-0122-495d-85df-19abd647d72 关联 VXLAN 2:irb.1;10.10.10.3/24;与路由接口 vx1 和桥接域或 VLAN 96a382cd-a570-4ac8-a77a-8bb8b16bde70 关联 |
处理每个 VXLAN 中的 BUM 流量 |
服务节点
注意:
默认情况下,一个或多个服务节点在 VXLAN 中处理第 2 层 BUM 流量;因此无需配置。 |
NSX 控制器 |
IP 地址:10.94.184.1 |
硬件 VTEP 源标识符 |
源接口:环路 (lo0.0) 源 IP 地址:10.19.19.19/32 |
OVSDB 跟踪操作 |
文件名:/var/log/ovsdb 档案大小: 50 MB 标记:全部 |
配置
在此示例中,MX 系列路由器或 EX9200 交换机可用作硬件 VTEP 1。由于每个设备的配置略有不同,因此会为每个设备提供单独的配置。
要配置数据中心拓扑中的 VXLAN 间单播路由和 OVSDB 连接,您需要执行以下任一任务:
CLI 快速配置
要快速配置此示例,请复制以下命令,将其粘贴到文本文件中,删除所有换行符,更改详细信息,以便与配置匹配(例如,IP 地址、接口名称和 UUID),将命令复制并粘贴到 [edit
] 层次结构级别的 CLI 中,然后从配置模式进入 commit
。
完成此配置后,必须配置网关,该网关相当于硬件 VTEP 的 NSX。此示例实施一个硬件 VTEP;因此,您必须使用 NSX 管理器或 NSX API 配置一个网关、一个网关服务和一个逻辑交换机端口。有关您必须执行的任务和关键 NSX Manager 配置详细信息的更多信息,请参阅 用作虚拟隧道端点的瞻博网络设备的 VMware NSX 配置。
MX 系列路由器配置:
set chassis network-services enhanced-ip set interfaces xe-0/0/3 unit 0 family inet address 10.50.50.2/24 set interfaces ge-1/0/0 unit 0 family inet address 10.100.100.99/24 set routing-options router-id 10.19.19.19 set protocols ospf area 0.0.0.0 interface xe-0/0/3.0 set protocols ospf area 0.0.0.0 interface ge-1/0/0.0 set protocols ospf area 0.0.0.0 interface lo0.0 set interfaces xe-0/0/2 unit 0 family bridge interface-mode access set interfaces xe-0/0/2 unit 0 family bridge vlan-id 100 set interfaces xe-1/2/0 unit 0 family bridge interface-mode access set interfaces xe-1/2/0 unit 0 family bridge vlan-id 200 set interfaces irb unit 0 family inet address 10.20.20.1/24 set interfaces irb unit 1 family inet address 10.10.10.3/24 set routing-instances vx1 vtep-source-interface lo0.0 set routing-instances vx1 instance-type virtual-switch set routing-instances vx1 interface xe-0/0/2.0 set routing-instances vx1 interface xe-1/2/0.0 set routing-instances vx1 bridge-domains 28805c1d-0122-495d-85df-19abd647d772 vlan-id 100 set routing-instances vx1 bridge-domains 28805c1d-0122-495d-85df-19abd647d772 routing-interface irb.0 set routing-instances vx1 bridge-domains 28805c1d-0122-495d-85df-19abd647d772 vxlan ovsdb-managed set routing-instances vx1 bridge-domains 28805c1d-0122-495d-85df-19abd647d772 vxlan vni 100 set routing-instances vx1 bridge-domains 96a382cd-a570-4ac8-a77a-8bb8b16bde70 vlan-id 200 set routing-instances vx1 bridge-domains 96a382cd-a570-4ac8-a77a-8bb8b16bde70 routing-interface irb.1 set routing-instances vx1 bridge-domains 96a382cd-a570-4ac8-a77a-8bb8b16bde70 vxlan ovsdb-managed set routing-instances vx1 bridge-domains 96a382cd-a570-4ac8-a77a-8bb8b16bde70 vxlan vni 200 set interfaces lo0 unit 0 family inet address 10.19.19.19/32 primary set interfaces lo0 unit 0 family inet address 10.19.19.19/32 preferred set protocols ovsdb traceoptions file ovsdb set protocols ovsdb traceoptions file size 50m set protocols ovsdb traceoptions flag all set protocols ovsdb controller 10.94.184.1 set protocols ovsdb interfaces xe-0/0/2.0 set protocols ovsdb interfaces xe-1/2/0.0
EX9200 交换机配置:
set interfaces xe-0/0/3 unit 0 family inet address 10.50.50.2/24 set interfaces ge-1/0/0 unit 0 family inet address 10.100.100.99/24 set routing-options router-id 10.19.19.19 set protocols ospf area 0.0.0.0 interface xe-0/0/3.0 set protocols ospf area 0.0.0.0 interface ge-1/0/0.0 set protocols ospf area 0.0.0.0 interface lo0.0 set interfaces xe-0/0/2 unit 0 family ethernet-switching interface-mode access set interfaces xe-0/0/2 unit 0 family ethernet-switching vlan-id 100 set interfaces xe-1/2/0 unit 0 family ethernet-switching interface-mode access set interfaces xe-1/2/0 unit 0 family ethernet-switching vlan-id 200 set interfaces irb unit 0 family inet address 10.20.20.1/24 set interfaces irb unit 1 family inet address 10.10.10.3/24 set routing-instances vx1 vtep-source-interface lo0.0 set routing-instances vx1 instance-type virtual-switch set routing-instances vx1 interface xe-0/0/2.0 set routing-instances vx1 interface xe-1/2/0.0 set routing-instances vx1 vlans 28805c1d-0122-495d-85df-19abd647d772 vlan-id 100 set routing-instances vx1 vlans 28805c1d-0122-495d-85df-19abd647d772 routing-interface irb.0 set routing-instances vx1 vlans 28805c1d-0122-495d-85df-19abd647d772 vxlan ovsdb-managed set routing-instances vx1 vlans 28805c1d-0122-495d-85df-19abd647d772 vxlan vni 100 set routing-instances vx1 vlans 96a382cd-a570-4ac8-a77a-8bb8b16bde70 vlan-id 200 set routing-instances vx1 vlans 96a382cd-a570-4ac8-a77a-8bb8b16bde70 routing-interface irb.1 set routing-instances vx1 vlans 96a382cd-a570-4ac8-a77a-8bb8b16bde70 vxlan ovsdb-managed set routing-instances vx1 vlans 96a382cd-a570-4ac8-a77a-8bb8b16bde70 vxlan vni 200 set interfaces lo0 unit 0 family inet address 10.19.19.19/32 preferred set interfaces lo0 unit 0 family inet address 10.19.19.19/32 primary set protocols ovsdb traceoptions file ovsdb set protocols ovsdb traceoptions file size 50m set protocols ovsdb traceoptions flag all set protocols ovsdb controller 10.94.184.1 set protocols ovsdb interfaces xe-0/0/2.0 set protocols ovsdb interfaces xe-1/2/0.0
将 MX 系列路由器配置为具有 OVSDB 连接的硬件 VTEP
逐步过程
要将 MX 系列路由器配置为硬件 VTEP 1,并具有与 NSX 控制器的 OVSDB 连接,请执行以下步骤:
创建第 3 层网络。
[edit chassis] user@router# set network-services enhanced-ip [edit interfaces] user@router# set xe-0/0/3 unit 0 family inet address 10.50.50.2/24 user@router# set ge-1/0/0 unit 0 family inet address 10.100.100.99/24 [edit routing-options] user@router# set router-id 10.19.19.19 [edit protocols] user@router# set ospf area 0.0.0.0 interface xe-0/0/3.0 user@router# set ospf area 0.0.0.0 interface ge-1/0/0.0 user@router# set ospf area 0.0.0.0 interface lo0.0
创建 VXLAN 1 的接入接口,并将该接口与 VXLAN 相关联。
[edit interfaces] user@router# set xe-0/0/2 unit 0 family bridge interface-mode access user@router# set xe-0/0/2 unit 0 family bridge vlan-id 100
为 VXLAN 2 创建接入接口,并将该接口与 VXLAN 相关联。
[edit interfaces] user@router# set xe-1/2/0 unit 0 family bridge interface-mode access user@router# set xe-1/2/0 unit 0 family bridge vlan-id 200
创建一个 IRB 接口,以处理 VXLAN 1 的 VXLAN 间单播流量。
[edit interfaces] user@router# set irb unit 0 family inet address 10.20.20.1/24
创建一个 IRB 接口,以处理 VXLAN 2 的 VXLAN 间单播流量。
[edit interfaces] user@router# set irb unit 1 family inet address 10.10.10.3/24
设置虚拟交换机路由实例。
[edit routing-instances] user@router# set vx1 vtep-source-interface lo0.0 user@router# set vx1 instance-type virtual-switch user@router# set vx1 interface xe-0/0/2.0 user@router# set vx1 interface xe-1/2/0.0 user@router# set vx1 bridge-domains 28805c1d-0122-495d-85df-19abd647d772 vlan-id 100 user@router# set vx1 bridge-domains 28805c1d-0122-495d-85df-19abd647d772 routing-interface irb.0 user@router# set vx1 bridge-domains 28805c1d-0122-495d-85df-19abd647d772 vxlan ovsdb-managed user@router# set vx1 bridge-domains 28805c1d-0122-495d-85df-19abd647d772 vxlan vni 100 user@router# set vx1 bridge-domains 96a382cd-a570-4ac8-a77a-8bb8b16bde70 vlan-id 200 user@router# set vx1 bridge-domains 96a382cd-a570-4ac8-a77a-8bb8b16bde70 routing-interface irb.1 user@router# set vx1 bridge-domains 96a382cd-a570-4ac8-a77a-8bb8b16bde70 vxlan ovsdb-managed user@router# set vx1 bridge-domains 96a382cd-a570-4ac8-a77a-8bb8b16bde70 vxlan vni 200
为环路接口指定 IP 地址。此 IP 地址用作任何 VXLAN 封装数据包的外部报头中的源 IP 地址。
[edit interfaces] user@router# set lo0 unit 0 family inet address 10.19.19.19/32 primary user@router# set lo0 unit 0 family inet address 10.19.19.19/32 preferred
设置 OVSDB 跟踪操作。
[edit protocols] user@router# set ovsdb traceoptions file ovsdb user@router# set ovsdb traceoptions file size 50m user@router# set ovsdb traceoptions flag all
配置与 NSX 控制器的连接。
[edit protocols] user@router# set ovsdb controller 10.94.184.1
-
配置由 OVSDB 管理的接口 xe-0/0/2.0 和 xe-1/2/0.0。
[edit protocols] user@router# set ovsdb interfaces xe-0/0/2.0 user@router# set ovsdb interfaces xe-1/2/0.0
注意:完成此配置后,必须配置网关,该网关相当于硬件 VTEP 的 NSX。此示例实施一个硬件 VTEP;因此,您必须使用 NSX 管理器或 NSX API 配置一个网关、一个网关服务和一个逻辑交换机端口。有关您必须执行的任务和关键 NSX Manager 配置详细信息的更多信息,请参阅 用作虚拟隧道端点的瞻博网络设备的 VMware NSX 配置。
将 EX9200 交换机配置为具有 OVSDB 连接的硬件 VTEP
逐步过程
要将 EX9200 交换机配置为硬件 VTEP 1,并具有与 NSX 控制器的 OVSDB 连接,请执行以下步骤:
创建第 3 层网络。
[edit chassis] [edit interfaces] user@switch# set xe-0/0/3 unit 0 family inet address 10.50.50.2/24 user@switch# set ge-1/0/0 unit 0 family inet address 10.100.100.99/24 [edit routing-options] user@switch# set router-id 10.19.19.19 [edit protocols] user@switch# set ospf area 0.0.0.0 interface xe-0/0/3.0 user@switch# set ospf area 0.0.0.0 interface ge-1/0/0.0 user@switch# set ospf area 0.0.0.0 interface lo0.0
创建 VXLAN 1 的接入接口,并将该接口与 VXLAN 相关联。
[edit interfaces] user@switch# set xe-0/0/2 unit 0 family ethernet-switching interface-mode access user@switch# set xe-0/0/2 unit 0 family ethernet-switching vlan-id 100
为 VXLAN 2 创建接入接口,并将该接口与 VXLAN 相关联。
[edit interfaces] user@switch# set xe-1/2/0 unit 0 family ethernet-switching interface-mode access user@switch# set xe-1/2/0 unit 0 family ethernet-switching vlan-id 200
创建一个 IRB 接口,以处理 VXLAN 1 的 VXLAN 间单播流量。
[edit interfaces] user@switch# set irb unit 0 family inet address 10.20.20.1/24
创建一个 IRB 接口,以处理 VXLAN 2 的 VXLAN 间单播流量。
[edit interfaces] user@switch# set irb unit 1 family inet address 10.10.10.3/24
设置虚拟交换机路由实例。
[edit routing-instances] user@switch# set vx1 vtep-source-interface lo0.0 user@switch# set vx1 instance-type virtual-switch user@switch# set vx1 interface xe-0/0/2.0 user@switch# set vx1 interface xe-1/2/0.0 user@switch# set vx1 vlans 28805c1d-0122-495d-85df-19abd647d772 vlan-id 100 user@switch# set vx1 vlans 28805c1d-0122-495d-85df-19abd647d772 routing-interface irb.0 user@switch# set vx1 vlans 28805c1d-0122-495d-85df-19abd647d772 vxlan ovsdb-managed user@switch# set vx1 vlans 28805c1d-0122-495d-85df-19abd647d772 vxlan vni 100 user@switch# set vx1 vlans 96a382cd-a570-4ac8-a77a-8bb8b16bde70 vlan-id 200 user@switch# set vx1 vlans 96a382cd-a570-4ac8-a77a-8bb8b16bde70 routing-interface irb.1 user@switch# set vx1 vlans 96a382cd-a570-4ac8-a77a-8bb8b16bde70 vxlan ovsdb-managed user@switch# set vx1 vlans 96a382cd-a570-4ac8-a77a-8bb8b16bde70 vxlan vni 200
为环路接口指定 IP 地址。此 IP 地址用作任何 VXLAN 封装数据包的外部报头中的源 IP 地址。
[edit interfaces] user@switch# set lo0 unit 0 family inet address 10.19.19.19/32 primary user@switch# set lo0 unit 0 family inet address 10.19.19.19/32 preferred
设置要为 OVSDB 管理协议执行的跟踪操作。
[edit protocols] user@switch# set ovsdb traceoptions file ovsdb user@switch# set ovsdb traceoptions file size 50m user@switch# set ovsdb traceoptions flag all
配置与 NSX 控制器的连接。
[edit protocols] user@switch# set ovsdb controller 10.94.184.1
-
配置由 OVSDB 管理的接口 xe-0/0/2.0 和 xe-1/2/0.0。
[edit protocols] user@router# set ovsdb interfaces xe-0/0/2.0 user@router# set ovsdb interfaces xe-1/2/0.0
注意:完成此配置后,必须配置网关,该网关相当于硬件 VTEP 的 NSX。此示例实施一个硬件 VTEP;因此,您必须使用 NSX 管理器或 NSX API 配置一个网关、一个网关服务和一个逻辑交换机端口。有关您必须执行的任务和关键 NSX Manager 配置详细信息的更多信息,请参阅 用作虚拟隧道端点的瞻博网络设备的 VMware NSX 配置。
验证
验证逻辑交换机
目的
验证 UUID 为 28805c1d-0122-495d-85df-19abd647d772 和 96a382cd-a570-4ac8-a77a-8bb8b16bde70 的逻辑交换机是否在 NSX Manager 或 NSX API 中配置了 有关逻辑交换机的信息会发布在 OVSDB 方案中
行动
发出 show ovsdb logical-switch
操作模式命令。
user@host> 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: 96a382cd-a570-4ac8-a77a-8bb8b16bde70 Flags: Created by both VNI: 200 Num of Remote MAC: 1 Num of Local MAC: 1
意义
输出将验证有关逻辑交换机的信息是否已在 OVSDB 方案中发布。状态 Created by both
表示在 NSX Manager 或 NSX API 中配置了逻辑交换机,并在瞻博网络设备上配置了相应的 VXLAN。在此状态下,逻辑交换机和 VXLAN 可正常运行。
如果逻辑交换机的状态不是 Created by both
其他问题,请参阅 对非操作逻辑交换机和相应的 Junos OS OVSDB 托管 VXLAN 进行故障排除。
验证 VM 1 和 VM 3 的 MAC 地址
目的
验证 VM 1 和 VM 3 的 MAC 地址是否存在于 OVSDB 方案中。
行动
发出 show ovsdb mac remote
操作模式命令以验证 VM 1 和 VM 3 的 MAC 地址是否存在。
user@host> show ovsdb mac remote Logical Switch Name: 28805c1d-0122-495d-85df-19abd647d772 Mac IP Encapsulation Vtep Address Address Address 08:33:9d:5f:a7:f1 0.0.0.0 Vxlan over Ipv4 10.19.19.19 Logical Switch Name: 96a382cd-a570-4ac8-a77a-8bb8b16bde70 Mac IP Encapsulation Vtep Address Address Address a8:59:5e:f6:38:90 0.0.0.0 Vxlan over Ipv4 10.19.19.10
意义
输出显示,VM 1 和 VM 3 的 MAC 地址已存在,并与分别具有 UUID 和 的28805c1d-0122-495d-85df-19abd647d772
96a382cd-a570-4ac8-a77a-8bb8b16bde70
逻辑交换机相关联。鉴于 MAC 地址已存在,可通过硬件 VTEP 1 访问 VM 1 和 VM 3。
验证 NSX 控制器连接
目的
验证与 NSX 控制器的连接是否已启动。
行动
发出 show ovsdb controller
操作模式命令,并验证控制器连接状态是否为 up
。
user@host> 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
的其他信息外,输出还显示 NSX 控制器的连接状态。建立此连接后,瞻博网络设备上将启用 OVSDB。