Moin,
Extreme Networks hat Freitag die WiNG Version 5.9.2. veröffentlich. Auf eines der Features habe ich schon sehr lange gewartet, die API. Endlich ist es möglich die WiNG Firmware ohne Umwege netmiko und TextFSM/RegEx mittels Python anzusprechen.
Was ist eine API
API, Application Programming Interface, ist eine Schnittstelle zur Kommunikation. Es gibt ähnlich einem CLI definierte Befehle zum Abfragen (GET), Erstellen (POST), Updaten (PUT) und Löschen (DELETE). Gerade bei Cloud Anwendungen sind diese Schnittstellen für die Kommunikation untereinander sehr gefragt. Aber auch innerhalb der Netzwerk Welt gibt es immer mehr Schnittstellen.
Wozu brauche ich eine API
Ich persönlich nutzte die API zur Analyse und Automatisierung. Aufgaben die ich regelmäßig durchführe, automatisiere ich über die API. Dies spart viel Zeit und minimiert Fehler. Zur Einfachen Darstellung habe ich einmal zwei Beispiele dokumentiert:
Übersicht AP IP Adressen
Ein Kunde Frage die IP Adressen aller Access Points an. Heute muss ich dafür die Namen aller Access Points kopieren und anschließend die APs ansprechen. Von jedem AP erhalte ich dann eine IP Adresse zurück. Dies kann ich bei 1-10 Access Points ausführen, bei 10-20 Access Points wird es schon nervig. Habe ich eine Installation verteilt über 1-100 Standorte mit 20-200 Access Points, ist es nicht machbar.
Für diese Fälle kommt z.B. die API zum Einsatz. Mein Script kopiert diese Informationen und schreibt alles in eine CSV, automatisch.
Im nächsten Schritt erfahre ich vielleicht noch, dass der Kunde diese Liste benötigt um die Geräte in seiner NAC Lösung einzurichten. Bei einer weitere Analyse wird sehr wahrscheinlich herauskommen, dass die NAC Lösung ebenfalls über eine API verfügt. Also kann ich diese auch direkt ansprechen und die Access Points automatisiert eintragen. Dieses Eintragen kann in beide Richtungen erfolgen:
- AP über WiNG API inkl. IP Adresse auslesen
- AP über NAC API der NAC Lösung als Endpoint mit zufälligem Shared Secret eintragen
- AAA Profile über WiNG API mit dem zufälligem Shared Secret erstellen und zuweisen
Der Zeitaufwand von mehreren Stunden wird auf wenige Minuten minimiert. Diese wenigen Minuten arbeitet mein Skript von alleine, so das ich weitere Mails bearbeiten kann.
Konfiguration Check
Wie vermutlich jedes Unternehmen, haben auch wir Konfigurationsempfehlungen. Wie bei jedem anderen Unternehmen, kommt es aber auch bei uns dazu, dass eine Einstellung einmal vergessen wird. Gerade bei umfangreichen globalen Konfiguration kann einmal etwas unter. Auch hierfür habe ich mir ein Script entwickelt. Dieses kontrolliert die Systeme auf die entsprechenden Einstellungen und dokumentiert das Ergebnis.
Je nach Anforderungen kontrolliert das Script unterschiedliche Optionen. Bei einem WPA2 Netz möchte ich vielleicht 802.11r prüfen, welches es bei Netzwerken ohne Verschlüsselung gar nicht gibt. Bei dem Open Netzwerk möchte ich aber sicherstellen, dass vielleicht das Captive Portal aktiviert ist.
Nach Ausführung des Scripts kann ich direkt sehen, welche Einstellungen vom Standard abweichen. Optional wäre eine automatische Anpassung der Einstellungen auch möglich.
Fazit
Die API inkludiert Aktions, Konfiguration und Statistik Befehle. Unterstützt werden alle Controller die in der 5.9.2. supported werden, RFS4010, NX5500, NX75xx, NX95xx, NX96xx und VX9000.
In der 5.9.2. sind folgende AP Typen inkludiert: AP6522, AP6562, AP7161, AP7502, AP7522, AP7532, AP7562, AP7602, AP7612, AP7622, AP7632, AP7662, AP8163, AP8432 und AP8533.
Die hier aufgeführten Beispiele sind nur basis Funktionen. Die Möglichkeiten der API sind viel größer und umfangreicher. Gerade in Verbindung mit anderen Systemen wie z.B. der MDM Lösung von SOTI oder der NAC Lösung von Aruba oder Cisco können wir Prozesse über mehrere System automatisiert umsetzten.