A comprehensive guide to building a professional home networking lab - from hardware selection to virtualization platforms to hands-on lab exercises.
Companion Blog Post: Build a Home Lab Like a Pro on NetworkThinkTank.blog
This repository is the companion resource for the "Build a Home Lab Like a Pro" blog post on NetworkThinkTank.blog. It contains:
- Hardware buying guides with tiered budget recommendations
- Sample configuration files for common lab setups
- Network topology diagrams (draw.io source files included)
Scripts for lab automation and environment setup
Topology definition files for GNS3, EVE-NG, and Containerlab
Whether you are studying for your CCNA, building a data center simulation, or testing automation scripts, this repo gives you a head start.
home-lab-guide/ |-- README.md |-- LICENSE |-- diagrams/ | |-- starter-lab-topology.drawio | |-- enterprise-lab-topology.drawio | |-- datacenter-fabric-topology.drawio | |-- home-lab-physical-layout.drawio |-- configs/ | |-- firewall/ | | |--- pfsense-base-config.xml | | |-- opnsense-vlan-setup.md | |-- switching/ | | |-- vlan-trunk-config.txt | | |-- spanning-tree-best-practices.txt | |-- routing/ | | |-- ospf-area-config.txt | | |-- bgp-ebgp-peering.txt | | |-- hsrp-vrrp-config.txt | |-- automation/ | |-- ansible-inventory-example.yml | |-- netmiko-backup-script.py |-- topologies/ | |-- containerlab/ | | |-- starter-lab.clab.yml | | |-- enterprise-lab.clab.yml | | |-- datacenter-fabric.clab.yml | |-- gns3/ | | |-- starter-lab.gns3project | |-- eve-ng/ | |-- topology-import-guide.md |-- scripts/ | |-- lab-setup/ | | |-- install-proxmox-post.sh | | |-- install-containerlab.sh | | |-- install-gns3-server.sh | | |-- install-docker-tools.sh | |-- monitoring/ | | |-- deploy-librenms.sh | | |-- deploy-grafana-stack.sh | |-- utilities/ | |-- generate-lab-configs.py | |-- cleanup-lab.sh |-- docs/ |-- hardware-buying-guide.md |-- platform-comparison.md |-- budget-breakdown.md |-- lab-exercise-workflow.md
Component Recommendation Est. Cost Server Dell OptiPlex 7050/7060 or HP EliteDesk 800 G3 $100-$200 RAM 32 GB DDR4 $40-$60 Storage 500 GB SSD + 1 TB HDD $50-$80 Switch Netgear GS308T or TP-Link TL-SG108E $30-$50
Component Recommendation Est. Cost Server Dell PowerEdge R720/R730 or HP DL380 Gen9 $200-$500 RAM 64-128 GB DDR4 ECC $100-$200 Storage 1 TB NVMe + 2 TB HDD $100-$200 NIC Intel X520-DA2 10GbE $30-$50 Firewall Netgate SG-1100 or OPNsense box $100-$200
Component Recommendation Est. Cost Servers (x2-3) Dell R740xd or HP DL380 Gen10 $500-$1K each RAM 128-256 GB per node $200-$400 each NAS TrueNAS or Synology for shared storage $300-$600 See docs/hardware-buying-guide.md for detailed recommendations.
Platform Cost Best For Resource Usage Proxmox VE Free All-in-one virtualization host Medium VMware ESXi Free* Enterprise environments Medium GNS3 Free Cisco-centric labs, cert prep High EVE-NG Free/Paid Multi-vendor complex topologies High Containerlab Free Automation, CI/CD, quick labs Low See docs/platform-comparison.md for a detailed comparison.
name: starter-lab topology: nodes: firewall: kind: linux image: ghcr.io/srl-labs/alpine-ftp-server core-switch: kind: linux image: ghcr.io/srl-labs/network-multitool server1: kind: linux image: alpine:latest server2: kind: linux image: alpine:latest links: - endpoints: ["firewall:eth1", "core-switch:eth1"] - endpoints: ["core-switch:eth2", "server1:eth1"] - endpoints: ["core-switch:eth3", "server2:eth1"]name: dc-fabric topology: nodes: spine-01: kind: linux image: frrouting/frr:latest spine-02: kind: linux image: frrouting/frr:latest leaf-01: kind: linux image: frrouting/frr:latest leaf-02: kind: linux image: frrouting/frr:latest links: - endpoints: ["spine-01:eth1", "leaf-01:eth1"] - endpoints: ["spine-01:eth2", "leaf-02:eth1"] - endpoints: ["spine-02:eth1", "leaf-01:eth2"] - endpoints: ["spine-02:eth2", "leaf-02:eth2"]
- LibreNMS - Network monitoring via SNMP
# 1. Install Containerlab bash -c "$(curl -sL https://get.containerlab.dev)" # 2. Clone this repository git clone https://github.com/NetworkThinkTank-Labs/home-lab-guide.git cd home-lab-guide # 3. Deploy the starter topology cd topologies/containerlab sudo containerlab deploy -t starter-lab.clab.yml # 4. Access your nodes docker exec -it clab-starter-lab-core-switch bash # 5. When done, tear down sudo containerlab destroy -t starter-lab.clab.yml
- Download Proxmox VE ISO
- Install on your lab server
- Run the post-install script:
bash scripts/lab-setup/install-proxmox-post.sh
- Create VMs for your network devices
Follow the topology guides in
docs/
This guide integrates with the full NetworkThinkTank-Labs series:
Lab Description Link Lab 01 BGP Fundamentals lab-01-bgp-fundamentals Lab 02 VPN with IPSec and GRE lab-02-vpn-ipsec-gre Lab 03 EVPN-VXLAN Fabric lab-03-evpn-vxlan Lab 04 Network Automation (Ansible) lab-04-network-automation-ansible Bonus Network Backup Automation network-backup-automation
Contributions are welcome! If you have:
- Additional topology examples
- Hardware recommendations
Platform-specific tips
Bug fixes or improvements
Please open an issue or submit a pull request.
This project is licensed under the MIT License - see the LICENSE file for details.
Built by NetworkThinkTank | Part of the NetworkThinkTank-Labs series
NetworkThinkTank-Labs/home-lab-guide
Folders and files
| Name | Name | Last commit date | ||
|---|---|---|---|---|