Skip to content

NetOpsChic/multivendor-ZTP-server

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Multi-Vendor Pure ZTP Lab

Cisco • Juniper • Arista

A minimalist, infrastructure-as-code solution for Day 1 Provisioning. This project provides a Dockerized ZTP (Zero Touch Provisioning) server that automatically detects and configures multi-vendor network devices in a GNS3


The Concept

Most ZTP solutions are bloated with APIs and complex inventory generators. This project strips away the noise to focus on the Pure Infrastructure Chain Reaction:

  1. Identify: Detect vendor types via DHCP Option 60 (VCI).
  2. Assign: Provide a unique IP address from a controlled pool.
  3. Deliver: Serve the correct configuration file via TFTP

Core Services

Service Protocol Role Vendor Usage
Kea DHCP UDP/67 The "Brain." Matches Vendor Classes and assigns boot instructions. All
TFTP-HPA UDP/69 The "Truck." Transfers standard configuration files. Cisco, Juniper

Project Structure

.
├── Dockerfile              # Minimal Ubuntu-based ZTP image
├── kea-dhcp4.conf          # Smart DHCP logic (Option 60/67/150)
├── startup.sh              # Silent provisioner entrypoint
└── startup-configs/        # The "Day 0" Source of Truth
    ├── cisco.cfg           # Basic IOS-XE config (SSH, User, IP)
    ├── juniper.conf        # Basic Junos config (NETCONF, SSH)
    └── arista_eos.conf         # Arista Python ZTP script

Quick Start

1. Build the Image

docker build -t ztp-server .

2. Launch the Infrastructure

Ensure your GNS3 nodes are connected to a bridge (e.g., br0) that the Docker container can reach.

docker run -d --name ztp-server --net=host ztp-server

3. Monitor the Leases

Watch the "Concierge" hand out keys in real-time:

docker logs -f ztp-server

Debugging the "Silent Provisioner"

Since there is no complex API, debugging is done by watching the standard protocol logs:

  • DHCP Leases: tail -f /var/lib/kea/kea-leases4.csv
  • TFTP Requests: Check container logs for in.tftpd activity.
  • Nginx Access: Check /var/log/nginx/access.log to see Arista fetching its script.

About

No description, website, or topics provided.

Resources

License

Stars

10 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors