Deux ports Ethernet sur la carte mère. Comment obtenir le double de la bande passante?

16

Question directe : Ma carte mère classée evga possède deux ports Ethernet. Je souhaite les utiliser simultanément pour améliorer la vitesse d'une connexion à distance. (Oui pour la programmation à distance). Comment puis-je faire cela? Actuellement / 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

Que dois-je changer? Existe-t-il un package que je dois installer pour lier les deux canaux.

Contexte: Je fais beaucoup d'informatique à distance, de la maison au bureau et du bureau à la maison. Mais (pour retirer mon FAI de l'équation), formulons la question comme si je voulais vraiment maximiser le taux de transfert de fichiers entre deux ordinateurs sur le même réseau (local). Les deux boîtiers ont des cartes mères Ethernet doubles. Utilisation d'un simple Linksys WRT54GS comme commutateur à 5 ports (ignorez le sans fil et le FAI) - comment maximiser les taux de transfert entre les ordinateurs?

Veuillez noter: je ne suis pas intéressé par l'équilibrage de charge - Corrigez-moi si je me trompe, mais je veux lier les deux canaux ensemble pour que la boîte apparaisse comme si elle avait une connexion deux fois plus rapide.

M. Tibbits
la source
2
Je pense que passer par un commutateur limiterait tout avantage que vous obtiendriez en utilisant 2 câbles Ethernet en parallèle. Peut-être que si vous utilisiez deux commutateurs, cela pourrait avoir un sens d'une manière ou d'une autre. Je pense que le seul avantage possible que vous obtiendrez est avec une connexion directe.
WalterJ89
1
Habituellement, dans une connexion à domicile, le goulot d'étranglement est le FAI, donc l'agrégation de liens aux deux extrémités du lien ne s'améliore pas beaucoup.
bitwelder

Réponses:

3

Il est important de noter que pour utiliser la fonctionnalité d'association de cartes réseau, le commutateur auquel vous êtes connecté doit prendre en charge l'association alias LACP. Vous pouvez trouver un commutateur comme celui-ci en recherchant sur NewEgg.com, etc.

Une fois que vous avez cela, voici un guide simple du wiki: https://help.ubuntu.com/community/UbuntuBonding

Bonne chance!

NetNinja
la source
Oui, bonne chance, car bien que cela fonctionne, cela n'entraînera pas d'augmentation de la vitesse.
Scaine
13

Il est très peu probable que la liaison de vos interfaces entraîne une augmentation de la vitesse. En règle générale, même si vous liez les interfaces avec succès ET configurez le commutateur pour prendre en charge le canal éther), vous constaterez toujours qu'une seule interface dans la liaison est utilisée pour chaque paire de session TCP / UDP source / destination.

Donc, si vous copiez un fichier 10 Go à partir d'un serveur, puis lancez une autre copie 10 Go sur ce serveur, en supposant que vous disposez également d'une liaison basée sur la session, vous verrez les deux cartes au maximum. Mais surtout, la première copie ne consommera qu'une seule carte réseau, pas les deux.

C'est certainement le cas avec l'étherchannel de Cisco. En fait, l'étherchannel de Cisco n'est même pas basé sur la session, il est basé sur la source / destination, donc dans mon exemple ci-dessus, vous n'obtiendrez même pas d'augmentation de vitesse - votre deuxième copie devrait être vers un serveur complètement différent avant de voir les deux cartes utilisées. Vous avez peut-être un meilleur commutateur qui permet au canal de port d'utiliser les deux cartes simultanément dans une session TCP / UDP, mais cela nécessiterait une manipulation arp / MAC assez géniale et je n'ai aucune idée si le module de liaison sous Linux prend en charge cela.

Quant à vous, vous utilisez un routeur domestique standard, donc la prise en charge côté commutateur est hors de question ici, ce qui signifie que vos options sont encore plus limitées (voir le premier article ci-dessous, où vous remarquerez que vous maintenant ne peut pas utiliser le meilleur mode d'agrégation de liens, mode 4).

Si vous êtes déterminé à aller de l'avant, j'ai trouvé cet article vieux de cinq ans qui semble toujours pertinent. De plus, cet article vieux de trois ans couvre le même terrain.

J'espère que cela aide.

Scaine
la source
2

Je pense que passer par un commutateur limiterait tout avantage que vous obtiendriez en utilisant 2 câbles Ethernet en parallèle. À moins que le commutateur ne soit plus rapide que vos deux cartes réseau combinées, auquel cas vous pourriez voir une augmentation de la vitesse.

Le programme d'équilibrage de charge est ce que vous recherchez. Vous n'avez pas à "équilibrer la charge" si vous ne le souhaitez pas, mais c'est le moyen le plus simple de fusionner les connexions que je connais. L'idée n'est pas trop compliquée

Carte réseau virtuelle -> Programme d'équilibrage de charge -> Carte réseau 1 + 2

Cette réponse a ce que vous cherchez, je crois: équilibrage de la charge réseau avec Network Manager

Je ne suis pas sûr des détails mais je suis sûr que c'est l'idée générale.

À moins que les cartes NIC ne soient sensiblement moins puissantes que votre routeur / commutateur, le seul avantage que vous obtiendrez sera probablement avec une connexion directe entre les deux ordinateurs, ou une connexion parallèle tout le long. Mais la théorie et la pratique ne fonctionnent pas toujours.

La seule façon dont je peux penser pour tester si le NIC est le goulot d'étranglement dans votre système est de faire un test de vitesse entre chaque ordinateur en utilisant les 4 NIC. Je peux vous donner une idée générale sur la façon de le faire, mais les trucs spécifiques à Ubuntu avec lesquels j'ai besoin d'un coup de main.

  1. Définissez chaque carte réseau pour avoir sa propre adresse IP comme 192.168.0.1 + 192.168.0.2 pour l'ordinateur 1 et * .3 + * .4 pour l'ordinateur 2
  2. Le seul test de vitesse pour les réseaux locaux que j'ai vu est juste le temps de transfert sur un fichier bit. Je ne sais pas s'il existe une meilleure méthode, je n'en ai jamais vu.

    3 Définissez les itinéraires manuellement pour que * .1 soit l'interface pour accéder à * .3 et * .2 pour accéder à * .4.
    PC1 192.168.0.1 <--> 192.168.0.3 PC2 192.168.0.2 <--> 192.168.0.4

Je n'ai jamais utilisé de tables ip, voici donc un exemple que j'ai trouvé.

[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. une autre option consiste à trouver un moyen pour le client ssh (ou terminal) de se connecter via certaines interfaces. Je ne sais pas encore comment cela s'est fait du côté client.

Si les tables IP sont correctement configurées, vous devriez pouvoir envoyer 2 fichiers du PC 1 vers les deux interfaces du PC 2 et chaque fichier prendra un itinéraire différent. Si le transfert avec les deux connexions est plus rapide qu'une seule .. (j'espère deux fois plus rapide), alors vous pourriez avoir quelque chose.

WalterJ89
la source
2

Je ne pense pas que vous ayez dit si vous utilisiez ou non une carte réseau Gigabit, je suppose que vous l'êtes puisque vous avez 2 cartes réseau et donc probablement une carte mère de jeu.

Puisque c'est le cas, si vous essayez d'obtenir une base 2x100, il vaut mieux acheter un commutateur Gigabit à 4-8 ports bon marché et le brancher sur votre routeur Internet. Ensuite, vous pouvez brancher tous les ordinateurs qui exécutent Ethernet dans ce commutateur et avoir toujours le wifi et Internet sur tous vos ordinateurs.

Je le fais maintenant parce que j'ai acheté un Netgear WNDR3400 et que j'ai mis DD-WRT dessus afin que je puisse avoir quelques belles options, y compris un serveur NAS très à jour intégré.

Le seul problème était que le routeur était 100 base sur les ports Ethernet. Donc, pour 40 $, j'ai acheté un commutateur Gigabit à 5 ports, je l'ai branché sur mon routeur, puis j'ai branché tous mes ordinateurs sur le commutateur Gigabit et branché mes consoles de jeu sur le routeur.

Tout fonctionne très bien et je peux transférer des fichiers entre les ordinateurs à une vitesse fulgurante.

Eh bien, bonne chance!

William
la source
1

Il existe une bibliothèque appelée Firehose qui peut transférer simultanément des données sur plusieurs périphériques réseau. Cependant, il ne vous donne pas un seul périphérique réseau virtuel et ne prend pas en charge TCP. Il est conçu pour le streaming vidéo à large bande passante pour les éditeurs vidéo. Cela pourrait cependant vous intéresser:

http://heroinewarrior.com/firehose.php

Alistair Buxton
la source
1

L'utilisation de la stratégie Port Bonding et Round-Robin sur les deux appareils connectés via un commutateur non géré va en fait presque doubler votre taux de transfert. La stratégie Round-Robin utilise par défaut l'équilibrage de charge sur plusieurs appareils et retombe sur un seul port en cas de défaillance d'un appareil.

Cependant, je crois que votre WRT54GS est un routeur et donc géré de sorte que vous n'obtiendrez pas tous les avantages de la liaison.

En supposant que vous utilisiez un véritable commutateur à 8 ports bon marché qui prend en charge la stratégie RR, puis le connectez au routeur, vous obtiendrez des vitesses de transfert accrues entre les deux appareils en utilisant la liaison via le commutateur et des vitesses de transfert normales vers Internet et le reste de la réseau.

Vous devez également augmenter vos tampons de lecture / écriture, txqeueuelen et votre mémoire netcore et tcp.

Stuart K. Smith
la source