Since Cisco announced the Nexus 7000, I have seen and heard quite a lot of criticism of NX-OS, often on the basis that it will force engineers to learn a whole new CLI. But Cisco believe that NX-OS is ‘IOS-like', and that engineers have nothing to worry about. So, what's the truth?
I've had access to NX-OS for a few weeks now, and initially at least I had no manuals. I decided to test just how 'IOS-like' NX-OS is.
My rough-and-ready test consisted of using standard IOS commands to configure a wide variety of layer-2 and layer-3 features and functions. In this blog post, I'll share a small but representative sample - just enough to get the flavor of NX-OS.
First, the 'show version' command to verify the OS version:
Mark-Nexus01# show version
Cisco Nexus Operating System (NX-OS) Software
TAC support: http://www.cisco.com/tac
Copyright (c) 2002-2008, Cisco Systems, Inc. All rights reserved.
The copyrights to certain works contained herein are owned by
other third parties and are used and distributed under license.
Some parts of this software are covered under the GNU Public
License. A copy of the license is available at
http://www.gnu.org/licenses/gpl.html.
Software
loader: version N/A
kickstart: version 4.0(1)
system: version 4.0(1) [gdb]
<output omitted>
So, I'm using NX-OS version 4.0(1).
Next, I attempted to configure a number of basic layer-2 features using standard IOS commands:
1 a couple of VLANs
2. an access/edge port
3. a trunk port
This is how things went:
Configuring VLANs:
Mark-Nexus01(config)# vlan 2
Mark-Nexus01(config-vlan)# name testvlan
Mark-Nexus01(config-vlan)# vlan 3
Mark-Nexus01(config-vlan)# name anothertestvlan
Mark-Nexus01(config-vlan)#
Configuring an Access Port:
Mark-Nexus01#
Mark-Nexus01# conf t
Mark-Nexus01(config)# interface ethernet 2/2
Mark-Nexus01(config-if)# switchport
Mark-Nexus01(config-if)# switchport mode access
Mark-Nexus01(config-if)# switchport access vlan 3
Mark-Nexus01(config-if)# spanning-tree portfast
Warning: portfast should only be enabled on ports connected to a single
host. Connecting hubs, concentrators, switches, bridges, etc... to this
interface when portfast is enabled, can cause temporary bridging loops.
Use with CAUTION
%Portfast has been configured on Ethernet2/2 but will only
have effect when the interface is in a non-trunking mode.
Mark-Nexus01(config-if)# no shut
Mark-Nexus01(config-if)#
Mark-Nexus01#
Configuring a Trunk:
Mark-Nexus01# conf t
Mark-Nexus01(config)# interface ethernet 2/6
Mark-Nexus01(config-if)# switchport
Mark-Nexus01(config-if)# switchport mode trunk
Mark-Nexus01(config-if)# switchport trunk allowed vlan all
Mark-Nexus01(config-if)# switchport trunk native vlan 2
Mark-Nexus01(config-if)#
Mark-Nexus01#
Pretty successful - just about all standard IOS commands used to configure layer-2 features work.
So far so good. But how about layer-3?
For this part of my rough test of the similarities between NX-OS and IOS, I attempted to configure the following:
1. an IP address
2. a static route
3. basic OSPF
4. basic HSRP
Configuring an IP Address:
Mark-Nexus01#
Mark-Nexus01# conf t
Mark-Nexus01(config)# int eth 2/6
Mark-Nexus01(config-if)# no switchport
Mark-Nexus01(config-if)# ip address 10.10.10.1 255.255.255.0
Mark-Nexus01(config-if)#
Configuring a Static Route:
Mark-Nexus01# conf t
Mark-Nexus01(config)# ip route 172.16.10.0 255.255.255.0 10.10.10.2
Configuring Basic OSPF:
Mark-Nexus01(config)# router ospf 1
^
% invalid command detected at '^' marker.
Mark-Nexus01(config)# feature ?
bgp Enable/Disable Border Gateway Protocol (BGP)
cts Enable/Disable CTS
dhcp Enable/Disable DHCP Snooping
dot1x Enable/Disable dot1x
eigrp Enable/Disable Enhanced Interior Gateway Routing Protocol
(EIGRP)
eou Enable/Disable eou(l2nac)
glbp Enable/Disable Gateway Load Balancing Protocol (GLBP)
hsrp Enable/Disable Hot Standby Router Protocol (HSRP)
interface-vlan Enable/Disable interface vlan
isis Enable/Disable IS-IS Unicast Routing Protocol (IS-IS)
lacp Enable/Disable LACP
msdp Enable/Disable Multicast Source Discovery Protocol (MSDP)
netflow Enable/Disable NetFlow
ospf Enable/Disable Open Shortest Path First Protocol (OSPF)
<output omitted>
Mark-Nexus01(config)# feature ospf
Mark-Nexus01(config)# router ospf 100
Mark-Nexus01(config-router)# network 10.10.10.0 0.0.0.255 area 0
Mark-Nexus01(config-router)# network 10.10.20.0 0.0.0.255 area 1
Mark-Nexus01(config-router)# network 10.10.30.0 0.0.0.255 area 2
Mark-Nexus01(config-router)# area 2 stub no-summary
Mark-Nexus01(config-router)#
Configuring HSRP:
Mark-Nexus01(config)# int eth 2/6
Mark-Nexus01(config-if)# standby 1 ip 10.10.10.5
^
% invalid command detected at '^' marker.
Mark-Nexus01(config-if)#
Mark-Nexus01(config)#
Mark-Nexus01(config)# feature hsrp
Mark-Nexus01(config)# int eth 2/6
Mark-Nexus01(config-if)# standby 1 ip 10.10.10.5
^
% invalid command detected at '^' marker.
Mark-Nexus01(config-if)# hsrp ?
<0-4095> Group number
delay HSRP initialisation delay
use-bia HSRP uses interface's burned in address
version HSRP version
Mark-Nexus01(config-if)# hsrp 1 ?
<CR>
Mark-Nexus01(config-if)# hsrp 1
Mark-Nexus01(config-if-hsrp)# ?
authentication Authentication
exit Exit from command interpreter
ip Enable HSRP IPv4 and set the virtual IP address
mac-address Virtual MAC address
name Redundancy name string
no Negate a command or set its defaults
preempt Overthrow lower priority Active routers
priority Priority level
timers Hello and hold timers
track Associates track object to HSRP group
Mark-Nexus01(config-if-hsrp)# ip 10.10.10.5
Mark-Nexus01(config-if-hsrp)# preempt
Mark-Nexus01(config-if-hsrp)#
Mark-Nexus01#
That's it. As you can see, I had a bit of trouble with OSPF until I discovered the ‘feature' command. In addition, there is a difference in the command syntax for HSRP - but I found the new commands very quickly, and they are more intuitive, in my opinion.
Cisco say that NX-OS CLI is IOS-like. I disagree - it's VERY IOS-like. So, engineers fluent in IOS will feel right at home.
Pretty much all the familiar commands work in NX-OS, and if any engineer feels the urge to learn faster more efficient ways of doing things then NX-OS also provides many commands that will make their lives just that bit easier. And then there are lots of new features to discover as well.
In summary, I like NX-OS, and I think anyone who likes IOS will like it as well. Still, there are one or two deficiencies:
Mark-Nexus01# wr t
^
% invalid command detected at '^' marker.
% Invalid command
Mark-Nexus01#
But hopefully Cisco can fix that in version 4.0(2) :-)
Over the next few weeks, I'll be blogging some more on the new features that can be found in NX-OS (as well as blogging on a number of other subjects).
Mark
Mark Lewis (CCIE#6280) is an independent consultant who helps service provider and large enterprise clients design and implement leading-edge technologies. Over the last couple of years, Mark has designed and implemented a variety of large-scale technology solutions including VPN, MPLS, QoS, data center, and IP telephony. Mark is the author of three books for Cisco Press: Comparing, Designing, and Deploying VPNs, Troubleshooting Virtual Private Networks, and CCIE Voice Exam Quick Reference Sheets.