khangvd / netsim-tools

Network simulation tools

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Overview

netsim-tools are bringing infrastructure-as-code concepts to networking labs. You'll describe your high-level network topology and routing design in a YAML file, and the tools in this repository will

  • Create Vagrantfile configuration file for virtualbox or libvirt environment
  • Create containerlab configuration file
  • Create Ansible inventory and configuration file
  • Create IPv4 and IPv6 addressing plan and OSPF, EIGRP, IS-IS, and BGP routing design
  • Configure IPv4, IPv6, LLDP, OSPF, EIGRP, IS-IS, BGP, or SR-MPLS on your lab devices.

Instead of wasting time creating lab topology in a GUI and configuring boring details, you'll start with a lab preconfigured according to your specifications.

Interested? Read the documentation and installation guidelines.

Releases

Use release_0.9 if at all possible. Release 0.8.1 does not work with python-box version 5.4.0. To use release 0.8.1 or earlier releases, manually install python-box release 5.3.0.

More details in release notes.

An overview of tools:

netlab create : Creates a full-blown network topology, Vagrantfile and Ansible inventory from a simple list of nodes and links. More details

netlab initial : Using topology data generated by netlab create and default device configuration templates configures common device parameters, protocols that should have been enabled (LLDP, OSPF, IS-IS, BGP, SR-MPLS), enables interfaces, and configures IP addresses on interfaces. More details

netlab config : Applies any Jinja2 configuration templates to network devices.

netlab collect : Using Ansible fact gathering or other device-specific Ansible modules, collects device configurations and saves them in specified directory (default: config).

netlab connect : Use SSH or docker exec to connect to a lab device using device names, management network IP addresses (ansible_host), SSH port, and username/passwords from Ansible inventory. Ideal when you use centralized Vagrant environments and want to connect to the devices while being in playbook development directory.

Libvirt-specific tools

enable-lldp.sh : Given libvirt network name, change group_fwd_mask for the corresponding Linux bridge to enable LLDP passthrough across the Linux bridge.

About

Network simulation tools


Languages

Language:Python 67.3%Language:Jinja 24.8%Language:Shell 7.9%