MikroTik Tutorial: Load Balancing (PCC) und automatisches Failover mit 2 Internetanbietern (ISPs)
In diesem Tutorial lernen Sie, wie Sie einen MikroTik-Router so konfigurieren, dass er den Datenverkehr über zwei separate Internetanbieter (Dual-WAN) verteilt (Load Balancing) und bei Ausfall einer Leitung automatisch den gesamten Datenverkehr über die verbleibende Leitung leitet (Failover).
Wir nutzen hierfür die bewährte Methode PCC (Per Connection Classifier). Sie stellt sicher, dass Verbindungen (z. B. Online-Banking oder Streams) stabil über dieselbe WAN-Schnittstelle laufen und nicht mitten in der Sitzung abbrechen.
Beispielszenario & Netzwerktopologie
- ISP 1: Angeschlossen an ether1 (Gateway:
192.168.1.1) - ISP 2: Angeschlossen an ether2 (Gateway:
192.168.2.1) - Lokales Netzwerk (LAN): Angeschlossen an ether3 bzw.
bridge-LAN(Netzwerk:192.168.88.0/24)
(Hinweis: Falls Ihre Provider DHCP nutzen, deaktivieren Sie in den DHCP-Clients die Option „Add Default Route“, da wir die Routen manuell anlegen müssen).
Schritt 1: Routing-Tabellen anlegen (RouterOS v7)
Erstellen Sie zwei Routing-Tabellen, damit der Router den markierten Datenverkehr den jeweiligen ISPs zuordnen kann:
/routing table
add disabled=no fib name=to_WAN1
add disabled=no fib name=to_WAN2
Schritt 2: NAT (Masquerading) einrichten
Damit die Clients aus dem LAN über beide WAN-Schnittstellen ins Internet geroutet werden können, aktivieren wir das Masquerading für beide Anschlüsse:
/ip firewall nat
add action=masquerade chain=srcnat out-interface=ether1 comment="NAT fuer ISP1"
add action=masquerade chain=srcnat out-interface=ether2 comment="NAT fuer ISP2"
Schritt 3: Mangle-Regeln definieren (PCC & Routing-Marks)
Die Mangle-Regeln sind das Kernstück des Load Balancings. Sie teilen den Datenverkehr auf und sorgen dafür, dass Anfragen, die über ISP1 reinkommen, auch über ISP1 beantwortet werden (und dasselbe für ISP2).
Führen Sie folgende Befehle im Terminal aus:
/ip firewall mangle
# 1. Lokalen Datenverkehr (LAN zu LAN) von den Regeln ausschließen
add action=accept chain=prerouting dst-address=192.168.1.0/24 in-interface=bridge-LAN
add action=accept chain=prerouting dst-address=192.168.2.0/24 in-interface=bridge-LAN
# 2. Eingehende Verbindungen von den WANs markieren, damit Antworten den gleichen Weg nehmen
add action=mark-connection chain=prerouting connection-mark=no-mark in-interface=ether1 new-connection-mark=WAN1_conn passthrough=yes
add action=mark-connection chain=prerouting connection-mark=no-mark in-interface=ether2 new-connection-mark=WAN2_conn passthrough=yes
# 3. PCC: LAN-Verbindungen 50/50 auf beide WANs aufteilen
add action=mark-connection chain=prerouting connection-mark=no-mark dst-address-type=!local in-interface=bridge-LAN new-connection-mark=WAN1_conn passthrough=yes per-connection-classifier=both-addresses:2/0
add action=mark-connection chain=prerouting connection-mark=no-mark dst-address-type=!local in-interface=bridge-LAN new-connection-mark=WAN2_conn passthrough=yes per-connection-classifier=both-addresses:2/1
# 4. Routing-Markierungen basierend auf den Verbindungsmarkierungen setzen
add action=mark-routing chain=prerouting connection-mark=WAN1_conn in-interface=bridge-LAN new-routing-mark=to_WAN1 passthrough=yes
add action=mark-routing chain=prerouting connection-mark=WAN2_conn in-interface=bridge-LAN new-routing-mark=to_WAN2 passthrough=yes
Schritt 4: Routen und Failover konfigurieren
Nun verknüpfen wir die Markierungen mit den echten Gateways und richten eine Ping-Überwachung (check-gateway) sowie unterschiedliche Distanzen (Distance) für den automatischen Ausfallschutz ein.
/ip route
# Routen für das Load Balancing (markierter Traffic)
add dst-address=0.0.0.0/0 gateway=192.168.1.1 routing-table=to_WAN1 check-gateway=ping distance=1
add dst-address=0.0.0.0/0 gateway=192.168.2.1 routing-table=to_WAN2 check-gateway=ping distance=1
# Fallback-Routen, falls einer der ISPs im Load-Balancing ausfällt
add dst-address=0.0.0.0/0 gateway=192.168.2.1 routing-table=to_WAN1 distance=2
add dst-address=0.0.0.0/0 gateway=192.168.1.1 routing-table=to_WAN2 distance=2
# Haupt-Routing-Tabelle für den Router selbst und unmarkierten Traffic (klassisches Failover)
add dst-address=0.0.0.0/0 gateway=192.168.1.1 distance=1 check-gateway=ping comment="Default ISP1"
add dst-address=0.0.0.0/0 gateway=192.168.2.1 distance=2 comment="Default ISP2 (Backup)"
Funktionsweise des Failovers:
check-gateway=pingprüft alle 10 Sekunden, ob das Gateway erreichbar ist.- Antwortet das Gateway von ISP1 nach zwei Versuchen nicht, wird die Route deaktiviert.
- Der Router springt automatisch auf die Route mit
distance=2um. Der gesamte Datenverkehr fließt nun nahtlos über ISP2. - Sobald ISP1 wieder erreichbar ist, wird ISP1 automatisch wieder als primärer Pfad aktiviert.
Schritt 5: Testen der Konfiguration
- Load Balancing testen:
- Öffnen Sie mehrere Browser-Tabs und starten Sie unterschiedliche Downloads oder rufen Sie Webseiten wie speedtest.net und wieistmeineip.de auf.
- Überprüfen Sie in Winbox unter Interfaces, ob über
ether1undether2gleichzeitig Daten übertragen werden.
- Failover testen:
- Starten Sie im lokalen Netzwerk einen Dauer-Ping (z. B.
ping 8.8.8.8 -t). - Ziehen Sie das Netzwerkkabel aus ether1 (ISP1).
- Nach ca. 10 bis 20 Sekunden sollte der Ping weiterlaufen (ISP2 übernimmt).
- Stecken Sie das Kabel wieder ein – der Router schwenkt automatisch zurück.
- Starten Sie im lokalen Netzwerk einen Dauer-Ping (z. B.