macmon Klassendefinition für Juniper Switche

In diesem Beitrag möchte ich euch angepasste macmon Klassendefinitionen für Juniper Switche vorstellen.
macmon selber hat bisher noch keine vordefinierten oder vollständigen Klassendefinition im Angebot. (Stand: Juli 2023 / macmon v5.35.1)

Einleitung

Warum eine eigene Klasse?
Generell werden Klassen, sofern macmon keine Definition hat, dynamisch generiert. Daher sind die Namen der Klassen teilweise kryptisch oder einfach nicht gut lesbar. Zusätzlich sind sie nicht immer vollständig und teilweise funktionieren sie nicht richtig.
Dies ist ein normales Verhalten in macmon. Wer sich die Zeit sparen will eigene Klassen zu erstellen und die nötigen Methoden herauszufinden, der ist hier genau richtig! 😊

Voraussetzung – Was wird benötigt?

  1. macmon Version
    = 5.35.0 (Vorgängerversionen sollten auch funktionieren)
    Ich empfehle grundsätzlich immer die aktuellste Version
  2. Juniper Firmware
    >= 12.3 (vorherige Versionen unterstützen nicht alle Funktionen!)
    Ich empfehle grundsätzlich immer die aktuellste Version
  3. Juniper Switch Modelle
    Getestet wurde mit folgenden Modellen: EX2200, EX2300, EX3300, EX4200, EX4300, EX4500, EX4600
  4. Zugang Juniper Switche
    Für die Klassen muss der Zugriff über SNMP und SSH ermöglicht werden. Auf diese Konfiguration gehe ich hier aber nicht ein.
  5. Zugang macmon mit Adminberechtigungen
    Minimum müssen Klassen, Zugangsdaten und Netzwerkgeräte bearbeitet werden können

Definition der Klasse

Folgend wird die macmon Klassendefinition für Juniper für eine manuelle Anlage oder den Import über die API angeboten.

Unterschiedliche Klassen für ELS und Nicht-ELS Switche

Juniper hat Switche mit Enhanced Layer 2 Software (ELS) und auch ohne im Umlauf. Je nach Switch muss die eine oder andere Klasse verwendet werden. Unter dieser Webseite gibt es eine Übersicht der ELS Switche von Juniper: Enhanced Layer 2 Software (ELS).
Teilweise gibt es auch Switche die die ELS Software ab einem bestimmten Release erhalten haben. Daher bitte den verlinkten Artikel für die richtige Wahl zu Rate ziehen.
Solltet Ihr die falsche Klasse wählen explodiert aber nichts – die Methode funktioniert nur nicht richtig. 😉

Manuelle Anlage (Juniper ohne ELS Software)

Für die manuelle Anlage in macmon bitte einfach eine Klasse erstellen und die Methoden der Tabelle entsprechend auswählen. Die Spalte Typ gibt die nötige Art der Zugangsdaten an.

Für Dot1x habe ich noch keine Werte. Wer welche hat kann diese gerne in den Kommentaren posten und ich ergänze die Daten.

VorgangMethodelesend / schreibendTyp
Inventarstatus auslesenJuniper Fusion (JunOS) (Technical Preview)lesenSNMP
Systeminformationen auslesenSNMPv2-MIB::systemlesenSNMP
Interface Status auslesenIF-MIB::ifOperStatuslesenSNMP
Interfaces auslesenIF-MIB::ifEntrylesenSNMP
VLAN auslesenJuniperlesenSSH
ARP auslesenMIB-II.ipNetToMediaEntrylesenSNMP
MAC Adressen auslesenQ-Bridge (Juniper mit ifStackTable)lesenSNMP
Topologie auslesenTopologie (LLDP ohne Port-Mapping, mit ifStackTable)lesenSNMP
Dot1X Status auslesenlesen
Interface (ent)sperrenJuniper ShellschreibenSSH
VLAN setzenSet VLAN Juniper ShellschreibenSSH
Dot1X Status setzenschreiben
Autorisation ändernschreiben
Konfiguration speichernschreiben

Manuelle Anlage (Juniper mit ELS Software)

Für die manuelle Anlage in macmon bitte einfach eine Klasse erstellen und die Methoden der Tabelle entsprechend auswählen. Die Spalte Typ gibt die nötige Art der Zugangsdaten an.

Für Dot1x habe ich noch keine Werte. Wer welche hat kann diese gerne in den Kommentaren posten und ich ergänze die Daten.

VorgangMethodelesend / schreibendTyp
Inventarstatus auslesenJuniper Fusion (JunOS) (Technical Preview)lesenSNMP
Systeminformationen auslesenSNMPv2-MIB::systemlesenSNMP
Interface Status auslesenIF-MIB::ifOperStatuslesenSNMP
Interfaces auslesenIF-MIB::ifEntrylesenSNMP
VLAN auslesenJuniper (L2)lesenSSH
ARP auslesenMIB-II.ipNetToMediaEntrylesenSNMP
MAC Adressen auslesenQ-Bridge (Juniper mit ifStackTable)lesenSNMP
Topologie auslesenTopologie (LLDP ohne Port-Mapping, mit ifStackTable)lesenSNMP
Dot1X Status auslesenlesen
Interface (ent)sperrenJuniper ShellschreibenSSH
VLAN setzenSet VLAN Juniper ShellschreibenSSH
Dot1X Status setzenschreiben
Autorisation ändernschreiben
Konfiguration speichernschreiben

macmon API

1. Download Definition als JSON Datei

2. Import JSON über Windows PowerShell

Information

Voraussetzung seitens macmon ist ein Admin Benutzer (oder der “admin” Benutzer selber) mit API Berechtigung.
Das folgende Skript komplett kopieren und in die PowerShell einfügen. Für die Ausführung wird nach IP/FQDN, Benutzername, Passwort und die oben angebotene Datei gefragt. Ein Rückgabewert von 200 zeigt eine erfolgreiche Ausführung an.

Name der Klasse nach Import: “Juniper_ohne_ELS” oder “Juniper_mit_ELS” (kann in macmon umbenannt werden)

PowerShell Version >= v7.3
# Parameter abfragen `
$mmhost = Read-Host -Prompt 'macmon IP oder FQDN'; `
$mmuserpw = Get-Credential -Title "Bitte macmon Zugangsdaten eingeben" -Message " "; `
Add-Type -AssemblyName System.Windows.Forms; `
$mmfile = New-Object System.Windows.Forms.OpenFileDialog; `
$null = $mmfile.ShowDialog(); `
# API Call absetzen `
Invoke-WebRequest -SkipCertificateCheck -Uri "https://$mmhost/api/v1.1/networkdeviceclasses" `
  -Method POST -ContentType "application/json" -Credential $mmuserpw -InFile $mmfile.Filename;
  
PowerShell Version < v7.3 (bei Fehlern mit Zertifikat)
# Zertifikatschecks deaktivieren für die Dauer der Powershell Sitzung `
[System.Net.ServicePointManager]::ServerCertificateValidationCallback = {$True} `
# Parameter abfragen `
$mmhost = Read-Host -Prompt 'macmon IP oder FQDN'; `
$mmuserpw = Get-Credential -UserName 'admin' -Message 'macmon Zugangsdaten'; `
Add-Type -AssemblyName System.Windows.Forms; `
$mmfile = New-Object System.Windows.Forms.OpenFileDialog; `
$null = $mmfile.ShowDialog(); `
# API Call absetzen `
Invoke-WebRequest -Uri "https://$mmhost/api/v1.1/networkdeviceclasses" `
  -Method POST -ContentType "application/json" -Credential $mmuserpw -InFile $mmfile.Filename
  

Andere Tools für die Nutzung einer API

Wer mehr mit API arbeiten möchte dem würde ich ein Tool wie Postman ans Herz legen. Mit etwas Einarbeitung lassen sich in der GUI schnell und einfach diverse API Calls ausführen. macmon bietet auch eine Datei zum Download den man als Collection importieren kann. Dann gehts noch schneller 😉

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert


WordPress Cookie Plugin von Real Cookie Banner