2.2 KiB
2.2 KiB
NetBox Provisioning for EVPN-VXLAN Fabric
This directory contains scripts to populate NetBox with the fabric topology defined in arista-evpn-vxlan-clab.
Prerequisites
- NetBox 4.4.x running and accessible
- NetBox BGP Plugin v0.17.x installed (optional, for BGP sessions)
- Python 3.9+
- API token with write permissions
Installation
uv add pynetbox
Usage
export NETBOX_URL="http://netbox.example.com"
export NETBOX_TOKEN="your-api-token"
uv run python scripts/provision_fabric.py
What Gets Created
Custom Fields
| Object Type | Field | Description |
|---|---|---|
| Device | asn |
BGP ASN |
| Device | mlag_domain_id |
MLAG domain identifier |
| Device | mlag_peer_address |
MLAG peer IP |
| Device | mlag_local_address |
MLAG local IP |
| Device | mlag_virtual_mac |
Shared virtual MAC |
| Interface | mlag_peer_link |
Marks peer-link interfaces |
| Interface | mlag_id |
MLAG ID for host LAGs |
| VRF | l3vni |
L3 VNI for EVPN |
| VRF | vrf_vlan |
VLAN for L3 VNI SVI |
| IP Address | virtual_ip |
Anycast/virtual IP flag |
Organization
- Site: evpn-lab
- Manufacturer: Arista
- Device Types: cEOS-lab, Linux Server
- Device Roles: Spine, Leaf, Server
Devices
| Device | Role | ASN | MLAG Domain |
|---|---|---|---|
| spine1, spine2 | Spine | 65000 | - |
| leaf1, leaf2 | Leaf | 65001 | MLAG1 |
| leaf3, leaf4 | Leaf | 65002 | MLAG2 |
| leaf5, leaf6 | Leaf | 65003 | MLAG3 |
| leaf7, leaf8 | Leaf | 65004 | MLAG4 |
| host1-4 | Server | - | - |
Cabling
- Spine1/2 Ethernet1-8 → Leaf1-8 Ethernet11/12
- MLAG peer-links: Leaf pairs via Ethernet10
- Host dual-homing: eth1/eth2 to MLAG pairs
IP Addressing
| Purpose | Prefix |
|---|---|
| Spine1-Leaf P2P | 10.0.1.0/24 |
| Spine2-Leaf P2P | 10.0.2.0/24 |
| MLAG iBGP P2P | 10.0.3.0/24 |
| MLAG Peer VLAN | 10.0.199.0/24 |
| Loopback0 (Router-ID) | 10.0.250.0/24 |
| Loopback1 (VTEP) | 10.0.255.0/24 |
Idempotency
The script is idempotent - running it multiple times will not create duplicate objects.