Zwei Ethernet-Anschlüsse auf der Hauptplatine. Wie kann ich die doppelte Bandbreite bekommen?

16

Direkte Frage : Mein evga klassifiziertes Motherboard hat zwei Ethernet-Ports. Ich möchte sie gleichzeitig verwenden, um die Geschwindigkeit einer Remote-Verbindung zu verbessern. (Yay für die Programmierung aus der Ferne). Wie mache ich das? Derzeit / 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

Was soll ich ändern? Muss ich ein Paket installieren, um die beiden Kanäle zu verbinden?

Hintergrund: Ich arbeite viel mit Remote-Computing, sowohl von zu Hause als auch von Büro zu Haus. Aber (um meinen ISP aus der Gleichung herauszunehmen), lassen Sie uns die Frage so formulieren, als ob ich wirklich nur daran interessiert bin, die Dateiübertragungsrate zwischen zwei Computern im selben (lokalen) Netzwerk zu maximieren. Beide Boxen haben zwei Ethernet-Motherboards. Verwenden eines einfachen Linksys WRT54GS als 5-Port-Switch (ignorieren Sie WLAN und ISP) - wie kann ich die Übertragungsraten zwischen den Computern maximieren?

Bitte beachten Sie: Ich bin nicht am Lastenausgleich interessiert - Korrigieren Sie mich, wenn ich mich irre, aber ich möchte die beiden Kanäle miteinander verbinden, sodass die Box so aussieht, als ob sie eine doppelt so schnelle Verbindung hätte.

M. Tibbits
quelle
2
Ich würde denken, dass ein Switch den Nutzen der parallelen Verwendung von 2 Ethernet-Kabeln einschränken würde. Vielleicht macht es irgendwie Sinn, wenn Sie zwei Schalter verwenden. Ich denke, der einzige mögliche Vorteil, den Sie erhalten, ist eine direkte Verbindung.
WalterJ89
1
In der Regel ist der Engpass bei einer Heim-Büro-Verbindung der ISP. Daher verbessert sich die Link-Aggregation an den beiden Enden des Links nicht wesentlich.
Bitwelder

Antworten:

3

Es ist wichtig zu beachten, dass der Switch, über den Sie verbunden sind, Teaming, auch bekannt als LACP, unterstützen muss, um die NIC-Teaming-Funktionalität nutzen zu können. Sie können einen solchen Schalter über eine Suche auf NewEgg.com usw. finden.

Sobald Sie das haben, finden Sie hier eine einfache Anleitung aus dem Wiki: https://help.ubuntu.com/community/UbuntuBonding

Viel Glück!

NetNinja
quelle
Ja, viel Glück, denn solange dies funktioniert, führt es nicht zu einer Geschwindigkeitssteigerung.
Scaine
13

Es ist sehr unwahrscheinlich, dass das Verbinden Ihrer Schnittstellen zu einer Geschwindigkeitssteigerung führt. Selbst wenn Sie die Schnittstellen erfolgreich verbinden UND den Switch so konfigurieren, dass er den Etherchannel unterstützt, stellen Sie normalerweise fest, dass nur eine Schnittstelle in der Verbindung für jedes Paar von Quell- / Ziel-TCP / UDP-Sitzung verwendet wird.

Wenn Sie also eine 10-GB-Datei von einem Server kopieren und dann eine weitere 10-GB-Kopie auf diesen Server übertragen, werden beide Karten maximal sein, vorausgesetzt, Sie verfügen auch über eine sitzungsbasierte Bindung. Entscheidend ist jedoch, dass die erste Kopie nur EINE Netzwerkkarte verbraucht, nicht beide.

Dies ist mit Sicherheit bei Ciscos Etherchannel der Fall. Tatsächlich basiert Ciscos Etherchannel nicht einmal auf einer Sitzung, sondern auf einer Quelle / einem Ziel. In meinem obigen Beispiel würden Sie also nicht einmal eine Geschwindigkeitssteigerung erzielen - Ihre zweite Kopie müsste sich auf einem völlig anderen Server befinden, bevor Sie beide gesehen haben Karten verwendet. Vielleicht haben Sie einen besseren Switch, der es dem Port-Kanal ermöglicht, beide Karten gleichzeitig in einer TCP / UDP-Sitzung zu nutzen, aber es würde eine ziemlich flippige Arp / MAC-Manipulation erfordern, und ich habe keine Ahnung, ob das Bonding-Modul in Linux dies unterstützt.

Was Sie betrifft, verwenden Sie einen Standard-Heimrouter, sodass die Unterstützung auf der Switch-Seite hier nicht in Frage kommt. Dies bedeutet, dass Ihre Optionen weiter eingeschränkt sind (siehe den ersten Artikel weiter unten, in dem Sie dies jetzt bemerken werden kann nicht den besten Modus für die Link-Aggregation verwenden, Modus 4).

Wenn Sie entschlossen sind, damit fortzufahren, habe ich diesen fünf Jahre alten Artikel gefunden, der immer noch relevant zu sein scheint. Darüber hinaus befasst sich dieser drei Jahre alte Artikel mit demselben Thema.

Ich hoffe es hilft.

Scaine
quelle
2

Ich würde denken, dass das Durchlaufen eines Switches den Nutzen der parallelen Verwendung von 2 Ethernet-Kabeln einschränken würde. Sofern der Switch nicht schneller ist als Ihre beiden Netzwerkkarten zusammen, kann es in diesem Fall zu einer Geschwindigkeitssteigerung kommen.

Das Load Balancing-Programm ist genau das, wonach Sie suchen. Sie müssen nicht "Lastenausgleich", wenn Sie nicht möchten, aber es ist der einfachste Weg, die mir bekannten Verbindungen zusammenzuführen. Die Idee ist nicht zu kompliziert

Virtuelle Netzwerkkarte -> Programm zum Lastenausgleich -> Netzwerkkarte 1 + 2

Diese Antwort hat genau das, wonach Sie suchen: Netzwerklastenausgleich mit Network Manager

Ich bin nicht sicher, was die Einzelheiten angeht, aber ich bin mir sicher, dass dies die allgemeine Idee ist.

Sofern die NIC-Karten nicht wesentlich weniger leistungsstark sind als Ihr Router / Switch, ist der einzige Vorteil, den Sie wahrscheinlich erhalten, eine direkte Verbindung zwischen den beiden Computern oder eine parallele Verbindung über den gesamten Weg. Theorie und Praxis klappen aber nicht immer.

Ich kann mir nur vorstellen, zu testen, ob die Netzwerkkarte der Engpass in Ihrem System ist, indem Sie einen Geschwindigkeitstest zwischen jedem Computer mit allen vier Netzwerkkarten durchführen. Ich kann Ihnen die allgemeine Idee geben, wie das geht, aber die Ubuntu-spezifischen Dinge, mit denen ich zu tun haben muss.

  1. Stellen Sie für jede Netzwerkkarte eine eigene IP-Adresse ein, z. B. 192.168.0.1 + 192.168.0.2 für Computer 1 und * .3 + * .4 für Computer 2
  2. Der einzige Geschwindigkeitstest für lokale Netzwerke, den ich gesehen habe, ist die Übertragungszeit für eine Bitdatei. Ich bin nicht sicher, ob es eine bessere Methode gibt, ich habe noch nie eine gesehen.

    3 Stellen Sie Routen manuell ein, sodass * .1 die Schnittstelle ist, um zu * .3 und * .2 zu * .4 zu gelangen.
    PC1 192.168.0.1 <-> 192.168.0.3 PC2 192.168.0.2 <-> 192.168.0.4

Ich habe noch nie IP-Tabellen verwendet, daher habe ich hier ein Beispiel gefunden.

[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. Eine andere Möglichkeit besteht darin, einen Weg für den ssh (oder Terminal) -Client zu finden, über bestimmte Schnittstellen eine Verbindung herzustellen. Ich bin mir noch nicht sicher, wie das für den Kunden gemacht wird.

Wenn die IP-Tabellen korrekt eingerichtet sind, sollten Sie in der Lage sein, 2 Dateien von PC 1 an beide Schnittstellen von PC 2 zu senden, und jede Datei wird einen anderen Weg einschlagen. Wenn die Übertragung mit den beiden Verbindungen schneller als nur eine ist (hoffentlich doppelt so schnell), haben Sie möglicherweise etwas.

WalterJ89
quelle
2

Ich glaube nicht, dass Sie gesagt haben, ob Sie eine Gigabit-Netzwerkkarte verwendet haben oder nicht. Vermutlich haben Sie zwei Netzwerkkarten und daher wahrscheinlich ein Gaming-Motherboard.

Da dies der Fall ist, sollten Sie einen billigen 4-8-Port-Gigabit-Switch kaufen und an Ihren Internet-Router anschließen, wenn Sie versuchen, eine Basis von 2x100 zu erhalten. Dann können Sie alle Computer, auf denen Ethernet ausgeführt wird, an diesen Switch anschließen und trotzdem auf allen Ihren Computern über WLAN und Internet verfügen.

Ich mache das jetzt, weil ich mir einen Netgear WNDR3400 gekauft und DD-WRT draufgesetzt habe, damit ich ein paar nette Optionen haben kann, einschließlich eines sehr aktuellen eingebauten NAS-Servers.

Das einzige Problem war, dass der Router 100 Base auf den Ethernet-Ports war. Also kaufte ich für 40 USD einen 5-Port-Gigabit-Switch, steckte ihn in meinen Router und dann steckte ich alle meine Computer in den Gigabit-Switch und steckte meine Spielekonsolen in den Router.

Alles funktioniert super und ich kann blitzschnell Dateien zwischen den Computern übertragen.

Na dann viel Glück!

Wilhelm
quelle
1

Es gibt eine Bibliothek namens firehose, die Daten gleichzeitig über mehrere Netzwerkgeräte übertragen kann. Es gibt Ihnen jedoch kein einziges virtuelles Netzwerkgerät und TCP wird nicht unterstützt. Es wurde für Video-Streaming mit hoher Bandbreite für Videobearbeiter entwickelt. Könnte Sie aber interessieren:

http://heroinewarrior.com/firehose.php

Alistair Buxton
quelle
1

Wenn Sie die Port-Bonding- und Round-Robin-Richtlinie für beide Geräte verwenden, die über einen nicht verwalteten Switch verbunden sind, wird Ihre Übertragungsrate nahezu verdoppelt. Die Round-Robin-Richtlinie verwendet standardmäßig den Lastenausgleich für mehrere Geräte und greift auf einen einzelnen Port zurück, wenn ein Gerät ausfällt.

Ich glaube jedoch, dass Ihr WRT54GS ein Router ist und daher verwaltet wird, sodass Sie nicht den vollen Nutzen aus dem Bonding ziehen können.

Angenommen, Sie würden einen billigen 8-Port-True-Switch verwenden, der die RR-Richtlinie unterstützt, und ihn dann mit dem Router verbinden, würden Sie eine höhere Übertragungsgeschwindigkeit zwischen den beiden Geräten erzielen, indem Sie das Bonding über den Switch und die normale Übertragungsgeschwindigkeit zum Internet und zum Rest des Netzwerks verwenden Netzwerk.

Sie sollten auch Ihre Lese- / Schreibpuffer, txqeueuelen und Ihren Netcore- und TCP-Speicher erhöhen.

Stuart K. Smith
quelle