# Quick start

[netlab.tools](https://netlab.tools/) — official documentation and resources

[GitHub Repository](https://github.com/ipspace/netlab) — source code and issue tracking

[Netlab](https://app.gitbook.com/u/SI9UWWLjZtMbtfdSpJkzxMeLWGl2) brings the principles of *Infrastructure-as-Code* to virtual network lab environments. You can think of it as a Lab-as-Code solution: to build a lab, all you need is a topology description in YAML.

Netlab automates the entire lifecycle of a network lab, including:

* Containerlab configuration generation for launching Docker-based network nodes
* Ansible inventory and device configuration files creation
* IPv4/IPv6 address allocation and protocol setup for  OSPFv2, OSPFv3, EIGRP, IS-IS, RIPv2, RIPng, BGP
* Protocol and service configuration including IPv4, IPv6, DHCP, DHCPv6, VLANs, VRFs, VXLAN, LLDP, BFD, VRRP, LACP, LAG, MLAG, STP, anycast gateways, static routes, route maps, prefix lists, AS-path prefix lists, route redistribution,  default route origination, MPLS, BGP-LU, L3VPN (VPNv4 + VPNv6), EVPN, SR-MPLS, SRv6
* Topology diagrams and protocol reports generation
* Virtual link quality configuration and control
* Local and remote traffic capture

If you're tired of manually building labs through GUI just to test one or two features — or if you want to streamline lab setup while learning specific technologies — Netlab is an ideal choice.

### **Installing Netlab**

To install Netlab, you need Python 3 available on your system. Run the following command:

`python3 -m pip install networklab`

This will install the netlab package along with all required dependencies.

Netlab works best on \*nix host or WSL (Windows Subsystem for Linux). If you want to start on MacOS with Apple Silicon (M-series chips) you may encounter issues finding compatible container images for the ARM architecture.

&#x20;
