NVUE CLI
NVUE CLI 具有扁平结构,而不是模态结构。因此,您可以从主提示符运行所有命令,而不是仅在特定模式下运行。
您可以选择使用 NVUE 命令或 Linux 命令(使用 vtysh 或手动编辑配置文件)来配置 Cumulus Linux。不要同时运行 NVUE 配置命令(例如 nv set
、nv unset
、nv action
和 nv config
)和 Linux 命令来配置交换机。NVUE 命令会替换 /etc/network/interfaces
和 /etc/frr/frr.conf
等文件中的配置,并删除您手动添加或使用 Ansible、Chef 或 Puppet 等自动化工具添加的任何配置。
如果您选择使用 NVUE 配置 Cumulus Linux,则可以通过创建代码片段来配置尚不支持 NVUE 对象模型的功能。请参阅 NVUE 代码片段。
命令语法
NVUE 命令都以 nv
开头,并分为四种语法类别
- 配置 (
nv set
和nv unset
) - 监控 (
nv show
) - 配置管理 (
nv config
) - 操作命令 (
nv action
)
命令补全
当您输入命令时,可以使用 Tab 键获取有关有效关键字或选项的帮助。例如,将 Tab 补全与 nv set
一起使用会显示该命令的可能选项,并将您返回到命令提示符以完成该命令。
cumulus@switch:~$ nv set <<press tab>>
acl evpn mlag platform router system
bridge interface nve qos service vrf
cumulus@switch:~$ nv set
命令问号
您可以在命令后键入问号 (?
) 以快速简洁地显示所需的信息。当您键入 ?
时,NVUE 会指定值类型、范围和选项,并简要描述每个选项;例如
cumulus@switch:~$ nv set interface swp1 link state ?
[Enter]
down The interface is not ready
up The interface is ready
cumulus@switch:~$ nv set interface swp1 link mtu ?
<arg> Interface MTU (default:9216 | integer:552 - 9216)
cumulus@switch:~$ nv set interface swp1 link speed ?
<arg> Link speed (default:auto | enum:auto, 10M, 100M, 1G, 10G, 25G,
40G, 50G, 100G, 200G, 400G, 800G | string)
NVUE 还会指示您是否需要为命令提供特定值
cumulus@switch:~$ nv set interface swp1 bridge domain ?
<domain-id> Domain (bridge-name)
命令缩写
NVUE 支持命令缩写,您可以键入一定数量的字符而不是整个命令,以加快 CLI 交互速度。例如,您可以键入 nv sh int
而不是键入 nv show interface
。
如果您键入的命令不明确,NVUE 会显示不明确的原因,以便您可以更正快捷方式。例如
cumulus@switch:~$ nv s i
Error: Ambiguous Command:
set interface
show interface
命令帮助
当您输入命令时,可以通过在命令条目的各个点输入 -h
或 --help
来获取命令语法方面的帮助。例如,要检查 nv set interface
的可用选项,请输入 nv set interface -h
或 nv set interface --help
。
cumulus@switch:~$ nv set interface -h
usage:
nv [options] set interface <interface-id>
Description:
interface Update all interfaces. Provide single interface or multiple interfaces using ranging (e.g. swp1-2,5-6 -> swp1,swp2,swp5,swp6).
Identifiers:
<interface-id> Interface (interface-name)
General Options:
-h, --help Show help.
命令列表
您可以通过运行 nv list-commands
列出所有 NVUE 命令。请参阅下面的 列出所有 NVUE 命令。
命令历史记录
在命令提示符下,按向上箭头键和向下箭头键可在先前输入的命令列表中前后移动。当您找到要使用的命令时,可以按 Enter 键运行该命令。您也可以在运行命令之前修改命令。
命令类别
NVUE CLI 具有扁平结构;但是,命令分为四个功能类别
配置命令
NVUE 配置命令修改交换机配置。您可以设置和取消设置配置选项。
nv set
和 nv unset
命令属于以下类别。每个命令组都包含子命令。使用命令补全(按 Tab 键)列出子命令。
命令组 | 描述 |
---|---|
nv set acl nv unset acl | 配置访问控制列表。 |
nv set bridge nv unset bridge | 配置网桥。您可以在此处配置网桥属性,例如网桥类型(VLAN 感知)、STP 状态和优先级以及 VLAN。 |
nv set evpn nv unset evpn | 配置 EVPN。您可以在此处启用和禁用 EVPN 控制平面,并设置 EVPN 路由通告、多宿主和重复地址检测选项。 |
nv set interface <interface-id> nv unset interface <interface-id> | 配置交换机接口。使用此命令配置绑定和网桥接口、接口 IP 地址和描述、VLAN ID 以及 链路(MTU、FEC、速度、双工等)。 |
nv set mlag nv unset mlag | 配置 MLAG。您可以在此处配置备份 IP 地址或接口、MLAG 系统 MAC 地址、对等 IP 地址、MLAG 优先级以及绑定启动前的延迟。 |
nv set nve nv unset nve | 配置网络虚拟化 (VXLAN) 设置。您可以在此处配置 VXLAN 帧的 UDP 端口、控制通过 VXLAN 隧道的动态 MAC 学习、启用和禁用 ARP 和 ND 抑制,以及配置 Cumulus Linux 如何处理覆盖网络中的 BUM 流量。 |
nv set platform nv unset platform | 配置每秒脉冲数;物理硬件时钟的最简单同步形式。 |
nv set qos nv unset qos | 配置 QoS RoCE。 |
nv set router nv unset router | 配置路由器策略(前缀列表规则和路由映射),设置全局 BGP 选项(启用和禁用、ASN 和路由器 ID、BGP 优雅重启和关闭)、全局 OSPF 选项(启用和禁用、路由器 ID 和 OSPF 计时器)、PIM、IGMP、PBR、VRR 和 VRRP。 |
nv set service nv unset service | 配置 DHCP 中继和 DHCP 服务器、NTP、PTP、LLDP、DNS 和 syslog。 |
nv set system nv unset system | 配置系统设置,例如交换机的主机名、登录前和登录后消息、重启选项(热重启、冷重启、快速重启)、时区和全局系统设置,例如任播 ID、系统 MAC 地址和任播 MAC 地址。您还可以在此处配置 SNMP、SPAN 和 ERSPAN 会话、遥测,并设置配置应用操作的工作方式(要忽略的文件和要覆盖的文件;请参阅 配置 NVUE 以忽略 Linux 文件)。 |
nv set vrf <vrf-id> nv unset vrf <vrf-id> | 配置 VRF。您可以在此处配置 PTP、BGP、OSPF 和 EVPN 的 VRF 级别配置。 |
监控命令
NVUE 监控命令显示网络配置的各个部分。例如,您可以显示完整的网络配置或仅显示接口配置。监控命令分为以下类别。每个命令组都包含子命令。使用命令补全(按 Tab 键)列出子命令。
命令组 | 描述 |
---|---|
nv show acl | 显示访问控制列表配置。 |
nv show action | 显示有关重置计数器和消除冲突的操作命令的信息。 |
nv show bridge | 显示网桥配置。 |
nv show evpn | 显示 EVPN 配置。 |
nv show interface | 显示 接口 配置和计数器。 |
nv show mlag | 显示MLAG 配置。 |
nv show nve | 显示 网络虚拟化 (VXLAN) 配置,例如 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 中继和 DHCP 服务器配置、NTP、PTP、LLDP 和 syslog 配置。 |
nv show system | 显示系统设置。 |
nv show vrf | 显示 VRF 配置。 |
以下示例显示按 Tab 键后的 nv show router
命令,然后显示 nv show router bgp
命令的输出。
cumulus@leaf01:mgmt:~$ nv show router <<tab>>
adaptive-routing igmp pbr ptm
bgp nexthop pim vrr
graceful-restart ospf policy vrrp
cumulus@leaf01:mgmt:~$ nv show router bgp
applied
------------------------------ -----------
enable on
autonomous-system 65101
router-id 10.10.10.1
policy-update-timer 5
graceful-shutdown off
wait-for-install off
graceful-restart
mode helper-only
restart-time 120
path-selection-deferral-time 360
stale-routes-time 360
convergence-wait
time 0
establish-wait-time 0
queue-limit
input 10000
output 10000
如果没有挂起或已应用的配置更改,则 nv show
命令仅显示正在运行的配置(在 operational 下)。
某些 nv show
命令有其他选项可用。例如,您可以选择要显示的配置(pending、applied、startup 或 operational)。您还可以打开彩色输出,并分页特定输出。
选项 | 描述 |
---|---|
--applied | 显示使用 nv config apply 命令应用的配置。例如,nv show --applied 。 |
--brief-help | 显示有关 nv show 命令的帮助。例如,nv show interface swp1 --brief-help |
--color | 打开或关闭彩色输出。例如,nv show interface swp1 --color on |
--filter | 根据列数据过滤 show 命令输出。例如,nv show interface --filter mtu=1500 仅显示 MTU 设置为 1500 的接口。有关更多信息,请参阅下面的 过滤 nv show 命令输出。 |
--hostname | 显示具有指定主机名的交换机的系统配置。例如,nv show --hostname leaf01 。 |
--operational | 显示正在运行的配置(实际系统状态)。例如,nv show interface swp1 --operational 显示 swp1 的正在运行的配置。正在运行的配置和已应用的配置应相同。如果不同,请检查日志。 |
--output | 以表格 (auto )、json 或 yaml 格式显示命令输出。例如nv show interface bond1 --output auto nv show interface bond1 --output json nv show interface bond1 --output yaml |
--paginate | 分页输出。例如,nv show interface bond1 --paginate on 。 |
--pending | 显示上次应用的配置以及您尚未应用的任何挂起的 set 或 unset 配置。例如,nv show interface bond1 --pending 。 |
--rev <revision> | 显示分离的挂起配置。请参阅下面的 nv config detach 配置管理命令。例如,nv show --rev 1 。您还可以在 nv show 输出中仅显示已应用的或仅显示 operational 信息。例如,要仅显示 swp1 配置的已应用设置,请运行 nv show interface swp1 --rev=applied 命令。要仅显示 swp1 配置的 operational 设置,请运行 nv show interface swp1 --rev=operational 命令。 |
--startup | 显示使用 nv config apply 命令保存的配置。这是交换机启动后的配置。例如:nv show interface --startup 。 |
--tab | 以 Tab 格式显示信息。例如,nv show interface swp1 --tab. |
--view | 显示不同的视图。视图是某些 nv show 命令提供的信息的子集。要查看 nv show 命令可用的视图,请运行带有 --view 的命令并按 TAB 键(例如 nv show interface --view )。 |
以下示例显示挂起的 BGP 优雅重启配置
cumulus@switch:~$ nv show router bgp graceful-restart --pending
Rev ID: 8
---------------------------- -----------------
mode helper-only
path-selection-deferral-time 360
restart-time 120
stale-routes-time 360
以下示例显示 nv show interface
命令可用的视图
cumulus@switch:~$ nv show interface --view <<TAB>>
acl-statistics counters down neighbor small vrf
bond-members description lldp physical status
bonds detail lldp-detail port-security svi
brief dot1x-counters mac qos-profile synce-counters
carrier-stats dot1x-summary mlag-cc rates up
配置管理命令
NVUE 配置管理命令管理和应用配置。
命令 | 描述 |
---|---|
nv config apply | 将挂起的配置 (nv config apply ) 或特定修订版本 (nv config apply 2 ) 自动保存到启动配置(当自动保存为 on 时,这是默认设置)。要查看您可以应用的修订版本列表,请运行 nv config apply <<Tab>> 。您还可以使用以下提示选项
--confirm 应用配置更改,但您必须确认已应用的配置。如果您未在十分钟内确认,配置将自动回滚。您可以使用 apply --confirm <time> 命令更改默认时间。例如,nv config apply --confirm 60m 要求您在一小时内确认。--confirm-status 显示自动回滚之前剩余的时间量。 |
nv config detach | 将配置与当前挂起的配置分离,并使用整数来标识它;例如,4 。要列出所有当前分离的挂起配置,请运行 nv config diff <<press tab> 。 |
nv config diff <revision> <revision> | 显示配置之间的差异,例如挂起的配置和已应用的配置,或分离的配置和挂起的配置。 |
nv config find <string> | 根据您提供的搜索字符串查找已应用配置的一部分。例如,要在已应用配置中查找 swp1,请运行 nv config find swp1 。 |
nv config history | 使您能够跟踪交换机上的配置更改,并显示一个表格,其中包含配置修订版本 ID、更改的日期和时间、进行更改的用户帐户以及更改类型(例如 CLI 或 REST API)。nv config history <revision> 命令显示特定修订版本的应用历史记录。 |
nv config patch <nvue-file> | 使用指定的 YAML 配置文件更新挂起的配置。 |
nv config replace <nvue-file> | 使用指定的 YAML 配置文件替换挂起的配置。 |
nv config revision | 显示交换机上的所有配置修订版本。 |
nv config save | 通过写入 /etc/nvu.d/startup.yaml 文件,使用已应用的配置覆盖启动配置。配置在重启后仍然保留。当自动保存选项关闭时,请使用此命令。 |
nv config show | 以 yaml 格式显示当前应用的配置。此命令还显示 NVUE 版本信息。 |
nv config show -o commands | 显示当前应用的配置命令。 |
nv config diff -o commands | 显示两个配置修订版本之间的差异。 |
当您在交换机上升级 Cumulus Linux 时,可以使用 NVUE 配置管理命令来备份和恢复配置。请参阅 升级 Cumulus Linux。
操作命令
NVUE 操作命令获取并安装映像文件、升级系统软件包、运行 ping 和 traceroute、禁用系统维护和 ZTP 脚本、清除计数器、轮换日志文件,并提供系统重启和 TACACS 用户断开连接选项。
命令 | 描述 |
---|---|
nv action abort | 如果 ZTP 处于发现过程中或当前未运行脚本,则终止 ZTP。 |
nv action boot-next | 为优化(双分区)升级设置启动分区。 |
nv action change | 设置软件时钟日期和时间。 |
nv action clear | 提供用于清除 ACL 统计信息、重复地址、PTP 违规、从 protodown 状态恢复的接口、接口计数器、QoS 缓冲区、BGP 路由、OSPF 接口计数器、路由映射匹配项以及移除 protodown MLAG 链路聚合组中的冲突的命令。 |
nv action deauthenticate interface <interface> dot1x authorized-sessions | 取消指定接口上的 802.1X 客户端的身份验证。如果您不想在取消身份验证时通知客户端,可以添加 silent 选项;例如,nv action deauthenticate interface swp1 dot1x authorized-sessions 00:55:00:00:00:09 silent 。 |
nv action delete | 提供用于删除 二进制镜像文件、日志文件、软件包、CA 和实体证书以及 技术支持文件的命令。 |
nv action disable | 提供用于禁用 系统维护模式和 ZTP 脚本的命令。 |
nv action disconnect | 提供用于断开登录到交换机的用户的命令。 |
nv action enable | 提供用于启用 系统维护模式和 ZTP 脚本的命令。 |
nv action export | 导出系统配置文件。 |
nv action fetch | 获取 二进制镜像文件、软件包文件、配置文件和平台固件。 |
nv action generate | 生成 cl-support 文件。 |
nv action import | 提供用于导入 CA 和实体证书的命令。 |
nv action install | 安装 系统镜像文件。 |
nv action lookup | 在路由表中查找特定目标的路由。 |
nv action ping | 提供用于运行 ping 的命令。 |
nv action reboot | 在配置的重启模式(fast、cold 或 warm)下重启交换机。您必须在此命令中指定 no-confirm 选项。 |
nv action rename | 提供用于系统镜像文件的命令。 |
nv action reset | 提供用于重置收发器以及将交换机重置为 出厂默认设置的命令。 |
nv action rotate | 提供用于轮换系统日志文件的命令。 |
nv action run | 提供用于运行 ZTP 脚本的命令。 |
nv action schedule | 配置 高频遥测数据收集的计划。 |
nv action traceroute | 提供用于运行 traceroute 的命令。 |
nv action rename | 重命名系统配置。 |
nv action upgrade | 升级系统软件包. |
nv action upload | 将 系统镜像文件、cl-support 文件和配置文件上传到交换机。 |
列出所有 NVUE 命令
要显示 NVUE 命令的完整列表,请运行 nv list-commands
。例如
cumulus@switch:~$ nv list-commands
nv show platform
nv show platform inventory
nv show platform inventory <inventory-id>
nv show platform software
nv show platform software installed
nv show platform software installed <installed-id>
nv show platform firmware
nv show platform firmware <platform-component-id>
nv show platform environment
...
您可以显示命令组的命令列表。例如,要显示接口命令列表
cumulus@switch:~$ nv list-commands interface
nv show interface
nv show interface <interface-id>
nv show interface <interface-id> ip
nv show interface <interface-id> ip address
nv show interface <interface-id> ip address <ip-prefix-id>
nv show interface <interface-id> ip gateway
nv show interface <interface-id> ip gateway <ip-address-id>
...
要查看 Cumulus Linux 的 NVUE 命令参考,其中描述了所有 NVUE CLI 命令并提供了示例,请访问 NVUE 命令参考。
NVUE 配置文件
当您保存网络配置时,NVUE 会将配置写入 /etc/nvue.d/startup.yaml
文件。
您可以编辑或替换 /etc/nvue.d/startup.yaml
文件的内容。仅当 nvue-startup.service
正在运行时,NVUE 才会在系统启动期间应用 /etc/nvue.d/startup.yaml
文件中的配置。如果此服务未运行,则交换机将使用重启前运行的相同配置重启。
要启动 nvue-startup.service
cumulus@switch:~$ sudo systemctl enable nvue-startup.service
cumulus@switch:~$ sudo systemctl start nvue-startup.service
当您使用 nv config apply
应用配置时,NVUE 还会写入底层的 Linux 文件,例如 /etc/network/interfaces
和 /etc/frr/frr.conf
。您可以查看这些配置文件;但是,在使用 NVUE 时,请勿手动编辑它们。如果您需要手动配置某些网络设置或使用 Ansible 等自动化工具来配置交换机,请参阅下文的配置 NVUE 以忽略 Linux 文件。
默认启动文件
NVUE 提供了一个默认的 /etc/nvue.d/startup.yaml
文件,其中包含交换机主机名、默认防火墙规则和 cumulus
用户帐户凭据等配置。该文件还启用了 NVUE API。此文件是您可以随时恢复的出厂配置文件。
- 默认启动配置文件将默认主机名设置为
cumulus
;因此,Cumulus Linux 不接受 DHCPhost-name
选项。要使用 NVUE 设置不同的主机名,请参阅配置主机名。如果您不使用 NVUE 管理交换机,并且想要使用 Linux 配置文件更改此行为,请参阅这篇知识库文章。 - 默认 NVUE
startup.yaml
文件包含cumulus
用户帐户,这是系统的默认帐户。修改 NVUE 配置以不包含cumulus
用户帐户、替换配置或应用启动配置,都会删除cumulus
帐户。要合并配置更改或恢复备份的startup.yaml
文件,请使用 使用 NVUE 备份和恢复配置中所述的nv config patch
命令。 - 您无法删除已登录的用户帐户。
加密密码
默认情况下,NVUE 会加密 startup.yaml
文件中的密码,例如 RADIUS 密钥、TACACS 密钥、BGP 对等密码、OSPF MD5 密钥和 SNMP 字符串。您可以使用 nv set system security encryption db state disabled
命令禁用密码加密
cumulus@switch:~$ nv set system security encryption db state disabled
cumulus@switch:~$ nv config apply
要将密码加密设置回默认设置(启用),请运行 nv unset system security encryption db state
命令或 nv set system security encryption db state enabled
命令。
要显示密码加密是否为 on
,请运行 nv show system security encryption
命令
cumulus@switch:~$ nv show system security encryption
operational applied
------- ----------- -------
db
state enabled
NVUE 管理的配置文件
NVUE 管理以下配置文件
文件 | 描述 |
---|---|
/etc/network/interfaces | 配置系统上可用的网络接口。 |
/etc/frr/frr.conf | 配置 FRRouting。 |
/etc/cumulus/switchd.conf | 配置 switchd 选项。 |
/etc/cumulus/switchd.d/ptp.conf | 配置 PTP 时间戳。 |
/etc/frr/daemons | 配置 FRRouting 服务。 |
/etc/hosts | 配置交换机的主机名。 |
/etc/default/isc-dhcp-relay-default | 配置 DHCP 中继选项。 |
/etc/dhcp/dhcpd.conf | 配置 DHCP 服务器选项。 |
/etc/hostname | 配置交换机的主机名。 |
/etc/cumulus/datapath/qos/qos_features.conf | 配置 QoS 设置,例如流量标记、整形和流控制。 |
/etc/mlx/datapath/qos/qos_infra.conf | 配置 QoS 平台特定配置,例如缓冲区分配和 Alpha 值。 |
/etc/cumulus/switchd.d/qos.conf | 配置 QoS 设置。 |
/etc/cumulus/ports.conf | 配置端口分离。 |
etc/ntpsec/ntp.conf | 配置 NTP 设置。 |
/etc/ptp4l.conf | 配置 PTP 设置。 |
/etc/snmp/snmpd.conf | 配置 SNMP 设置。 |
搜索特定配置
要搜索 NVUE 配置的特定部分,请运行 nv config find <search string>
命令。搜索结果会显示搜索字符串上方和下方的所有项目。例如,要在整个 NVUE 对象模型配置中搜索任何提及 bond1
的内容
cumulus@switch:~$ nv config find bond1
- set:
interface:
bond1:
bond:
lacp-bypass: on
member:
swp1: {}
mlag:
enable: on
id: 1
bridge:
domain:
br_default:
access: 10
link:
mtu: 9000
type: bond
配置 NVUE 以忽略 Linux 文件
您可以配置 NVUE 在应用配置更改时忽略某些底层的 Linux 文件。例如,如果您使用 Ansible 和 Jinja2 文件模板将某些配置推送到交换机,或者您想为 PTP 等特定服务使用自定义配置,您可以确保 NVUE 永远不会写入这些配置文件。
以下示例配置 NVUE 在应用配置更改时忽略 Linux /etc/ptp4l.conf
文件。
cumulus@switch:~$ nv set system config apply ignore /etc/ptp4l.conf
cumulus@switch:~$ nv config apply
自动保存
默认情况下,当您运行 nv config apply
命令来应用配置设置时,NVUE 会应用待定配置以使其成为已应用配置,并自动将更改保存到启动配置文件 (/etc/nvue.d/startup.yaml
)。
要禁用自动保存,以便 NVUE 不保存已应用的配置更改,请运行 nv set system config auto-save state disabled
命令
cumulus@switch:~$ nv set system config auto-save state disabled
cumulus@switch:~$ nv config apply
当您禁用自动保存时,您必须运行 nv config save
命令将已应用的配置保存到启动配置,以便更改在重启后仍然保留。
要重新启用自动保存,请运行 nv set system config auto-save state enabled
命令。
显示交换机配置
要显示交换机上已应用的配置,请运行 nv config show
命令
cumulus@switch:~$ nv config show
header:
model: VX
nvue-api-version: nvue_v1
rev-id: 1.0
version: Cumulus Linux 5.7.0
- set:
bridge:
domain:
br_default:
vlan:
'10':
vni:
'10': {}
'20':
vni:
'20': {}
'30':
vni:
'30': {}
...
要以 YAML 格式显示交换机上的配置并包含所有默认选项,请运行 nv config show --all
命令。
添加配置应用消息
当您运行 nv config apply
命令时,您可以添加一条消息来描述您所做的配置更新。您可以在运行 nv config history
命令时看到该消息。
要添加配置应用消息,请运行 nv config apply -m <message>
命令。如果消息包含多个单词,请将消息用引号括起来。
cumulus@switch:~$ nv config apply -m "this is my message"
将 NVUE 配置重置为默认值
要将交换机上的 NVUE 配置重置为默认值,请运行 nv config replace <filename>
命令;例如
cumulus@switch:~$ nv config replace /usr/lib/python3/dist-packages/cue_config_v1/initial.yaml
cumulus@switch:~$ nv config apply
分离待定配置
以下示例配置环回接口的 IP 地址,然后从当前的待定配置中分离该配置。Cumulus Linux 将分离的配置保存到一个带有数值的文件中,以将其与其他待定配置区分开来。
cumulus@switch:~$ nv set interface lo ip address 10.10.10.1/32
cumulus@switch:~$ nv config detach
查看配置之间的差异
要查看配置之间的差异,请运行 nv config diff
命令。
要查看两个分离的待定配置之间的差异,请运行 nv config diff
«tab» 命令以列出所有当前分离的待定配置,然后运行 nv config diff
命令,并指定要比较的待定配置。
cumulus@switch:~$ nv config diff <<press tab>>
1 2 3 4 5 6 applied empty startup
cumulus@switch:~$ nv config diff 2 3
- unset:
system:
wjh:
channel:
forwarding:
trigger:
l2:
要查看已应用配置和启动配置之间的差异
cumulus@switch:~$ nv config diff applied startup
- unset:
interface:
system:
wjh:
替换和修补待定配置
以下示例将待定配置替换为位于 /deps
目录中名为 nv-02/13/2021.yaml
的 YAML 配置文件的内容
cumulus@switch:~$ nv config replace /deps/nv-02/13/2021.yaml
以下示例修补待定配置(从位于 /deps
目录中的 nv-02/13/2021.yaml
文件中的配置运行 set 或 unset 命令)
cumulus@switch:~$ nv config patch /deps/nv-02/13/2021.yaml
一个补丁包含对 NVUE 服务的单个请求。补丁中参数的顺序无法保证;NVUE 不支持在单个补丁中对同一对象同时使用 unset 和 set 命令。
翻译配置修订版或文件
NVUE 提供了将 NVUE 配置修订版或 yaml 文件翻译成 NVUE 命令的命令。修订版 ID 必须是整数或命名的修订版(例如 startup 或 applied)。配置文件必须位于交换机上,并且必须包含要翻译的配置文件的完整路径。文件必须为 YAML 格式,并且必须具有适当的读取权限才能访问。
配置文件翻译目前在 API 中不可用。
要翻译特定的 NVUE 配置修订版,请运行 nv config translate revision <revision-id>
命令。NVUE 会在控制台上显示翻译结果。
以下命令翻译修订版 1 中的配置
cumulus@switch:~$ nv config translate revision 10
以下命令翻译已应用修订版中的配置
cumulus@switch:~$ nv config translate revision applied
要翻译配置文件,请运行 nv config translate filename <filename>
命令。以下示例翻译 /home/cumulus
目录中的 backup.yaml
文件。NVUE 会在控制台上显示翻译结果。
cumulus@switch:~$ nv config translate filename /home/cumulus/backup.yaml
如果修订版或 yaml 文件不可读、格式无效或包含无效参数,NVUE 将返回错误消息,并提示您在继续之前更正问题。
基于会话的身份验证
NVUE 使用会话来验证和授权请求。在通过第一个请求验证用户身份后,NVUE 会将会话存储在 nvued
缓存中。NVUE 在本地验证会话中后续的交互,这样它就不必一直与外部身份验证服务器进行检查。此过程提高了系统性能和效率,使其非常适合高流量环境。
- 如果您在交换机本地更改用户组、密码、RADIUS、TACACS 或 LDAP 服务器设置,NVUE 会自动清除当前会话。
- 如果您直接在 RADIUS、TACACS 或 LDAP 服务器上进行更改,则必须使用
nv action clear system api session user <user>
命令清除用户会话,或使用nv action clear system api session
命令清除所有会话。
以下示例清除 admin
用户会话
cumulus@switch:~$ nv action clear system api session user admin
以下示例清除所有会话
cumulus@switch:~$ nv action clear system api session
如果您在直接在 RADIUS、TACACS 或 LDAP 服务器上进行更改后不清除用户会话,NVUE 将使用现有会话进行身份验证和授权,直到会话超时(最长 60 分钟)。
密码和特殊字符
如果您在密码中使用某些特殊字符,则必须引用或转义(使用反斜杠)这些字符,以便系统理解它们是密码的一部分。
下表显示了您可以为每个特殊字符使用的引号或转义符。
- 正常使用 表示您可以直接使用特殊字符,无需引号或反斜杠。
- 单引号 和 双引号 表示您需要将整个密码用引号括起来。
特殊字符 | 正常使用 | 单引号 ('' ) | 双引号 ("" ) | 转义 (\ ) |
---|---|---|---|---|
反引号 (` ) | x | ✓ | 1 | ✓ |
感叹号 (! ) | x | ✓ | x | ✓ |
分号 (; ) | x | ✓ | ✓ | ✓ |
与号 (& ) | x | ✓ | ✓ | ✓ |
问号 (? ) | x | ✓ | ✓ | x |
波浪号 (~ ) | x | ✓ | ✓ | ✓ |
艾特符号 (@ ) | ✓ | ✓ | ✓ | ✓ |
井号 (# ) | x | ✓ | ✓ | ✓ |
美元符号 ($ ) | x | ✓ | x | ✓ |
百分号 (% ) | ✓ | ✓ | ✓ | ✓ |
脱字符 (^ ) | ✓ | ✓ | ✓ | ✓ |
星号 (* ) | ✓ | ✓ | ✓ | ✓ |
圆括号 (() ) | x | ✓ | ✓ | ✓ |
短划线 (- ) | ✓ | ✓ | ✓ | ✓ |
下划线 (_ ) | ✓ | ✓ | ✓ | ✓ |
等号 (= ) | ✓ | ✓ | ✓ | ✓ |
加号 (+ ) | ✓ | ✓ | ✓ | ✓ |
竖线 (| ) | x | ✓ | ✓ | ✓ |
方括号 ([] ) | ✓ | ✓ | ✓ | ✓ |
大括号 ({} ) | ✓ | ✓ | ✓ | ✓ |
冒号 (: ) | ✓ | ✓ | ✓ | ✓ |
单引号 (‘ ) | x | x | ✓ | ✓ |
双引号 (“ ) | x | ✓ | x | ✓ |
逗号 (, ) | ✓ | ✓ | ✓ | ✓ |
尖括号 (<> ) | x | ✓ | ✓ | ✓ |
斜杠 (/ ) | ✓ | ✓ | ✓ | ✓ |
点号 (. ) | 2 | 2 | 2 | 2 |
空格 | x | x | 3 | x |
- 除了双引号 (
""
) 外,还需要转义 (\
)。 - 您不能在单词的开头使用此字符。
- 即使在双引号内,一个词也不能完全由空格组成。
以下示例显示了一个包含问号 (?) 的密码
cumulus@switch:~$ nv set system aaa user cumulus password “Hello?world123”
以下示例显示了一个包含点号 (.) 的密码
cumulus@switch:~$ nv set system aaa user cumulus password “Hello.world.123”
以下示例显示了一个包含点号 (.) 和波浪号 (~) 的密码
cumulus@switch:~$ nv set system aaa user cumulus password “Hello.world\~123”
您可能需要在密码中对特殊字符进行编码,例如在 URL 中。下表显示了特殊字符编码。
✓
表示不需要编码。%xx
表示您需要将特殊字符替换为%xx
。
符号 | 正常 | 单引号 ('' ) | 双引号 ("" ) | 转义 (\ ) |
---|---|---|---|---|
反引号 (` ) | %60 | ✓ | %60 | ✓ |
感叹号 (! ) | %21 | ✓ | %21 | ✓ |
分号 (; ) | 分号 (; ) | ✓ | ✓ | ✓ |
与号 (& ) | %26 | ✓ | ✓ | ✓ |
问号 (? ) | 问号 (? ) | 问号 (? ) | 问号 (? ) | 问号 (? ) |
波浪号 (~ ) | ✓ | ✓ | ✓ | ✓ |
艾特符号 (@ ) | ✓ | ✓ | ✓ | ✓ |
井号 (# ) | %23 | %23 | %23 | %23 |
美元符号 ($ ) | %24 | ✓ | %24 | ✓ |
百分号 (% ) | ✓ | ✓ | ✓ | ✓ |
脱字符 (^ ) | ✓ | ✓ | ✓ | ✓ |
星号 (* ) | ✓ | ✓ | ✓ | ✓ |
左圆括号 (( ) | %28 | ✓ | ✓ | ✓ |
右圆括号 () ) | %29 | ✓ | ✓ | ✓ |
短划线 (- ) | ✓ | ✓ | ✓ | ✓ |
下划线 (_ ) | ✓ | ✓ | ✓ | ✓ |
等号 (= ) | ✓ | ✓ | ✓ | ✓ |
加号 (+ ) | ✓ | ✓ | ✓ | ✓ |
竖线 (| ) | 竖线 (| ) | ✓ | ✓ | ✓ |
左方括号 ([ ) | %5B | %5B | %5B | %5B |
右方括号 (] ) | %5D | %5D | %5D | %5D |
大括号 ({} ) | ✓ | ✓ | ✓ | ✓ |
冒号 (: ) | ✓ | ✓ | ✓ | ✓ |
单引号 (‘ ) | %27 | %27 | ✓ | ✓ |
双引号 (“ ) | %22 | ✓ | %22 | ✓ |
逗号 (, ) | ✓ | ✓ | ✓ | ✓ |
左尖括号 (< ) | %3C | ✓ | ✓ | ✓ |
右尖括号 (> ) | %3E | ✓ | ✓ | ✓ |
斜杠 (/ ) | 斜杠 (/ ) | 斜杠 (/ ) | 斜杠 (/ ) | 斜杠 (/ ) |
点号 (. ) | ✓ | ✓ | ✓ | ✓ |
空格 | %20 | ✓ | ✓ | ✓ |
以下示例使用密码 Pass#pass1
为用户 user1 获取存储在 IP 地址为 10.0.1.251 的设备上的镜像
cumulus@switch:~$ nv action fetch system image scp://user1:Pass1%23pass1@10.0.1.251/host/nos-images/nvos-amd64-25.02.1857.bin
过滤 nv show 命令输出
根据列数据过滤 show 命令输出;例如,仅显示 MTU 设置为 1500 的接口
cumulus@switch:~$ nv show interface --filter mtu=1500
Interface Admin Status Oper Status Speed MTU Type Remote Host Remote Port Summary
--------- ------------ ----------- ----- ---- ---- --------------- ----------- ---------------------------------------
eth0 up up 1G 1500 eth oob-mgmt-switch swp10 IP Address: 192.168.200.11/24
IP Address: fe80::4638:39ff:fe22:17a/64
swp4 down down 1500 swp
swp5 down down 1500 swp
swp6 down down 1500 swp
swp7 down down 1500 swp
swp8 down down 1500 swp
swp9 down down 1500 swp
swp10 down down 1500 swp
swp11 down down 1500 swp
swp12 down down 1500 swp
swp13 down down 1500 swp
...
要根据多个列输出进行过滤,请将整个过滤器用双引号括起来;例如,显示 MTU 为 9216 的网桥的数据
cumulus@switch:~$ nv show interface --filter "type=bridge&mtu=9216"
Interface Admin Status Oper Status Speed MTU Type Remote Host Remote Port Summary
---------- ------------ ----------- ----- ---- ------ ----------- ----------- ---------------------------------------
br_default up up 9216 bridge IP Address: fe80::4638:39ff:fe22:17a/64
您可以使用通配符;例如,要显示 swp1 的所有以 1 开头的 IP 地址,请运行 nv show interface swp1 --filter "ip.address=1*"
命令。
您可以根据所有修订版(operational、applied 和 pending)进行过滤;例如,要显示已应用修订版中 swp1 的所有以 1 开头的 IP 地址
cumulus@switch:~$ nv show interface --filter "ip.address=1*" --rev=applied
Interface Admin Status Oper Status Speed MTU Type Remote Host Remote Port Summary
--------- ------------ ----------- ----- ---- -------- ----------- ----------- -------------------------
lo loopback IP Address: 10.10.10.1/32
vlan10 9216 svi IP Address: 10.1.10.2/24
vlan20 9216 svi IP Address: 10.1.20.2/24
vlan30 9216 svi IP Address: 10.1.30.2/24
您可以按协议(gp、ospf、kernel、static、ospf6、sharp 或 connected)过滤 FRR nv show vrf <vrf> router rib
命令输出;例如,显示路由表中的所有 BGP IPv4 路由
cumulus@switch:~$ nv show vrf default router rib ipv4 route --filter=protocol=bgp
Flags - * - selected, q - queued, o - offloaded, i - installed, S - fib-
selected, x - failed
Route Protocol Distance Uptime NHGId Metric Flags
--------------- -------- -------- -------------------- ----- ------ -----
10.0.1.34/32 bgp 20 2024-12-17T10:24:14Z 127 0 *Si
10.0.1.255/32 bgp 20 2024-12-17T10:24:10Z 127 0 *Si
10.10.10.2/32 bgp 20 2024-12-17T10:24:10Z 62 0 *Si
10.10.10.3/32 bgp 20 2024-12-17T10:24:17Z 127 0 *Si
10.10.10.4/32 bgp 20 2024-12-17T10:24:10Z 127 0 *Si
10.10.10.63/32 bgp 20 2024-12-17T10:24:10Z 127 0 *Si
10.10.10.64/32 bgp 20 2024-12-17T10:24:17Z 127 0 *Si
10.10.10.101/32 bgp 20 2024-12-17T10:24:10Z 102 0 *Si
10.10.10.102/32 bgp 20 2024-12-17T10:24:10Z 115 0 *Si
10.10.10.103/32 bgp 20 2024-12-17T10:24:10Z 121 0 *Si
10.10.10.104/32 bgp 20 2024-12-17T10:24:10Z 113 0 *Si
您可以按状态(established 或 non-established)过滤 FRR nv show vrf <vrf> router bgp neighbor
命令输出;例如,显示所有 BGP 已建立的邻居
cumulus@switch:~$ nv show vrf default router bgp neighbor --filter=state=established
AS - Remote Autonomous System, PeerEstablishedTime - Peer established time in
UTC format, UpTime - Uptime in milliseconds, Afi-Safi - Address family, PfxSent
- Transmitted prefix counter, PfxRcvd - Recieved prefix counter
Neighbor AS State PeerEstablishedTime UpTime MsgRcvd MsgSent Afi-Safi PfxSent PfxRcvd
------------- ----- ----------- -------------------- ------- ------- ------- ------------ ------- -------
peerlink.4094 65102 established 2024-12-17T10:22:36Z 8998000 3145 3151 ipv4-unicast 13 12
l2vpn-evpn 72 51
swp51 65199 established 2024-12-17T10:22:41Z 8998000 3132 3149 ipv4-unicast 13 8
l2vpn-evpn 72 51
swp52 65199 established 2024-12-17T10:22:44Z 8998000 3125 3139 ipv4-unicast 13 8
l2vpn-evpn 72 51
swp53 65199 established 2024-12-17T10:22:44Z 8998000 3138 3139 ipv4-unicast 13 8
l2vpn-evpn 72 51
swp54 65199 established 2024-12-17T10:22:44Z 8998000 3143 3139 ipv4-unicast 13 8
l2vpn-evpn 72 51
要显示所有 BGP 未建立的邻居
cumulus@switch:~$ nv show vrf default router bgp neighbor --filter=state!=established
AS - Remote Autonomous System, PeerEstablishedTime - Peer established time in
UTC format, UpTime - Uptime in milliseconds, Afi-Safi - Address family, PfxSent
- Transmitted prefix counter, PfxRcvd - Recieved prefix counter
Neighbor AS State PeerEstablishedTime UpTime MsgRcvd MsgSent Afi-Safi PfxSent PfxRcvd
-------- -- ----- ------------------- ------- ------- ------- ------------ ------- -------
swp53 idle 9318000 0 0 ipv4-unicast
l2vpn-evpn
swp54 idle 9318000 0 0 ipv4-unicast
l2vpn-evpn
要显示所有 BGP 邻居的连接信息摘要
cumulus@switch:~$ nv show vrf default router bgp neighbor --view=detail
AS - Remote Autonomous System, PeerEstablishedTime - Peer established time in
UTC format, UpTime - Uptime in milliseconds, Afi-Safi - Address family, PfxSent
- Transmitted prefix counter, PfxRcvd - Recieved prefix counter
Neighbor AS State PeerEstablishedTime UpTime MsgRcvd MsgSent Afi-Safi PfxSent PfxRcvd
------------- ----- ----------- -------------------- -------- ------- ------- ------------ ------- -------
peerlink.4094 65102 established 2025-01-26T15:28:11Z 27073000 561127 473795 ipv4-unicast 11 10
l2vpn-evpn 70 50
swp51 65199 established 2025-01-26T15:28:16Z 27073000 548373 473791 ipv4-unicast 11 8
l2vpn-evpn 70 50
swp52 65199 established 2025-01-26T15:28:19Z 27073000 548377 473789 ipv4-unicast 11 8
l2vpn-evpn 70 50
swp53 idle 27073000 0 0 ipv4-unicast
l2vpn-evpn
swp54 idle 27073000 0 0 ipv4-unicast
l2vpn-evpn
要以 json 格式显示所有 BGP 邻居的连接信息摘要,请运行 nv show vrf default router bgp neighbor -o json
命令。
在 Cumulus Linux 5.11 及更早版本中,nv show vrf default router bgp neighbor -o json
命令输出显示有关 BGP 对等体的更详细信息。要在 Cumulus Linux 5.12 中显示更详细的信息,请运行 nv show vrf <vrf> router bgp neighbor --view=detail -o json
命令。
Show 命令视图包含和省略选项
NVUE show 命令提供 --view
包含和省略选项,让您可以指定要包含或从命令输出中省略的表列。
以下示例显示了 nv show vrf default router rib ipv4 route
命令输出(不带 --view
包含或省略选项)
cumulus@switch:~$ nv show vrf default router rib ipv4 route
Flags - * - selected, q - queued, o - offloaded, i - installed, S - fib-
selected, x - failed
Route Protocol Distance Uptime NHGId Metric Flags
--------------- --------- -------- -------------------- ----- ------ -----
10.0.1.12/32 connected 0 2025-02-08T16:26:22Z 12 0 *Sio
10.0.1.34/32 bgp 20 2025-02-11T16:05:22Z 124 0 *Si
10.0.1.255/32 bgp 20 2025-02-11T16:05:22Z 124 0 *Si
10.10.10.1/32 connected 0 2025-02-08T16:26:13Z 12 0 *Sio
10.10.10.2/32 bgp 20 2025-02-11T16:05:22Z 62 0 *Si
10.10.10.3/32 bgp 20 2025-02-11T16:05:22Z 124 0 *Si
10.10.10.4/32 bgp 20 2025-02-11T16:05:22Z 124 0 *Si
10.10.10.63/32 bgp 20 2025-02-11T16:05:22Z 124 0 *Si
10.10.10.64/32 bgp 20 2025-02-11T16:05:22Z 124 0 *Si
10.10.10.101/32 bgp 20 2025-02-11T16:05:22Z 100 0 *Si
10.10.10.102/32 bgp 20 2025-02-11T16:05:22Z 120 0 *Si
以下示例显示了 nv show vrf default router rib ipv4 route
命令,其中选项仅包含输出中的 Routes、Protocol、Uptime 和 NHGID(下一跳组 ID)列
cumulus@switch:~$ nv show vrf default router rib ipv4 route --view "include=/*/route-entry/*/protocol,/*/route-entry/*/nexthop-group-id,/*/route-entry/*/uptime"
Route Protocol Uptime NHGId
--------------- --------- -------------------- -----
10.0.1.12/32 connected 2025-02-08T16:26:22Z 12
10.0.1.34/32 bgp 2025-02-11T16:05:22Z 124
10.0.1.255/32 bgp 2025-02-11T16:05:22Z 124
10.10.10.1/32 connected 2025-02-08T16:26:13Z 12
10.10.10.2/32 bgp 2025-02-11T16:05:22Z 62
10.10.10.3/32 bgp 2025-02-11T16:05:22Z 124
10.10.10.4/32 bgp 2025-02-11T16:05:22Z 124
10.10.10.63/32 bgp 2025-02-11T16:05:22Z 124
10.10.10.64/32 bgp 2025-02-11T16:05:22Z 124
10.10.10.101/32 bgp 2025-02-11T16:05:22Z 100
10.10.10.102/32 bgp 2025-02-11T16:05:22Z 120
以下示例显示了 nv show vrf default router rib ipv4 route
命令,其中选项省略了输出中的所有列(Route 列除外)
cumulus@switch:~$ nv show vrf default router rib ipv4 route --view "omit=/*/*"
Route
---------------
10.0.1.12/32
10.0.1.34/32
10.0.1.255/32
10.10.10.1/32
10.10.10.2/32
10.10.10.3/32
10.10.10.4/32
10.10.10.63/32
10.10.10.64/32
10.10.10.101/32
10.10.10.102/32
NVUE 和 FRR 重启
当您执行以下操作时,NVUE 会重启 FRR 服务
- 更改
/etc/frr/daemons
文件。 - 更改 BGP ASN。
- 移除默认实例。
- 禁用配置了
agentx
的 SNMP 服务器。
重启 FRR 会重启您启用且正在运行的所有路由协议守护程序,这可能会影响流量。