Академический Документы
Профессиональный Документы
Культура Документы
By:
Meghna Acharjee
02204092014
I, Meghna Acharjee (02204092014), certify that the MCA Dissertation Project Report
entitled VxLAN Troubleshooting Automation is done by me and it is an authentic work
carried out by me at Cisco Systems Pvt. Ltd.. The matter embodied in this project work has
not been submitted earlier for the award of any degree or diploma to the best of my knowledge
and belief.
MEGHNA ACHARJEE
02204092014
Certified that the Project Report entitled VxLAN Troubleshooting Automation done by the
above student is completed under my guidance.
I, hereby, declare that the material/ content presented in the report are free from plagiarism
and is properly cited and written in my own words. In case, plagiarism is detected at any stage,
I shall be solely responsible for it.
MEGHNA ACHARJEE
02204092014
ACKNOWLEDGEMENTS
Further, I would like to thank Dr. A.K. Mohapatra (HOD, IT) and my internal guide- Ms.
Ankita Singh (Assistant Professor, IT), for her valuable guidance and timely suggestions
during the entire duration of my seminar work, without which this work would not have been
possible. I would also like to convey my deep regards to all other faculty members of
department IT, who have bestowed their great effort and guidance at appropriate times without
which it would have been very difficult on my part to finish this work.
I would also like to thank my project partner Aditya Gaurav (B.Tech, VIT) for his
contribution to the project. Finally, I would also thank my family and friends for their advice
and moral support.
02204092014
MEGHNA ACHARJEE
ABSTRACT
Cisco, in partnership with other leading vendors, proposed the Virtual Extensible LAN (VXLAN)
standard to the IETF, which is documented by the IETF in RFC 7348.
If the communication between two hosts is unsuccessful, then the troubleshooting needs to be done.
This troubleshooting has to be automated using a scripting language like Python to,
1) Reduce the time involved in manual troubleshooting there by increasing productivity in Data
Centers.
2) Engineers do not need the expertise or remember complex steps involved in troubleshooting
as the script takes care of the troubleshooting.
(i) CERTIFICATE
(iii) ACKNOWLEDGEMENTS
(iv) ABSTRACT
1
2.5.1 ADMIN ....................................................................................................... 18
4.2 MODULES......................................................................................................... 30
2
4.2.3 USE OF PUTTY AND WINSCP FOR RUNNING PYTHON SCRIPTS . 33
REFERENCES ................................................................................................................ 70
3
LIST OF FIGURES
5
Figure 5.2.2.2 Decap CLI Analyzer Output 1 ................................................................... 63
Figure 5.2.2.3 Decap CLI Analyzer Output 2 ................................................................... 63
Figure 5.2.2.4 Decap CLI Analyzer Output 3 ................................................................... 64
Figure 5.2.2.5 Decap CLI Analyzer Output 4 ................................................................... 64
Figure 5.2.2.6 Decap CLI Analyzer Output 5 ................................................................... 65
Figure 5.2.2.7 Decap CLI Analyzer Output 6 ................................................................... 65
Figure 5.2.2.8 Decap CLI Analyzer Output 7 ................................................................... 66
Figure 5.2.2.9 Decap CLI Analyzer Output 8 ................................................................... 66
Figure 5.2.2.10 Decap CLI Analyzer Output 9 ................................................................. 67
Figure 5.2.2.11 Decap CLI Analyzer Output 10 ............................................................... 67
6
LIST OF TABLES
7
LIST OF SYMBOLS
8
VXLAN TROUBLESHOOTING AUTOMATION
CHAPTER 1: INTRODUCTION
VxLAN is an upcoming technology and there are many clients who open TAC cases for
any sort of issue. The TAC Engineer needs to memorise commands (or refer to a
document) and run those commands on the users switches. The commands are not
simple or a copy paste job. The output of the previous command is then used as input of
the next command. Hence, the TAC Engineer needs to be very careful because even a
single mistake can create many issues.
To decrease human effort and the chances of human error, I have tried to automate the
troubleshooting script. Now, the TAC Engineer only needs some basic information from
the client, fill up the form and come to know about the possible issue within minutes.
9
VXLAN TROUBLESHOOTING AUTOMATION
10
VXLAN TROUBLESHOOTING AUTOMATION
1.2 MOTIVATION
VxLAN is designed to provide the same Ethernet Layer 2 network services as VLAN
does today, but with greater extensibility and flexibility. It provides 16M VNIs (broadcast
domains) versus the 4K offered by traditional VLANs.
Further, the troubleshooting needs to be done in the case of any issue. But for
troubleshooting, the Network Engineer needs to remember complex commands and run
them manually. This is very time-consuming. If this process is automated, the problem
can be solved faster and more efficiently.
The VxLan Topology will be set up using the Cisco Switches, which will be configured
from scratch. The troubleshooting of possible issues will be done and a script will be
written in Python to automate the troubleshooting. Finally, the script will be modified
into a BDB script and migrated to CLI Analyzer.
11
VXLAN TROUBLESHOOTING AUTOMATION
Cisco, in partnership with other leading vendors, proposed the Virtual Extensible LAN
(VXLAN) standard to the IETF, which is documented by the IETF in RFC 7348.
If the communication between two hosts is unsuccessful, then the troubleshooting needs
to be done.
The main objective of the project is to understand VxLAN and to set it up and automate
its troubleshooting. The script would be used by Cisco TAC Engineers in their problem-
solving.
12
VXLAN TROUBLESHOOTING AUTOMATION
Admin A Configuration
The project started on 9th January 2017 and is expected to finish in 16 weeks.
13
VXLAN TROUBLESHOOTING AUTOMATION
We have 2 members in this project team, me and Aditya Gaurav from VIT. I am the
Team Leader. My duties include creating the work schedule for the day, work
distribution amongst the team, documentation and interaction with the company mentor
on a daily basis. The actual project work is equally divided amongst the members.
14
VXLAN TROUBLESHOOTING AUTOMATION
The proposed system would be a BDB Script migrated on CLI Analyzer to automate
troubleshooting of VxLANs.
A VLAN is a group of devices on one or more LANs that are configured to communicate
as if they were attached to the same wire when in fact, they are located on a number of
different LAN segments. Because VLANs are based on logical instead of physical
connections, they are extremely flexible.
But, VLANs provide limited scalability. Thus, we are moving towards VxLANs for an
improved scalability.
For Layer 2:
1. Check if both the source and destination VLAN IDs are same.
2. Check if the vrf is mentioned.
3. Check if nve peers are obtained.
4. Check if vrf is same.
5. Run various L2 commands for troubleshooting. (Both Encap and Decap)
For Layer 3:
1. Check if both the source and destination VLAN IDs are different.
2. Check if the vrf is mentioned.
3. Check if nve peers are obtained.
4. Check if vrf is same.
15
VXLAN TROUBLESHOOTING AUTOMATION
With growing adoption of virtualization in the customer environment and a large number
of workload mobility requirements in the data centre; overlays are becoming a key
technology. VXLAN is one the overlay technology.
16
VXLAN TROUBLESHOOTING AUTOMATION
Admin: The admin is responsible for setting up the VxLAN topology and making
the customer aware of all the services provided by Cisco.
Client: The client is the end user/ network engineer of the end user. They will
discuss their issue with the system and cooperate in the troubleshooting by
providing necessary information.
Cisco TAC Engineer: The TAC engineer does the actual troubleshooting. They
will run the BDB Script on CLI Analyzer (on the clients devices) on the basis of
the information provided. On the basis of the outputs, they will determine the
issue and provide solutions.
The flow of all the processes involved in this project is given below:
Standalone
Configure
Learn VxLAN Troubleshoot troubleshooting
VxLAN on N9K
python script
Migrate
Practise BDB and
standalone N9K Test
CLI
script
17
VXLAN TROUBLESHOOTING AUTOMATION
The functions and responsibilities of each of the stakeholders is mentioned in this section.
2.5.1 ADMIN
S.NO. RESPONSIBILITIES
1. Gather Client Requirements
2. Set up topology.
3. Optimization of system.
4. Handing over system to client.
5. Making client aware of Cisco Services.
2.5.2 CLIENT
S.NO. RESPONSIBILITIES
1. Provide requirements.
2. Cooperate in setting up topology.
3. Being aware of Cisco Services.
4. Inform TAC of any issues.
5. Open a TAC Case.
6. Cooperate with TAC in troubleshooting.
18
VXLAN TROUBLESHOOTING AUTOMATION
S.NO. RESPONSIBILITIES
1. Listen to Client issues.
2. Get knowledge of Client topology.
3. Run troubleshooting script on Client devices
4. Identify issue.
5. Solve issue.
19
VXLAN TROUBLESHOOTING AUTOMATION
The data flow diagram represents the flow of information among the various processes of
the system. The context level diagram defines the scope of the system in term of various
responsibilities bestowed to the system. Level 1 Diagram shows the major subsystems
and the interaction among them.
The overall scope of the system is represented through context level diagram. The system
interacts with stakeholder for accomplishing the various requirements for execution of
the system.
Show Commands
Client 0
TAC Engineer
20
VXLAN TROUBLESHOOTING AUTOMATION
1.0
Admin
Topology Configuration
Regex
Client 2.0
Troubleshooting
Show Commands
3.0
Python Script
4.0
BDB Script
5.0
TAC Engineer
CLI Analyzer
21
VXLAN TROUBLESHOOTING AUTOMATION
2.1
Client Encapsulation
Regex
2.2
Decapsulation
Show Commands
2.3 2.4
L2 Verification
L3 Verification
2.5
Generation of
Script
22
VXLAN TROUBLESHOOTING AUTOMATION
An entity relationship diagram (ERD) shows the relationships of entity sets stored in a
database. An entity in this context is a component of data.
Nexus 9k Switches
Topology
Encapsulation Decapsulation
CONFIGURATION
Show
TROUBLESHOOTING
Commands
PYTHON AND
Executes
BDB SCRIPTS
Runs
CLI ANALYSER
23
VXLAN TROUBLESHOOTING AUTOMATION
The first requirement is the availability of pod of Nexus 9k switches. Then we need to
configure the switches and set up the topology according to our requirements. VxLAN
needs to be set up and checked using show nve peers command. We will also be
requiring tools to access the devices (for configuration and troubleshooting). Finally, we
need tools and platforms to develop the troubleshooting automation script and to migrate
it to a standalone, user-friendly app.
24
VXLAN TROUBLESHOOTING AUTOMATION
Python
WinSCP
Putty
BDB
Cisco CLI Analyzer
3.3.1 PYTHON
In this project, python is used to develop troubleshooting scripts and then regular
expressions are used to extract interesting information. These scripts are run on the
devices.
3.3.2 WINSCP
WinSCP (Windows Secure Copy) is a free and open source SFTP, FTP, WebDAV and
SCP client for Microsoft Windows. Its main function is secure file transfer between a
local and a remote computer. Beyond this, WinSCP offers basic file manager and file
synchronization functionality. For secure transfers, it uses Secure Shell (SSH) and
supports the SCP protocol in addition to SFTP.
In this project, we used the SFTP server to transfer the Python scripts to the devices.
25
VXLAN TROUBLESHOOTING AUTOMATION
3.3.3 PUTTY
PuTTY is a client program for the SSH, Telnet and Rlogin network protocols. These
protocols are all used to run a remote session on a computer, over a network. It is a free
and open-source terminal emulator, serial console and network file transfer application.
In this project, we use Putty to access the device remotely. We can configure the device
and run the python scripts on the device. WinSCP is compatible with Putty.
3.3.4 BDB
BDB is a scripting platform provided by Cisco. It can only be accessed by someone with
a Cisco ID. Scripts can be created in various languages such as Python, Perl etc.
However, syntax of BDB needs to be followed. BDB is similar to an appstore. People can
upload new scripts and use scripts written by themselves or others.
In this project, we use the BDB platform to create a standalone script. Python is the
scripting language which is used.
The Cisco CLI Analyzer (formerly ASA CLI Analyzer) is a smart SSH client with
internal TAC tools and knowledge integrated. It is designed to help troubleshoot and
check the overall health of your Cisco supported software
In this project, the internal Cisco TAC version was used to migrate the BDB Script to
CLI Analyzer.
26
VXLAN TROUBLESHOOTING AUTOMATION
3.4.1 TOPOLOGY
27
VXLAN TROUBLESHOOTING AUTOMATION
9396-C is VTEP 3.
9396-D is VTEP 4.
5672-A and 5672-B are for the traffic flow.
There is vPC (Virtual Port Channel configured between VTEP 1 and VTEP 2). It acts as
an EtherChannel and HSRP both.
28
VXLAN TROUBLESHOOTING AUTOMATION
CHAPTER 4: IMPLEMENTATION
In this chapter I will discuss the methodology, modules and give a user guide for user
interaction.
4.1 METHODOLOGY
2. Study VxLAN
a. Go through videos and documents available to get to know the VxLAN
technology. Getting familiar with important terminologies of VxLAN. Get
to know about various methods on which VxLAN works.
29
VXLAN TROUBLESHOOTING AUTOMATION
4.2 MODULES
The switches are available virtually on Cisco CALO site. This site is only accessible by
people with a Cisco ID. The required pod needs to be issued and then used. Nexus 9k
switches are used and they are configured from scratch. We need to use a software to
Telnet or SSH to the switch (Putty and CLI Analyzer).
30
VXLAN TROUBLESHOOTING AUTOMATION
31
VXLAN TROUBLESHOOTING AUTOMATION
In total, 9 devices need to be configured for the VxLAN Topology we have considered.
These scripts will be stored in the bootflash of each device and reloaded when required.
The devices are accessed remotely by Telnet/SSH using Putty.
The Hardware and software verification commands were studied for L2 (same VLAN)
and L3 (different VLANs). The output of one command is used as input to another
command. The significant part of the output were extracted using regular expressions
and string matching. Then, two python scripts were created for:
32
VXLAN TROUBLESHOOTING AUTOMATION
33
VXLAN TROUBLESHOOTING AUTOMATION
WinSCP is a sftp-server. It is used to load the python script into the device
The point where the script fails, is the point of error in the topology and that part would
need to be troubleshooted or corrected.
34
VXLAN TROUBLESHOOTING AUTOMATION
BDB is a scripting platform provided by Cisco. It can only be accessed by someone with
a Cisco ID. Scripts can be created in various languages such as Python, Perl etc.
However, syntax of BDB needs to be followed. BDB is similar to an appstore. People can
upload new scripts and use scripts written by themselves or others. Except it is free. It is a
community where people started to collaborate in writing scripts across borders. Many
scripts today are written in teams of coders, several of them having coders in different
parts of the world.
Open APIs
Automation
on SR
attachments
A community Custom
! integrations
35
VXLAN TROUBLESHOOTING AUTOMATION
36
VXLAN TROUBLESHOOTING AUTOMATION
The Cisco CLI Analyzer (formerly ASA CLI Analyzer) is a smart SSH client with internal
TAC tools and knowledge integrated. It is designed to help troubleshoot and check the
overall health of your Cisco supported software
The internal Cisco TAC version was used to migrate the BDB Script to CLI Analyzer.
The point where the script fails, is the point of error in the topology and that part would
need to be troubleshooted or corrected.
37
VXLAN TROUBLESHOOTING AUTOMATION
The point where the script fails, is the point of error in the topology and that part would
need to be troubleshooted or corrected.
Here is a user guide for the user to run the Python Scripts on Putty:
38
VXLAN TROUBLESHOOTING AUTOMATION
39
VXLAN TROUBLESHOOTING AUTOMATION
5. On the left are the files on your computer and on the right are the files on the
device.
40
VXLAN TROUBLESHOOTING AUTOMATION
41
VXLAN TROUBLESHOOTING AUTOMATION
Here is a user guide for the user to use the CLI Analyzer App:
42
VXLAN TROUBLESHOOTING AUTOMATION
Go to 'New Session' on the left hand menu and log into your device.
43
VXLAN TROUBLESHOOTING AUTOMATION
After these inputs are entered, the Layer 2 hardware verification will take place and if the
VLANs are different, i.e. the source and destination are in different networks then the
Layer 3 hardware verification will take place.
44
VXLAN TROUBLESHOOTING AUTOMATION
4.4 CONCLUSION
In view of the requirements, all the modules are properly developed, implemented,
optimized and tested. A sample topology is set up and the scripts are made according to
the documentation. The scripts are then tested on different topologies. The bugs are
removed and the scripts are optimized.
This project has been submitted in TACode 3.0 which is an international competition in
Cisco. The success of this project would make the lives of both clients and Engineers
much easier and would make troubleshooting less complex and less time consuming.
45
VXLAN TROUBLESHOOTING AUTOMATION
Python Script
BDB Script
Encap
Decap
46
VXLAN TROUBLESHOOTING AUTOMATION
5.1.1 ENCAP
L2 and L3 verification both are done when VLAN IDs are different.
47
VXLAN TROUBLESHOOTING AUTOMATION
48
VXLAN TROUBLESHOOTING AUTOMATION
49
VXLAN TROUBLESHOOTING AUTOMATION
5.1.2 DECAP
L2 and L3 verification both are done when VLAN IDs are different.
50
VXLAN TROUBLESHOOTING AUTOMATION
51
VXLAN TROUBLESHOOTING AUTOMATION
Encap
Decap
5.2.1 ENCAP
L2 and L3 verification both are done when VLAN IDs are different.
52
VXLAN TROUBLESHOOTING AUTOMATION
53
VXLAN TROUBLESHOOTING AUTOMATION
54
VXLAN TROUBLESHOOTING AUTOMATION
55
VXLAN TROUBLESHOOTING AUTOMATION
56
VXLAN TROUBLESHOOTING AUTOMATION
57
VXLAN TROUBLESHOOTING AUTOMATION
58
VXLAN TROUBLESHOOTING AUTOMATION
59
VXLAN TROUBLESHOOTING AUTOMATION
60
VXLAN TROUBLESHOOTING AUTOMATION
61
VXLAN TROUBLESHOOTING AUTOMATION
5.2.2 DECAP
L2 and L3 verification both are done when VLAN IDs are different.
62
VXLAN TROUBLESHOOTING AUTOMATION
63
VXLAN TROUBLESHOOTING AUTOMATION
64
VXLAN TROUBLESHOOTING AUTOMATION
65
VXLAN TROUBLESHOOTING AUTOMATION
66
VXLAN TROUBLESHOOTING AUTOMATION
67
VXLAN TROUBLESHOOTING AUTOMATION
The Cisco Technical Assistance Center (Cisco TAC) provides around-the-clock, award-
winning technical support services for Cisco products and technologies. TAC has to deal
with a large number of troubleshooting cases daily. This troubleshooting if automated
using a scripting language like Python will,
The point of break of the scripts or the point of error is the place which needs to be
concentrated upon.
68
VXLAN TROUBLESHOOTING AUTOMATION
This project has been selected for TACode 3.0 which is an international competition
within Cisco. This project will have an international implication and will be used to solve
VxLAN issues worldwide.
The script currently points out to only the place of error. In future, the script should be
able to point out the exact error and correct it. Currently, that part is still done manually.
Full automation will be achieved when human effort is completely removed.
69
VXLAN TROUBLESHOOTING AUTOMATION
REFERENCES
1. https://techzone.cisco.com/t5/Nexus-9300/MP-BGP-EVPN-VXLAN-L2-Unicast-
Hardware-Verification/ta-p/833812 accessed on Monday 27th March 2017, 5:30 pm
2. https://techzone.cisco.com/t5/Nexus-9300/MP-BGP-EVPN-VXLAN-L3-Unicast-
Hardware-Troubleshooting/ta-p/845647 accessed on Wednesday 29th March 2017, 8:30
pm
3. http://www.cisco.com/c/en/us/products/collateral/switches/nexus-9000-series-
switches/white-paper-c11-729383.html accessed on Friday14th April 2017, 2:30 pm
4. http://www.cisco.com/c/en/us/support/docs/switches/nexus-9000-series-
switches/118978-config-vxlan-00.html accessed on Thursday 20th March 2017, 7:00 pm
5. http://www.cisco.com/en/US/prod/collateral/switches/ps9441/ps13386/white- paper-
c11-729383_ns1261_Networking_Solutions_White_Paper.html accessed on
Wednesday15th March 2017, 5:30 pm
70