Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/ipspace/netlab
Making virtual networking labs suck less
https://github.com/ipspace/netlab
containerlab labs libvirt networking vagrant
Last synced: 26 days ago
JSON representation
Making virtual networking labs suck less
- Host: GitHub
- URL: https://github.com/ipspace/netlab
- Owner: ipspace
- License: other
- Created: 2020-12-09T18:22:22.000Z (almost 4 years ago)
- Default Branch: dev
- Last Pushed: 2024-05-22T07:29:40.000Z (6 months ago)
- Last Synced: 2024-05-22T16:50:55.756Z (6 months ago)
- Topics: containerlab, labs, libvirt, networking, vagrant
- Language: Python
- Homepage: https://netlab.tools
- Size: 8.53 MB
- Stars: 385
- Watchers: 10
- Forks: 56
- Open Issues: 19
-
Metadata Files:
- Readme: README.md
- License: LICENSE.md
- Roadmap: docs/roadmap/external-interface.md
Awesome Lists containing this project
- awesome-starred - ipspace/netlab - Making virtual networking labs suck less (vagrant)
README
# Overview
*[netlab](https://netlab.tools)* is 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 OSPFv2, OSPFv3, EIGRP, IS-IS, and BGP routing design
* Configure IPv4, IPv6, DHCP, DHCPv6, VLANs, VRFs, VXLAN, LLDP, BFD, OSPFv2, OSPFv3, EIGRP, IS-IS, BGP, RIPv2, RIPng, VRRP, anycast gateways, route maps, prefix lists, AS-path prefix lists, route redistribution, default route origination, MPLS, BGP-LU, L3VPN (VPNv4 + VPNv6), 6PE, EVPN, SR-MPLS, or SRv6 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](https://netlab.tools) and [installation guidelines](https://netlab.tools/install/).
## Releases
The latest release is [release 1.9.1](https://github.com/ipspace/netlab/releases/tag/release_1.9.1). It should be pretty stable, but if you encounter bugs, please report them as [GitHub issues](https://github.com/ipspace/netlab/issues/new/choose) and use release [1.9.0-post1](https://github.com/ipspace/netlab/releases/tag/release_1.9.0-post1) or [1.8.4-post2](https://github.com/ipspace/netlab/releases/tag/release_1.8.4-post2).
## An Overview of CLI Commands
**netlab up**
: Uses **[netlab create](https://netlab.tools/netlab/create/)** to create configuration files, starts the virtual lab, and uses **[netlab initial](https://netlab.tools/netlab/initial/)** to deploy device configurations, including IP addressing, LLDP, OSPF, BGP, IS-IS, EIGRP, VRRP, VLANs, VRFs, MPLS, SR-MPLS, VXLAN, EVPN and SRv6. [More details](https://netlab.tools/netlab/up/)**netlab down**
: Destroys the virtual lab. [More details](https://netlab.tools/netlab/down/)**netlab restart**
: Restart and/or reconfigure the virtual lab. [More details](https://netlab.tools/netlab/restart/)**netlab config**
: [Applies additional Jinja2 configuration templates](https://netlab.tools/netlab/config/) to network devices.**netlab collect**
: Using Ansible fact gathering or other device-specific Ansible modules, [collects device configurations](https://netlab.tools/netlab/collect/) and saves them in the specified directory (default: **config**).**netlab connect**
: Use SSH or **docker exec** to [connect to a lab device](https://netlab.tools/netlab/connect/) using device names, management network IP addresses (**ansible_host**), SSH port, and username/passwords specified in lab topology or *netlab* device defaults.**netlab capture**
: [Perform packet capture](https://netlab.tools/netlab/capture/) on VM- and container interfaces**netlab report**
: Creates a report from the transformed lab topology data. [More details](https://netlab.tools/netlab/report/)**netlab graph**
: Creates a lab topology graph description in Graphviz or D2 format. [More details](https://netlab.tools/netlab/graph/)**netlab show**
: Display system settings in tabular, text, or YAML format. [More details](https://netlab.tools/netlab/show/)