Zum Inhalt springen

Switch, Router Versionierung -> Rancid, Subversion


Protoberance
 Teilen

Empfohlene Beiträge

Ja, ich weiss das ist ein ziemlich spezielles Thema und ich denke es kennen sich hier vllt. eine Hand voll Leute damit aus, aber ich versuche es trotzdem mal ;)

Meine Aufgabe ist eine Versionierung von Core und distributed Switches zu realisieren. Den Großteil habe ich schon fertig und das sieht wie folgt aus

Jeder Switch und Router authentifiziert sich gegen einen Tacacs+ Server ( nicht von Cisco, sondern von Shrubbery )

Rancid ( von Shrubbery Networks, nicht das Ding von Cisco ) erhält die nötigen Rechte vom Tacacs+ Server um das nötige Privilege Level zu erhalten und eingeschränkte Befehlsgewalt.

Rancid nutzt Subversion zur Versionierung, die Daten können via Websvn eingesehen werden

cronjobs schubsen Rancid regelmäßig an um die Configs zu holen

Der ganze Spaß läuft auf 2 Debian 7 amd64 VM's

Jetzt kommt mein Kopfzerbrechen

Ich will Rancid starten ( es gibt keinen Daemon, man muss immer ein ./rancid-run aufrufen :( ) sobald jemand eine Änderung an der Config der Switches / Router gemacht hat.

Das ginge mit SNMP Traps oder syslogs, aber hier hört mein Wissen auch schon auf ;) Shrubbery schreibt in der FAQ vom Simple Event Correlator, davon habe ich bislang aber

auch noch nie was gehört.

Ich suche hier keine Quick & Dirty Lösung oder etwas vorgekautes, aber ich bin mit meinem Latein am Ende. Brauchbare Guides, HowTo's & Co habe ich vergeblich gesucht.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Es geht darum das script laufen zu lassen sobald sich auf einem der dinger was ändert?

syslog geht nur wenn alle geräte auf einen gemeinsamen syslog server loggen, dann könntest zB mit fail2ban bei einem entsprechenden logeintrag (filter) das script triggern (action).

Mit zabbix oder anderen monitoring tools kannst snmp traps auffangen und auch entsprechend trigger einrichten. https://www.zabbix.com/wiki/howto/monitor/snmp/snmptraps

Ed:

das wäre auf der cisco zu tun: http://www.petri.co.il/notified-cisco-router-configuration-change.htm

Bearbeitet von don-
Link zu diesem Kommentar
Auf anderen Seiten teilen

Genau darum gehts. netsnmp habe ich auf auf einer VM für Racktables und NetDisco laufen, also wäre es mir auch lieber das über traps zu machen und nicht noch einen Syslog Server aufsetzen zu müssen.

Es gibt aber ein Problem, sobald jemand den Konfigurationsmodus betritt z.B. über >> "configure terminal" auf einem Switch, wird schon eine Trap verschickt, obwohl noch nichts verändert wurde. Das geschieht

auch bei anderen Events, die einen auch nicht interessieren. Weil Rancid Single Threaded ist, müsste man den ganzen "spam" rausfiltern. Aktuell lese ich mich noch ein, wie und woher ich die passenden mib dateien

von den Switches und Routern finde. Verdammte heterogene Landschaft ;)

Link zu diesem Kommentar
Auf anderen Seiten teilen

ums filtern wirst wohl nicht drumherum kommen aber auf config notifications kannst die traps ja einschränken ( http://www.cisco.com/en/US/tech/tk648/tk362/technologies_tech_note09186a0080094a05.shtml#trps ) und dann nach einem write mem o.ä. den rancid starten. oder kann man auch nur bei bestimmte mips feuern lassen? im einfachsten fall kannst auf die logs des snmptrapd den fail2ban loslassen.... les auch gerade, der snmptrapd hat je nen scripthandler drin

Bearbeitet von don-
Link zu diesem Kommentar
Auf anderen Seiten teilen

Syslog hat sich als Sackgasse entpuppt. Manche der alten Switche senden nur für eine Hand voll Events ihre Logs. Dann doch wieder via. Traps.

Jetzt fehlt mir nur noch eine Möglichkeit die Traps zu verarbeiten, also ein Program zu starten. Leider beherrsche ich Perl nicht. Ich brauche ein Script, dass mir den Hostnamen, oder auch IP aus der Trap fischt

und bei Schlüsselwörtern dann Rancid gezielt auf diese Adresse startet. Dabei muss ich die Syntax anpassen können, weil jeder Hersteller andere Meldungen formuliert. Brocade / Foundry schreibt z.B. ein "startup-config was changed"

Link zu diesem Kommentar
Auf anderen Seiten teilen

  • 2 Wochen später...

Ich habs jetzt mit ein paar Perl Scripts und syslog-ng zurechtgebogen und sofort tun sich neue Probleme auf, 1 Kopf abgeschlagen 2 wachsen nach, geil !

Ich filtere Traps auf eine bestimmte OID, wenn diese empfangen wird, dann wird rancid ausgeführt. Aber die alten HP ProCurve 2510G schicken doch ernsthaft

keine trap los, wenn man in der CLI ein "write memory" eingibt, das kann doch nicht wahr sein. Kennt sich jemand ausreichend mit diesen Geräten aus, um mir

sagen zu können, dass das so korrekt ist ?

Link zu diesem Kommentar
Auf anderen Seiten teilen

Habe gerade die aktuelle Firmware installiert, von Oktober 2013. Das hat auch nichts gebracht. In den mibfiles stehen passende OID drin, aber die werden nicht verschickt.

Ich denke mal das ist mit Absicht so gelöst, damit man Argumente für den Kauf hochpreisiger Geräte schafft. Selbst der HP Support musste vorhin am Telefon grübeln ;)

Link zu diesem Kommentar
Auf anderen Seiten teilen

  • 4 Wochen später...
hab ne weile mit denen geschafft aber die traps haben wir nicht genutzt... bei den procurves bekommst aber ein leben lang firmware upgrades. vielleicht wirds da "gefixed". mit einer software von hp (glaub auch als trial), kA mehr wie die heisst, kannst die auch recht einfach deployen.

Soweit habe ich das jetzt alles konfiguriert. Die 2410g Switches haben Ende 2013 auch ein Firmware Upgrade von mir spendiert bekommen. Aber Traps oder Syslog Nachrichten senden die nur für

eine Hand voll Events. Nichtmal mit tcpdump konnte ich irgendwas mitschneiden ;)

Dann werden die blöden Kisten eben über nen Cronjob in der Nacht abgefragt, drauf geschissen.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Deine Meinung

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Benutzerkonto hast, melde Dich bitte an, um mit Deinem Konto zu schreiben.

Guest
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung jetzt entfernen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

  • Vorschau
 Teilen

×
×
  • Neu erstellen...

Wichtige Information

Um unsere Webseite für Sie optimal zu gestalten und fortlaufend verbessern zu können, verwenden wir Cookies. Durch die weitere Nutzung der Webseite stimmen Sie der Verwendung von Cookies zu. Weitere Informationen zu Cookies erhalten Sie in unserer Datenschutzerklärung.