Folgendes wird benötigt:
- Mikrotik CHR mit P1/P10 Lizenz oder Mikrotik Router mit RouterOS
Solltest du mehrere Internetanschlüsse besitzen, benötigst du zusätzlich folgendes:
- OpenMPTCPRouter
- KVM VPS (am besten von noez für niedrige Latenz zum GRE-Tunnel)
Solltest du keinen physischen Router von Mikrotik besitzen, musst du zuerst auf deinem Hypervisor einen Mikrotik CHR installieren.
Ich kann folgendes Tutorial empfehlen: https://www.youtube.com/watch?v=WR2j0aXUfj4
Solltest du Verbindungen bis 1G haben wollen, benötigst du eine P1 Lizenz für den CHR.
Du kannst auch 10G Verbindungen verwenden, dafür benötigst du aber die P10 Lizenz.
Die Lizenz spiegelt immer den maximalen Throughput pro Interface wieder.
Testen kannst du ohne Lizenz, da ist aber der Throughput bis auf 1Mbit limitiert.
Ich würde dir empfehlen zuerst ohne Lizenz fortzufahren, da du bei Fehlern den Router einfach zurücksetzen kannst.
Folgendes Tutorial kann ich dir für OpenMPTCPRouter empfehlen, wenn du mehrere Internetanschlüsse besitzt: https://www.youtube.com/watch?v=mYYoIDCWszo
Diese Software installierst du auf einem VPS und auf einer separaten VM, damit du die IP von dem VPS erhältst.
OpenMPTCPRouter kümmert sich dann um den rest, du hinterlegst nur deine Internetanschlüsse und schließt den CHR an die LAN-Bridge an.
Falls du eine dynamische, öffentliche IP hast, musst du deine IP immer aktuell halten.
Nutze dafür am besten Crontab auf einer VM mit dem Script von Noez.
Wenn du keine Internetabbrüche durch wechselnde IPs haben möchtest die durch die Unterbrechung zum Tunnel entstehen, würde ich dir empfehlen ebenfalls OpenMPTCPRouter zu verwenden, da es auch mit einer WAN-Schnittstelle funktioniert.
Für den Tunnel ist es grundlegend erstmal egal ob du von deinen Router als Modem verwendest oder ob du auf dem LAN-Interface sitzt. Du brauchst bei noez ausschließlich deine öffentliche IP hinterlegen.
Solltest du keine öffentlich erreichbare IP auf deinem Router haben → ab zu OpenMPTCPRouter.
Sobald der CHR installiert ist, musst du zunächst 2 Interfaces hinterlegt haben:
→ ether1 ist der Weg nach draußen
→ ether2 ist das Interface wo die IPs am Ende landen.
Die Interfaces können bei dir anders heißen, bei Proxmox ist es aber Grundlegen gleich.
Ich würde dir empfehlen eine VM mit Desktop-Enviroment aufzusetzen und an beiden Interfaces anzuschließen (am besten Windows).
Lade dir WinBox herunter: MikroTik Routers and Wireless - Software
Das ist die Software von Mikrotik, welche für RouterOS entwickelt wurde um den Router zu verwalten
Melde dich nach Ausführung der .exe an deinem Router an.
Gehe zu Interfaces und wähle den Tab „Interface“.
Klicke auf ether2 und stelle die Option „ARP“ auf „proxy-arp“ um.
Klicke auf Apply und schließe mit OK.
Damit ist der erste Schritt geschafft.
Öffne nun ein Terminal indem du links auf den Button „New Terminal“ in der Liste klickst.
Gebe nun folgende Befehle ein (Platzhalter vorher ersetzen durch Informationen von deinem GRE-Tunnel, auch <> entfernen!):
/interface gre add comment=„noez.de FlexIP GRE“ disabled=no local-address=0.0.0.0 mtu=1476 name=noezgre1 remote-address=<„Einrichtungsdaten“-> IP von „(…) remote XXX.XXX.XXX.XXX ttl 225“>
/routing table add name=routing-noezgre1 fib /ip route add dst-address=<„Dein GRE-Tunnel“ → Internes Subnet> gateway=noezgre1
/ip route add dst-address=0.0.0.0/0 gateway=<„Dein GRE-Tunnel“ → Internes Gateway mit>/30 routing-table=routing-noezgre1
/ip address add address=<„Dein GRE-Tunnel“ → Interne Client-IP>/30 interface=noezgre1
Mit dem ersten Befehl wird die Verbindung zum GRE-Tunnel aufgebaut.
Mit dem zweiten Befehl wird ein Routing-Table angelegt, welcher später die IPs beinhaltet.
Mit dem dritten Befehl wird festgelegt, dass alle IPs auf dem Routing-Table später zu dem Gateway die Verbindung aufbauen, wenn eine IP erreicht werden soll.
Mit dem vierten Befehl wird auf dem GRE-Tunnel die lokale IP festgelegt.
Der Tunnel sollte jetzt erreichbar sein - nutze zum testen den „ping “.
Sollte ein Fehler auftreten würde ich dir empfehlen die IP des Empfängers des GRE-Tunnels bei noez zu ändern und von einer anderen IP die Verbindung kurz aufzubauen. Schalte währenddessen das Interface ab und ändere nach ca. 1-2 Minuten die IP zurück auf deine öffentliche IP oder die deines VPS.
Wenn es dann noch immer nicht geht, prüfe, ob du eine Internetverbindung hast.
Im Zweifelsfall: CHR zurücksetzen und nochmal anfangen
(hilft tatsächlich)
Nun müssen wir die IPs hinzufügen.
Wir opfern eine IP als Gateway, da dies die einfachste Möglichkeit ist den Traffic zu Routen.
Du solltest es auch mit der ersten oder letzten IP im Subnetz versuchen können (.1 oder .254), was ich aber nicht getestet habe.
Die IPs müssen alle einzeln hinzugefügt werden.
Nutze dafür folgende Befehle:
/routing rule add dst-address=0.0.0.0/0 action=lookup-only-in-table table=routing-noezgre1 interface=ether2 src-address=< IP >/32
/ip route add dst-address=< IP >/32 gateway=ether2
Mit dem ersten Befehl wird das Ziel gesetzt, bei Anfragen an alle IPs das Gateway des Routing Tables zu benutzen, welches zuvor festgelegt wurde.
Der zweite Befehl setzt das Gateway für die IP auf das Interface wo die IPs ausgegeben werden sollen.
Die IP die du als Gateway nutzen möchtest, musst du ebenfalls mit den Befehlen versehen.
Lege die als Gateway zu nutzende IP folgend fest:
/ip address add address=< IP >/32 interface=ether2
Damit sollte deine IPs nach Einstellung der Clients erreichbar sein.
Vergebe deine IPs mit /32 an die Clients und gib das zuletzt festgelegte Interface als Gateway an.
In meinem Fall habe ich es getestet mit einem Kabel-Anschluss und 2x DSL.
Die Latenzen halten sich zwischen 28ms und 38ms von Endbenutzer zu Server mit vergebener IP. Bei hoher Auslastung steigt die Latenz pro IP auf bis zu 60ms, erholt sich aber i.d.R. wieder schnell.
Die CHR Lizenz für P1 habe ich bei mikrotik-store.eu gekauft.
Hosted by suec//dacor GmbH (Frankfurt) [143.90 km]: 37.329 ms
Testing download speed…
Download: 484.44 Mbit/s
Testing upload speed…
Upload: 43.51 Mbit/s
Testing download speed…
Download: 381.19 Mbit/s
Testing upload speed…
Upload: 48.35 Mbit/s
Getestet mit einem Internet Anschluss, kann je nach Standort und Auslastung variieren.
Zeit zur Erarbeitung dieser Lösung: ca. 18 Stunden bei 0,0 Kenntnisstand in Sachen Routing.