NVIDIA 用户体验 (NVUE) 速查表

NVUE 是一个面向对象、模式驱动的完整 Cumulus Linux 系统模型,提供强大的 API,允许多个接口查看和配置系统内的任何元素。

您可以通过 NVUE 的 CLIAPI 使用 NVUE。由于 NVUE 是一个对象模型,CLI 和 REST API 接口都具有等效的功能,并且可以并行工作,同时保持所有管理操作的一致性;例如,CLI show 命令会反映您通过 REST API 运行的任何 PATCH 操作。

NVUE 遵循声明式模型,消除了特定于上下文的命令和设置。它被构建为表示整个系统状态的大树(如文件系统路径)。树的底部是表示对象的高级分支,例如路由器和接口。在每个分支下,还有其他分支,当您浏览树时,您会获得更具体的对象上下文。树的叶子是实际属性,表示为键值对。

本速查表可帮助您快速上手使用 Cumulus LinuxNVUE CLI

本速查表涵盖了某些 Cumulus Linux 元素、特性和协议的最常用和最有用的命令。有关更多信息以及其他特定配置,请参阅 Cumulus Linux 用户指南

有关使用 NVUE REST API 的信息,请参阅 NVUE API 文档

NVUE CLI 命令语法

所有 NVUE 命令都以 nv 开头,并分为四种语法类别之一

  • 配置 (nv setnv unset)
  • 监控 (nv show)
  • 配置管理 (nv config)
  • 操作 (nv action)

与所有行业标准 CLI 一样,NVUE CLI 包括使用 TAB 键进行命令补全、使用问号 (?) 显示命令信息以及命令缩写以加快 CLI 交互。此外,您可以使用 -h--help 选项获取命令语法帮助,并通过运行 nv list-commands 列出所有命令。

入门

在您将 NVIDIA Spectrum 交换机上架并通电后,连接串行控制台线缆,以便您可以开始配置。所有交换机在出厂时都配备了用于控制台连接的 RJ45 串行端口,并设置为 115200 波特率。如果您的交换机未预装 NOS,您可以安装新的 Cumulus Linux 镜像

系统管理和服务

使用以下命令在交换机上配置管理网络和系统服务。

命令语法
描述和示例
nv set system hostname <name>配置系统主机名。默认主机名为 cumulus
$ nv set system hostname leaf01
nv set interface eth0 ip address <ip-address/mask>

nv set interface eth0 ip gateway <ip-address>
OOB 管理接口 (eth0) 上配置静态 IP 地址和默认网关。默认情况下,OOB 管理接口设置为使用 DHCPv4 获取 IP 地址。
$ nv set interface eth0 ip address 192.168.200.2/24
$ nv set interface eth0 ip gateway 192.168.200.1
nv set service ntp <vrf-name> server <url> iburst on添加 NTP 服务器。Cumulus Linux 在启动时启用 NTP 服务并使用默认服务器。有关更多信息,请参阅 NTP 文档。
示例中的 VRF 名称为 default。您必须指定 VRF。
$ nv set service ntp default server 4.cumulusnetworks.pool.ntp.org iburst on

如果您不使用 NTP,请使用 Linux date 命令设置系统时间和日期。
nv set system timezone <timezone>配置系统时区。默认情况下,Cumulus Linux 使用 UTC 时区。
$ nv set system timezone US/Eastern
nv set service dns <vrf-name> server <ip-address)配置 DNS 查找服务器。示例中的 VRF 名称为 mgmt。您可以使用此命令,无论是否使用 VRF。
$ nv set service dns mgmt server 198.51.100.31
nv set service syslog <vrf-name> server <ip-address> port <port>

nv set service syslog <vrf-name> server <ip-address> protocol <protocol>
配置远程 Syslog 服务器,以便交换机发送 syslog 消息。示例中的 VRF 名称为 default。您必须指定 VRF。
您可以为协议指定 udptcp
$ nv set service syslog default server 192.168.0.254 port 514
$ nv set service syslog default server 192.168.0.254 protocol udp

使用接口

使用以下命令配置物理、分拆、环回以及逻辑第 2 层和第 3 层接口。

物理接口

命令语法
描述和示例
nv set interface <interface>
nv set interface <interface-range>
以管理方式启用交换机上的物理接口。
除 eth0 外,所有物理接口默认情况下都处于禁用状态;您必须启用它们才能使其运行。
要禁用接口,请使用 nv unset 命令。
您还可以同时启用或禁用所有或一系列接口。
$ nv set interface swp1
$ nv set interface swp1,20-32
nv set interface <interface> link state <state>配置接口链路状态:updown。启用接口后,链路状态将自动设置为 up
注意: 将链路状态设置为 down 不会像 nv unset interface <interface> 命令那样从系统中禁用接口。
$ nv set interface swp1 link state down
$ nv set interface swp8-15 link state up
nv set interface <interface> link speed <speed>配置接口速度。如果启用了自动协商(默认设置),则它优先于链路速度设置。
$ nv set interface swp1 link speed 50G
nv set interface <interface> link mtu <mtu>配置接口 MTU。Cumulus Linux 中的所有接口默认都设置为 9216B MTU。
$ nv set interface swp1 link mtu 1500

分拆接口

要增加 NVIDIA Spectrum 交换机上的端口数量,您可以将物理接口分拆为两个或四个较低速度的端口。
分拆配置因平台而异,有关更多信息,请参阅 分拆端口 部分的 交换机端口属性 文档。

命令语法
描述和示例
nv set interface <interface> link breakout <breakout-mode>

nv set interface <interface> link breakout disabled
在物理接口上配置分拆模式。
某些平台要求您禁用相邻端口才能分拆接口。有关更多信息,请参阅此知识库文章
$ nv set interface swp1 link breakout 4x25G
$ nv set interface swp2 link breakout disabled
nv unset interface <breakout-interface>

nv unset interface <interface> link breakout
以管理方式从系统中禁用分拆端口。当您分拆物理端口时,Cumulus Linux 会在系统中创建新的逻辑端口;例如,当您将接口 swp1 分拆为四个新端口时,Cumulus Linux 会创建 swp1s0、swp1s1、swp1s2 和 swp1s3。要从接口中删除分拆配置,您必须以管理方式禁用所有分拆端口,然后从物理接口中 unset 分拆配置。
$ nv unset interface swp1s0
$ nv unset interface swp1s1
$ nv unset interface swp1s2
$ nv unset interface swp1s3
$ nv unset interface swp1 link breakout

环回接口

Cumulus Linux 具有预配置的环回接口。当交换机启动时,名为 lo 的环回接口处于 up 状态,并分配了 IP 地址 127.0.0.1

命令语法
描述和示例
nv set interface lo ip address <ip-address>在环回接口 (lo) 上配置 IP 地址。环回接口必须始终存在并处于 up 状态。 lo 不需要子网掩码;它会自动设置为 /32 前缀。您可以为环回接口配置多个 IP 地址。
$ nv set interface lo ip address 10.10.10.1

第 2 层接口

在 Cumulus Linux 中启用物理接口后,该接口将被路由(第 3 层)。要将接口设置为交换机端口(第 2 层),您必须将其添加到网桥。

网桥和 VLAN

Cumulus Linux 支持两种网桥配置模式

  • VLAN 感知网桥
  • 传统网桥

默认网桥 br_default 是 VLAN 感知网桥。有关更多信息,请参阅 以太网桥接 - VLAN 文档。

命令语法
描述和示例
nv set interface <interface> bridge domain br_default将物理接口添加到默认 br_default 网桥。您可以将一系列接口添加到网桥。
当您将接口添加到网桥时,Cumulus Linux 会自动将接口设置为干线模式(标记-dot1Q),并允许所有网桥 VLAN。
$ nv set interface swp1 bridge domain br_default
$ nv set interface swp1-5,7-22 bridge domain br_default
nv set interface <interface> bridge domain br_default untagged none配置接口(不是网桥)以丢弃所有未标记的流量。untagged none 命令从接口中删除 PVID
$ nv set interface swp2 bridge domain br_default untagged none
nv set bridge domain br_default vlan <vlan-id>在默认网桥 (br_default) 上配置 VLAN。您添加到网桥的所有新 VLAN 都会自动添加到其所有干线端口。您还可以添加一系列或列表中的 VLAN。
$ nv set bridge domain br_default vlan 10,20
nv set interface <interface> bridge domain br_default access <vlan-id>将接口配置为特定 VLAN 中的接入(未标记)端口。
$ nv set interface swp1 bridge domain br_default access 10
nv set bridge domain br_default untagged <vlan-id>配置默认 br_default 网桥的 PVID。默认 PVID 为 1。仅使用此命令更改(或重置)默认 PVID。
$ nv set bridge domain br_default untagged 100

生成树协议 (STP)

VLAN 感知网桥 (br_default) 仅在 RSTP 模式下运行。

传统网桥在 PVSTRPVST 模式下运行。默认模式为 PVRST。每个传统网桥都有其自己单独的 STP 实例。

命令语法
描述和示例
nv set bridge domain br_default stp priority <priority>设置默认网桥 (br_default) 的生成树优先级。默认 STP 优先级为 32768。
$ nv set bridge domain br_default stp priority 8192
nv set interface <interface> bridge domain br_default stp admin-edge on

nv set interface <interface> bridge domain br_default stp bpdu-guard on

nv set interface <interface> bridge domain br_default stp auto-edge on
将接口设置为边缘 (PortFast) 模式。NVIDIA 建议您在边缘端口上设置 BPDU 防护以消除环路。
Cumulus Linux 默认启用自动边缘 auto-edge 端口检测。您可以使用 off 选项禁用 auto-edge
$ nv set interface swp5 bridge domain br_default stp admin-edge on
$ nv set interface swp5 bridge domain br_default stp bpdu-guard on
$ nv set interface swp5 bridge domain br_default stp auto-edge off

有关更多信息,请参阅 生成树和快速生成树 - STP 文档。

第 3 层接口

在您以管理方式启用 Cumulus Linux 接口后,它将成为路由端口(第 3 层)。

命令语法
描述和示例
nv set interface <interface> ip address <ip-address>在物理接口 (swp) 上配置 IPv4 或 IPv6 地址。
$ nv set interface swp10 ip address 10.1.0.5/24
$ nv set interface swp10 ip address 2001:db8::10/64
nv set interface <svi> ip address <ip-address>SVI(VLAN 接口)上配置 IPv4 或 IPv6 地址。
SVI 仅在其 VLAN 存在且接口分配给它(标记或未标记)时才运行。
$ nv set interface vlan100 ip address 100.1.0.2/24
$ nv set interface vlan100 ip address 2001:db8::1/32

Cumulus Linux 中的链路聚合 (LAG) 接口称为 bond。您可以将 bond 配置为第 2 层或第 3 层接口。

命令语法
描述和示例
nv set interface <bond-name> bond member <bonded-interface>

nv set interface <bond-name> type bond
配置 bond 接口并设置物理端口。如果您使用的 bond 名称以 bond 开头,则类型将自动设置为 bond。否则,您必须手动将接口类型设置为 bond
$ nv set interface bond1 bond members swp1-4
$ nv set interface lag1 bond members swp5-6
$ nv set interface lag1 type bond
nv set interface <bond-name> bond mode <mode>配置 bond 接口操作模式。
默认情况下,Cumulus Linux 中的 bond 设置为 LACP (802.3ad) 模式。
您可以使用 static 选项将模式更改为 Balance-xor。要将 bond 模式重置为 LACP,请使用 lacp 选项。
$ nv set interface bond1 bond mode static
$ nv set interface bond1 bond mode lacp
nv set interface <bond-name> bond lacp-rate <rate>配置 bond 接口 LACP PDU 传输速率。
默认情况下,Cumulus Linux 中的 bond 设置为 fast 模式(每 3 秒传输一次)。要将速率设置为 30 秒,请使用 slow 模式。
$ nv set interface bond1 bond lacp-rate slow
$ nv set interface bond1 bond lacp-rate fast

使用网络协议

本速查表包含一些配置主要数据中心协议的基本命令。要配置其他协议,请参阅其他配置命令、示例和更详细的信息,请参阅 Cumulus Linux 用户指南

第 2 层协议

MLAG 提供第 2 层冗余和更高的系统吞吐量。要配置 MLAG,您必须满足以下要求

  • 只有两台交换机可以共享 MLAG 配置。但是,您可以在网络中拥有多个(不同的)MLAG 对。
  • MLAG 对中的两台交换机必须直接连接。这通常是一个 bond,以提高可靠性和带宽。
  • MLAG 对中的两台交换机必须是相同的 Spectrum 型号,并且运行相同的 Cumulus Linux 版本。
  • 双连接设备(服务器或交换机)可以使用 LACP 或静态 bond 模式。MLAG 交换机必须进行相应的设置。

本速查表包含基本的 MLAG 配置命令。有关更多信息,请参阅 多机箱链路聚合 - MLAG 文档。

命令语法
描述和示例
nv set interface <bond-name> bond member <bonded-interface>配置 bond 接口并设置其物理端口。您必须创建 bond 接口,以便将其设置为 MLAG 端口。
$ nv set interface bond1 bond members swp1
nv set interface <bond-name> bond mlag id <mlag-id>设置 bond 接口的 MLAG ID。您必须为每台对等交换机上的每个双连接 bond 指定唯一的 MLAG ID。该值在两个 MLAG 对等体上必须相同。
$ nv set interface bond1 bond mlag id 1
nv set interface <bond-name> bridge domain br_default将 MLAG 端口设置为默认网桥 br_default
$ nv set interface bond1 bridge domain br_default
nv set interface peerlink bond member bonded-interface>配置用于 MLAG 操作的机箱间 bond。peerlink 是机箱间链路的保留名称。当您创建对等链路时,Cumulus Linux 会自动创建一个名为 peerlink.4094 的第 3 层子接口,以确保此链路上的 VLAN 独立操作。
$ nv set interface peerlink bond member swp31-32
nv set mlag mac-address <address>配置 MLAG 系统 MAC 地址,该地址在所有控制协议的 PDU 中设置,以将 MLAG 对表示为单个交换机。MLAG MAC 地址在两个 MLAG 对等体上必须相同,但在网络中必须唯一,并且在 MLAG 对之间必须不同(Cumulus Linux 提供了一个特殊的保留范围)。
$ nv set mlag mac-address 44:38:39:BE:EF:AA
nv set mlag peer-ip linklocal配置 MLAG 对等 IP 地址。对等 IP 地址基于 peerlink.4094 链路本地地址(点对点)。
$ nv set mlag peer-ip linklocal
nv set mlag backup <ip-address>配置 MLAG 备份 IP 地址,该地址用于在对等链路断开时在 MLAG 对等体之间进行通信。
nv set mlag backup 10.10.10.2
如果需要,您可以在特定 VRF 中指定备份 IP。
$ nv set mlag backup 10.10.10.2 vrf mgmt

虚拟路由器冗余 - VRR

VRR 为第 2 层 MLAG 域启用活动-活动网关。两个 MLAG 对等体都必须具有 SVI,每个 VLAN 具有唯一的 IP 地址。然后,您必须在两个 MLAG 对等体上设置相同的 VRR 实例(每个子网一个实例)。VRR 实例在 SVI 上配置,并保存虚拟 IP 和 MAC 地址。两个对等体都响应来自主机的 ARP 请求,但如果一个对等体发生故障,则第二个对等体仍然充当网关。

命令语法
描述和示例
nv set interface <svi> ip vrr address <ip-address>配置 VRR 实例的虚拟 IP 地址。此地址必须在 SVI 子网内。
$ nv set interface vlan10 ip vrr address 10.1.10.1/24
nv set system global fabric-mac <mac-address>

nv set system global fabric-id <id>
配置全局 fabric MAC 地址,以确保跨 VRR 交换机的 fabric 范围内的 MAC 一致性。MAC 地址主要用于多 fabric EVPN 环境。Cumulus Linux 使用默认 VRR MAC 地址 00:00:5E:00:01:01;您可以全局更改此 MAC 地址,也可以更改默认 fabric ID (fabric_id=1),该 ID 将添加到 MAC 地址。
$ nv set system global fabric-mac 00:00:5E:00:01:FF
$ nv set system global fabric-id 255
nv set interface <svi> ip vrr mac-address <mac-address>为特定 VLAN 配置 VRR 实例虚拟 MAC 地址(如果您想覆盖全局默认设置)。
$ nv set interface vlan10 ip vrr mac-address 00:00:5E:00:01:00

有关更多信息,请参阅 虚拟路由器冗余 - VRR 和 VRRP 文档。

第 3 层协议

虚拟路由和转发 - VRF

VRF(也称为 VRF-Lite)使您能够使用多个独立的路由表,这些路由表在同一交换机上同时工作。VRF 在多租户环境中非常有用。

本速查表包含基本的 VRF 命令。有关将自定义 VRF 和 mgmt VRF 与不同协议一起使用的更多信息,请参阅 虚拟路由和转发 - VRF管理 VRF 文档。

命令语法
描述和示例
nv set vrf <vrf-name> table <id>配置新的 VRF 并分配表 ID。您可以使用 auto 表分配或手动设置 ID(ID 必须介于 1001-1255 之间)。
$ nv set vrf BLUE table auto
$ nv set vrf RED table 1016
nv set interface <interface> ip vrf <vrf-name>将第 3 层接口添加到 VRF。
$ nv set interface swp1 ip vrf BLUE

静态路由

如果您不需要动态路由协议(如 BGP 或 OSPF)的复杂性,如果您有不经常更改且目标只有一两条路径的路由,则可以使用静态路由。

命令语法描述和示例
nv set vrf <vrf-name> router static <ip-address> via <ip-address>通过 VRF 内指定的下一跳配置到目标网络的静态路由。您必须在下一跳子网中具有本地 IP 地址。
$ nv set vrf default router static 10.10.10.101/32 via 10.0.1.1

边界网关协议 - BGP

BGP 是运行 Internet 的路由协议。BGP 通过交换路由和可达性信息来管理数据包如何在网络之间路由。

Cumulus Linux 通过 Auto BGPBGP Unnumbered 使数据中心中的 BGP 配置更加容易。NVIDIA 建议使用这些功能来消除对 ASN 和点对点 IP 地址分配的需求,并减少人为错误。

本速查表包含基本的 BGP 配置命令。有关更多信息,请参阅 边界网关协议 - BGP 文档。

命令语法
描述和示例
nv set router bgp autonomous-system <asn>使用 ASN 配置 BGP。您可以使用 auto BGP leafspine 关键字让 Cumulus Linux 自动设置 ASN,或者手动设置一个数字。
$ nv set router bgp autonomous-system 65101
$ nv set router bgp autonomous-system leaf
nv set router bgp router-id <ip-address>

nv set vrf <vrf-name> router bgp router-id <ip-address>
配置 BGP 路由器 ID。默认情况下,BGP 将环回 IP 地址分配为路由器 ID。如果您没有设置环回或想要覆盖此设置,则需要手动设置。您可以全局或按 VRF 设置路由器 ID。
$ nv set router bgp router-id 10.10.10.1
$ nv set vrf RED router bgp router-id 10.10.10.1
nv set vrf <vrf-name> router bgp neighbor <neighbor> remote-as <remote-as>配置 BGP 邻居对等体。您可以将邻居设置为 internal(用于 iBGP)或 external(用于 eBGP)。默认 VRF 名称为 default。您必须在此 VRF 中设置邻居。
$ nv set vrf default router bgp neighbor 10.0.1.1 remote-as internal
$ nv set vrf default router bgp neighbor swp2 remote-as external
$ nv set vrf default router bgp neighbor 2001:db8:0002::0a00:0002 remote-as external
nv set vrf <vrf-name> router bgp neighbor <neighbor> address-family ipv6-unicast enable on启用 IPv6 前缀通告。Cumulus Linux 默认启用 IPv4 地址族。要通告 IPv6 路由,您需要启用 IPv6 地址族。要使用 IPv6 下一跳通告 IPv4 前缀,请参阅使用 IPv6 下一跳通告 IPv4 前缀
$ nv set vrf default router bgp neighbor 2001:db8:0002::0a00:0002 address-family ipv6-unicast enable on
nv set vrf <vrf-name> router bgp address-family <address-family> network <prefix>指定要始发的前缀。
$ nv set vrf default router bgp address-family ipv4-unicast network 10.1.10.0/24
$ nv set vrf default router bgp address-family ipv6-unicast network 2001:db8::1/128
nv set vrf <vrf-name> router bgp address-family <address-family> redistribute <value> enable on将前缀重新分发到 IPv4 或 IPv6 地址族中。您可以指定 connectedstaticospf。您还可以将路由重分发与路由映射和 BGP 指标选项结合使用。有关更多信息,请参阅路由过滤和重分发
$ nv set vrf default router bgp address-family ipv4-unicast redistribute static enable on
$ nv set vrf default router bgp address-family ipv6-unicast redistribute connected route-map routemap1

网络虚拟化

VXLAN 是一种用于逻辑虚拟网络的标准叠加协议。它使用类似 VLAN 的封装技术,将第 2 层以太网段封装在第 3 层网络之上。封装发生在 VTEP 上,VTEP 建立到远程 VTEP 设备的叠加 UDP 隧道。与 VLAN 不同,VXLAN 可扩展到 1600 万个网段(VXLAN 标头中的 24 位 VXLAN 网络标识符 (VNI ID)),以实现多租户。有关更多信息,请参阅网络虚拟化文档。

VXLAN 设备和静态隧道

Cumulus Linux 支持单 VXLAN 设备和传统 VXLAN 设备。NVUE 允许您仅在 VLAN 感知网桥中使用单个 VXLAN 设备(单 VTEP)。对于单个 VXLAN 设备(NVE 接口),您需要指定 VLAN 到 VNI 的映射。

当设置为多个 VLAN 感知网桥时,Cumulus Linux 支持多个单 VXLAN 设备。确保不要跨设备复制 VNI。

此速查表包含一些用于静态 VXLAN 隧道的基本配置命令。有关更多信息和附加配置,请参阅网络虚拟化文档。

命令语法
描述和示例
nv set bridge domain br_default vlan <vlan-id> vni <vni-id>将 VLAN 映射到 VNI,并创建 VXLAN 设备 (NVE) 并将其添加到网桥。Cumulus Linux 中的单个 VXLAN 设备名称为 vxlan48
$ nv set bridge domain br_default vlan 10 vni 10
nv set bridge domain br_default vlan <vlan-id> vni auto自动将 VLAN 映射到 VNI 以简化配置。您还可以在 VLAN 范围或列表上配置自动 VNI 映射。自动 VLAN 到 VNI 映射仅适用于 EVPN 结构。
$ nv set bridge domain br_default vlan 10,20,30,40,50 vni auto
nv set bridge domain br_default vlan-vni-offset <value>使用值偏移自动将 VLAN 映射到 VNI。
$ nv set bridge domain br_default vlan-vni-offset 10000
nv set nve vxlan mac-learning on在 NVE 设备上启用 MAC 学习。您必须为非 EVPN 结构设置此命令。您可以为所有 VNI 全局设置 MAC 学习,也可以为每个 VNI 设置(使用 bridge 命令)。
$ nv set nve vxlan mac-learning on
$ nv set bridge domain br_default vlan 10 vni 10 mac-learning on
nv set nve vxlan arp-nd-suppress on如果 NVE 已有远程 MAC 地址,则启用 NVE 回复本地 ARP 请求。这可以防止不必要的广播流量发送到所有远程 VTEP。
$ nv set nve vxlan arp-nd-suppress on
nv set nve vxlan source address <ip-address>配置 VTEP (NVE) 源 IP 地址以形成叠加隧道。Cumulus Linux 使用环回 IP 地址作为隧道源。
$ nv set nve vxlan source address 10.10.10.1
nv set nve vxlan mlag shared-address <ip-address>将 MLAG 任播虚拟 IP 地址配置为 VXLAN 隧道目的地。两个 MLAG 对等体必须具有相同的地址。
$ nv set nve vxlan mlag shared-address 10.0.1.34
nv set bridge domain br_default vlan <vlan-id> vni <vni-id> flooding head-end-replication <ip-address>

nv set nve vxlan flooding head-end-replication <ip-address>
HER 配置远程 VTEP 以处理 BUM 流量。您必须在非 EVPN 结构中配置远程 VTEP。您可以为每个 VNI 或为所有 VNI 全局设置远程 VTEP。
$ nv set bridge domain br_default vlan 10 vni 10 flooding head-end-replication 10.10.10.2
$ nv set nve vxlan flooding head-end-replication 10.10.10.2
nv set bridge domain br_default vlan <vlan-id> vni <vni-id> flooding multicast-group <ip-address>

nv set nve vxlan flooding multicast-group <ip-address>
为 EVPN 结构配置用于处理 BUM 流量的多播组(HER 是默认设置)。您可以为每个 VNI 或全局设置洪泛组。NVIDIA 建议为每个 VNI 设置唯一的多播组。此配置需要在底层网络上使用 PIM-SM。
有关更多信息,请参阅带有 PIM-SM 的 EVPN BUM 流量
$ nv set bridge domain br_default vlan 10 vni 10 flooding multicast-group 239.1.1.110
$ nv set nve vxlan flooding multicast-group 224.0.0.10

以太网虚拟专用网络 - EVPN

EVPN 是一种基于标准的控制平面,它依赖于多协议 BGP (MP-BGP),并允许大规模构建和部署 VXLAN。EVPN 支持子网内桥接和子网间路由,包括多租户支持。

此速查表包含基本的 EVPN 配置命令。有关更多信息和附加配置,请参阅以太网虚拟专用网络 - EVPN 文档。

命令语法
描述和示例
nv set evpn enable on在交换机上全局启用 EVPN 功能。您无需为每个 VRF 启用 EVPN,它是自动设置的。
$ nv set evpn enable on
nv set vrf <vrf-name> router bgp neighbor <neighbor> address-family l2vpn-evpn enable on在 BGP 邻居之间激活 EVPN 地址族。您需要在 default VRF 中设置 EVPN 邻居。
$ nv set vrf default router bgp neighbor swp51 address-family l2vpn-evpn enable on
nv set evpn route-advertise default-gateway on在使用 EVPN 集中式路由时,启用将默认网关通告到 EVPN 中。您可以为每个 VNI 设置此项,但 NVIDIA 建议全局设置。
$ nv set evpn route-advertise default-gateway on
nv set vrf <vrf-name> evpn vni <vni-id>在使用 EVPN 对称路由时,为租户 VRF 创建第 3 层 VNI。首先,确保创建租户 VRF 并向其添加 SVI。
$ nv set vrf RED vni 4001
nv set vrf <vrf-name> router bgp address-family ipv4-unicast route-export to-evpn enable on启用交换机以安装来自 VRF BGP RIB 的 EVPN type-5 路由。首先,确保创建租户 VRF 并为其设置第 3 层 VNI。
$ nv set vrf RED router bgp address-family ipv4-unicast route-export to-evpn enable on
nv set evpn multihoming enable on在交换机上启用 EVPN 多宿主 (EVPN-MH)。
$ nv set evpn multihoming enable on
nv set interface <bond-name> evpn multihoming segment local-id <id>在 bond 接口上配置 EVPN-MH ESI。每个 ES 在整个结构中必须具有相同的 ESI。您必须在交换机上的每个 bond 接口上设置唯一的 ESI。
$ nv set interface bond2 evpn multihoming segment local-id 2
nv set interface <bond-name> evpn multihoming segment mac-address <mac-address>为每个 bond 接口配置 EVPN-MH ES MAC 地址。ES MAC 地址和 ESI 生成唯一的 EVPN type-3 路由。ES MAC 地址在所有面向同一服务器的接口上必须相同。
$ nv set interface bond1 evpn multihoming segment mac-address 44:38:39:BE:EF:AA
nv set interface <bond-name> evpn multihoming segment df-preference <value>配置 EVPN-MH ES DF。DF 处理通过 VXLAN 隧道接收到本地 ES 的洪泛流量。默认 DF 值为 32767。NVIDIA 建议设置 DF 优先级以避免不可预测的故障情况。
$ nv set interface bond1 evpn multihoming segment df-preference 50000
nv set interface <interface> evpn multihoming uplink on配置 EVPN-MH 上行链路端口。当所有 ES 上行链路端口都关闭时,所有 bond 都将进入错误禁用状态,以防止出现没有 VXLAN 叠加隧道的活动 MH bond。
$ nv set interface swp51-54 evpn multihoming uplink on

Cumulus Linux 用户指南的配置示例部分提供了 EVPN 第 2 层路由、集中式路由、对称路由和 EVPN-MH 的示例。

您还可以使用 Air Marketplace 中的这些预构建模拟来检查和尝试 EVPN 最佳实践

访问控制列表 - ACL

Cumulus Linux 中的 ACL 基于 Linux iptablesebtables,具有以下默认行为

  • 没有隐式拒绝。ACL 必须以 match anyaction deny 规则结尾,以丢弃所有不匹配的流量。
  • 不支持通配符掩码。您必须单独列出子网。

除了 NVUE 命令之外,您还可以通过设置 ebtableiptable 规则来配置 ACL。您还可以使用内置的 ACL 管理工具 cl-acltool。有关更多信息,请参阅Netfilter - ACL 文档。

命令语法
描述和示例
nv set acl <acl-name> type <type>创建 IPv4、IPv6 或 MAC 访问列表。您必须设置 ACL 类型。
$ nv set acl DENY_TCP_HTTP type ipv4
nv set acl <cl-name> rule <rule-id> match <match>将 ACL 规则设置为 match 某些参数。您必须根据 ACL 类型设置参数。例如,您不能为 IPv4 ACL 类型设置 match mac X:X:X:X:X:X
$ nv set acl DENY_TCP_HTTP rule 10 match ip protocol tcp
$ nv set acl DENY_TCP_HTTP rule 10 match ip source-ip ANY
$ nv set acl DENY_TCP_HTTP rule 10 match ip source-port ANY
$ nv set acl DENY_TCP_HTTP rule 10 match ip dest-ip 10.0.15.8/32
$ nv set acl DENY_TCP_HTTP rule 10 match ip dest-port 80
nv set acl <acl-name> rule <rule-id> action <action>为匹配的流量设置 ACL 规则操作(permitdenysetspanerspanpolicelog)。除了基本的 permitdeny 操作之外,您还可以使用 ACL 修改和操作匹配的流量。
$ nv set acl DENY_TCP_HTTP rule 10 action drop
nv set interface <interface> acl <acl-name> <direction>在接口上应用 ACL。您需要选择 ACL 绑定方向,inbound 用于入口流量,outbound 用于出口流量。
$ nv set interface swp1 acl DENY_TCP_HTTP inbound
nv set interface <interface> acl <acl-name> <direction> control-plane在控制平面上应用 ACL 并绑定到接口(在 inboundoutbound 方向上)。
$ nv set interface swp1 acl deny_icmp inbound control-plane

监控命令

NVUE 监控命令显示您的网络配置方式。监控命令分为类别(对象),其中包括子命令。通用命令语法为 nv show <category> <subcommand> <subcommand> <...>。您可以使用 TAB 键完成来浏览命令。

命令语法
描述
nv show acl <name>显示访问列表配置。
nv show action显示有关重置计数器和消除冲突的操作命令的信息。
nv show bridge显示网桥域配置。
nv show evpn显示 EVPN 配置。
nv show interface显示接口配置。
nv show mlag显示 MLAG 配置。
nv show nve显示网络虚拟化配置,例如 VXLAN 特定的 MLAG 配置和 VXLAN 洪泛。
nv show platform显示平台配置,例如硬件和软件组件。
nv show qos显示 QoS RoCE 配置。
nv show router显示路由器配置,例如路由器策略、全局 BGP 和 OSPF 配置、PBR、PIM、IGMP、VRR 和 VRRP 配置。
nv show service显示 DHCP 中继和服务器、NTP、PTP、LLDP 和 Syslog 配置。
nv show system显示全局系统设置,例如 PBR 的保留路由表范围和第 3 层 VNI 的保留 VLAN 范围。您还可以查看系统登录消息和交换机重启历史记录。
nv show vrf显示 VRF 配置。

NVUE 为 nv show 命令提供了其他选项。这些选项可以使用命令标志获得。

命令语法
描述
--applied显示所示对象的已应用配置。
--operational显示所示对象的运行配置。appliedoperational 配置必须相同。
--color显示带颜色或不带颜色的输出。
--help显示命令的帮助。此选项也适用于 nv setnv unset 命令。
--outputjsonyaml 格式显示输出。
--paginate分页输出。
--pending显示对象的待处理配置。已 setunset 但尚未应用或保存的配置。
--rev <revision>显示分离的待处理配置(使用 nv detach 命令)。
--startup显示交换机启动配置(使用 nv config save 命令)。
--view显示以下不同视图:brieflldpmacpluggablessmall。此选项仅适用于 nv show interface 命令。例如,nv show interface --view=small 命令显示交换机上接口的列表,而 nv show interface --view=brief 命令显示有关交换机上每个接口的信息,例如接口类型、速度、远程主机和端口。

以下是一些有用的 show 命令

命令语法
描述
nv show interface显示所有接口的状态。您可以指定一个接口以显示其配置和运行状态。对于每个特定接口信息,请在命令中使用接口名称。
nv show platform hardware显示交换机硬件相关信息,例如 ASIC 型号、CPU、内存、序列号等。
nv show platform environment显示交换机风扇、LED、PSU 和传感器信息。
nv show platform software显示已安装的系统软件包及其版本。
nv show system cpu显示系统 CPU 信息和利用率。
nv show system memory显示系统内存信息和利用率。
nv show service ntp显示 NTP 服务配置和状态。
nv show system wjh packet-buffer显示交换机上的 刚刚发生 (WJH) 配置和丢包事件。
nv show bridge domain br_default mac-table显示网桥 MAC 地址表。
nv show bridge domain br_default stp显示网桥生成树状态。
nv show bridge domain br_default vlan显示网桥 VLAN 列表和 VNI 映射(如果已配置)。
nv show interface swp1 bridge domain br_default显示接口的 VLAN 和生成树状态。
nv show interface swp1 bridge domain br_default显示接口的 VLAN 和生成树状态。
nv show mlag显示 MLAG 配置和运行状态。
nv show mlag consistency-checker显示 MLAG 对等体之间的配置一致性和冲突。
nv show mlag vni显示两个 MLAG 对等体上的 VNI 配置。
nv show nve显示 NVE 接口 (VTEP) 配置和运行状态。
nv show acl显示访问列表配置。

操作命令

NVUE 操作命令重置接口的计数器并消除 protodown MLAG bond 的冲突。

命令语法
描述
nv action clear interface <interface> qos roce counters重置接口 RoCE 计数器。
$ nv action clear interface swp1 qos roce counters
nv action clear interface <bond-name> bond mlag lacp-conflict消除 protodown MLAG bond 中的重复伙伴 MAC 地址或伙伴 MAC 地址不匹配冲突。
$ nv action clear interface bond1 bond mlag lacp-conflict

配置管理

NVUE 利用 Git 引擎来管理配置,以便您可以像处理代码一样处理配置。

命令语法描述
nv config apply应用待处理的配置。
-y--assume-yes 标志自动回复 yes 到所有提示(使用 --assume-no 标志回复 no)。
配置 apply 不会将配置保存为启动配置,您需要运行 nv config save
您可以使用 --confirm 标志来利用 commit-confim 功能(--confirm-status 显示确认剩余时间)。
nv config detach删除当前的待处理配置。
nv config diff <revision-a> <revision-b>

nv config diff <revision> <revision> -o commands
显示两个配置修订之间的差异,例如 pendingapplied 配置,或 detachedpending 配置。
如果您使用 -o commands,则 show 命令以 NVUE 命令语法显示信息。
nv config history <nvue-file>显示配置修订(文件)的应用历史记录。
nv config patch <nvue-file>使用指定的 YAML 配置文件更新待处理的配置。有关更多信息,请参阅 NVUE 代码片段
nv config replace <nvue-file>将待处理的配置替换为指定的 YAML 配置文件。
nv config save使用已应用的配置覆盖启动配置(写入 /etc/nvue.d/startup.yaml)。此配置在重启后仍然保留。
nv config show
nv config show -o commands
yaml 格式显示当前已应用的配置。
如果您使用 -o commands,则 show 命令以 NVUE 命令语法显示信息。