# 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.

  1. REST API: Die universelle Web-Schnittstelle (JSON über HTTP). (Standard für OPNsense & Proxmox).
  2. NETCONF: XML-basierter Standard für Netzwerkgeräte. Unterstützt Transaktionen (Commit/Rollback).
  3. RESTCONF: Der HTTP-basierte Nachfolger von NETCONF.
  4. 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.

# 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.


# 4. Day-2 Operations: CI/CD für das Netzwerk

GitOps auf Layer 2/3.

Implementieren Sie eine Netzwerk-Pipeline:

  1. Admin ändert die VLAN-Liste im Git.
  2. Pipeline startet einen Syntax-Check (Linting).
  3. Test-Lauf in einer virtuellen Proxmox-Umgebung (GNS3 / EVE-NG).
  4. Automatischer Rollout auf die produktiven Core-Switche.

# 5. Troubleshooting & “War Stories”

Wenn der Bug das Netz abschaltet.

# Top 3 Fehlerbilder

  1. 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 commit Befehl kommt.
  2. Symptom: “401 Unauthorized” bei API-Calls.

    • Ursache: API-Token abgelaufen oder ACL in der OPNsense blockiert den Management-Server.
  3. 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.


# 7. Fazit & Empfehlung

Programmability ist der Weg vom Verwalter zum Architekten.


# 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

# Referenzen