La somma reale dei canali Internet — OpenMPTCPRouter

La somma reale dei canali Internet — OpenMPTCPRouter

È possibile combinare più canali Internet in uno? Ci sono molti fraintendimenti e miti su questo tema, persino ingegneri di rete esperti non sempre sanno che sia possibile. Nella maggior parte dei casi, l'unione dei canali viene erroneamente chiamata bilanciamento a livello di NAT o failover. Ma la vera somma consente di effettuare un'unica connessione TCP tramite tutti i canali Internet, ad esempio una trasmissione video, in modo che l'emissione non si interrompa in caso di guasto di uno qualsiasi dei canali Internet.

Esistono costose soluzioni commerciali per le trasmissioni video, ma tali dispositivi costano migliaia di euro. L'articolo descrive la configurazione del pacchetto gratuito e open-source OpenMPTCPRouter, chiarendo i miti più diffusi sulla somma dei canali.

Miti sulla somma dei canali

Ci sono molti router domestici che supportano la funzione Multi-WAN. A volte i produttori chiamano questo somma dei canali, il che non è del tutto corretto. Molti professionisti della rete credono che oltre a LACP e la somma a livello L2, non esiste un'altra aggregazione dei canali. Spesso ho sentito dire da persone che lavorano nelle telecomunicazioni che ciò sia impossibile. Quindi cerchiamo di chiarire alcuni miti popolari.

Bilanciamento a livello di connessioni IP

Questo è il modo più accessibile e popolare per utilizzare simultaneamente più canali internet. Per semplificare, immaginiamo di avere tre provider internet, ognuno dei quali ci offre un indirizzo IP reale dalla propria rete. Tutti questi provider sono collegati a un router con funzionalità Multi-WAN. Può essere OpenWRT con il pacchetto mwan3, Mikrotik, Ubiquiti o qualsiasi altro router domestico, dato che ora questa opzione non è più rara.

Per modellare la situazione, immaginiamo che i provider ci abbiano fornito i seguenti indirizzi:

WAN1 — 11.11.11.11
WAN2 — 22.22.22.22
WAN3 — 33.33.33.33

Cioè, collegandosi a un server remoto example.com Attraverso ciascuno dei provider, il server remoto vedrà tre IP sorgente indipendenti del cliente. Il bilanciamento permette di suddividere il carico tra i canali e di utilizzarli tutti e tre contemporaneamente. Per semplificare, immaginiamo di suddividere il carico equamente tra tutti i canali. Di conseguenza, quando un cliente apre un sito che ha, ad esempio, tre immagini, carica ogni immagine attraverso un provider diverso. Sul lato del sito, questo appare come connessioni provenienti da tre IP diversi.

La somma reale dei canali Internet — OpenMPTCPRouter
Con il bilanciamento a livello di connessione, ogni connessione TCP passa attraverso un provider separato.

Questa modalità di bilanciamento può causare problemi agli utenti. Ad esempio, molti siti collegano rigidamente cookie e token all'indirizzo IP del cliente, e se questo cambia improvvisamente, la richiesta viene rifiutata o l'utente viene disconnesso dal sito. Questo si verifica frequentemente nei sistemi di online banking e su altri siti con regole rigorose sulle sessioni degli utenti. Ecco un semplice esempio: i file musicali su VK.com sono accessibili solo con una chiave di sessione valida, collegata all'IP, e i clienti che utilizzano questo tipo di bilanciamento spesso non riescono a riprodurre l'audio, perché la richiesta non è passata attraverso il provider a cui è collegata la sessione.

La somma reale dei canali Internet — OpenMPTCPRouter
Quando si scaricano torrent, il bilanciamento a livello di connessione somma la larghezza di banda di tutti i canali.

Questa bilanciatura consente di sommare la velocità della connessione Internet utilizzando più collegamenti. Ad esempio, se ciascun fornitore ha una velocità di 100 Megabit, durante il download di torrent otterremo 300 Megabit. Questo perché il torrent apre molteplici collegamenti, che vengono distribuiti tra tutti i fornitori e alla fine sfruttano l'intera larghezza di banda.

È importante comprendere che un'unica connessione TCP passerà sempre solo attraverso un fornitore. Ciò significa che se stiamo scaricando un grande file tramite HTTP, quella connessione sarà stabilita da uno dei fornitori, e se la connessione con quel fornitore si interrompe, il download si fermerà.

La somma reale dei canali Internet — OpenMPTCPRouter
Una connessione utilizzerà sempre solo un canale Internet.

Questo vale anche per le trasmissioni video. Se trasmetti video in streaming su una piattaforma come Twitch, il bilanciamento a livello di connessioni IP non offre alcun vantaggio particolare, poiché il flusso video sarà trasmesso all'interno di una singola connessione IP. In questo caso, se il provider WAN ha problemi di connessione, ad esempio perdite di pacchetti o riduzione della velocità, non sarai in grado di passare immediatamente a un altro provider. Dovrai interrompere la trasmissione e riconnetterti da capo.

Somma reale dei canali

La somma reale dei canali consente di instradare una connessione a una piattaforma come Twitch attraverso tutti i provider, in modo che, se uno dei provider dovesse avere un guasto, la connessione non venga interrotta. È una sfida sorprendentemente complessa, che ancora non ha una soluzione ottimale. Molti non sanno nemmeno che sia possibile!

Dalle illustrazioni precedenti, ricorderemo che un server Twitch condizionale può ricevere da noi un flusso video solo da un indirizzo IP sorgente, il che significa che deve sempre essere costante, indipendentemente dai provider che non funzionano o che sono attivi. Per ottenere ciò, avremo bisogno di un server aggregante che terminerà tutte le nostre connessioni e le unirà in una sola.

La somma reale dei canali Internet — OpenMPTCPRouter
Il server aggregante aggrega tutti i canali in un'unica tunnel. Tutte le connessioni avvengono dall'indirizzo del server aggregante.

In questo schema vengono utilizzati tutti i provider e la disconnessione di uno di essi non causerà l'interruzione del collegamento con il server Twitch. Fondamentalmente, si tratta di un tunnel VPN particolare, sotto il quale ci sono più canali internet. L'obiettivo principale di questo schemi è ottenere il canale di comunicazione di massima qualità. Se uno dei provider inizia a presentare problemi, perdita di pacchetti o aumento delle latenza, questo non dovrebbe riflettersi sulla qualità della comunicazione, poiché il carico verrà automaticamente distribuito su altri canali di qualità superiore disponibili.

Soluzioni commerciali

Questo problema ha preoccupato a lungo coloro che trasmettono eventi in diretta senza avere accesso a una connessione Internet di qualità. Ci sono diverse soluzioni commerciali per tali esigenze; ad esempio, l'azienda Teradek produce router molto potenti che possono ospitare pacchi di modem USB.

La somma reale dei canali Internet — OpenMPTCPRouter
Router per streaming video con funzione di aggregazione dei canali

In questi dispositivi è generalmente presente la possibilità di acquisire il segnale video tramite HDMI o SDI. Insieme al router viene venduto un abbonamento al servizio di aggregazione dei canali e alla lavorazione del flusso video, compresa la sua ricodifica e rilancio. Il prezzo di questi dispositivi inizia da 2.000 $ con un pacchetto di modem, più un abbonamento separato al servizio.

A volte appare piuttosto intimidatorio:

La somma reale dei canali Internet — OpenMPTCPRouter

Configurazione di OpenMPTCPRouter

Protocollo MP-TCP (MultiPath TCP) è stato creato per consentire la connessione su più canali contemporaneamente. Ad esempio, è supportato da iOS e può collegarsi contemporaneamente a un server remoto sia tramite WiFi che tramite rete mobile. È importante comprendere che non si tratta di due connessioni TCP separate, ma di una sola connessione stabilita attraverso due canali. Perché questo funzioni, il server remoto deve supportare anche MPTCP.

OpenMPTCPRouter è un progetto open source di un router software che consente di sommare realmente i canali. Gli autori affermano che il progetto è in fase alpha, ma è già utilizzabile. È composto da due parti: un server di somma che si trova su Internet e un router a cui si collegano più provider Internet e i dispositivi client stessi: computer, telefoni. Un Raspberry Pi, alcuni router WiFi o un computer normale possono funzionare come router utente. Ci sono build pronte per diverse piattaforme, il che è molto conveniente.

La somma reale dei canali Internet — OpenMPTCPRouter
Principio di funzionamento di OpenMPTCPRouter

Configurazione del server di somma

Il server di somma si trova su Internet e termina le connessioni da tutti i canali del router client in uno. L'indirizzo IP di questo server sarà l'indirizzo esterno quando si accede a Internet tramite OpenMPTCPRouter.

Per questo compito utilizzeremo un server VPS con Debian 10.

Requisiti per il server aggregatore:

  • MPTCP non funziona su virtualizzazione OpenVZ
  • Deve essere possibile installare un proprio kernel Linux

Il server si avvia eseguendo un solo comando. Lo script installerà un kernel con supporto mptcp e tutti i pacchetti necessari. Sono disponibili script di installazione per Ubuntu e Debian.

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

Risultato dell'installazione riuscita del server.

La somma reale dei canali Internet — OpenMPTCPRouter

Salviamo le password, ci serviranno per configurare il router client, e riavviamo. È importante notare che dopo l'installazione SSH sarà disponibile sulla porta 65222. Dopo il riavvio, dobbiamo assicurarci di essere partiti con il nuovo kernel.

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

Vediamo accanto al numero di versione la dicitura mptcp, quindi il kernel è stato installato correttamente.

Configurazione del router client

Su sito del progetto sono disponibili versioni pronte per alcune piattaforme, come Raspberry Pi, Banana Pi, router Lynksys e macchine virtuali.
Questa parte di openmptcprouter è basata su OpenWRT, utilizzando l'interfaccia LuCI, che è familiare a chiunque abbia mai avuto a che fare con OpenWRT. La distribuzione pesa circa 50 MB!

La somma reale dei canali Internet — OpenMPTCPRouter

Come ambiente di test utilizzerò un Raspberry Pi e diversi modem USB con operatori diversi: MTS e Megafon. Non credo sia necessario spiegare come scrivere l'immagine su una scheda SD.

Inizialmente, la porta Ethernet del Raspberry Pi è impostata come LAN con un indirizzo IP statico. 192.168.100.1. Per non impazzire con i cavi sulla scrivania, ho collegato il Raspberry Pi a un punto di accesso WiFi e ho assegnato un indirizzo statico all'adattatore WiFi del computer. 192.168.100.2. Il server DHCP predefinito non è attivato, quindi è necessario utilizzare indirizzi statici.

Ora puoi accedere all'interfaccia web. 192.168.100.1

Al primo accesso, il sistema ti chiederà di impostare la password di root; con questa stessa password sarà disponibile SSH.

La somma reale dei canali Internet — OpenMPTCPRouter
Nelle impostazioni LAN, puoi specificare la subnet desiderata e attivare il server DHCP.

Utilizzo modem che vengono riconosciuti come interfacce USB Ethernet con un server DHCP separato, quindi è stato necessario installare pacchetti aggiuntivi.. La procedura è identica a quella per la configurazione dei modem in un normale OpenWRT, quindi non la tratterò qui.

Poi bisogna configurare le interfacce WAN. Inizialmente nel sistema sono stati creati due interfacce virtuali, WAN1 e WAN2. Bisogna assegnare un dispositivo fisico, nel mio caso i nomi delle interfacce dei modem USB.

Per non confondersi con i nomi delle interfacce, consiglio di controllare i messaggi dmesg con una connessione SSH.

Poiché i miei modem fungono da router e hanno un server DHCP, ho dovuto modificare le impostazioni dei loro intervalli di rete interni e disattivare il server DHCP, poiché inizialmente entrambi i modem assegnavano indirizzi dalla stessa rete, causando un conflitto.

OpenMPTCPRouter richiede che gli indirizzi delle interfacce WAN siano statici, quindi definiamo sottoreti per i modem e configuriamo nel menu system → openmptcprouter → interface settings. Qui è necessario specificare l'indirizzo IP e la chiave del server ottenuta durante l'installazione del server aggregato.

La somma reale dei canali Internet — OpenMPTCPRouter

In caso di configurazione riuscita, sulla pagina di stato dovrebbe apparire un'immagine simile. È visibile che il router è riuscito a contattare il server aggregato e entrambi i canali funzionano correttamente.

La somma reale dei canali Internet — OpenMPTCPRouter

Per impostazione predefinita viene utilizzata la modalità shadowsocks + mptcp. Si tratta di un proxy che incapsula tutte le connessioni. Inizialmente è configurato per gestire solo TCP, ma è possibile abilitare anche l'UDP.

La somma reale dei canali Internet — OpenMPTCPRouter

Se non ci sono errori nella pagina di stato, la configurazione può ritenersi completata.
Con alcuni provider, può verificarsi una situazione in cui il flag mptcp viene tagliato lungo il percorso del traffico, in tal caso si verificherà questo errore:

La somma reale dei canali Internet — OpenMPTCPRouter

In questo caso, è possibile utilizzare un'altra modalità di funzionamento senza utilizzare MPTCP, ulteriori dettagli su questo qui.

Conclusione

Il progetto OpenMPTCPRouter è molto interessante e importante, poiché è probabilmente l'unica soluzione open source completa per il problema del summation dei canali. Tutto il resto è o completamente chiuso e proprietario, oppure si tratta di singoli moduli, con cui una persona comune non può destreggiarsi. Fino ad ora, il progetto è ancora abbastanza grezzo, con una documentazione estremamente scarsa e molte cose semplicemente non sono descritte. Tuttavia, funziona ancora. Spero che continui a svilupparsi e che possiamo ottenere router domestici in grado di unire i canali in modo adeguato direttamente dalla confezione.

La somma reale dei canali Internet — OpenMPTCPRouter

Segui il nostro sviluppatore su Instagram

La somma reale dei canali Internet — OpenMPTCPRouter

Fonte: habr.com

Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server 🔥 Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server | ProHoster