GitOps Arista Spine-Leaf Automation Pipeline
Eine vollständig automatisierte GitOps-Pipeline für ein Arista vEOS Spine-and-Leaf-Netzwerk. Dieses Projekt demonstriert die Integration von NetBox als Network Source of Truth (SoT), Terraform für das Infrastruktur-Provisioning und Ansible für das geräteunabhängige Konfigurationsmanagement über die eAPI (httpapi).
Zweck des Projekts
Ziel dieser Automatisierungsarchitektur ist es, manuelle Eingriffe (CLI-Konfigurationen) bei der Bereitstellung von Rechenzentrumsnetzwerken komplett zu eliminieren. Durch das Zusammenspiel von Infrastructure as Code (IaC) und NetBox wird ein deklarativer Workflow geschaffen, bei dem Änderungen an der Topologie oder den Parametern (wie ASNs, IPs und Uplinks) zentral verwaltet und automatisch auf die Netzwerkhilfsmittel ausgerollt werden.
Funktionsweise der Multi-Tenant-Architektur
Die Fabric basiert auf einem klassischen Spine-Leaf-Design (2-Stage Clos-Topologie) mit einem IP-Underlay, EVPN-VXLAN-Overlay und Multi-VRF-Mandantentrennung.

1. Underlay (IP-Routing & eBGP)
- Routing: IP-Routing ist global auf allen Systemen aktiv. Als Basis-Protokoll läuft eBGP im Underlay. Spines und Leafs nutzen unterschiedliche Private ASNs (Spines:
65001-65002, Leafs:65101-65102), um optimales ECMP-Routing (Equal-Cost Multi-Path) über alle verfügbaren Uplinks zu erzwingen. - Loopbacks: Jedes Gerät besitzt ein
Loopback0-Interface. Diese IP-Adresse dient als globale Router-ID für BGP und zeitgleich als Tunnel-Endpunkt (VTEP-IP) für die VXLAN-Kapselung.
2. Control Plane (EVPN & MARP)
- Multi-Agent Routing Protocol (MARP): Arista EOS benötigt MARP, um die EVPN-Adressfamilie und das VXLAN-Routing auf dem Switch-Chipsatz zu programmieren.
- BGP EVPN Address Family: Zwischen Spines und Leafs werden BGP EVPN-Nachbarschaften aufgebaut. Über diese Control-Plane werden MAC-Adressen (Route Type 2) und IP-Präfixe (Route Type 5) direkt als BGP-Updates ausgetauscht. Ein klassisches Flooding im Netzwerk (ARP-Snooping) entfällt.
3. Data Plane & Tenant Services (VXLAN & VRFs)
- VTEP-Konfiguration: Das logische Interface
Vxlan1nutztLoopback0als Source-Interface. - VLAN-to-VNI Mapping: Layer-2-VLANs werden auf den Leafs direkt an VXLAN Network Identifier (VNIs) gebunden (
vxlan vlan 10 vni 10010). - L3 Isolation (VRFs): Mandanten werden über Virtual Routing and Forwarding (VRF) Instanzen separiert (
vrf instance VRF-A). L3-Schnittstellen (SVIs) werden direkt an diese VRFs gebunden. - BGP EVPN Route Targets: Der Import und Export von Routing-Informationen innerhalb der EVPN-Instanz (EVI) wird über Route-Targets gesteuert (
route-target evpn import/export 65100:10). Leafs im selben Tenant nutzen identische RTs, um Routen auszutauschen.
4. Active-Active Default Gateway (VARP)
- Virtual ARP (VARP): Anstatt HSRP oder VRRP zu nutzen, läuft auf den Leafs VARP. Jeder Leaf im VLAN 10 konfiguriert dieselbe Anycast-IP (
10.10.10.254) und dieselbe virtuelle MAC (00:1c:73:00:00:99). - Anycast-Verhalten: Ein Client unterhalb von
leaf-01routet L3-Traffic immer über seinen lokalen Switch. Fällt dieser aus, übernimmtleaf-02den Traffic ohne ARP-Timeout oder Layer-2-Konvergenzzeiten für den Client.
Aktueller Projektstatus
- Source of Truth & Provisioning (NetBox & Terraform):
- Alle Switches, physischen Verbindungen, L3-Schnittstellen und IP-Adressen werden deklarativ via Terraform verwaltet.
- Erweiterung: Mandanten-Strukturen (Tenants, VRFs, VLANs, Prefixes) werden als native NetBox IPAM-Modelle gepflegt. Physische Client-Ports (z. B.
Ethernet3als Access-Port in VLAN 10) werden direkt über Terraform an den Leafs zugewiesen.
- Dynamisches Inventory (Ansible):
- Das dynamic NetBox Inventory-Plugin liest die physischen Schnittstellen und deren L2/L3-Attribute (VLAN-IDs, VRF-Zugehörigkeiten) direkt aus NetBox aus.
- Fabric-Deployment (Ansible Playbooks & Roles):
- Underlay (
underlay_bgp): Konfiguration von Loopbacks, P2P Uplinks und eBGP Underlay Routing. - Overlay (
overlay_evpn): Aktivierung von MARP, VXLAN Interfaces und EVPN-Address-Family. - Tenant Services (
tenant_services): Dynamische Generierung lokaler VLANs basierend auf Interface-Zuweisungen, Erzeugung von VRF-Instanzen (EOS 4.33+vrf instanceStandard), SVI-Schnittstellen mit VARP Anycast-Gateways und EVPN BGP-Verknüpfungen ohne herstellerspezifische Syntaxkollisionen.
- Underlay (