Echte Zusammenfassung von Internetkanälen - OpenMPTCPRouter

Echte Zusammenfassung von Internetkanälen - OpenMPTCPRouter

Ist es möglich, mehrere Internetkanäle zu einem zusammenzufassen? Es gibt viele Missverständnisse und Mythen rund um dieses Thema, selbst erfahrene Netzwerktechniker wissen oft nicht, dass dies möglich ist. In den meisten Fällen wird die Link-Aggregation fälschlicherweise als NAT-Balancing oder Failover bezeichnet. Aber echte Summierung erlaubt Führen Sie eine einzige TCP-Verbindung gleichzeitig über alle Internetkanäle ausB. Videoübertragungen, sodass die Übertragung nicht unterbrochen wird, wenn einer der Internetkanäle unterbrochen wird.

Es gibt teure kommerzielle Lösungen für die Videoübertragung, aber solche Geräte kosten viel Geld. Der Artikel beschreibt die Konfiguration des kostenlosen, offenen Pakets OpenMPTCPRouter und geht auf populäre Mythen zur Kanalsummierung ein.

Mythen über Summierungskanäle

Es gibt viele Heimrouter, die die Multi-WAN-Funktion unterstützen. Manchmal bezeichnen Hersteller diesen Kanal als Summierung, was nicht ganz stimmt. Viele Netzwerker glauben, dass zusätzlich zu LACP und Summierung auf der L2-Ebene gibt es keine andere Kanalaggregation. Ich habe oft gehört, dass dies von Leuten, die in der Telekommunikation arbeiten, grundsätzlich unmöglich ist. Versuchen wir daher, populäre Mythen zu verstehen.

Ausgleich auf der Ebene der IP-Verbindungen

Dies ist die günstigste und beliebteste Möglichkeit, mehrere Internetkanäle gleichzeitig zu nutzen. Stellen wir uns der Einfachheit halber vor, dass Sie drei ISPs haben, von denen jeder Ihnen eine echte IP-Adresse aus seinem Netzwerk gibt. Alle diese Anbieter sind an einen Router angeschlossen, der die Multi-WAN-Funktion unterstützt. Dies kann OpenWRT mit dem mwan3-Paket, Mikrotik, Ubiquiti oder jeder andere Haushaltsrouter sein, da diese Option mittlerweile keine Seltenheit mehr ist.

Um die Situation zu simulieren, stellen Sie sich vor, dass uns die Anbieter folgende Adressen gegeben haben:

WAN1 — 11.11.11.11
WAN2 — 22.22.22.22
WAN2 — 33.33.33.33

Das heißt, eine Verbindung zu einem Remote-Server herstellen example.com Über jeden Anbieter sieht der Remote-Server drei unabhängige Quell-IPs des Clients. Durch den Ausgleich können Sie die Last auf mehrere Kanäle verteilen und alle drei gleichzeitig nutzen. Stellen wir uns der Einfachheit halber vor, dass wir die Last gleichmäßig auf alle Kanäle verteilen. Wenn ein Kunde eine Website mit drei Bildern bedingt öffnet, lädt er daher jedes Bild über einen separaten Anbieter herunter. Auf der Site-Seite sieht es nach Verbindungen von drei verschiedenen IPs aus.

Echte Zusammenfassung von Internetkanälen - OpenMPTCPRouter
Beim Ausgleich auf Verbindungsebene läuft jede TCP-Verbindung über einen separaten Anbieter.

Dieser Ausgleichsmodus verursacht häufig Probleme für Benutzer. Beispielsweise verknüpfen viele Websites Cookies und Token fest mit der IP-Adresse des Clients, und wenn sich diese plötzlich ändert, wird die Anfrage verworfen oder der Client meldet sich auf der Website ab. Dies wird häufig in Kunden-Bank-Systemen und anderen Websites mit strengen Benutzersitzungsregeln reproduziert. Hier ist ein einfaches anschauliches Beispiel: Musikdateien in VK.com sind nur mit einem gültigen Sitzungsschlüssel verfügbar, der an IP gebunden ist, und Clients, die einen solchen Ausgleich verwenden, spielen oft keine Audiodateien ab, weil die Anfrage nicht über den Anbieter ging, an den sie gesendet wurden Sitzung ist gebunden.

Echte Zusammenfassung von Internetkanälen - OpenMPTCPRouter
Beim Herunterladen von Torrents summiert der Ausgleich auf Verbindungsebene die Bandbreite aller Kanäle

Ein solcher Ausgleich ermöglicht es Ihnen, die Summe der Geschwindigkeit des Internetkanals zu erhalten, wenn Sie mehrere Verbindungen verwenden. Wenn beispielsweise jeder der drei Anbieter eine Geschwindigkeit von 100 Megabit hat, erhalten wir beim Herunterladen von Torrents 300 Megabit. Denn der Torrent eröffnet viele Verbindungen, die sich auf alle Anbieter verteilen und schließlich den gesamten Kanal nutzen.

Es ist wichtig zu verstehen, dass eine einzelne TCP-Verbindung immer nur über einen Anbieter läuft. Das heißt, wenn wir eine große Datei über HTTP herunterladen, wird diese Verbindung über einen der Anbieter hergestellt, und wenn die Verbindung zu diesem Anbieter unterbrochen wird, wird auch der Download unterbrochen.

Echte Zusammenfassung von Internetkanälen - OpenMPTCPRouter
Eine Verbindung nutzt immer nur einen Internetkanal

Dies gilt auch für Videoübertragungen. Wenn Sie Streaming-Videos auf einem bedingten Twitch übertragen, bringt der Ausgleich auf der Ebene der IP-Verbindungen keinen besonderen Vorteil, da der Videostream innerhalb einer IP-Verbindung übertragen wird. Wenn in diesem Fall beim WAN-3-Anbieter Kommunikationsprobleme wie Paketverlust oder Verlangsamung auftreten, können Sie nicht sofort zu einem anderen Anbieter wechseln. Die Übertragung muss gestoppt und erneut verbunden werden.

Echte Kanalsummierung

Die echte Kanalsummierung ermöglicht es, eine Verbindung zum bedingten Twitch über alle Anbieter gleichzeitig herzustellen, sodass die Verbindung nicht unterbrochen wird, wenn einer der Anbieter abbricht. Dies ist ein überraschend schwieriges Problem, für das es noch keine optimale Lösung gibt. Viele wissen gar nicht, dass das möglich ist!

Aus den vorherigen Abbildungen erinnern wir uns, dass der bedingte Twitch-Server einen Videostream von uns nur von einer Quell-IP-Adresse empfangen kann, was bedeutet, dass diese bei uns immer konstant sein muss, unabhängig davon, welche Anbieter ausgefallen sind und welche funktionieren. Um dies zu erreichen, benötigen wir einen Summationsserver, der alle unsere Verbindungen beendet und zu einer zusammenführt.

Echte Zusammenfassung von Internetkanälen - OpenMPTCPRouter
Der Summationsserver fasst alle Kanäle in einem Tunnel zusammen. Alle Verbindungen gehen von der Adresse des Summierungsservers aus

Dieses Schema nutzt alle Anbieter und die Deaktivierung eines dieser Anbieter führt nicht zu einem Kommunikationsverlust mit dem Twitch-Server. Tatsächlich handelt es sich hierbei um einen speziellen VPN-Tunnel, unter dessen Haube sich mehrere Internetkanäle gleichzeitig befinden. Die Hauptaufgabe eines solchen Schemas besteht darin, den Kommunikationskanal von höchster Qualität zu erhalten. Wenn bei einem der Anbieter Probleme auftreten, Paketverluste auftreten oder Verzögerungen zunehmen, sollte dies die Qualität der Kommunikation in keiner Weise beeinträchtigen, da die Last automatisch auf andere, bessere verfügbare Kanäle verteilt wird.

Kommerzielle Lösungen

Dieses Problem bereitet denjenigen, die Veranstaltungen live übertragen und keinen Zugang zu hochwertigem Internet haben, seit langem Sorgen. Für solche Aufgaben gibt es mehrere kommerzielle Lösungen, zum Beispiel stellt Teradek solche monströsen Router her, in die Pakete mit USB-Modems gesteckt werden:

Echte Zusammenfassung von Internetkanälen - OpenMPTCPRouter
Broadcast-Video-Router mit Kanalsummierungsfunktion

Solche Geräte verfügen normalerweise über die Möglichkeit, Videos über HDMI oder SDI aufzunehmen. Zusammen mit dem Router wird ein Abonnement für den Kanalsummierungsdienst verkauft sowie der Videostream verarbeitet, transkodiert und erneut übertragen. Der Preis für solche Geräte beginnt bei 2 US-Dollar mit einem Satz Modems und einem separaten Abonnement für den Dienst.

Manchmal sieht es ziemlich einschüchternd aus:

Echte Zusammenfassung von Internetkanälen - OpenMPTCPRouter

OpenMPTCPRouter einrichten

Protokoll MP-TCP (MultiPath TCP) wurde für die Möglichkeit erfunden, auf mehreren Kanälen gleichzeitig eine Verbindung herzustellen. Zum Beispiel seines unterstützt iOS und kann gleichzeitig über WLAN und über ein Mobilfunknetz eine Verbindung zu einem Remote-Server herstellen. Es ist wichtig zu verstehen, dass es sich nicht um zwei separate TCP-Verbindungen handelt, sondern um eine Verbindung, die über zwei Kanäle gleichzeitig hergestellt wird. Damit dies funktioniert, muss der Remote-Server auch MPTCP unterstützen.

OpenMPTCPRouter ist ein Open-Source-Software-Router-Projekt, mit dem Sie Kanäle wirklich summieren können. Die Autoren geben an, dass sich das Projekt im Alpha-Versionsstatus befindet, aber bereits genutzt werden kann. Es besteht aus zwei Teilen – einem Summierungsserver, der sich im Internet befindet, und einem Router, an den mehrere Internetprovider und Client-Geräte selbst angeschlossen sind: Computer, Telefone. Ein benutzerdefinierter Router kann ein Raspberry Pi, einige WLAN-Router oder ein normaler Computer sein. Es gibt vorgefertigte Baugruppen für verschiedene Plattformen, was sehr praktisch ist.

Echte Zusammenfassung von Internetkanälen - OpenMPTCPRouter
So funktioniert OpenMPTCPRouter

Einrichtung des Zusammenfassungsservers

Der Summierungsserver befindet sich im Internet und terminiert Verbindungen von allen Kanälen des Client-Routers zu einem. Die IP-Adresse dieses Servers ist die externe Adresse beim Zugriff auf das Internet über OpenMPTCPRouter.

Für diese Aufgabe verwenden wir einen VPS-Server unter Debian 10.

Anforderungen an den Summationsserver:

  • MPTCP funktioniert nicht bei OpenVZ-Virtualisierung
  • Es sollte möglich sein, einen eigenen Linux-Kernel zu installieren

Der Server wird durch die Ausführung eines Befehls bereitgestellt. Das Skript installiert den MPTCP-fähigen Kernel und alle erforderlichen Pakete. Installationsskripte sind für Ubuntu und Debian verfügbar.

wget -O - http://www.openmptcprouter.com/server/debian10-x86_64.sh | sh

Das Ergebnis einer erfolgreichen Serverinstallation.

Echte Zusammenfassung von Internetkanälen - OpenMPTCPRouter

Wir speichern die Passwörter, wir benötigen sie, um den Client-Router zu konfigurieren und neu zu starten. Es ist wichtig zu bedenken, dass SSH nach der Installation auf Port 65222 verfügbar ist. Nach dem Neustart müssen wir sicherstellen, dass wir mit dem neuen Kernel booten

uname -a 
Linux test-server.local 4.19.67-mptcp

Neben der Versionsnummer sehen wir die Aufschrift „mptcp“, was bedeutet, dass der Kernel korrekt installiert wurde.

Einrichten eines Client-Routers

Auf Projektseite Für einige Plattformen wie Raspberry Pi, Banana Pi, Lynksys-Router und virtuelle Maschinen sind vorgefertigte Builds verfügbar.
Dieser Teil von openmptcprouter basiert auf OpenWRT und verwendet LuCI als Schnittstelle, was jedem bekannt ist, der jemals mit OpenWRT in Berührung gekommen ist. Das Distributionskit wiegt etwa 50 MB!

Echte Zusammenfassung von Internetkanälen - OpenMPTCPRouter

Als Prüfstand werde ich Raspberry Pi und mehrere USB-Modems mit unterschiedlichen Betreibern verwenden: MTS und Megafon. Wie man ein Bild auf eine SD-Karte schreibt, muss ich wohl nicht sagen.

Zunächst ist der Ethernet-Port im Raspberry Pi als LAN mit einer statischen IP-Adresse konfiguriert. 192.168.100.1. Um mich nicht mit den Kabeln auf dem Tisch herumzuschlagen, habe ich den Raspberry Pi an einen WLAN-Zugangspunkt angeschlossen und eine statische Adresse auf dem WLAN-Adapter des Computers festgelegt 192.168.100.2. Der DHCP-Server ist standardmäßig nicht aktiviert, daher müssen statische Adressen verwendet werden.

Jetzt können Sie zur Weboberfläche gehen 192.168.100.1

Wenn Sie sich zum ersten Mal anmelden, werden Sie vom System aufgefordert, das Root-Passwort festzulegen. SSH ist mit demselben Passwort verfügbar.

Echte Zusammenfassung von Internetkanälen - OpenMPTCPRouter
In den LAN-Einstellungen können Sie das gewünschte Subnetz einstellen und den DHCP-Server aktivieren.

Ich verwende Modems, die als USB-Ethernet-Schnittstellen mit einem separaten DHCP-Server definiert sind, daher war hierfür eine Installation erforderlich Zusatzpakete. Das Verfahren ist identisch mit dem Konfigurieren von Modems im regulären OpenWRT, daher werde ich hier nicht darauf eingehen.

Als nächstes müssen Sie die WAN-Schnittstellen konfigurieren. Zunächst wurden im System zwei virtuelle Schnittstellen WAN1 und WAN2 erstellt. Sie müssen ein physisches Gerät zuweisen, in meinem Fall sind dies die Namen der USB-Modemschnittstellen.

Um bei den Schnittstellennamen nicht durcheinander zu geraten, empfehle ich Ihnen, dmesg-Nachrichten anzusehen, während Sie über SSH verbunden sind.

Da meine Modems selbst als Router fungieren und über einen DHCP-Server verfügen, musste ich die Einstellungen ihrer internen Netzwerkbereiche ändern und den DHCP-Server deaktivieren, da zunächst beide Modems Adressen aus demselben Netzwerk vergeben und es dadurch zu einem Konflikt kommt.

OpenMPTCPRouter erfordert statische WAN-Schnittstellenadressen, daher erstellen wir Subnetze für Modems und konfigurieren sie im Menü System → openmptcprouter → Schnittstelleneinstellungen. Hier müssen Sie auch die IP-Adresse und den Serverschlüssel angeben, die Sie bei der Installation des Summierungsservers erhalten haben.

Echte Zusammenfassung von Internetkanälen - OpenMPTCPRouter

Bei erfolgreicher Einrichtung sollte ein ähnliches Bild auf der Statusseite erscheinen. Es ist ersichtlich, dass der Router den Summierungsserver erreichen konnte und beide Kanäle ordnungsgemäß funktionieren.

Echte Zusammenfassung von Internetkanälen - OpenMPTCPRouter

Der Standardmodus ist Shadowsocks + MPTCP. Dies ist ein solcher Proxy, der alle Verbindungen in sich selbst verpackt. Zunächst ist es nur für die Verarbeitung von TCP konfiguriert, Sie können jedoch auch UDP aktivieren.

Echte Zusammenfassung von Internetkanälen - OpenMPTCPRouter

Wenn auf der Statusseite keine Fehler angezeigt werden, kann die Einrichtung als abgeschlossen betrachtet werden.
Bei einigen Anbietern kann es vorkommen, dass das MPTCP-Flag entlang des Verkehrspfads abgeschnitten wird und dann ein solcher Fehler auftritt:

Echte Zusammenfassung von Internetkanälen - OpenMPTCPRouter

In diesem Fall können Sie einen anderen Betriebsmodus verwenden, ohne MPTCP zu verwenden, mehr dazu hier.

Abschluss

Das OpenMPTCPRouter-Projekt ist sehr interessant und wichtig, da es möglicherweise die einzige offene komplexe Lösung für das Kanalsummierungsproblem ist. Alles andere ist entweder streng abgeschlossen und proprietär oder nur einzelne Module, mit denen ein normaler Mensch nicht umgehen kann. Im aktuellen Entwicklungsstadium ist das Projekt noch recht roh, extrem dürftig dokumentiert, viele Dinge werden einfach nicht beschrieben. Aber gleichzeitig funktioniert es immer noch. Ich hoffe, dass es sich weiterentwickelt und wir Haushaltsrouter bekommen, die Kanäle standardmäßig sofort kombinieren können.

Echte Zusammenfassung von Internetkanälen - OpenMPTCPRouter

Folgen Sie unserem Entwickler auf Instagram

Echte Zusammenfassung von Internetkanälen - OpenMPTCPRouter

Source: habr.com

Kommentar hinzufügen