# Network Programmability: Automatisierung via API & Code
TL;DR / Management Summary Die Zeiten des manuellen Tippens in der Switch-Konsole (CLI) gehen zu Ende. Network Programmability nutzt standardisierte Schnittstellen wie REST API, NETCONF und RESTCONF, um Netzwerke programmatisch zu steuern. Ein Senior Admin schreibt keine Port-Konfigurationen mehr einzeln, sondern nutzt Ansible oder Python (Netmiko/NAPALM), um hunderte Switche, OPNsense-Instanzen und Proxmox-Netze konsistent und versionierbar (Artikel 420b) auszurollen.
# 1. Die Schnittstellen der Macht
Vom Mensch zur Maschine.
- REST API: Die universelle Web-Schnittstelle (JSON über HTTP). (Standard für OPNsense & Proxmox).
- NETCONF: XML-basierter Standard für Netzwerkgeräte. Unterstützt Transaktionen (Commit/Rollback).
- RESTCONF: Der HTTP-basierte Nachfolger von NETCONF.
- CLI-Automation: SSH-Scripte (Netmiko), die menschliche Eingaben simulieren. (Fallback für Legacy-Hardware).
# 2. Automatisierung mit Python
Netmiko & NAPALM.
Python ist die Lingua Franca der Netzwerk-Programmierer.
- Netmiko: Ideal für einfache Multi-Vendor CLI-Automatisierung.
- NAPALM: Abstrahiert die Befehle.
switch.get_facts()liefert das gleiche Ergebnis für Cisco, Juniper und Arista.
# Beispiel: VLAN-Erstellung via API (Python)
import requests
# OPNsense API Call
api_url = "https://firewall/api/interfaces/vlan/add"
vlan_data = {
"vlan": {
"tag": "50",
"if": "igb1",
"descr": "IOT_VLAN"
}
}
requests.post(api_url, json=vlan_data, auth=('KEY', 'SECRET'), verify=False)
# 3. Deep Dive: Ansible for Networking
Deklarative Konfiguration.
Ansible ist das bevorzugte Tool für Senior Admins, da es keinen Python-Code erfordert, sondern YAML-Definitionen nutzt.
- Vorteil: Idempotenz. Wenn das VLAN schon existiert, tut Ansible nichts.
- Integration: Nutzen Sie die Proxmox SDN API (Artikel 682), um VNets automatisch via Ansible-Playbook zu erstellen.
# 4. Day-2 Operations: CI/CD für das Netzwerk
GitOps auf Layer 2/3.
Implementieren Sie eine Netzwerk-Pipeline:
- Admin ändert die VLAN-Liste im Git.
- Pipeline startet einen Syntax-Check (Linting).
- Test-Lauf in einer virtuellen Proxmox-Umgebung (GNS3 / EVE-NG).
- Automatischer Rollout auf die produktiven Core-Switche.
# 5. Troubleshooting & “War Stories”
Wenn der Bug das Netz abschaltet.
# Top 3 Fehlerbilder
-
Symptom: Script bricht bei 50% ab, das Netzwerk ist inkonsistent.
- Lösung: Nutzen Sie Protokolle mit Candidate Configuration (wie NETCONF). Änderungen werden erst wirksam, wenn ein finaler
commitBefehl kommt.
- Lösung: Nutzen Sie Protokolle mit Candidate Configuration (wie NETCONF). Änderungen werden erst wirksam, wenn ein finaler
-
Symptom: “401 Unauthorized” bei API-Calls.
- Ursache: API-Token abgelaufen oder ACL in der OPNsense blockiert den Management-Server.
-
Symptom: Script löscht versehentlich unbeteiligte Konfigurationen.
- Fix: Nutzen Sie in Python immer Regex-Validierung für Variablen.
# “War Story”: Der “Auto-Update” Lockout
Ein Admin schrieb ein Python-Script, um das Admin-Passwort auf 100 Switchen gleichzeitig zu ändern. Das Ereignis: Er vergaß, Sonderzeichen im Passwort zu escapen. Das Ergebnis: Das Script setzte das Passwort auf einen ungültigen Wert. Da er die SSH-Sessions nach dem Befehl sofort schloss, war kein Login mehr möglich. Die Rettung: Ein einziger Switch war noch in einer alten Console-Session offen geblieben. Lehre: Testen Sie Automatisierungs-Scripts immer erst an einem einzigen “Canary”-Gerät, bevor Sie den gesamten Cluster fluten.
# 6. Monitoring & Reporting
Code-Qualität.
# Schema Validierung
Nutzen Sie YANG-Modelle, um sicherzustellen, dass Ihre XML/JSON Daten exakt dem entsprechen, was die Hardware erwartet.
- Tool:
pyang. Prüft Ihre Datenmodelle gegen die RFC-Standards.
# 7. Fazit & Empfehlung
Programmability ist der Weg vom Verwalter zum Architekten.
- Empfehlung: Lernen Sie die Grundlagen der Proxmox REST-API (Artikel 699). Sie ist der einfachste Einstieg.
- Wichtig: Nutzen Sie Zentrales Configuration Management (Git). Wer eine Konfiguration am Gerät manuell ändert (Out-of-band), untergräbt den Sinn der Automatisierung.
# Anhang: Cheatsheet (API Protokolle)
| Protokoll | Transport | Format | Eignung |
|---|---|---|---|
| REST | HTTPS | JSON | Moderne Apps, Cloud |
| NETCONF | SSH | XML | Enterprise Hardware |
| SNMP | UDP | ASN.1 | Monitoring (Legacy) |
| gNMI | HTTP/2 | ProtoBuf | High-Speed Telemetry |