December Adventure 2025


Dieses Jahr möchte ich etwas anderes versuchen. RouterOS der Firma Mikrotik begeistert mich schon etwas länger, aber ich habe viele der tausenden Features und Optionen noch nicht ausprobiert oder verstanden. Das will ich die nächsten 31 Tage nachholen und mir jeden Tag ein Feature oder eine Option näher anschauen und anschließend eine Empfehlung geben in welchen Szenarien sie sinnvoll ist.

RouterOS von Mikrotik

Tag 1: /ip packing


Unter diesem Feature verbigt sich eine Technik, mit der auf Kosten der Latenz der Datendurchsatz erhöht werden kann -- in eine oder beide Richtungen. IP Packing wird zwischen zwei Interfaces (das kann ein Ethernet-Port oder ein VPN-Tunnel sein) aktiviert. Sendet nun ein Host über eines der konfigurierten Interfaces viele Pakete, werden diese am Router gesammelt (aggregated-size) und in einem großen Paket ans Ziel gesendet. Dabei kann optional noch Kompression angeschaltet werden (packing), so dass die zu übertragende Datenmenge kleiner wird (nur noch 1x der IP Header + die komprimierten Daten). Beide Interfaces müssen dabei aufeinander abgestimmt sein, damit das funktioniert. So sollte der Sender "packing" auf etwas anderes stellen als "none" und analog der Empfänger bei "unpacking". Natürlich braucht ein einzelnes Paket länger, da es eine Zeit lang vom Router vorgehalten wird. Es lohnt sich also bei konkreten Links, die für spezielle Zwecke eingerichtet sind und große Datenmengen transferieren (nächtliches Backup aufs NAS, Download von größeren Dateien, Abgleich von Bildarchiven, ...).

# Router 1
/ip neighbor discovery set ether1 discovery=yes
/ip packing add interface=ether1 packing=compress-all unpacking=none

# Router 2
/ip neighbor discovery set ether1 discovery=yes
/ip packing add interface=ether1 packing=none unpacking=compress-all

Dokumentation zu IP Packing

Tag 2: /system ntp client set enabled=yes


Aktiviert den NTP-Client zur Zeit-Synchronisation. Nachdem die Einstellung aktiviert ist, wird der unter "Servers" eingetragene Zeitserver kontaktivert, die aktuelle Uhrzeit abgefragt und im System gesetzt. So muss man sich keine Gedanken um Sommer- und Winterzeit machen, zeitgesteuerte Scripte laufen korrekt, Logeinträge haben den richtigen Zeitstempel und die "Kids Control" Funktionen sperren die Geräte zur richtigen Zeit. Diese Option sollte (sofern eine Internetverbindung besteht) immer angeschaltet sein.

Tag 3: /safe-mode toggle (CTRL + X)


Aktiviert/Deaktiviert den "Safe-Mode", erkennbar an dem <SAVE> im Terminal-Prompt. Normalerweise sind alle Änderungen nach einem Klick auf "Ok" oder "Apply" bzw. nach Absenden des Befehls auf dem Terminal direkt aktiv und gespeichert. Macht man einen Fehler, löscht eine IP oder deaktiviert man eine Bridge, kann es schwierig werden, wieder auf das Equipment zuzugreifen um den Fehler zu korrigieren. Ist der Safe-Mode aktiv, werden weiterhin Änderungen direkt aktiv, aber nicht gespeichert. Im Notfall genügt ein Reboot und die Änderungen sind wieder rückgängig gemacht. Gleiches gilt beim Schließen des Terminals. Möchte man die Änderungen persistieren, genügt es den Safe-Mode zu deaktiveren (gleicher Command). Eine Ähnliche Funktion gibt es übrigens in WinBox, hier ist sie oben rechts in der Titelleiste versteckt. Hat man Änderungen im Safe-Mode gemacht und möchte WinBox verlassen, wird man hier darauf hingewiesen. Ein sehr praktisches Feature, wenn man heikle Änderungen vornehmen möchte.

Tag 4: /interface bridge settings set allow-fast-path=yes


Was nach einem kleinen Setting aussieht, ist ein echter Performance-Booster. Wenn ein Paket den Router erreicht, durchläuft es eine ganze Reihe von Stationen, die das Paket filtern, weiterleiten, verändern, in ein anderes Format kapseln oder ignorieren. All das wird von der CPU gemacht. Das hat zum einen den Vorteil, dass alles in Software gelöst ist und somit RouterOS auf so gut wie jeder Hardware läuft. Allerdings schlägt das natürlich etwas auf die Performance und im Vergleich zu anderen Geräten (ein billiger unmanaged Switch z.B., bei dem alles in Hardware umgesetzt ist) ist ein Mikrotik-Gerät langsamer. Es gibt aber ein paar Optionen, wie man den Traffic auf eine Abkürzung schicken kann bzw. das Paket nicht mal mehr die CPU berührt. Eines davon ist Fast Path: Hier wird Funktionalität gegen Performance getauscht. Verzichtet man auf einige Features, kann unter gewissen Umständen das Paket abkürzen und direkt zum Ziel-Interface weitergeleitet werden. Tritt dennoch der Fall ein, dass ein Paket durch die Firewall muss oder in ein WiFi-Interface geroutet werden muss, wechselt das Paket über zum Slow Path. Es schadet also nicht, Fast Path zu aktivieren, auch wenn ein Teil der Pakete dennoch den Slow Path nehmen müssen. Wie viel Traffic die Abkürzung genommen haben, kann man mit "/interface bridge settings print" sehen.

Der Paketfluss in RouterOS ("Slow Path")

Tag 5: /ip settings set send-redirects=yes


Sollen ICMP Redirects gesendet werden oder nicht. Ein ICMP Redirect Paket kommt von einem Router, um Hosts effizientere Routen anzubieten. Kommt ein Paket am Router an, das für einen anderen Zielhost gedacht ist, kann dieser das Paket auf einem ihm bekannten Weg weiterleiten. Ist dem Router aber eine (für den Sender des Pakets) schnellere Route bekannt, kann dieser eine ICMP Redirect Nachricht an den Sender schicken. Dieser aktualisiert seine eigene Routing-Tabelle, kennt damit die bessere Route und kann dann das Paket auf direkterem Weg (ohne den Router als Mittelsmann) versenden. Alle folgenden Pakete werden dann über den neuen Weg versendet. Ist die Funktion aktiv, führt das tendenziell zu besseren Routen, da der Weg von Quelle zum Ziel verkürzt wird. Es lohnt sich also, diese Option angeschaltet zu lassen.

Tag 6: /safe-mode toggle (CTRL+X)


Aktiviert/Deaktiviert den "Safe mode", erkennbar an dem <SAVE> im Terminal-Prompt. Normalerweise sind alle Änderungen nach einem Klick auf "Ok" oder "Apply" direkt aktiv und gespeichert. Macht man einen Fehler, löscht eine IP oder deaktiviert man eine Bridge, kann es schwierig werden, wieder auf das Equipment zuzugreifen um den Fehler zu korrigieren. Ist der Safe-Mode aktiv, werden weiterhin Änderungen direkt aktiv, aber nicht gespeichert. Im Notfall genügt ein Reboot und die Änderungen sind wieder rückgängig gemacht. Gleiches gilt beim schließen des Terminals. Möchte man die Änderungen persistieren, genügt es den Safe Mode zu deaktiveren (gleicher Command). Eine Ähnliche Funktion gibt es übrigens in WinBox, hier ist sie oben rechts in der Titelleiste versteckt. Hat man Änderungen im Safe Mode gemacht und möchte WinBox verlassen, wird man hier darauf hingewiesen. Ein sehr praktisches Feature, wenn man heikle Änderungen vornehmen möchte.

Tag 7: /interface bridge port set 0 comment="Uplink"


Die meisten listen-artigen Einstellungen wie die Liste der Ports oder die Liste der Firewall-Regeln erlauben es, einen Kommentar zu setzen. Dieser wird dann in WinBox und auf der Console gesondert als Titel am Eintrag angezeigt. Das ist eine großartige Lösung, um das Netzwerk an Ort und Stelle zu dokumentieren. Wer WinBox nutzt, wird dadurch belohnt, dass der Kommentar bei Dropdown-Feldern und anderen Stellen mit angezeigt wird. Seine Arbeit zu dokumentieren -- gerade wenn es kryptische Ethernet-Ports oder VLAN-IDs sind -- macht auf jeden Fall Sinn. (Der obige Befehl ist nur ein Beispiel, er soll nur demonstrieren, wie ein Kommentar gesetzt werden kann.)

Tag 8: /tool torch interface=ether1


Mit dem Torch-Tool lässt sich Traffic auf einem Interface "beleuchten". Mit entsprechenden Filtern lässt sich so genau sehen, welcher und wie viel Traffic eingehend bzw. ausgehend fließt. Ein tolles Feature füë die schnelle Analyse. Zu beachten ist, dass Torch den Traffic direkt am Eingang abgreift, also noch bevor die Firewall das Paket gesehen hat. Auch wichtig zu wissen: Ist Hardware Offloading aktiv und die Pakete werden direkt vom Switch-Chip verarbeitet, sieht das Torch-Tool diese nicht. Bei der Benutzung von WinBox sieht man an vielen Stellen einen "Torch" Button. Dieser startet ds Torch Tool direkt mit vorausgefüllten Filtern.

Tag 9: Flags


Die meisten Listen haben eine "Flags"-Spalte. Das sind An/Aus-Optionen die entweder dynamisch oder manuell gesetzt werden. In der Liste werden sie mit einem Buchstaben abgekürzt. Mit der Maus darüberhovern zeigt den Namen des Flags. Öffnet man den Eintrag mit einem Doppelklick, werden die Flags nochmal unten angezeigt.

images/december-adventure-2025-flags.png
Hier die wichtigsten Flags:

* X (disabled): Der Eintrag ist deaktiviert und hat keinen Effekt. Entfernt man den Haken bei "Enabled", wird der Eintrag automatisch deaktiviert.

* R (running): Ist der Eintrag aktiv und "funktional". Bei Ports und Interfaces ist das ein Zeichen, dass Traffic fließen kann, bei Services ist es das Indiz, dass er läuft.

* S (slave): Ist der Port oder das Interface einer Bridge zugewiesen, wird er zum Slave, da das Routing nun die Bridge übernimmt.

* D (dynamic): Einträge, die RouterOS selbst hinzufügt oder entfernt. Firewall-Regeln für die KidControl oder DHCP Leases sind z.B. dynamische Einträge. Einige davon kann man mit dem Button "Make Static" auch statisch machen.

* H (Hw. Offload): Ist Hardware Offloading für einen Port aktiv, gibt dieses Flag an, ob es auch genutzt wird. Es gibt einige Fälle, in denen zwar Hardware Offloading gesetzt ist, aber nicht genutzt werden kann (wenn Pakete durch die IP-Firewall müssen oder die Hardware es nicht unterstützt).

Tag 10: /tool romon set enabled=yes secrets=FqfWV8mxsaw88Z


RoMON ist eine Eigenentwicklung von Mikrotik und steht für "Router Management Overlay Network". Ein virtuelles Netzwerk also, um Router zu konfigurieren. Das ist besonders nützliche, wenn man mehrere Router, AccessPoints und andere Mikrotik-Geräte managen will. RoMON ist unabhängig von Layer 3, also ideal wenn man am Netzwerk schraubt, auf das man remote verbunden ist und sich nicht den Boden unter den Füßen wegziehen will. Ist RoMON aktiviert und ein gemeinsames Secret gesetzt, nimmt das Gerät an diesem Overlay Netzwerk teil. In WinBox klickt man dann nicht auf "Connect" sondern auf "Connect to RoMON" (die üblichen Zugangsdaten bleiben bestehen). Damit verbindet sich WinBox remote auf den Router und zeigt alle Geräte an, die ebenfalls RoMON aktiviert haben (Neighbors). Klickt man einen aus der Liste doppelt an, wird eine RoMON-Verbindung über den zuvor verbundenen Router aufgebaut. Das funktioniert auch über Netzwerke und VPN-Tunnel hinweg.

Tag 11: /tool graphing interface add interface=bridge store-on-disk=no


Möchte man historische Traffic-Daten (oder auch die Auslastung der Hardware), gibt es das Graphing Tool. Damit lassen sich Graphen für einzelne Interfaces generieren und auf einer HTML-Seite anzeigen. Es empfiehlt sich, die Graphen nicht abzuspeichern, da sonst die Abnutzung des Speichers durch die vielen Schreibzugriffe beschläunigt wird (Nachteil: Nach einem Reboot ist alles weg). Ansehen kann man die Graphen dann unter http://<IP des Routers>/graphs.

Tag 12: DHCP Snooping


Ein DHCP-Server vergibt IP-Adressen im Netz. Allerdings gibt es hier keinerlei Authentifizierung, jeder kann einen weiteren DHCP-Server ins Netz hängen und so auch IP-Adressen vergeben (Sog. "Rogue DHCP Server"). Um das zu verhindern, können auf Layer 2 Ebene am Switch (Bridges, Ports) die Ports definiert werden, die legitime DHCP-Server anbieten dürfen. Hierzu muss die Bridge "dhcp-snooping" aktiviert haben und die Ports (meist nur einer) hinter denen legitime DHCP-Server stehen, vertraut werden. Im unteren Beispiel wird DHCP Snooping für die Bridge mit dem namen "bridge" aktiviert und dem Bridge-Port mit dem Index 1 vertraut. Alle anderen Ports in der Bridge können so keinen DHCP-Server mehr anbieten (DHCP-Requests gehen natürlich weiterhin).

/interface bridge port set trusted=yes 1
/interface bridge set [find where name="bridge"] dhcp-snooping=yes

Tag 13: -


Keine Zeit :(

Tag 14: -


Keine Zeit :(

Tag 15: /system leds settings set all-leds-off=after-1min


Abhängig von der Hardware gibt es ein oder mehrere LEDs, die gesteuert werden können. Hat man den Router im Wohnzimmer oder Schlafzimmer, stören evtl. die hellen LEDs. Und auch zum Strom Sparen lohnt es sich, die LEDs abzuschalten.

Tag 16: /tool netwatch add host=10.10.10.1 type=icmp interval=30s timeout=10s


Mit dem Netwatch tool lässt sich eine einfache Überwachung realisieren. In regelmäßigen Abständen wird eine IP auf seine Erreichbarkeit geprüft. Dabei stehen mehrere Möglichkeiten bereit, von ICMP-Ping bis HTTPS-Statuscode. Gibt es eine Statusänderung (IP ist nicht mehr erreichbar), kann ein Script ausgeführt werden. Diesen Mechanismus kann man nutzen, um eine E-Mail zu verschicken oder den Router selbst umkonfigurieren (z.B. Uplink austauschen oder Routing-Tabelle anpassen).

Tag 17: /interface address print where dynamic


Mit dem "print"-Befehl kann man sich eine Liste ausgeben lassen (hier in dem Fall die Liste der Interface-Adressen). Wenn die Liste zu lange wird oder etwas ganz bestimmtes gesucht wird, kann man mit "where" einen Filter setzen. Die an Tag 9 beschriebenene Flags lassen sich hier direkt angeben. Im obigen Beispiel werden alle IP-Adressen ausgegeben, die dynamisch gesetzt wurden (durch einen DHCP-Client z.B.).

Tag 18: /interface macvlan add interface=ether5 name=ether5-macvlan1


Ein physikalisches Interface hat eine fest in der Hardware verankerte MAC-Adresse und bekommt eine IP-Adresse. Mit MACVLAN kann man einem physikalisches Interface mehrere MAC-Adressen geben und so auch mehrere IP-Adressen und alles weitere, was auf Layer 2 möglich ist. Docker bietet ein ähnliches Feature an, das auch auf MACVLAN basiert und so mehrere virtuelle Netzwerkadapter auf ein Interface mappen kann.

Mikrotik Dokumentation zu MACVLAN
Docker Dokumentation zum macvlan Modus

Tag 19: /ip service set www disabled=no


Mikrotik-Geräte lassen sich auch über den Browser konfigurieren (nennt sich WebFig). Wer das nicht braucht, kann es auch bequem deaktivieren um ein bisschen Ressourcen zu sparen und einen Angriffsvektor weniger zu bieten. Unter /ip service sind noch weitere Services verfügbar, die sich alle nach Bedarf an- oder ausstellen lassen. Wer Telnet nicht braucht, sollte diesen Service ebenfalls abstellen.

Tag 20: -


Keine Zeit :(

Tag 21: -


Keine Zeit :(

Tag 22: Bandbreite messen


RouterOS hat ein integriertes Tool zur Messung der Bandbreite. Dabei gibt es zwei Komponenten: Server und Client. Auf einem Mikrotik-Gerät muss der Server, auf dem anderen der Client gestartet werden.

/tool bandwidth-server set enabled=yes authenticate=no # Server
/tool bandwidth-test address=10.10.10.1 # Client

Läuft der Bandbreiten-Test, merkt man direkt, welches Limit erreicht wird. Ist es die Verbindung selbst, die CPU, ineffiziente Firewall-Regeln oder etwas ganz anderes. Praktischerweise werden lokale und entfernte CPU-Auslastung angezeigt. Allerdings sollte man bedenkten, dass die Generierung des Traffics auch die CPU beansprucht und somit das Ergebnis etwas verfälscht ist.

Tag 23: Fenster-Management in WinBox (4)


In Tutorial-Videos auf Youtube sehe ich häufig, wie ineffizient die Navigation in WinBox gemacht wird. Deshalb hier mal die Basics: Es gibt grundlegend drei verschiedene Arten von Fenstern: Listen, Dialogfenster mit drei Buttons am Ende und die Console. Alle drei Arten lassen sich mit einem Doppelklick auf die blaue Titelleiste maximieren und wieder zur ursprünglichen Größe verändern. Listen und Dialogfenster lassen sich mit Escape schließen (entspricht dem "Cancel"-Button), Consolenfenster allerdings nicht, da sonst evtl. laufende Prozesse abgebrochen würden. Die Fensterkonfiguration bleibt auch nach dem Schließen und wieder Öffnen von WinBox beibehalten. Mit ALT + A kann man zwischen den offenen Fenstern navigieren. Mit ALT + F öffnet sich eine globale Suche (mit fuzzy search), über die schnell ein Fenster geöffnet werden kann, ohne lange im Menü zu wühlen.

Ganz wichtig: Alle Inhalte, die in WinBox zu sehen sind, sind "Live". Sie spiegeln den aktuellen Zustand wieder. Wird ein Wert verändert oder eine Einstellung vorgenommen (direkt in WinBox oder von extern), wird dies direkt im UI angezeigt.

Hier noch ein paar Eigenheiten der verschiedenen Fenstertypen:

* Console: Kann mit CTRL + D geschlossen werden. Nachdem WinBox geschlossen und wieder neu geöffnet wurde, wird ein neues Terminal geöffnet, der Scrollback-Buffer ist deshalb leer. Doch die History der eingegebenen Befehle wurde gespeichert und kann mit Pfeil-Hoch wieder erreicht werden.

* Listen: In der Titelleiste sind meist verschiedene Tabs zu sehen, die wiederum verschiedene Listen repräsentieren. Welche angezeigt werden, kann man mit dem kleinen Pfeil nach unten definieren. Benötigt man also mehrere Tabs nie, kann man diese einfach ausblenden. Mit CTRL + Tab kann man zwischen den Tabs springen. In den Listen selbst spielen die vergebenen Kommentare eine große Rolle. Diese werden direkt am Eintrag angezeigt. Am unteren Rand ist ein Button mit der Aufschrift "Live" zu sehen (aktueller Zustand). Klickt man diesen, werden die Tabelleninhalte im aktuellen Zustand pausiert. Das ist praktisch, wenn man die Anzahl der Pakete zählen will oder einen Zustand nach einem Ereignis analysieren will.

* Dialogfenster: Können ebenfalls Tabs besitzen, auch hier geht CTRL + Tab. Ist es ein Listeneintrag, stehen am unteren Rand die Flags. Die allermeisten Dialogfenster haben drei Buttons: Cancel verlässt das Fenster wieder, ohne die vorgenommenen Änderungen zu speichern (wie Escape). Apply speichert die gemachten Änderungen (welche dann direkt Live sind), behält aber das Fenster noch offen. Ok speichert ebenfalls die gemachten Änderungen, aber schließt anschließend das Fenster. Möchte man eine Änderung durchführen, reicht ein Klick auf Ok, um diese anzuwenden. Apply muss nicht zusätzlich gedrückt werden.

Tag 24: -


Keine Zeit :(

Tag 25: /system resource monitor


Kommt die Hardware an seine Grenzen, sind die CPU-Auslastung und der freie RAM die wichtigsten Indikatoren, die man gerne im Auge behalten will, wenn man dies versucht zu optimieren. Beides wird in WinBox am unteren Rand kontinuierlich angezeigt. Arbeitet man auf der Console, kann man sich diese auch ausgeben. Sehr praktisch, wenn Pakete eigentlich vom Switch-Chip abgearbeitet werden sollten, aber dennoch durch die CPU gehen.

Tag 26: /interface ethernet switch print


Es ist immer gut zu wissen, welche Hardware vorliegt. Ganz besonders die Switch-Chips sind interessant, da diese die meiste Arbeit verrichten und die CPU entlasten. Welche genau verbaut sind, sieht man einerseits im Block-Diagram, das zu jedem Gerät über mikrotik.com einsehbar ist, und andererseits direkt über den oben genannten Befehl. Es macht Sinn, sich mit den verbauten Switch-Chips und deren Features vertraut zu machen und die Konfiguration entsprechend danach zu richten. So kann man die Hardware optimal ausnutzen.

Tag 27: -


Keine Zeit :(

Tag 28: /interface ethernet poe set ether10 power-cycle-ping-enabled=yes power-cycle-ping-address=10.10.10.15


Über PoE-Ports lassen sich weitere Netzwerk-Geräte mit Strom (und Netzwerk) versorgen. Was aber, wenn das angeschlossene Gerät nicht mehr reagiert und resettet werden muss? Hierfür kann man das Power Cycle Ping Feature nutzen. Hier wird das verbundene Gerät kontinuierlich geprüft, ob es noch reagiert (ICMP-Ping). Wenn nicht, wird der PoE-Port kurzzeitig stromlos geschaltet und somit das angeschlossene Gerät resettet.

Tag 29: Produktnamen


Mikrotiks Produktnamen sind alles andere als leicht zu merken. Das mag im Kontrast du Apple-Produkten etwas abeschreckend wirken. Doch die krüptischen Zahlen- und Buchstabenkombinationen sind nicht zufällig gewählt oder stammen aus der Marketing-Abteilung: Sie beschreiben die Hardware präzise, so wie man sie vor sich hat. Das macht die Suche nach der geeigneten Hardware sehr einfach und bei unbekannter Hardware genügt ein Blick auf die Bezeichnung und man weiß, was man vor sich hat. Es lohnt sich also, einen Blick in die Doku zur Produktbenamung zu werfen und sich mit den Kürzeln vertraut zu machen.

Hilfeseite zur Produktbenamung

Tag 30: /lcd set enabled=no


Einige Geräte verfügen ober ein LCD-Display. Ist die Hardware in einem Rack verbaut oder wird die Anzeige sowieso nicht verwendet, kann man sie auch komplett abschalten und so gleich noch etwas Strom sparen. Zudem kann so das Gerät nicht "von aussen" bedient werden.

Tag 31: Peripherie


Viele Mikrotik-Geräte haben einen (micro)USB-Port, SFP(+)-Cages oder U.2-Slots, über die verschiedene Hardware angeschlossen werden kann, um weitere Features nachzurüsten. Beim RDS sind das vorrangig die U.2-Slots, aber auch über den USB-Port lassen sich Modems, "Surf-Sticks", USB-Sticks oder externe Festplatten anschließen. Und auch über das SFP-Cage lassen sich nicht nur Glasfaser anschließen, sondern auch ganze PCs.

Kompatibilitätsliste
SFP Mini Server