Duas portas ethernet na placa-mãe. Como posso obter o dobro da largura de banda?

16

Pergunta direta : Minha placa-mãe classificada como evga possui duas portas ethernet. Eu quero usá-los simultaneamente para melhorar a velocidade de uma conexão remota. (Yay para programação remotamente). Como eu faço isso? Atualmente, o / 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

O que devo mudar? Existe um pacote que eu preciso instalar para ligar os dois canais.

Contexto: Eu faço muita computação remota de casa para escritório e de escritório para casa. Mas (para tirar meu ISP da equação), vamos enquadrar a questão como se eu estivesse realmente interessado apenas em maximizar a taxa de transferência de arquivos entre dois computadores na mesma rede (local). Ambas as caixas têm duas placas-mãe ethernet. Usando um simples Linksys WRT54GS como um switch de 5 portas (ignore wireless e isp) - como maximizar as taxas de transferência entre os computadores?

Por favor Note: Não estou interessado em balanceamento de carga - Corrija-me se estiver errado, mas quero ligar os dois canais juntos para que a caixa apareça como se tivesse uma conexão duas vezes mais rápida.

    
por M. Tibbits 27.03.2011 / 06:39

7 respostas

3

É importante observar que, para utilizar a funcionalidade de agrupamento de NICs, o comutador com o qual você está conectado deve oferecer suporte ao agrupamento de equipes, também conhecido como LACP. Você pode encontrar um interruptor assim através de uma pesquisa no NewEgg.com etc.

Depois de ter isso aqui, é um guia simples do wiki: link

Boa sorte!

    
por NetNinja 23.08.2012 / 17:17
12

É muito improvável que unir suas interfaces resultará em um aumento de velocidade. Normalmente, mesmo se você ligar as interfaces com sucesso e configurar o comutador para suportar o etherchannel), você ainda descobrirá que apenas uma interface na ligação é usada para cada par de sessão TCP / UDP de origem / destino.

Portanto, se você copiar um arquivo de 10Gb de um servidor e, em seguida, lançar outra cópia de 10Gb para esse servidor, presumindo que você também tenha ligação baseada em sessão, verá ambas as placas maximizadas. Mas, crucialmente, a primeira cópia consumirá apenas UMA placa de rede, não ambas.

Este é certamente o caso do etherchannel da Cisco. Na verdade, o etherchannel da Cisco nem é baseado em sessão, é baseado em origem / destino, então no meu exemplo acima, você nem aumentaria a velocidade - sua segunda cópia teria que ser para um servidor completamente diferente antes de ver os dois cartões usados. Talvez você tenha uma opção melhor que permita que o canal da porta utilize ambas as placas simultaneamente em uma sessão TCP / UDP, mas isso exigiria algumas manipulações arp / MAC bem complicadas e não tenho idéia se o módulo de ligação no linux suporta isso.

Quanto a você, você está usando um roteador doméstico comum, portanto, o suporte do lado do switch está fora de questão, o que significa que suas opções são ainda mais limitadas (veja o primeiro artigo abaixo, onde você verá que agora você não pode usar o melhor modo para agregação de link, modo 4).

Se você está determinado a ir em frente com isso, eu encontrei este artigo de cinco anos de idade que ainda parece relevante. Além disso, este artigo de três anos aborda o mesmo assunto.

Espero que ajude.

    
por Scaine 27.03.2011 / 12:51
2

Eu acho que passar por um switch limitaria qualquer benefício que você obteria usando 2 cabos Ethernet em paralelo. A menos que o comutador seja mais rápido que suas duas NICs combinadas, nesse caso, você poderá ver um aumento de velocidade.

O programa de balanceamento de carga é o que você está procurando. Você não precisa "balancear a carga" se não quiser, mas é a maneira mais fácil de mesclar as conexões que eu sei do. A ideia não é muito complicada

NIC virtual - > Programa de balanceamento de carga - > NIC 1 + 2

Esta resposta tem o que você está procurando, acredito: Balanceamento de carga de rede com o Network Manager

Não tenho certeza sobre os detalhes, mas tenho certeza que essa é a ideia geral.

A menos que as placas NIC sejam substancialmente menos potentes do que seu roteador / switch, o único benefício que você provavelmente obterá é com uma conexão direta entre os dois computadores, ou uma conexão paralela o tempo todo. Mas a teoria e a prática nem sempre funcionam.

A única maneira que posso pensar em testar se a NIC é o gargalo no seu sistema é fazer um teste de velocidade entre cada computador usando todas as 4 NICs. Eu posso te dar uma idéia geral sobre como fazer isso, mas as coisas específicas do Ubuntu eu vou precisar de uma mão.

  1. Configure cada NIC para ter seu próprio endereço IP, como 192.168.0.1 + 192.168.0.2 para o computador 1 e * .3 + * .4 para o computador 2
  2. O único teste de velocidade para redes locais que vi é apenas o tempo de transferência em um arquivo bit. Não tenho certeza se existe um método melhor, nunca vi um.

    3 Defina rotas manualmente para que * .1 seja a interface para chegar a * .3 e * .2 para * .4.
    PC1 192.168.0.1 < - > 192.168.0.3 PC2 192.168.0.2 < - > 192.168.0.4

Eu nunca usei tabelas ip então aqui está algo que eu encontrei como exemplo.

[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. outra opção é encontrar uma maneira de o cliente ssh (ou terminal) se conectar através de determinadas interfaces. Eu não tenho certeza de como isso é feito ainda para o lado do cliente.

Se as tabelas IP estiverem configuradas corretamente, você poderá enviar 2 arquivos do PC 1 para as duas interfaces no PC 2 e cada arquivo terá uma rota diferente. Se a transferência com as duas conexões for mais rápida do que apenas uma (esperançosamente duas vezes mais rápida), então você pode ter algo.

    
por WalterJ89 27.03.2011 / 07:46
2

Eu não acho que você tenha dito se estava ou não usando uma placa de rede Gigabit, acredito que você tenha 2 placas de rede e, provavelmente, uma placa-mãe para jogos.

Como esse é o caso, se você está tentando obter uma base 2x100, é melhor comprar um switch Gigabit barato de 4-8 portas e conectá-lo ao seu roteador de Internet. Em seguida, você pode conectar todos os computadores que executam a Ethernet nesse switch e ainda ter wifi e Internet funcionando em todos os seus computadores.

Eu faço isso agora porque eu comprei um Netgear WNDR3400 e coloquei o DD-WRT nele para que eu pudesse ter algumas boas opções, incluindo um servidor NAS muito atualizado.

O único problema era que o roteador era 100 base nas portas Ethernet. Então, por US $ 40 eu comprei um switch Gigabit de 5 portas plugado no meu roteador, em seguida, conectei todos os meus computadores no switch Gigabit e conectei meus consoles de jogos no roteador.

Tudo funciona bem e posso transferir arquivos entre os computadores na velocidade da luz.

Boa sorte!

    
por William 28.12.2011 / 09:56
1

Existe uma biblioteca chamada firehose que pode transferir dados em vários dispositivos de rede simultaneamente. Ele não fornece um único dispositivo de rede virtual e não suporta TCP. Ele é projetado para streaming de vídeo de alta largura de banda para editores de vídeo. Pode ser interessante para você:

link

    
por Alistair Buxton 29.03.2011 / 00:41
1

Eu enfrentei uma situação semelhante e achei isso:

link

Mas é um pouco antigo, espero que ajude.

    
por Rahul Prasad 06.05.2011 / 12:07
1

Usar a política de ligação de porta e Round-Robin em ambos os dispositivos conectados por meio de um switch não gerenciado quase duplicará sua taxa de transferência. O padrão de política Round-Robin é balancear a carga em vários dispositivos e retornar à porta única se um dispositivo falhar.

No entanto, acredito que o seu WRT54GS é um roteador e, portanto, gerenciado para que você não obtenha o benefício total da ligação.

Supondo que você usasse um comutador true de 8 portas que suportasse a política de RR e conectasse ao roteador, você obteria maiores velocidades de transferência entre os dois dispositivos usando a ligação através do switch e velocidades de transferência normais para a Internet e resto da rede.

Você também deve aumentar seus buffers de leitura / gravação, txqeueuelen e sua memória netcore e tcp.

    
por Stuart K. Smith 08.12.2011 / 01:25