Cisco Subnet An independent Cisco community View more

Nexus: Hands on with NX-OS, Part#1

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

Insider Shootout: Best security tools for small business
Join the discussion
Be the first to comment on this article. Our Commenting Policies