NX-OS 到 NVUE 常用命令

Cumulus Linux 4.4 版本引入了一个名为 NVUE 的新 CLI;Cumulus Linux 的完整对象模型。NVUE 使首次使用 Cumulus Linux 以及跨 Cumulus Linux 版本转换配置变得更加可靠。

本知识库文章介绍如何将常用 NX-OS 配置转换为 NVUE 命令。

功能启用

与 NX-OS 不同,Cumulus Linux 不需要启用特定功能。

主机名和系统命令

NX-OS 命令NVUE 命令注释
hostname <hostname>nv set system hostname <hostname>
logging server <ip>nv set service syslog default server <ip>default 是服务器所在的 VRF。
ntp server <ip>nv set service ntp default server <ip>default 是服务器所在的 VRF。
interface breakout module 1 port <port> map 10g-4xnv set interface <interface> link breakout 4x10G存在多个 breakout 选项。要查看所有命令,请运行 nv set interface <interface> link breakout -h
copy running-config startup-confignv config save要在 NVUE 中将配置作为 running-config 应用(提交),请使用 nv config apply。保存的配置在交换机重启后才会应用
show startup-configcat /etc/nvue.d/startup.yaml
show running-confignv config diff empty appliedNVUE diff 将 empty 配置与当前 applied 配置进行比较。

接口命令

您可以在单个接口下配置 NX-OS 接口命令;例如

interface e1/1
   ip address 10.1.1.1/24
NX-OS 命令NVUE 命令注释
ip address <ip>nv set interface <interface> ip address <ip>在 NVUE 中,您可以使用相同的命令设置 IPv4 和 IPv6 地址。
ip address <ip> secondarynv set interface <interface> ip address <ip>配置第二个 IP 地址是附加的。要替换地址,请运行 nv unset interface <interface> address <ip>
ipv6 address <ip>nv set interface <interface> ip address <ip>在 NVUE 中,您可以使用相同的命令设置 IPv4 和 IPv6 地址。
mtu <mtu>nv set interface <interface> link mtu <mtu>Cumulus Linux 中的默认 MTU 为 9216。
speed <speed>nv set interface <interface> link speed <speed>
fec <mode>nv set interface link fec <mode>
no shutdownnv set interface <interface> link state up接口的默认状态为 up。要关闭接口,请使用 link state down
interface loopback0nv set interface lolo 是 Cumulus Linux 上环回接口的名称。
description <text>nv set interface <interface> description <text>

第 2 层和 VLAN

默认情况下,Cumulus Linux 接口是第 3 层路由接口。要使接口成为第 2 层交换端口,您必须将接口添加到名为 br_default 的默认网桥

cumulus@switch:~$ nv set interface <interface> bridge domain br_default
NX-OS 命令NVUE 命令注释
switchport mode accessnv set interface <interface> bridge domain br_default access <vlan>使用 <auto> 继承默认网桥交换端口配置。
switchport access vlan <vlan>nv set interface <interface> bridge domain br_default access <vlan>
switchport mode trunknv set interface <interface> bridge domain br_default添加到网桥的端口默认为 trunk 端口。
switchport trunk allowed vlan <vlan-list>nv set interface <interface> bridge domain br_default vlan <vlan-list>
spanning-tree port type edgenv set interface <interface> bridge domain br_default stp admin-edge on
spanning-tree port type networknv set interface <interface> bridge domain br_default stp network on
spanning-tree bpduguard enablenv set interface <interface> bridge domain br_default stp bpdu-guard on
spanning-tree bpdufilter enablenv set interface <interface> bridge domain br_default stp bpdu-filter on
spanning-tree vlan 1 priority <priority>nv set bridge domain br_default stp priority <priority>Cumulus Linux 仅支持 RSTP。

Bond 和端口通道

Linux 使用术语 bond,而 Cisco 使用术语 port channels

NX-OS 命令NVUE 命令注释
interface port-channel <number>nv set interface <name> bond您可以使用必须以字母开头的名称定义 bond。
interface ethernet <mod/port>
   channel-group <number>
nv set interface <bond-name> bond member <interface>您可以在单个命令中创建 bond 并应用 bond 成员。
channel-group <number> mode onnv set interface <bond-name> bond mode static默认模式为 lacp
lacp rate fastnv set interface <bond-name> bond lacp-rate fast

MLAG 和 vPC

Cumulus Linux 使用 MLAG(多机箱链路聚合)来描述 Cisco 称为 vPC 的功能。

在 MLAG 配置中,Cumulus Linux 还使用 vPC对等链路的概念。为了在直接连接失败时保持 MLAG 对同步,Cumulus Linux 使用 mlag backup IP 而不是 vPC peer-keepalive link

有关 MLAG 的更多信息,请参阅 Cumulus Linux 用户指南的 s 部分。

NX-OS 命令NVUE 命令注释
peer-keepalive destination <ip>nv set mlag backup <ip>
system-mac <mac>nv set mlag mac-address <mac>NVUE 还支持 auto MAC 地址生成。
interface port-channel <number>
   vpc peer-link
nv set interface peerlink bond member <interface>
nv set mlag peer-ip linklocal
Cumulus Linux 需要一个唯一的 bond 用于对等链路和一个关联的 peer-ip 定义。
interface port-channel <number>
   vpc <number>
nv set interface <bond-name> bond mlag id automlag id 必须与连接到同一主机的两个 MLAG 对等体上的 bond 接口匹配。使用 auto 根据终端主机的 MAC 地址确定 ID。

第 3 层路由协议

大多数 BGP 命令都需要在命令中包含 VRF。这包括 default VRF。

NX-OS 命令NVUE 命令注释
router bgp autonomous-system <ASN>nv set vrf default router bgp autonomous-system <ASN>
router-id <ID>nv set vrf default router bgp router-id <id>
neighbor <ip> remote-as <ASN>nv set vrf default router bgp neighbor <ip> remote-as <ASN>您可以使用 externalinternal 代替 ASN。
address-family ipv4 unicast
   network <network>
nv set vrf default router bgp address-family ipv4-unicast static-network <network>
address-family ipv6 unicast
   network <network>
nv set vrf default router bgp address-family ipv6-unicast static-network <network>
address-family ipv6 unicast
   redistribute direct
nv set vrf default router bgp address-family ipv4-unicast redistribute connected
ip prefix-list <name> seq <seq> permit <prefix>nv set router policy prefix-list <name> rule <seq> match <prefix>
route-map <name> permit <seq>
   match ip prefix-list <list>
nv set router policy route-map <name> rule <seq> match ip-prefix-list <name>
neighbor <ip> remote-as <ASN>
   address-family ipv4 unicast
      route-map <name> in
nv set vrf default router bgp neighbor <ip> address-family ipv4-unicast policy inbound route-map <name>
ip route <route> <next hop>nv set vrf default router static <route> via <next hop>default 值是 VRF 名称(在本例中为默认 VRF)。

访问控制列表 (ACL)

Cumulus Linux 中的 ACL 派生自 Linux iptables,并且在以下方面与 NX-OS 的行为不同

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

有关更多信息,请参阅 Cumulus Linux 用户指南的 ACL 部分。

NX-OS 命令NVUE 命令注释
ip access-list <name>
   <seq> permit ip <source> <destination>
nv set acl <name> rule <seq> match ip source-ip <source>
nv set acl <name> rule <seq> match ip dest-ip <destination>
nv set acl <name> rule <seq> action permit
NVUE 将源、目标和操作与 <seq> 值链接起来。
interface <slot/port>
   ip access-group <name> in
nv set interface <interface> acl <name> inbound
mac access-list <name>
   <seq> permit <source mac> <destination mac> <protocol>
nv set acl <name> rule <seq> match mac source-mac <source mac>
nv set acl <name> rule <seq> match mac dest-mac <destination mac>
`nv set aclrulematch <mac
ip> protocol<br />nv set aclruleaction permit`
interface <slot/port>
   mac port access-group <name>
nv set interface <interface> acl <name> inbound