Due porte Ethernet sulla scheda madre. Come posso raddoppiare la larghezza di banda?


16

Domanda diretta : la mia scheda madre classificata evga ha due porte Ethernet. Voglio usarli contemporaneamente per migliorare la velocità di una connessione remota. (Sì per la programmazione da remoto). Come faccio a fare questo? Attualmente / etc / network / interfaces:

auto lo eth0 eth1

iface lo inet loopback

iface eth0 inet static
address 192.168.1.202
netmask 255.255.255.0
gateway 192.168.1.2

ifrace eth1 inet static
address 192.168.1.201
netmask 255.255.255.0

Cosa dovrei cambiare? C'è un pacchetto che devo installare per collegare i due canali.

Antefatto: lavoro molto sul computer remoto sia da casa all'ufficio che dall'ufficio a casa. Ma (per togliere il mio ISP dall'equazione), inquadriamo la domanda come se fossi davvero interessato a massimizzare la velocità di trasferimento dei file tra due computer sulla stessa rete (locale). Entrambe le scatole hanno due schede madri Ethernet. Utilizzando un semplice Linksys WRT54GS come switch a 5 porte (ignora wireless e isp) - come posso massimizzare le velocità di trasferimento tra i computer?

Nota: non mi interessa il bilanciamento del carico: correggimi se sbaglio, ma voglio unire i due canali in modo che la scatola appaia come se avesse una connessione due volte più veloce.


2
Penso che passare attraverso uno switch limiterebbe tutti i vantaggi che otterresti dall'utilizzo di 2 cavi Ethernet in parallelo. Forse se hai usato due interruttori potrebbe forse avere senso in qualche modo. Penso che l'unico vantaggio possibile che otterrai sarà una connessione diretta.
WalterJ89,

1
Di solito in una connessione a casa - ufficio, il collo di bottiglia è l'ISP, quindi fare aggregazione dei collegamenti alle due estremità del collegamento non migliora molto.
Bitwelder

Risposte:


3

È importante notare che, al fine di utilizzare la funzionalità di teaming della NIC, lo switch a cui sei connesso deve supportare il teaming aka LACP. Puoi trovare un interruttore del genere tramite una ricerca su NewEgg.com ecc.

Una volta che hai questa è una semplice guida dal wiki: https://help.ubuntu.com/community/UbuntuBonding

In bocca al lupo!


Sì, buona fortuna, perché mentre funzionerà, non comporterà un aumento della velocità.
Scaine,

13

È molto improbabile che il collegamento delle interfacce comporti un aumento della velocità. In genere, anche se si collegano correttamente le interfacce E si configura lo switch per supportare il canale eterico), si troverà comunque che viene utilizzata solo un'interfaccia nel legame per ciascuna coppia di sessioni TCP / UDP sorgente / destinazione.

Quindi, se copi un file da 10 GB da un server, quindi avvia un'altra copia da 10 GB su quel server, supponendo che tu abbia anche un legame basato sulla sessione, vedrai entrambe le carte al massimo. Ma soprattutto, la prima copia consumerà solo UNA scheda di rete, non entrambe.

Questo è certamente il caso dell'eterechannel di Cisco. In effetti, l'eterechannel di Cisco non è nemmeno basato sulla sessione, è basato sulla sorgente / destinazione, quindi nel mio esempio sopra, non avresti nemmeno un aumento di velocità - la tua seconda copia dovrebbe essere su un server completamente diverso prima di vedere entrambi carte utilizzate. Forse hai uno switch migliore che consente al canale port di utilizzare entrambe le schede contemporaneamente in una sessione TCP / UDP ma richiederebbe una manipolazione arp / MAC piuttosto funky e non ho idea se il modulo bonding in Linux lo supporti.

Per quanto riguarda te, stai usando un router domestico standard, quindi il supporto lato switch è fuori discussione qui, il che significa che le tue opzioni sono ulteriormente limitate (vedi il primo articolo allineato di seguito, dove noterai che ora impossibile utilizzare la modalità migliore per l'aggregazione dei collegamenti, modalità 4).

Se sei determinato ad andare avanti con questo, ho trovato questo articolo di cinque anni che sembra ancora rilevante. Inoltre, questo articolo di tre anni copre lo stesso motivo.

Spero che sia d'aiuto.


2

Penso che passare attraverso uno switch limiterebbe tutti i vantaggi che otterresti dall'utilizzo di 2 cavi Ethernet in parallelo. A meno che l'interruttore non sia più veloce delle due schede di rete combinate, nel qual caso potresti vedere un aumento della velocità.

Il programma di bilanciamento del carico è quello che stai cercando. Non è necessario "bilanciare il carico" se non si desidera, ma è il modo più semplice per unire le connessioni che conosco. L'idea non è troppo complicata

NIC virtuale -> Programma di bilanciamento del carico -> NIC 1 + 2

Questa risposta ha quello che stai cercando, credo: Bilanciamento del carico di rete con Network Manager

Non sono sicuro dei dettagli, ma sono sicuro che sia l'idea generale.

A meno che le schede NIC siano sostanzialmente meno potenti del tuo router / switch, l'unico vantaggio che probabilmente otterrai sarà con una connessione diretta tra i due computer o una connessione parallela per tutto il percorso. Ma la teoria e la pratica non sempre funzionano.

L'unico modo in cui mi viene in mente di verificare se la scheda di rete è il collo di bottiglia nel sistema è quello di eseguire un test di velocità tra ciascun computer utilizzando tutte e 4 le schede di rete. Posso darti l'idea generale su come farlo, ma le cose specifiche di Ubuntu mi serviranno una mano.

  1. Impostare ciascuna scheda NIC in modo che abbia il proprio indirizzo IP come 192.168.0.1 + 192.168.0.2 per computer 1 e * .3 + * .4 per computer 2
  2. L'unico test di velocità per le reti locali che ho visto è solo il tempo di trasferimento su un file bit. Non sono sicuro che esista un metodo migliore, non ne ho mai visto uno.

    3 Impostare i percorsi manualmente in modo che * .1 sia l'interfaccia per arrivare a * .3 e * .2 arrivare a * .4.
    PC1 192.168.0.1 <--> 192.168.0.3 PC2 192.168.0.2 <--> 192.168.0.4

Non ho mai usato le tabelle ip quindi ecco qualcosa che ho trovato come esempio.

[root]# ip route add xx.xxx.239.120 via xx.xxx.239.120 dev eth0 table 4
[root]# ip route add table 4 default via xx.xxx.239.120 
[root]# iptables -t mangle -A PREROUTING -p tcp --dport 80 -s xx.xxx.239.120 -j MARK --set-mark 4 
[root]# iptables -t nat -A POSTROUTING -o eth0 -j SNAT --to-source xx.xxx.239.120 [root]# ip rule add fwmark 4 table 4
  1. un'altra opzione è quella di trovare un modo per il client ssh (o terminale) di connettersi tramite determinate interfacce. Non sono sicuro di come sia stato fatto per il lato client.

Se le tabelle IP sono impostate correttamente, dovresti essere in grado di inviare 2 file dal PC 1 a entrambe le interfacce sul PC 2 e ogni file prenderà un percorso diverso. Se il trasferimento con le due connessioni è più veloce di una sola (speriamo due volte più veloce), allora potresti avere qualcosa.


2

Non credo che tu abbia detto se stavi usando o meno una scheda di rete Gigabit, immagino che lo sia perché hai 2 schede di rete e quindi probabilmente una scheda madre da gioco.

In questo caso, se stai cercando di ottenere una base 2x100, è meglio acquistare uno switch Gigabit a 4-8 porte economico e collegarlo al tuo router Internet. Quindi puoi collegare tutti i computer che eseguono Ethernet in quello switch e avere ancora wifi e Internet funzionanti su tutti i tuoi computer.

Lo faccio ora perché ho acquistato un NetNear WNDR3400 e ci ho messo DD-WRT in modo che potessi avere alcune belle opzioni tra cui un server NAS molto aggiornato integrato.

L'unico problema era che il router era 100 base sulle porte Ethernet. Quindi per $ 40 ho comprato uno switch Gigabit a 5 porte lo ho collegato al mio router, quindi ho collegato tutti i miei computer allo switch Gigabit e ho collegato le mie console di gioco al router.

Tutto funziona alla grande e posso trasferire file tra i computer alla velocità della luce.

Beh buona fortuna!


1

Esiste una libreria chiamata firehose che può trasferire i dati su più dispositivi di rete contemporaneamente. Tuttavia, non offre un singolo dispositivo di rete virtuale e non supporta TCP. È progettato per lo streaming video ad alta larghezza di banda per gli editor video. Potrebbe essere interessante per te però:

http://heroinewarrior.com/firehose.php



1

L'uso dei criteri Port Bonding e Round-Robin su entrambi i dispositivi collegati tramite uno switch non gestito raddoppierà quasi la velocità di trasferimento. Per impostazione predefinita, la politica di Round-Robin prevede il bilanciamento del carico su più dispositivi e torna alla porta singola se un dispositivo si guasta.

Tuttavia, credo che il tuo WRT54GS sia un router e quindi gestito in modo da non trarre il massimo beneficio dal legame.

Supponendo che si dovesse utilizzare un vero switch a 8 porte economico che supportasse la politica RR e quindi collegarlo al router, si otterrebbero maggiori velocità di trasferimento tra i due dispositivi utilizzando il collegamento tramite lo switch e le normali velocità di trasferimento a Internet e il resto del Rete.

Dovresti anche aumentare i tuoi buffer di lettura / scrittura, txqeueuelen e la tua memoria netcore e tcp.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.