Come unire più connessioni Internet in una?

20

Il mio PC ha un totale di 4 NIC, 2 schede di rete Gigabit Ethernet cablate e anche 2 schede di rete wireless. (Una Broadcom con driver proprietari e Ralink con software open source, che funziona molto meglio di Broadcom.)

Il mio cellulare può condividere la connessione wireless al mio PC, ma ho anche una connessione Internet cablata. Quindi ho più connessioni Internet per accedere a Internet. Come posso unire 2 o più connessioni insieme e bilanciarle per godere di un'esperienza Internet unificata che è la somma di tutte le connessioni Internet ad essa collegate.

Ad esempio se ho un modem con una connessione Internet di 1024kB / se un altro che offre 512kB / se uno piccolo che offre 128kB / s, dopo aver bilanciato il carico e unito tutte le connessioni (Legame o Teaming), I potrebbe scaricare a una velocità di 1664kB / s utilizzando tutte e 3 le connessioni Internet come per esempio.

Questa domanda mi ha sempre intrigato.

    
posta Luis Alvarado 17.07.2011 - 23:34

3 risposte

9

Faccio qualcosa del genere al lavoro usando Ubuntu 11.04. Gestiamo lo strumento di configurazione del firewall Shorewall, che oltre ad essere eccellente nel suo lavoro, fornisce alcuni rudimentali strumenti di instradamento ISP che potrebbero soddisfare le vostre esigenze. Puoi trovare alcuni documenti a riguardo qui: link .

Tuttavia, non è possibile utilizzare più ISP per una singola connessione ... le cose sono così semplici. Il meglio che puoi fare è cercare di indirizzare le nuove connessioni in modo uniforme tra i diversi provider.

È un problema complesso. Probabilmente finirai per sbattere la testa contro il muro (ho certamente fatto) prima di aver completato il debug di ogni problema. Quindi, come suggerito da altri poster, potresti essere saggio a considerare attentamente quanto è forte il tuo desiderio.

    
risposta data Bailey S 08.02.2012 - 01:17
8

Puoi farlo usando il pacchetto ifenslave che collega e scollega le interfacce di rete slave a un dispositivo di collegamento.

  1. Installare:

    sudo apt-get install ifenslave
    
  2. Carica il modulo del kernel di legame

    sudo modprobe bondingle
    
  3. Configura le tue interfacce:

    sudo vi /etc/network/interfaces
    

    Esempio di configurazione, per combinare eth0 ed eth1 come slave alla tua interfaccia di legame:

    #eth0 is manually configured, and slave to the "bond0" bonded NIC
    auto eth0
    iface eth0 inet manual
    bond-master bond0
    
    #eth1 ditto, thus creating a 2-link bond.
    auto eth1
    iface eth1 inet manual
    bond-master bond0
    
    # bond0 is the bonded NIC and can be used like any other normal NIC.
    # bond0 is configured using static network information.
    auto bond0
    iface bond0 inet static
    address 192.168.1.10
    gateway 192.168.1.1
    netmask 255.255.255.0
    # bond0 uses standard IEEE 802.3ad LACP bonding protocol 
    bond-mode 802.3ad
    bond-miimon 100
    bond-lacp-rate 1
    bond-slaves none
    
  4. Riavvia rete:

    sudo restart networking
    
  5. Interfaccia su / giù limitata:

    ifup bond0
    ifdown bond0
    

    Ci sono diverse modalità di legame come esempio che usiamo:

    bond-mode active-backup
    

    Descrizione della modalità legame di backup attivo :

    Politica di backup attivo: è attivo solo uno slave nel legame. Uno slave diverso diventa attivo se, e solo se, lo slave attivo fallisce. L'indirizzo MAC del bond è visibile esternamente su una sola porta (adattatore di rete) per evitare di confondere lo switch. Questa modalità fornisce la tolleranza agli errori. L'opzione principale influisce sul comportamento di questa modalità.

    • Descrizione di tutte le modalità di legame.

    Sorgente e maggiori informazioni nella Guida della comunità di Ubuntu .

  

Incollaggio , significa combinare diverse interfacce di rete (NIC) a un singolo collegamento, fornendo disponibilità elevata, bilanciamento del carico,   portata massima, o una combinazione di questi. Source

    
risposta data pl1nk 26.11.2012 - 13:51
6

È una domanda un po 'vecchia, ma se vuoi ancora saperlo ...

Ci sono 2 scenari tipici, quali gertvdijk e pl1nk stavano discutendo in una delle risposte:

Hai un computer con 2 IP pubblici (2 ISP diversi) e ti connetti a un altro host (ad esempio un server in un datacenter con una pipe grossa più grande della larghezza di banda aggregata di entrambe le connessioni ISP del tuo computer). Quindi stabilisci una connessione di legame con l'host tramite le tue 2 connessioni e poi l'host (server) serve il tuo traffico tramite la propria connessione internet. In questo scenario, puoi ottenere quasi il 100% della larghezza di banda combinata in entrambe le direzioni per una singola connessione.

Questo è un caso particolare di aggregazione di bonding / teaming / ling in cui sono collegate più interfacce layer 2 (stessa rete). Può essere archiviato stabilendo connessioni vpn layer 2 (tap) su ciascuna interfaccia ISP dal computer all'host e collegandole tra loro (modalità round-robin) per avere un'unica interfaccia. Il fattore limitante in questo scenario è quanto diversi sono i ritardi (ping) su ciascuna connessione ISP all'host. Più sono simili e stabili, meglio è. Lo usiamo in una delle nostre installazioni, funziona bene. Se desideri conoscere i dettagli su come implementarlo, fammelo sapere.

Quindi un altro scenario sarebbe senza un host intermedio, cioè una connessione diretta dalle interfacce dell'ISP ai server Web di tutto il mondo. In questo caso, il meglio che si può ottenere è distribuire uniformemente le connessioni in uscita tra le interfacce - ad esempio una sessione TCP passa interamente attraverso un ISP, una seconda sessione tramite un'altra e così via. È così perché quando si stabilisce una connessione TCP, ha un'origine e un IP di destinazione per ogni pacchetto e quando un server riceve un pacchetto da un altro IP per il quale non è stato eseguito un handshake TCP, considera il pacchetto errato e lo rilascia . Poiché ogni connessione ISP ha il proprio IP pubblico, per la stessa sessione TCP non è possibile inviare un pacchetto tramite una connessione da un IP e un altro tramite un'altra connessione con un altro IP.

Non si otterrà qui un elevato utilizzo dell'ampiezza di banda aggregata per un singolo computer come nel primo scenario, ma per un piccolo ufficio potrebbe essere una buona soluzione. Quello che puoi fare per estenderlo un po 'è implementare soluzioni personalizzate per protocolli specifici. Ad esempio, potresti avere una sorta di proxy sul gateway (che potrebbe essere lo stesso computer) per i download di http e chiedere parti diverse di un enorme file che stabiliscono sessioni TCP diverse attraverso interfacce ISP diverse. In questo caso il tasso di download risultante sarebbe vicino al 100% della larghezza di banda combinata. È come scaricare al gateway ciò che fanno ReGet, GetRight e downloader simili. Google per HTTP 206 Contenuto parziale. Non conosco soluzioni open source pronte all'uso per questo scenario, ma ci sono dispositivi hardware che fanno esattamente questo: google per reti di funghi.

    
risposta data Anatoli 03.03.2014 - 09:57

Leggi altre domande sui tag