NVUE CLI

NVUE CLI 具有扁平结构,而不是模态结构。因此,您可以从主提示符运行所有命令,而不是仅在特定模式下运行。

您可以选择使用 NVUE 命令 Linux 命令(使用 vtysh 或手动编辑配置文件)来配置 Cumulus Linux。不要同时运行 NVUE 配置命令(例如 nv setnv unsetnv actionnv config)和 Linux 命令来配置交换机。NVUE 命令会替换 /etc/network/interfaces/etc/frr/frr.conf 等文件中的配置,并删除您手动添加或使用 Ansible、Chef 或 Puppet 等自动化工具添加的任何配置。

如果您选择使用 NVUE 配置 Cumulus Linux,则可以通过创建代码片段来配置尚不支持 NVUE 对象模型的功能。请参阅 NVUE 代码片段

命令语法

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

  • 配置 (nv setnv 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 -hnv 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 setnv 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 计时器)、PIMIGMPPBRVRRVRRP
nv set service
nv unset service
配置 DHCP 中继DHCP 服务器NTPPTPLLDP、DNS 和 syslog
nv set system
nv unset system
配置系统设置,例如交换机的主机名、登录前和登录后消息、重启选项(热重启、冷重启、快速重启)时区和全局系统设置,例如任播 ID、系统 MAC 地址和任播 MAC 地址。您还可以在此处配置 SNMPSPAN 和 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 服务器配置、NTPPTPLLDP 和 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)、jsonyaml 格式显示命令输出。例如
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>>
您还可以使用以下提示选项
  • --assume-yes 自动回复 yes 到所有提示。
  • --assume-no 自动回复 no 到所有提示。
您还可以使用以下应用选项
--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 showyaml 格式显示当前应用的配置。此命令还显示 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 不接受 DHCP host-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 分钟)。

密码和特殊字符

如果您在密码中使用某些特殊字符,则必须引用或转义(使用反斜杠)这些字符,以便系统理解它们是密码的一部分。

下表显示了您可以为每个特殊字符使用的引号或转义符。

  • 正常使用 表示您可以直接使用特殊字符,无需引号或反斜杠。
  • 单引号双引号 表示您需要将整个密码用引号括起来。
特殊字符正常使用单引号 ('')双引号 ("")转义 (\)
反引号 (`)x1
感叹号 (!)xx
分号 (;)x
与号 (&)x
问号 (?)xx
波浪号 (~)x
艾特符号 (@)
井号 (#)x
美元符号 ($)xx
百分号 (%)
脱字符 (^)
星号 (*)
圆括号 (())x
短划线 (-)
下划线 (_)
等号 (=)
加号 (+)
竖线 (|)x
方括号 ([])
大括号 ({})
冒号 (:)
单引号 ()xx
双引号 ()xx
逗号 (,)
尖括号 (<>)x
斜杠 (/)
点号 (.)2222
空格xx3x
  1. 除了双引号 ("") 外,还需要转义 (\)。
  2. 您不能在单词的开头使用此字符。
  3. 即使在双引号内,一个词也不能完全由空格组成。

以下示例显示了一个包含问号 (?) 的密码

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 会重启您启用且正在运行的所有路由协议守护程序,这可能会影响流量。