Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

了解 VXLAN

虚拟可扩展 LAN 协议 (VXLAN) 技术允许网络支持更多 VLAN。根据 IEEE 802.1Q 标准,传统 VLAN 标识符长度为 12 位,这种命名方式已将网络限制为 4094 个 VLAN。VXLAN 协议可使用更长的逻辑网络标识创建更多 VLAN,从而克服这种限制,进而使得大型网络(例如通常包含众多虚拟机的云端网络)的逻辑隔离数量大幅增长。

VXLAN 的优势

VXLAN 技术允许您对网络进行分段(就像 VLAN 一样),但它可以提供 VLAN 无法实现的优势。以下是使用 VXLAN 的最重要优势:

  • 理论上,您最多可以在管理域中创建 1600 万个 VXLAN(而非瞻博网络设备支持的 4094 个 VLAN)。

    • MX 系列路由器和 EX9200 交换机最多可支持 32000 个 VXLAN、32000 个组播组和 8000 个虚拟隧道端点 (VTEP)。这意味着基于 MX 系列路由器的 VXLAN 可以根据云构建商需要的规模提供网络分段,从而支持大量租户。

    • QFX10000 系列交换机可支持 4000 个 VXLAN 和 2000 个远程 VTEP。

    • QFX5100、QFX5110、QFX5200、QFX5210 和 EX4600 交换机可支持 4000 个 VXLAN、4000 个组播组和 2000 个远程 VTEP。

    • EX4300-48MP 交换机可支持 4000 个 VXLAN。

  • 您可以通过第 3 层网络上的隧道发送流量,以便在位于不同的第 2 层域中的服务器之间实现虚拟机迁移。此功能允许您在数据中心内部或跨数据中心动态分配资源,而不受第 2 层边界约束,也不会被强制用来创建大型的或地理位置较为分散的第 2 层域。

使用 VXLAN 创建连通第 3 层网络的小型第 2 层域意味着无需使用生成树协议 (STP) 来融合拓扑网络,而是可以在第 3 层网络中使用更为强大的路由协议。没有 STP 意味着所有链路均不会受阻,这使得您可以充分利用所购买的所有端口。通过使用路由协议连接第 2 层域,您还可以均衡流量负载,进而确保可用带宽得到充分利用。鉴于东西向流量经常在数据中心内部或跨数据中心大量流动,最大限度提升该流量的网络性能十分重要。

视频 《为何在数据中心使用叠加网络? 》简要概述了使用 VXLAN 的优势。

VXLAN 的工作原理是什么?

VXLAN 通常被描述为一种叠加技术,因为可通过该技术在包含 IP 地址的 VXLAN 数据包中封装(通过隧道传输)以太网帧,进而通过介于中间的第 3 层网络扩展第 2 层网络连接。支持 VXLAN 的设备被称为 虚拟隧道端点 (VTEP),它们可以是终端主机,也可以是网络交换机或路由器。VTEP 可封装 VXLAN 流量,还可在流量离开 VXLAN 隧道时对该流量进行解封装。要封装以太网帧,VTEP 会添加多个字段,其中包括:

  • 外部介质访问控制 (MAC) 目的地址(隧道端点 VTEP 的 MAC 地址)

  • 外部 MAC 源地址(隧道源 VTEP 的 MAC 地址)

  • 外部 IP 目的地址(隧道端点 VTEP 的 IP 地址)

  • 外部 IP 源地址(隧道源 VTEP 的 IP 地址)

  • 外部 UDP 报头

  • 一个 VXLAN 报头,其中包含一个 24 位字段,称为 VXLAN 网络标识符 (VNI),用于唯一标识 VXLAN。VNI 类似于 VLAN ID,但拥有 24 个数位,允许您创建比 VLAN 数量更多的 VXLAN。

注意:

由于 VXLAN 可以将 50 到 54 字节的额外报头信息添加到原始以太网帧,因此您可能需要增加底层网络的 MTU。在这种情况下,请配置参与 VXLAN 网络的物理接口的 MTU,而非逻辑 VTEP 源接口的 MTU(该 MTU 将被忽略)。

图 1 显示了 VXLAN 数据包格式。

图 1:VXLAN 数据包格式 VXLAN Packet Format

VXLAN 实现方法

Junos OS 支持在以下环境中实现 VXLAN:

  • 手动 VXLAN — 在此环境中,瞻博网络设备可作为充当 VTEP 下游设备的中转设备,或者为托管虚拟机 (VM) 的下游服务器(可通过第 3 层网络进行通信)提供连接的网关。此环境中未部署软件定义网络 (SDN) 控制器。

    注意:

    QFX10000交换机不支持手动 VXLAN。

  • OVSDB-VXLAN — 在此环境中,SDN 控制器使用 Open vSwitch 数据库 (OVSDB) 管理协议提供一种方法,支持 OVSDB 的控制器(例如 VMware NSX 或瞻博网络 Contrail 控制器)和瞻博网络设备可以通过该协议进行通信。

  • EVPN-VXLAN — 在此环境中,以太网 VPN (EVPN) 属于一种控制平面技术,通过该技术可将主机(物理服务器和虚拟机)置于网络中的任意位置,并保持与相同逻辑第 2 层叠加网络的连接,同时 VXLAN 可为第 2 层叠加网络创建数据平面。

使用带有 VXLAN 的 QFX5100、QFX5110、QFX5120、QFX5200、QFX5210、EX4300-48MP 和 EX4600 交换机

可对交换机进行配置,充当以下所有角色:

  • (除 EX4300-48MP 以外的所有交换机)在没有 SDN 控制器的环境中,可充当作为 VTEP 的下游主机的中转第 3 层交换机。在此配置中,无需在交换机上配置任何 VXLAN 功能。需要配置 IGMP 和 PIM,以便交换机可以为 VXLAN 组播组形成组播树。(有关详细信息,请参阅 手动 VXLAN 需要 PIM 。)

  • (除 EX4300-48MP 以外的所有交换机)在配备或缺少 SDN 控制器的环境中,均可充当相同数据中心内部或跨数据中心的虚拟化与非虚拟化网络之间的第 2 层网关。例如,您可以通过交换机将使用 VXLAN 的网络连接到一个应用 VLAN 的网络。

  • (EX4300-48MP 交换机)充当园区网络中虚拟化和非虚拟化网络之间的第 2 层网关。例如,您可以通过交换机将使用 VXLAN 的网络连接到一个应用 VLAN 的网络。

  • (除 EX4300-48MP 以外的所有交换机)充当相同或不同数据中心的虚拟化网络之间的第 2 层网关,允许虚拟机在这些网络和数据中心之间移动 (VMotion)。例如,如果您希望在两个位于不同网络的设备之间进行 VMotion,则可以在这两个网络中创建相同的 VLAN,并将这两个设备均配置在该 VLAN 上。连接到这些设备的交换机(作为 VTEP)可将该 VLAN 映射到相同的 VXLAN,之后就可以在两个网络之间路由 VXLAN 流量。

  • (带 EVPN-VXLAN 的 QFX5110 和 QFX5120 交换机)作为第 3 层网关,在同一数据中心的不同 VXLAN 之间路由流量。

  • (带 EVPN-VXLAN 的 QFX5110 和 QFX5120 交换机)作为第 3 层网关,使用标准路由协议或虚拟专用 LAN 服务 (VPLS) 隧道通过 WAN 或互联网在不同数据中心内的不同 VXLAN 之间路由流量。

注意:

如果您希望 QFX5110 或QFX5120交换机成为 VXLAN EVPN 环境中的第 3 层 VXLAN 网关,就必须配置集成路由和桥接 (IRB) 接口来连接 VXLAN,就像您希望在 VLAN 之间路由流量一样。

由于附加报头会增加 50 到 54 个字节,因此您可能需要增加 VTEP 上的 MTU,以容纳更大的数据包。例如,如果交换机使用默认 1514 字节的 MTU 值,而您希望通过 VXLAN 转发 1500 字节的数据包,这时就需要增加 MTU,以便应对附加报头导致的数据包大小增加的情况。

更改 QFX5100、QFX5110、QFX5200、QFX5210 和 EX4600 交换机上的 UDP 端口

从QFX5100交换机上的 Junos OS 14.1X53-D25 版本、QFX5110 和 QFX5200 交换机上的 Junos OS 15.1X53-D210 版本、QFX5210 交换机上的 Junos OS 18.1R1 版本以及 EX4600 交换机上的 Junos OS 18.2R1 版本开始,您可以将 UDP 端口配置为用于 VXLAN 流量的目的端口。要将 VXLAN 目的端口配置为默认 UDP 端口 4789 以外的其他端口,请输入以下语句:

set protocols l2-learning destination-udp-port port-number

您配置的端口将用于交换机上配置的所有 VXLAN。

注意:

如果您在 VXLAN 中的一台交换机上进行此更改,则必须在可终止交换机上配置的 VXLAN 的所有设备上进行相同的更改。如果不这样做,将会中断交换机上配置的所有 VXLAN 的流量。更改 UDP 端口时,之前学习的远程 VTEP 和远程 MAC 将丢失,VXLAN 流量将中断,直到交换机再次学习远程 VTEP 和远程 MAC。

主机进入溢出防御

默认情况下,当主机表达到其容量时,其他主机条目会溢出到最长前缀匹配 (LPM) 表中。这可能会导致路由性能下降,这是由于较小的主机条目占用了 LPM 表中的宝贵空间所致。

从 Junos OS 25.2R1 版开始,可以通过配置 set forwarding-options no-host-as-lpm 语句来防止主机条目溢出到 LPM 表中。启用此选项时,将阻止主机条目进入 LPM 表,并记录一条错误消息以通知您完整的主机表情况。此限制可维护 LPM 表对于较大子网路由的完整性,这对于高效的网络运维通常更为重要。此配置需要重新启动 PFE 才能从 LPM 表中清除任何现有主机条目,从而确保该表专门用于以后的子网路由。重新启动对于保持干净状态至关重要,因为它可以防止任何残留的主机条目影响表空间利用率。

注意:

配置该 set forwarding-options no-host-as-lpm 语句将重新启动独立设备中的 PFE。虚拟机箱 (VC) 设备需要手动重新启动。重新启动 PFE 将从 LPM 表中删除任何以前学习的主机条目。

主机进入溢出预防对于具有高主机进入需求的环境特别有用。该功能支持 IPv4 和 IPv6 路由,适用于 VXLAN 和非 VXLAN 环境,因此适用于各种部署场景。隔离主机路由和子网路由可避免因主机条目溢出到 LPM 表而导致的路由性能下降。此外,每次切换 CLI 选项时,系统都会生成一条系统日志消息,为变更管理和故障排除提供审计跟踪。通过利用此功能,可以增强路由表管理,提高路由效率,并确保对路由表条目进行系统控制。

请参阅 功能浏览器 ,查看支持主机进入溢出防御功能的产品的完整列表。

CLI 命令

要配置 Host Entry Overflow Prevention 功能,请使用以下 CLI 命令:

set forwarding-options no-host-as-lpm

此命令启用的功能可在主机表已满时阻止将主机条目添加到 LPM 表中,从而为较大的子网路由保留 LPM 空间。

要验证主机入口溢出防御功能的状态,请使用以下命令:

show forwarding-options no-host-as-lpm

此命令显示当前配置状态,指示该功能是启用还是禁用。

要显示数据包转发引擎主机和 LPM 转发表中的路由摘要,请使用以下命令:

show pfe route summary hw

通过使用这些命令,您可以有效地管理和监控路由表条目,确保网络环境的最佳性能和可扩展性。

控制 QFX5100、QFX5110、QFX5200、QFX5210 和 EX4600 交换机上的中转组播流量

作为 VTEP 的交换机收到广播、未知单播或组播数据包时,将对数据包执行以下作:

  1. 对数据包进行解封,并将其发送至本地连接的主机。

  2. 然后再次进行 VXLAN 封装,并将数据包发送至 VXLAN 中的其他 VTEP。

这些作由用作 VXLAN 隧道地址的环路接口执行,因此可能会对 VTEP 可用带宽产生负面影响。从 QFX5100 交换机的 Junos OS 版本 14.1X53-D30 版本、Junos OS QFX5110 和 QFX5200 交换机的 15.1X53-D210 版本、QFX5210 交换机的 Junos OS 18.1R1 版本以及 EX4600 交换机的 Junos OS 版本 18.2R1 开始,如果您知道在需要特定组播组流量的 VXLAN 中没有附加到其他 VTEP 的组播接收器, 输入以下语句,可以减少环路接口上的处理负载:

在这种情况下,不会转发指定组的任何流量,而是会转发所有其他组播流量。如果您不想将任何组播流量转发到 VXLAN 中的其他 VTEP,请输入以下语句:

使用 MX 系列 路由器、EX9200 交换机或 QFX10000 交换机作为 VTEP

您可以将 MX 系列 路由器、EX9200 交换机或QFX10000交换机配置为 VTEP 设备,并执行以下所有角色:

  • 充当相同数据中心内或跨数据中心的虚拟化与非虚拟化网络之间的第 2 层网关。例如,您可以通过 MX 系列路由器将使用 VXLAN 的网络连接到一个应用 VLAN 的网络。

  • 充当相同或不同数据中心的虚拟化网络之间的第 2 层网关,允许虚拟机在这些网络和数据中心之间移动 (VMotion)。

  • 作为第 3 层网关,在同一数据中心的不同 VXLAN 之间路由流量。

  • 作为第 3 层网关,使用标准路由协议或虚拟专用 LAN 服务 (VPLS) 隧道通过 WAN 或互联网在不同数据中心内的不同 VXLAN 之间路由流量。

注意:

如果您希望本部分说明的一台设备成为 VXLAN 第 3 层网关,就必须配置集成路由和桥接 (IRB) 接口来连接 VXLAN,就像您希望在 VLAN 之间路由流量一样。

手动 VXLAN 需要 PIM

在配有控制器(如 VMware NSX 或瞻博网络 Contrail 控制器)的环境中,您可以在瞻博网络设备上配置 VXLAN。控制器还可提供控制平面,VTEP 可通过此控制平面来通告自身的可访问性并了解其他 VTEP 的可访问性。您还可在瞻博网络设备上手动创建 VXLAN,而非使用控制器。如果您使用此方法,还必须在 VTEP 上配置协议无关组播 (PIM),以便它们可以在自身之间创建 VXLAN 隧道。

您还必须将给定 VXLAN 中的每个 VTEP 均配置为同一组播组的成员。(虽然不是必须要求,但如果情况允许,您仍然应该为每个 VXLAN 分配一个不同的组播组地址。多个 VXLAN 可以共享同一个组播组。)然后,VTEP 可以将通过连接主机接收到的 ARP 请求转发到组播组。组中的其他 VTEP 可以对 VXLAN 信息进行解封装,(假设它们是相同 VXLAN 的成员)并且会将 ARP 请求转发到它们连接的主机。当目标主机收到 ARP 请求时,会使用其 MAC 地址进行响应,并且该主机的 VTEP 会将此 ARP 回复转发回源 VTEP。通过此过程,VTEP 可学习 VXLAN 中其他 VTEP 的 IP 地址,以及连接到其他 VTEP 的主机的 MAC 地址。

组播组和树还可用于在 VTEP 之间转发广播、未知单播和组播 (BUM) 流量。这样可防止 BUM 流量在 VXLAN 之外发生不必要的泛洪。

注意:

通过 VXLAN 隧道转发的组播流量仅会被发送至 VXLAN 中的远程 VTEP。也就是说,封装 VTEP 不会根据组播树复制和发送数据包的副本,它只会将收到的组播数据包转发至远程 VTEP。远程 VTEP 可以对已封装组播数据包进行解封装,并将其转发至相应的第 2 层接口。

均衡 VXLAN 流量负载

默认情况下,形成 VXLAN 隧道的第 3 层路由会根据数据包使用负载平衡,这意味着如果存在到远程 VTEP 的 ECMP 路径,则系统将实施负载平衡。这与常规路由行为不同,常规路由不会在默认情况下根据数据包进行负载平衡。(默认情况下,常规路由使用按前缀的负载平衡。)

UDP 报头中的源端口字段用于在第 3 层网络中启用 VXLAN 流量的 ECMP 负载平衡。此字段被设置为内部数据包字段的散列值,其将产生一个变量,ECMP 可使用此变量来区分隧道(流)。

基于流的 ECMP 通常使用的其他字段均不适用于与 VXLAN 配合使用。相同的两个 VTEP 之间的所有隧道均具有相同的外部源和目的 IP 地址,并且 UDP 目的端口会按定义设置为端口 4789。因此,这些字段均不够用来为 ECMP 区分流。

启用QFX5120交换机,以便在面向核心的第 3 层标记和 IRB 接口上通过隧道发送流量

注意:

此部分仅适用于运行Junos OS版本 18.4R1、18.4R2、18.4R2-S1 到 18.4R2-S3、19.1R1、19.1R2、19.2Rx 和 19.3R 的QFX5120x交换机。

当 QFX5120 交换机尝试在面向核心的第 3 层标记接口或 IRB 接口上通过隧道发送流量时,交换机将丢弃数据包。为避免出现此问题,可以在第 3 层标记接口或 IRB 接口上配置一个简单的基于两期限过滤器的防火墙。

注意:

QFX5120交换机最多支持 256 个基于过滤器的双期限防火墙。

例如:

术语 1 匹配并接受发往 QFX5210 交换机的流量,该流量由分配给交换机环路接口的源 VTEP IP 地址 (192.168.0.1/24) 标识。对于术语 1,请注意,在指定作时,您可以选择计算流量,而不是接受它。

术语 2 匹配所有其他数据流量并将其转发到路由实例(路由 1),该实例配置为接口 et-0/0/3。

在此示例中,请注意路由实例 route1 引用的接口 et-0/0/3。因此,必须包含命令 set firewall family inet filter vxlan100 term 2 then routing-instance route1 。如果不使用此命令,防火墙过滤器将无法正常工作。

通过 VXLAN 使用 ping 和 traceroute

在 QFX5100 和 QFX5110 交换机上,可以通过添加overlay参数和各种选项来使用pingtraceroute 命令对通过 VXLAN 隧道的流量进行故障排除。您可以使用这些选项强制pingtraceroute 数据包采用与通过 VXLAN 隧道的数据包相同的路径。换句话说,可以让底层数据包(pingtraceroute和)与叠加数据包(数据流量)采用相同的路径。更多信息,请参阅 ping 叠加traceroute 叠加

受支持的 VXLAN 标准

定义 VXLAN 标准的 RFC 和互联网草案:

  • RFC 7348, 虚拟可扩展局域网 (VXLAN):在第 3 层网络上叠加虚拟化第 2 层网络的框架

  • 互联网草案 draft-ietf-nvo3-vxlan-gpe,VXLAN 通用协议扩展

变更历史表

是否支持某项功能取决于您使用的平台和版本。使用 功能浏览器 查看您使用的平台是否支持某项功能。

释放
描述
25.2R1
从 Junos OS 版本开始,您可以防止主机路由溢出到 LPM 表中。
14.1X53-D30
从 QFX5100 交换机的 Junos OS 版本 14.1X53-D30 版本、Junos OS QFX5110 和 QFX5200 交换机的 15.1X53-D210 版本、QFX5210 交换机的 Junos OS 18.1R1 版本以及 EX4600 交换机的 Junos OS 版本 18.2R1 开始,如果您知道在需要特定组播组流量的 VXLAN 中没有附加到其他 VTEP 的组播接收器, 您可以减少环路接口上的处理负载
14.1X53-D25
从QFX5100交换机上的 Junos OS 14.1X53-D25 版本、QFX5110 和 QFX5200 交换机上的 Junos OS 15.1X53-D210 版本、QFX5210 交换机上的 Junos OS 18.1R1 版本以及 EX4600 交换机上的 Junos OS 18.2R1 版本开始,您可以将 UDP 端口配置为用于 VXLAN 流量的目的端口。