Get the source code:
N*etwork E*ngineer's U*nified R*ealtime A*utomation L*ibrary ©
Automate The Network
Get on the road to automation
Network Automation for Network Engineers
Free and Open Source
A full stack web application designed by a network engineer FOR network engineers
A "no-code" solution written in Django
NDNA is the Nucleus that binds everything together
NDNA is really simple to use.
In a nutshell, NDNA easily discovers networks using CDP, SSH and Python. You just provide a seed IP and credentials to the network.
From there, NDNA does many things. First, it builds you flexible IP lists broken down by:
All devices (IOS and NXOS - L2/L3)
All Nexus devices (L2/L3)
All IOS devices (L2/L3)
L2 Nexus devices
L2 IOS devices
L3 Nexus devices
L3 IOS devices
This provides you the ability to do custom automation (program the network or pull information) on all discovered devices using these IP lists. Now, you can run automation on a "per-company/site" basis or enterprise wide, e.g. run automation on all devices across all sites of a company or "per-subset" of a company, e.g. a variation of enterprise wide, broken down by your own creative means, e.g. region of the world, region of a country, or any other way you'd like to. We'll go over exactly what that means later in this page.
All these "types" of automation are broken down as noted above, e.g. by L2/L3 or all devices. Then, they are further broken down by IOS only, NXOS only or IOS/NXOS combined (all devices).
NDNA organizes everything based on what it calls "DataCenters" which is really the same as a site within a company (generally speaking, but with exceptions, e.g if CDP is running on the WAN a DataCenter could span further than one site).
This is why you'll see us use the terms Site, DataCenter or DataCenter/Site interchangeably. It's just our way of organizing what is discovered via CDP from the seed IP during one discovery, which will generally be one DataCenter/Site. NDNA discovers the network (loop free) using CDP "up-to" 10 levels deep, until it reaches the end of the network.
Click here to visualize CDP level coverage
The DataCenter folder structures are dynamically created for you to organize the data NDNA collects on a site during discovery (Or configs it writes during subsequent "site-specific" automation runs).
Discovery data also includes MySQL database inventories, IP-to-Hostname CSV files, CDP Neighbors flat files, and xml files to automatically generate diagrams.
Note: A DataCenter/Site will contain everything that can be discovered via CDP from the seed IP out until it reaches the end of the network (from a CDP perspective), so if you are running CDP on the WAN, one DataCenter/Site folder structure might go FAR beyond that particular site. If you find this is the case, you can/should rename the DataCenter folder accordingly (e.g. after discovery, which is as simple as renaming the folder after discovery). NDNA makes this real easy.
You can rename folder structures at any time in the current version of NDNA. So, for example, if you find, at a later point, you want to change 50 DataCenters for a company and break it down by subsets of a company (for enterprise-wide-automation reasons), you can design your naming convention and just rename the folders. It's just that easy. A few paragraphs down, we'll go over "why" you might want to break down a company by subsets and "how" this works, e.g. what benefit it might provide you.
After discovery, it's up to you. The sky's the limit.
You can run automation on all Nexus devices to discover which devices have FEXs attached.
Just run "show fex" on all your Nexus devices. In a few minutes you'll have config files for each device and be able to parse that data, knowing which devices have FEXs attached.
Want to discover all your VRFs?
Piece of cake. Issue the command "sh vrf" and "show ip vrf" to all your devices and parse the output config files.
NDNA discovery is designed to facilitate flexible, scalable automation.
In addition, NDNA allows scalable data parsing (via the GRASP tool-set).
See our blog for creative ways to use NDNA automation and parsing your output files.
NDNA Automation allows you to work in a way you are used to (Same commands, no pre-canned command limits, build config templates/configure devices the same way you do today), but do it "at scale" as opposed to one device at a time!
As noted earlier
In addition to sites being broken down by Company, they can even be broken down by a "subset" of a company
If you plan out your naming convention correctly, you can easily create subsets, for example based on region of the world (Or any other creative way you want to break it down).
The naming convention is as follows:
<3 character Company code> : <DataCenter-Name>
The Company code is alpha only, not numeric.
So, if your working on Acme Company and you are doing discovery on their New York Site, Los Angeles site, and Chicago site, you can use the following naming:
The 3 character Company code is strictly enforced (and all naming is case sensitive, since this is Linux)
The DataCenter/Site name can be anything, e.g. alpha-numeric and any length.
If you want to be able to break down a company based on a subset, e.g. for enterprise wide automation/generating enterprise wide IP lists (for automation purposes), you could do it this way:
The above could be used for regions of the world, e.g.
ACN = Acme Company North America
ACS = Acme Company South America
ACA = Acme Company Asia Pacific
ACE = Acme Company Europe
This way, with forethought in your naming convention, it'll allow you to EASILY generate flexible IP lists for each region of a Company and run automation on them. (Or any other way you want to break down subsets of your company) - and as previously noted, you can always go back later and update this, just by renaming the folder structure.
Now you can create IP lists for use in enterprise wide automation that point to these subsets and create them in seconds.
So, using the example above, in seconds you can create IOS, NXOS (L2 or L3) IP lists for Acme Company North America, Acme Company South America, Acme Company Asia Pacific, and Acme Company Europe. A piece of cake. And after that, you can run automation, for example, just on Acme Company Europe L3 devices with ease.....
See the user guide chapter on using enterprise wide automation and see the following instructional video on enterprise wide automation here:
The Network Discovery N Automation Program
After discovery, you can now run "site specific" automation on any Site with incredible ease, using IP lists shown below:
(These IP lists already exist, e.g. are created automatically for DataCenters/Sites during NDNA discovery)
All devices (IOS and NXOS - L2/L3)
All Nexus devices
All IOS devices
L2 Nexus devices
L2 IOS devices
L3 Nexus devices
L3 IOS devices
All you do is enter the commands you want to send, launch the program and it prompts you for:
1. DataCenter name
From there NDNA knows what IP list to use, e.g. If I run the L3 IOS devices program, and I answered "ACE:LONDON-DC" NDNA will run the commands I entered on all L3 IOS IPs in the ACE:LONDON-DC site.
It'll now write the output to separate config files in the following directory:
In addition, it'll do this very quickly (See our FAQs/Features section on NDNA automation for details)
This provides you the ability to do custom automation on all discovered sites using these IP lists. (On a "per-company/site" basis)
All files are dated by the minute, so as long as you wait a minute between automation runs, you'll never overwrite your output files.
Flexible automation that just works!
See video below for site specific automation, e.g. running it on a DataCenter/Site
Now, things start to get fun (And creative).
You can even use your own IP lists (BYOI, e.g. bring your own IP lists), so automation is not limited to what you discover using the NDNA discovery. See the User Guide for more information on using your own IP lists.
As one creative example, our blog has a procedure to quickly build an IP list of all your MPLS WAN routers. You could then save this list, and run automation enterprise wide on just your MPLS WAN routers as needed, using the "enterprise-wide-routers" automation program.
See the following blog post for the procedure: HERE
That should give you an idea of how you can use NDNA your own way, using your own process to creatively parse data and build your own IP lists.
Next, you can load up the xml file that NDNA creates during discovery into the NDNA diagram generator. It's time to start automatically generating diagrams DIRECTLY inside Microsoft Visio.
This xml file is built during the NDNA discovery and has all the information the diagram generator needs to automatically generate diagrams of all "NDNA discovered DataCenters"
You can check out the diagram generator in action HERE
Click on the screenshot below to check out the type of diagrams you can create using the NDNA diagram generator
Using automation on discovered DataCenters, you can parse through data at light speed, using the GRASP tool-set - See our blog for ready-to-go procedures to get you started. Ultimately, your creativity will take you how far you want to go with it.
And after that, you can import all "NDNA discovered DataCenters" directly into Cacti using the NTC (NDNA-to-Cacti Integration automation) to create an instant NMS (Network Monitoring System), allowing you to graph bandwidth utilization and setup email alerts on down hosts using Cacti!
Lastly, you can use VNAD, which ties right in with "NDNA discovered DataCenters" to scan and find vendor neutral devices from the following vendors; Juniper, Arista, Palo-Alto and Cisco ASAs too!
See the VNAD Page, FAQs and Features, User Guide, and Videos for more info.
So, what's stopping you?
Get on the road automation.
NDNA Features Overview :
Automatic Cisco Network Discovery using SSH, Python and CDP
Generate beautiful diagrams directly in Microsoft Visio via the "NDNA Diagram Generator"
Data-Center/Site-Specific - all discovery information is saved and organized based on a dynamically created folder structure for each DC-(Each site)
Data-Center specific L2 and L3 IP lists are created to use in custom SSH/Python automation, e.g. for discovery, troubleshooting and programming the network
All IP Lists are further broken down by IOS/IOS-XE and NXOS
Easily create L2 and L3 IP lists "enterprise-wide" (e.g. that span all sites ) running a single scrIpt.
Fully Customize your own IP lists or use IP lists you already have (BYOI -Bring Your Own IP List) with the program to automate processes, e.g. troubleshooting, discovery or programming.
Custom python automation (no Python knowledge is required) - at the site level, or enterprise wide, on a subset of a company.
Custom python automation is NOT limited to any command/s, e.g. no pre-canned commands. Anything you can type at the CLI, you can send to any device via automation (Including a vendor Neutral program which can be used with your own IP lists)
Cisco IOS/NXOS and CDP device inventories are created and kept in a MySQL database (with Browser access via phpMyAdmin)
Nicely formatted CDP neighbors files created for each Data-Center to assist with identifying all hosts seen via CDP and/or enhancing diagrams
Excel spreadsheets created with hostname to IPs for all Data-Centers discovered (csv Files)