
Kann man mehrere Internetkanäle zu einem kombinieren? Es gibt viele Missverständnisse und Mythen rund um dieses Thema, selbst Netzwerktechniker mit Erfahrung wissen oft nicht, dass dies möglich ist. In den meisten Fällen wird die Link-Aggregation fälschlicherweise als NAT oder Failover bezeichnet. Mit der realen Summe können Sie
jedoch auf allen Internetkanälen gleichzeitig eine einzige TCP-Verbindung herstellen , z. B. Videoübertragung, damit die Übertragung nicht unterbrochen wird, wenn einer der Internetkanäle unterbrochen wird.
Es gibt teure kommerzielle Lösungen für Videosendungen, aber solche Geräte kosten eine Menge Kilobax. Der Artikel beschreibt die Konfiguration des kostenlosen, offenen Pakets OpenMPTCPRouter und analysiert die populären Mythen über die Kanalaggregation.
Kanal Summation Mythen
Es gibt viele Heimrouter, die die Multi-WAN-Funktion unterstützen. Manchmal nennen Hersteller diese Kanalsummierung, was nicht ganz richtig ist. Viele Netzwerker glauben, dass außer
LACP und Summation auf L2-Ebene keine andere
Link- Aggregation existiert. Ich habe oft gehört, dass dies bei Menschen, die in der Telekommunikation arbeiten, im Allgemeinen unmöglich ist. Deshalb werden wir versuchen, populäre Mythen zu verstehen.
IP-Verbindungsausgleich
Dies ist die günstigste und beliebteste Möglichkeit, mehrere Internetkanäle gleichzeitig zu nutzen. Nehmen wir der Einfachheit halber an, Sie haben drei Internetanbieter, die Ihnen jeweils eine echte IP-Adresse aus Ihrem Netzwerk geben. Alle diese Anbieter sind mit einem Router verbunden, der Multi-WAN unterstützt. Es kann OpenWRT mit dem mwan3-, mikrotik-, ubiquiti-Paket oder einem anderen Haushaltsrouter sein, da diese Option jetzt keine Seltenheit ist.
Um die Situation zu simulieren, stellen Sie sich vor, dass die Anbieter uns diese Adressen gegeben haben:
WAN1 — 11.11.11.11 WAN2 — 22.22.22.22 WAN2 — 33.33.33.33
Das heißt, wenn der Remote-Server über jeden der Anbieter eine Verbindung zum Remote-Server
example.com herstellt , werden dem Remote-Server drei unabhängige Quell-IP-Clients angezeigt. Durch das Ausgleichen können Sie die Last auf die Kanäle verteilen und alle drei gleichzeitig verwenden. Stellen Sie sich der Einfachheit halber vor, dass wir die Last auf alle Kanäle gleichmäßig verteilen. Wenn ein Kunde eine Site öffnet, auf der normalerweise drei Bilder vorhanden sind, lädt er jedes Bild über einen separaten Anbieter hoch. Auf der Site-Seite sieht es aus wie Verbindungen von drei verschiedenen IPs.
Beim Ausgleich auf Verbindungsebene wird jede TCP-Verbindung von einem separaten Anbieter bereitgestellt .
Dieser Ausgleichsmodus verursacht den Benutzern häufig Probleme. Beispielsweise hängen viele Websites Cookies und Token fest an die IP-Adresse des Clients an. Wenn sich diese plötzlich ändert, wird die Anforderung abgelehnt oder der Client meldet sich auf der Website ab. Dies wird häufig auf Client-Bank-Systemen und an anderen Standorten mit strengen Regeln für Benutzersitzungen reproduziert. Hier 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, geben häufig kein Audio wieder, da die Anfrage nicht über den Anbieter ging, an den die Sitzung gebunden ist.
Beim Herunterladen von Torrents summiert sich der Ausgleich auf Verbindungsebene auf die Bandbreite aller KanäleDieser Ausgleich ermöglicht es Ihnen, die Summe der Geschwindigkeit des Internetkanals zu erhalten, wenn Sie mehrere Verbindungen verwenden. Wenn zum Beispiel 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 auf alle Anbieter verteilt sind und letztendlich den gesamten Kanal nutzen.
Es ist wichtig zu verstehen, dass eine einzelne TCP-Verbindung immer nur einen Anbieter durchläuft. Wenn wir also 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.
Eine Verbindung verwendet immer nur einen InternetkanalDies gilt für Videosendungen. Wenn Sie Video zu einer Art bedingtem Twitch streamen, hat das Ausgleichen auf der Ebene der IP-Verbindungen keinen besonderen Vorteil, da der Videostream innerhalb derselben IP-Verbindung übertragen wird. In diesem Fall können Sie nicht sofort zu einem anderen Anbieter wechseln, wenn beim WAN 3-Anbieter Kommunikationsprobleme auftreten, z. B. Paketverlust oder Geschwindigkeitsreduzierung. Die Übertragung muss gestoppt und erneut verbunden werden.
True Channel Summation
Die tatsächliche Aufsummierung der Kanäle ermöglicht es, eine Verbindung zum bedingten Twitch über alle Anbieter sofort so zu starten, dass die Verbindung nicht unterbrochen wird, wenn einer der Anbieter unterbrochen wird. Dies ist eine überraschend schwierige Aufgabe, für die es noch keine optimale Lösung gibt. Viele wissen gar nicht, dass das möglich ist!
Aus den vorherigen Abbildungen geht hervor, dass der bedingte Twitch-Server einen Videostream von nur einer Quell-IP-Adresse von uns empfangen kann. Dies bedeutet, dass er immer bei uns bleiben sollte, unabhängig davon, welche Anbieter ausgefallen sind und welche funktionieren. Um dies zu erreichen, benötigen wir einen Summierungsserver, der alle unsere Verbindungen beendet und zu einem zusammenfasst.
Der Summierserver fasst alle Kanäle zu einem Tunnel zusammen. Alle Verbindungen erfolgen von der Adresse des Summierservers ausIn diesem Schema werden alle Anbieter verwendet, und das Deaktivieren eines dieser Anbieter führt nicht zu einer Unterbrechung der Kommunikation 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 mit der höchsten Qualität zu erhalten. Wenn bei einem der Anbieter Probleme auftreten, Paketverlust, erhöhte Verzögerungen, sollte dies die Qualität der Kommunikation nicht beeinträchtigen, da die Last automatisch über andere, bessere Kanäle verteilt wird, die verfügbar sind.
Kommerzielle Lösungen
Dieses Problem beschäftigt seit langem diejenigen, die Live-Events übertragen und keinen Zugang zu qualitativ hochwertigem Internet haben. Es gibt verschiedene kommerzielle Lösungen für solche Aufgaben, zum Beispiel stellt die Firma Teradek solche monströsen Router her, in die Packs mit USB-Modems eingesetzt werden:
Video Broadcast Router mit KanalsummierungsfunktionIn solchen Geräten besteht normalerweise die Möglichkeit, Videos über HDMI oder SDI aufzunehmen. Zusammen mit dem Router wird ein Abonnement für den Kanalsummierungsdienst verkauft, und der Videostream wird verarbeitet, transkodiert und weitergeleitet. Der Preis für solche Geräte beginnt bei 2.000 USD mit einer Reihe von Modems zuzüglich eines separaten Abonnements für den Dienst.
Manchmal sieht es ziemlich beängstigend aus:

Konfigurieren Sie OpenMPTCPRouter
Das
MP-TCP-Protokoll (MultiPath TCP) wurde für die gleichzeitige Verbindung über mehrere Kanäle entwickelt. Beispielsweise
unterstützt es iOS und kann gleichzeitig über WLAN und ein Mobilfunknetz eine Verbindung zu einem Remote-Server herstellen. Es ist wichtig zu verstehen, dass dies nicht zwei separate TCP-Verbindungen sind, sondern nur eine Verbindung, die sofort auf zwei Kanälen hergestellt wird. Damit dies funktioniert, muss der Remote-Server auch MPTCP unterstützen.
OpenMPTCPRouter ist ein Open-Source-Router-Projekt, mit dem Sie Kanäle wirklich hinzufügen können. Die Autoren erklären, dass sich das Projekt im Alpha-Status befindet, aber bereits verwendet werden kann. Es besteht aus zwei Teilen - einem Summierserver, der sich im Internet befindet, und einem Router, mit dem mehrere Internetanbieter und Clientgeräte selbst verbunden sind: Computer, Telefone. Als benutzerdefinierter Router können Raspberry Pi, einige WLAN-Router oder ein normaler Computer fungieren. Es gibt vorgefertigte Baugruppen für verschiedene Plattformen, was sehr praktisch ist.
So funktioniert OpenMPTCPRouterSumming Server konfigurieren
Der Summierungsserver befindet sich im Internet und trennt die Verbindungen von allen Kanälen des Client-Routers zu einem. Die IP-Adresse dieses Servers ist die externe Adresse, wenn Sie über OpenMPTCPRouter auf das Internet zugreifen.
Für diese Aufgabe werden wir einen VPS-Server unter Debian 10 verwenden.
Summarization Server-Anforderungen:
- MPTCP funktioniert nicht bei OpenVZ-Virtualisierung
- Es sollte möglich sein, Ihren eigenen Linux-Kernel zu installieren
Der Server wird durch Ausführen eines einzelnen Befehls bereitgestellt. Das Skript installiert den Kernel mit mptcp-Unterstützung und allen erforderlichen Paketen. 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.

Wir speichern die Passwörter, benötigen sie zur Konfiguration des Client-Routers und zum Neustart. Beachten Sie, dass SSH nach der Installation auf Port 65222 verfügbar ist. Nach dem Neustart müssen Sie sicherstellen, dass wir mit dem neuen Kernel booten
uname -a Linux test-server.local 4.19.67-mptcp
Wir sehen mptcp neben der Versionsnummer, was bedeutet, dass der Kernel korrekt installiert wurde.
Einrichten eines Client-Routers
Auf
der Projektsite stehen vorgefertigte Baugruppen für einige Plattformen zur Verfügung, z. B. Raspberry Pi, Banana Pi, Lynksys-Router und virtuelle Maschinen.
Dieser Teil von openmptcprouter basiert auf OpenWRT und verwendet LuCI als Schnittstelle, die allen bekannt ist, die jemals OpenWRT kennen. Das Distributionskit wiegt ca. 50MB!

Als Prüfstand verwende ich den Raspberry Pi und mehrere USB-Modems mit unterschiedlichen Betreibern: MTS und Megaphone. Wie man das Bild auf die SD-Karte schreibt, glaube ich, muss man nicht sagen.
Zunächst ist der Ethernet-Port im Raspberry Pi als LAN mit einer statischen IP-Adresse von
192.168.100.1 konfiguriert. Um nicht mit den Kabeln auf dem Tisch herumzuspielen, habe ich den Raspberry Pi mit dem WLAN-Zugangspunkt verbunden und die statische Adresse
192.168.100.2 auf dem WLAN-Adapter des Computers eingestellt. Der DHCP-Server ist standardmäßig nicht aktiviert, daher müssen Sie statische Adressen verwenden.
Jetzt können Sie zum Webinterface
192.168.100.1 gehenBei der ersten Anmeldung werden Sie aufgefordert, das Root-Passwort festzulegen. SSH wird mit demselben Passwort verfügbar sein.

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, weshalb
zusätzliche Pakete installiert
werden mussten . Die Vorgehensweise ist identisch mit dem Einrichten von Modems im üblichen OpenWRT, daher werde ich hier nicht darauf eingehen.
Als Nächstes müssen Sie die WAN-Schnittstellen konfigurieren. Im System wurden zunächst zwei virtuelle Schnittstellen WAN1 und WAN2 angelegt. Ihnen muss ein physisches Gerät zugewiesen werden. In meinem Fall sind dies die Namen der USB-Modemschnittstellen.
Um die Namen der Schnittstellen nicht zu verwechseln, empfehle ich Ihnen, sich Dmesg-Nachrichten durch eine Verbindung über SSH anzusehen.
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 anfangs beide Modems Adressen aus demselben Netzwerk vergeben, was zu einem Konflikt führt.
OpenMPTCPRouter setzt voraus, dass die Adressen der WAN-Schnittstellen statisch sind. Daher stellen wir Modems für das Subnetz zusammen und konfigurieren sie im Menü System → openmptcprouter → Schnittstelleneinstellungen. Hier müssen Sie die IP-Adresse und den Serverschlüssel angeben, die Sie bei der Installation des Summierungsservers erhalten haben.

Bei erfolgreicher Einrichtung sollte auf der Statusseite ein ähnliches Bild angezeigt werden. Es ist zu sehen, dass der Router den Summierungsserver erreichen konnte und beide Kanäle normal funktionieren.

Der Standardmodus ist shadowsocks + mptcp. Dies ist ein Proxy, der alle Verbindungen umschließt. Anfangs ist es so konfiguriert, dass nur TCP verarbeitet wird, Sie können jedoch UDP aktivieren.

Wenn auf der Statusseite keine Fehler vorhanden sind, kann die Einstellung als abgeschlossen betrachtet werden.
Bei einigen Providern kann eine Situation auftreten, in der das mptcp-Flag auf der Verkehrsroute abgeschnitten ist. Dann tritt ein solcher Fehler auf:

In diesem Fall können Sie einen anderen Betriebsmodus verwenden, ohne MPTCP zu verwenden, mehr dazu
hier .
Fazit
Das OpenMPTCPRouter-Projekt ist sehr interessant und wichtig, da dies möglicherweise die einzige offene umfassende Lösung für das Problem der Kanalsummierung ist. Alles andere ist entweder streng geschlossen und proprietär oder es handelt sich einfach um separate Module, mit denen ein gewöhnlicher Mensch nicht umgehen kann. In der jetzigen Entwicklungsphase ist das Projekt noch recht grob, extrem schlecht dokumentiert, vieles wird einfach nicht beschrieben. Aber er arbeitet immer noch. Ich hoffe, dass es sich weiterentwickelt, und wir werden Haushaltsrouter bekommen, die normalerweise sofort Kanäle kombinieren können.

Abonnieren Sie unseren Instagram-Entwickler
