|
Port-Audit is a tool designed for network administrators and engineers to automate the auditing of network devices. This application leverages SSH for remote execution of network commands, enabling the collection of interface data directly from the network devices.
Platform Specificity: The method of screen scraping is employed on the devices that do not support structured data to parse the outputs- which necessitates distinct handling between different operating systems due to format variations.
Command Execution: Currently, the application supports the following SSH commands for data collection:
- [NXOS/IOS - show interface status]
- [IOS - show interface description]
- [IOSXR - show interface description]
- [JUNOS]
Users have the option to generate a new baseline sheet by using the -base
flag or upload an existing one for comparison. This functionality allows for assessing the current state of network interfaces against a previously documented baseline. The expected file name for the Excel document is "PortAudit.xlsx", with the baseline sheet titled "Baseline".
The Excel sheet should include the following fields:
- Node
- Interface
- Description
- Status
- VLAN
- Duplex
- Speed
- Type
The application generates an Excel spreadsheet summarising the data collected from network devices.
Textual difference reports are produced for each node, detailing deviations from the baseline.
Text reports are automatically zipped and prepared for download, facilitating easy distribution and review.
-u: Username for SSH authentication. -p: Password for SSH authentication. -f: Path to the YAML file containing the inventory of devices to audit.
-base: Indicates whether to create a baseline sheet in the Excel report. This is useful for establishing a reference point for future audits.
Users have the option to select the command that will be executed against the inventory
- Ability to generate basic inventory yaml file from a list of devices.
Running it is pretty simple, using flags -gen -f ./Path to the file that lists the devices
For example: router_1 router_2 router_3
This will generate a file containing the following with some default values:
If you want to be more selective about the values, you can provide them in the list:
For example:
Router_1 22 ios ssh Router_2 23 nxos ssh
[host][port][platform][transport]
Plans are underway to expand support to additional platforms and commands, enhancing the tool's versatility and adaptability to different network environments. Further discussions are also expected to better integrate the baseline management with broader network management processes, ensuring seamless operational workflows. Port-Audit aims to streamline network device management, making it more efficient and error-resistant by automating routine checks and documentation processes.