Building Reliable NX-OS LAB on Your Personal PC - Part 1
A lot of us miss NX-OS configuration in personal/home lab that can be used for feature testing, Implementation/Migration Stimulation or CCIE-DC Preparation. We have trained a lot on Cisco IOS on free simulators like GNS3 and IOU but we didn't have a chance to keep in touch with NX-OS configuration and features, specially with a platform that simulate control and data plane forwarding not just control plane (like Nexus Titanium).
In this post (and further posts), we will go through a step-by-step installation for a reliable NX-OS lab in personal PC/Laptop that can be used to navigate/apply different NX-OS features and configurations. We will learn how to build our own topology to simulate specific scenario. The beauty about this lab is that you can save your configuration then come back later on and find your configuration as it's :).
The lab steps and guidelines are collected from the NX-OSv configuration guide, VirtualBox recommendations, VirtualBoX Manual Guide along with some tuning and tweaking to have more reliability with minimum resources.
For the supported features, please refer to NX-OSv Guide as it states all supported features and limitations. In summary, it will support L2 features, L3 Protocols, vPC, VXLAN, EVPN, Programmability (Puppet,chef), Shells (NX-OS, Bash).
According to your PC/laptop specifications, you can run three or more Nexus Machines on it. The Lab is built with Cisco NX-OSv that simulate data plane and control plane forwarding based on Cisco Nexus 9000 switches. The Lab can run on different virtual environments like VMware, VirtualBox, KVM..etc. We will be using VirtualBox for our deployment due its simplicity and its streamline configuration.
So Lets have a dive... :)
First, you have to fulfill the below System Requirements to be able to run a Lab of 3 Nexus NX-OSv Machines:
16 GB of RAM
2 GB of free Disk Space (Recommended to have SSD, this minimize the nexus boot time to just 3 min instead of 15 min)
Processor with 4 virtual CPUs, 64-bit and to support VT-X/AMD-V technology (Can be Intel Core i5, Core i7 or equivalent processor from AMD)
If you increased the Memory of your personal PC/Laptop to 32 GB of RAM with the same other requirements, you can have a Lab with 7 Nexus NX-OSv machines.
You will also need to have the following software before we begin our installation process:
- VirtualBox (Recommended to have the latest release)
- VirtualBox Extension Pack (Must be the same release of your VirtualBox)
- Putty (or any other terminal monitor tool)
- NX-OSv VMDK file version 22.214.171.124.1 (Download it from Cisco website)
Now, lets begin installing our first Nexus NX-OSv machine. Simply, follow the below steps sequentially to have your first NX-OSv Machine up and running:
Install VirtualBox on your PC/Laptop.
Install PuTTY for serial console.
Copy the NX-OSv VMDK to your local hard drive.
Launch VirtualBox and click the New icon.
Enter the Name as you wish (ex.: Nexus-9K), select the Type as Linux, and select the Version as Other Linux (64-bit).
Enter the Memory size (RAM) as 4096 MB. (Cisco Recommends to have 8 GB of memory, but 4 GB works great with a lot of features activated concurrently without performance degradation).
Select "Use an existing virtual hard drive file". Click the folder icon (bottom right side) and select the VMDK. (this is the VMDK file you have copied to your local drive in step 3).
Select the VM and click Settings
In the Attributes of Settings, click storage icon
highlight the IDE controller, then right-click and remove it. Select "Add SATA controller" and add the VMDK file (the VMDK file of step 3). Click OK to save the settings
Click the System icon:
Choose the Motherboard tab:
Check the Enable EFI checkbox.
Remove Floppy and CD-ROm and modify Boot order so that hard disk is first.
On the Processor tab:
Ensure the Processor is 2.
On the Accelerator tab:
Ensure that VT-x/AMD-V is checked.
Click the Audio icon:
Uncheck the Enable Audio checkbox
Click the Network icon:
Choose the Adapter 1 tab:
Check the Enable Network Adapter checkbox.
In the "Attached to", choose Bridged Adapter.
In the Name Field, choose an operational Network adapter of Your PC/Laptop. This adapter will be used to access the mgmt ports of Nexus Machines.
Click Advanced, then Click Port Forwarding. Ensure the Port Forwarding configuration is: Name = ssh, Host Port = 2222, Guest Port = 22
Click the Serial Ports icon:
Choose the Serial Ports tab/Port 1 tab:
Check the Enable Serial Port checkbox.
Ensure that Port Mode is Host Pipe.
Uncheck Connect to existing pipe/socket
Ensure Path/Address is \\.\pipe\COM1
Click the USB Ports icon:
Uncheck the Enable USB 2.0 (EHCI) controller checkbox.
Start the VM
Open PuTTY, then apply the below configuration:
Open "Basic options for your PuTTY session.
Select "Serial" for "Connection type"
Specify "\\.\pipe\COM1" for Serial line path.
Select "9600" for "Speed".
Connect to your VM and enjoy
Now you have one Nexus NX-OSv machine running and you can explore NX-OS shell along with the different features.
Once you have login to the CLI, it will prompt you go through initial configuration and to choose your password. Ignore initial configuration wizard and type the password you will be using in your logins (this is a lab try to not use secured password and keep it simple).
After you get login, configure the IP address of the management port and make sure to have IP address in the same range of the adapter you have Bridged-to in "Step 12". Try to SSH to the management port from your PC/Laptop. Now you can configure a default route in the management vrf towards the subnet gateway and you can SSH remotely to your Nexus Machine without the need to console locally from your PC/Laptob.
We will move forward and create multiple Nexus machines, configure VM adapters to activate Nexus ethernet ports along with establishing connectivity between Nexus machines in next part of this post ISA... Keep Tuned !