Schlagwort: routeros

SNMP-Odysee mit Zabbix und Mikrotik

Aus mehreren Gründen (und aus Rache gegen vermeintlichen Vendor-Lock-In) bin ich auch privat auf Zabbix umgestiegen. Mikrotik mit SNMP einbinden und abfragen? Easy Peasy!

Bis zum Tag X, an dem zwei weitere Mikrotik Geräte mit RouterOS dazu kamen. Nix zu wollen! Ich dachte erst es ist ein Template-Problem bei Zabbix, weil ich Switche (aus guten Gründen, Danke Sandro 😉 mit RouterOS betreiben wollte.

cannot read from session: Bad parse of ASN.1 type (plaintext scopedPDU header type

snmpwalk mit v3, sah alles Top aus, keine Passwort oder IP oder Firewall Probleme. Alles ausgeschlossen. Nur sobald ich das in Zabbix haben wollte -> Nada!

Stunden später bin ich auf einen Beitrag aufmerksam geworden, dass die EngineID unterschiedlich sein muss, das auch sollte, aber aus irgendwelchen Gründen bei Mikrotik gleich ist.

Einfach einen eindeutigen String bei Engine ID suffix (ich hab mich dann für die Primäre MAC-Adresse ohne Doppelpunkte/Striche entschieden) eintragen, und das Thema ist durch.

MAC-Filter auf MikroTik

Um nur für bestimmte Clients bzw. deren MAC-Adressen Traffic zum oder durch den Router / Switch zu akzeptieren, können Bridge Filter eingesetzt werden:

/interface bridge filter add action=jump chain=forward jump-target=macfilter
/interface bridge filter add action=jump chain=input jump-target=macfilter
/interface bridge filter add action=accept chain=macfilter comment="Client ABC" src-mac-address=11:22:33:44:55:66/FF:FF:FF:FF:FF:FF
/interface bridge filter add action=accept chain=macfilter comment="Access Point 42" src-mac-address=AA:BB:CC:11:22:33/FF:FF:FF:FF:FF:FF
/interface bridge filter add action=log chain=macfilter comment="Log *" log-prefix="DROP macfilter"
/interface bridge filter add action=drop chain=macfilter comment="Drop *"

Zum vereinfachten Debugging empfiehlt sich, eine entsprechende Log-Regel zu implementieren.

Achtung: RoMON funktioniert auch bei aktivem MAC-Filter. Also nicht wundern, wenn Clients per RoMON erreichbar sind, aber andere Funktionalitäten wie IP-Zuweisung per DHCP oder generell der Trafficfluss nicht funktionieren.

MikroTik Routing Hints

  • NATting?
    • Im Idealfall kein NAT verwenden.
    • Ggf. SRCNAT-IP, die nicht zur relevanten Route / Routing-Table / Interface-IP passt?
      • Lösungsoptionen: MASQUERADE statt SRC-NAT oder die richtige IP-Adresse für das SRC-NAT verwenden.
  • Firewall Regel: fehlende Forward-Regel?
  • Routes: Hin- und Rückweg korrekt definiert?
  • Mangle / Routing Tables: Traffic landet in richtiger Table und dort ist auch eine passende Route vorhanden?
    • Beispiel: Traffic landet wegen Mangle-Regel in der Routing-Table inet1, wo jedoch nur globale Default Routes definiert sind. Soll der Traffic aber bspw. mittels einer spezifischen Route in der Routing-Table main über ein VPN-Netzwerk geleitet werden, so würde genau diese spezifische Route nicht greifen, da wegen der Mangle-Regeln die Routes in inet1 verwendet werden.

RouterOS 7: OSPF Redistribute Connected Routes

/routing/filter/rule/add chain=ospf-redist rule={if [protocol connected] then={action do=accept}

/routing/ospf/instance/set default out-filter-chain=ospf-redist

Zudem Bug bei IP-Addresses vermutet (RouterOS 7.0.2): Erst das Ändern der IP-Adresse auf der VPN-Bridge (/24 entfernen und wieder hinzufügen) hat ein korrektes Routing über die VPN-Bridge ergeben.

Quellen:

https://help.mikrotik.com/docs/display/ROS/ROSv7+Basic+Routing+Examples#ROSv7BasicRoutingExamples-OSPFConfiguration

https://forum.mikrotik.com/viewtopic.php?t=173574

MikroTik SNMP OID

MikroTiks RouterOS bietet auf der Kommandozeile die Möglichkeit, zu gewissen Werten die OIDs auszugeben. Dadurch erhält man schnell und einfach eine Zuordnung von Parametern zu OIDs, welche für das Monitoring mittels SNMP genutzt werden können. Mit Hilfe des folgenden Befehls können OIDs überall dort ermittelt werden, wo entsprechende Parameter seitens des Herstellers implementiert wurden:

print oid

Gängige Beispiele:

/system health print oid 
            voltage: .1.3.6.1.4.1.14988.1.1.3.8.0
            current: .1.3.6.1.4.1.14988.1.1.3.13.0
        temperature: .1.3.6.1.4.1.14988.1.1.3.10.0
  power-consumption: .1.3.6.1.4.1.14988.1.1.3.12.0

/interface print oid 
Flags: D - dynamic, X - disabled, R - running, S - slave 
 0  R  ;;; ether1 - WAN
       name=.1.3.6.1.2.1.2.2.1.2.463 
       actual-mtu=.1.3.6.1.2.1.2.2.1.4.463 
       mac-address=.1.3.6.1.2.1.2.2.1.6.463 
       admin-status=.1.3.6.1.2.1.2.2.1.7.463 
       oper-status=.1.3.6.1.2.1.2.2.1.8.463 
       bytes-in=.1.3.6.1.2.1.31.1.1.1.6.463 
       packets-in=.1.3.6.1.2.1.31.1.1.1.7.463 
       discards-in=.1.3.6.1.2.1.2.2.1.13.463 
       errors-in=.1.3.6.1.2.1.2.2.1.14.463 
       bytes-out=.1.3.6.1.2.1.31.1.1.1.10.463 
       packets-out=.1.3.6.1.2.1.31.1.1.1.11.463 
       discards-out=.1.3.6.1.2.1.2.2.1.19.463 
       errors-out=.1.3.6.1.2.1.2.2.1.20.463 

Quelle

MikroTik Wishlist

Isch hätt gern für bestimmte Use Cases ein MikroTik-Device mit folgenden Eigenschaften:

  • LACP 802.3ad (Bonding) mit Hardware Offloading
  • IPsec Hardware acceleration
  • mind. 1 * PoE-Out 802.3af/at oder Passive PoE
  • mind. 2 * 10GbE, bevorzugt SFP+ oder alternativ 10GBASE-T
  • x * GbE (1000BASE-T)
  • redundante Netzteile
  • passive Kühlung bzw. kein Lüfterbetrieb bei Raumtemperatur

Optional:

  • PoE-In
  • Serial Console Port
  • 19″ Chassis

Die o.g. Anforderungen mögen als eine Art Zwitter bisheriger MikroTik-Devices erscheinen. Teile davon finden sich derzeit überwiegend in den Switch-Modellen (bspw. LACP Hardware Offloading), andere wiederum eher in Routern (IPsec Hardware acceleration).

VPN mit Proxy ARP

Use case: VPN-Einwahl, bei der die VPN-Clients IP-Adressen des Zielnetzes erhalten.

Problem: Forwarding / Routing der Pakete zu Geräten im Zielnetz funktioniert nicht. Tx-Pakete gehen an das Zielgerät, Rx-Pakete (Antworten) kommen nicht zurück.

Lösung: Proxy ARP auf lokalem Netzwerk-Interface des VPN-Servers konfigurieren. Kommt auf dem Gateway für das lokale Netz eine Bridge zum Einsatz, ist auf dieser Proxy ARP zu aktivieren.

Quelle