Dos puertos ethernet en la placa base. ¿Cómo puedo obtener el doble de ancho de banda?


16

Pregunta directa : Mi placa base clasificada evga tiene dos puertos ethernet. Quiero usarlos simultáneamente para mejorar la velocidad de una conexión remota. (Yay para programar de forma remota). ¿Cómo hago esto? En la actualidad / 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

¿Qué debería cambiar? ¿Hay un paquete que necesito instalar para unir los dos canales?

Antecedentes: Realizo muchas tareas de computación remota tanto de casa en oficina como de oficina en casa. Pero (para sacar a mi ISP de la ecuación), planteemos la pregunta como si realmente estuviera interesado en maximizar la velocidad de transferencia de archivos entre dos computadoras en la misma red (local). Ambas cajas tienen dos placas base ethernet. Usando un simple Linksys WRT54GS como un conmutador de 5 puertos (ignore la conexión inalámbrica y el ISP), ¿cómo maximizo las tasas de transferencia entre las computadoras?

Tenga en cuenta: no estoy interesado en el equilibrio de carga: corríjame si me equivoco, pero quiero unir los dos canales para que el cuadro aparezca como si tuviera una conexión que es dos veces más rápida.


2
Creo que pasar por un conmutador limitaría cualquier beneficio que obtendría al usar 2 cables Ethernet en paralelo. Tal vez si usaste dos interruptores, tal vez tenga sentido de alguna manera. Creo que el único beneficio posible que obtendrá es con una conexión directa.
WalterJ89

1
Por lo general, en una conexión entre el hogar y la oficina, el cuello de botella es el ISP, por lo que la agregación de enlaces en los dos extremos del enlace no mejora mucho.
Bitwelder

Respuestas:


3

Es importante tener en cuenta que para utilizar la funcionalidad de formación de equipos de NIC, el conmutador al que está conectado debe admitir la formación de equipos, también conocida como LACP. Puede encontrar un interruptor así mediante una búsqueda en NewEgg.com, etc.

Una vez que tenga eso, aquí hay una guía simple de la wiki: https://help.ubuntu.com/community/UbuntuBonding

¡Buena suerte!


Sí, buena suerte, porque si bien esto funcionará, no aumentará la velocidad.
Scaine

13

Es muy poco probable que vincular sus interfaces resulte en un aumento de velocidad. Por lo general, incluso si enlaza las interfaces con éxito Y configura el conmutador para admitir el canal de ethernet), todavía encontrará que solo se usa una interfaz en el enlace para cada par de sesión TCP / UDP de origen / destino.

Entonces, si copia un archivo de 10 Gb de un servidor, luego inicia otra copia de 10 Gb en ese servidor, suponiendo que también tenga una vinculación basada en la sesión, verá que ambas tarjetas están al máximo. Pero crucialmente, la primera copia solo consumirá UNA tarjeta de red, no ambas.

Este es ciertamente el caso con el canal de Ethernet de Cisco. De hecho, el etherchannel de Cisco ni siquiera está basado en la sesión, está basado en el origen / destino, por lo que en mi ejemplo anterior, ni siquiera obtendría un aumento de velocidad: su segunda copia tendría que estar en un servidor completamente diferente antes de ver ambos tarjetas utilizadas Quizás tenga un mejor conmutador que permita que el canal de puerto utilice ambas tarjetas simultáneamente en una sesión TCP / UDP, pero requeriría una manipulación bastante funky de arp / MAC y no tengo idea si el módulo de enlace en Linux lo admite.

En cuanto a usted, está utilizando un enrutador doméstico estándar de pantano, por lo que el soporte del lado del interruptor está fuera de discusión aquí, lo que significa que sus opciones son más limitadas (consulte el primer artículo que se detalla a continuación, donde notará que ahora no puede usar el mejor modo para la agregación de enlaces, modo 4).

Si está decidido a seguir con esto, encontré este artículo de cinco años que todavía parece relevante. Además, este artículo de tres años cubre el mismo terreno.

Espero eso ayude.


2

Creo que pasar por un conmutador limitaría cualquier beneficio que obtendría al usar 2 cables Ethernet en paralelo. A menos que el cambio sea más rápido que sus dos NIC combinadas, en ese caso, es posible que vea un aumento de velocidad.

El programa de equilibrio de carga es lo que estás buscando. No tiene que "equilibrar la carga" si no lo desea, pero es la forma más fácil de fusionar las conexiones que conozco. La idea no es demasiado complicada.

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

Creo que esta respuesta tiene lo que está buscando: equilibrio de carga de red con Network Manager

No estoy seguro de los detalles, pero estoy seguro de que esa es la idea general.

A menos que las tarjetas NIC sean sustancialmente menos potentes que su enrutador / conmutador, el único beneficio que probablemente obtendrá es con una conexión directa entre las dos computadoras, o una conexión paralela todo el camino. Pero la teoría y la práctica no siempre funcionan.

La única forma en que puedo pensar para probar si la NIC es el cuello de botella en su sistema es hacer una prueba de velocidad entre cada computadora usando las 4 NIC. Puedo darle la idea general sobre cómo hacer esto, pero las cosas específicas de Ubuntu con las que necesitaré ayuda.

  1. Configure cada NIC para que tenga su propia dirección IP como 192.168.0.1 + 192.168.0.2 para la computadora 1 y * .3 + * .4 para la computadora 2
  2. La única prueba de velocidad para redes locales que he visto es solo el tiempo de transferencia en un archivo de bits. No estoy seguro de si hay un método mejor, nunca he visto uno.

    3 Configure las rutas manualmente para que * .1 sea la interfaz para llegar a * .3 y * .2 llegar a * .4.
    PC1 192.168.0.1 <--> 192.168.0.3 PC2 192.168.0.2 <--> 192.168.0.4

Nunca he usado tablas ip, así que aquí hay algo que encontré como ejemplo.

[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. Otra opción es encontrar una manera para que el cliente ssh (o terminal) se conecte a través de ciertas interfaces. No estoy seguro de cómo se hace aún para el lado del cliente.

Si las tablas IP se configuran correctamente, debería poder enviar 2 archivos desde la PC 1 a ambas interfaces en la PC 2 y cada archivo tomará una ruta diferente. Si la transferencia con las dos conexiones es más rápida que solo una ... (con suerte el doble de rápido), entonces podría tener algo.


2

No creo que haya dicho si estaba utilizando una NIC Gigabit o no, supongo que sí, ya que tiene 2 NIC y, por lo tanto, probablemente una placa base para juegos.

Como ese es el caso, si está tratando de obtener una base 2x100, es mejor que compre un conmutador Gigabit de 4 a 8 puertos y lo conecte a su enrutador de Internet. Luego, puede conectar todas las computadoras que ejecutan Ethernet en ese conmutador y aún tener wifi e Internet en funcionamiento en todas sus computadoras.

Lo hago ahora porque compré un Netgear WNDR3400 y puse DD-WRT para poder tener algunas buenas opciones, incluido un servidor NAS muy actualizado.

El único problema era que el enrutador era 100 base en los puertos Ethernet. Entonces, por $ 40, compré un conmutador Gigabit de 5 puertos, lo conecté a mi enrutador, luego conecté todas mis computadoras al conmutador Gigabit y conecté mis consolas de juegos al enrutador.

Todo funciona muy bien y puedo transferir archivos entre las computadoras a la velocidad de la luz.

¡Bueno, buena suerte!


1

Hay una biblioteca llamada firehose que puede transferir datos a través de múltiples dispositivos de red simultáneamente. Sin embargo, no le da un solo dispositivo de red virtual, y no es compatible con TCP. Está diseñado para la transmisión de video de alto ancho de banda para editores de video. Sin embargo, podría ser interesante para usted:

http://heroinewarrior.com/firehose.php



1

El uso de la política de enlace de puertos y Round-Robin en ambos dispositivos conectados a través de un conmutador no administrado de hecho casi duplicará su velocidad de transferencia. La política de Round-Robin adopta el equilibrio de carga en varios dispositivos y vuelve a un solo puerto si falla un dispositivo.

Sin embargo, creo que su WRT54GS es un enrutador y, por lo tanto, se gestiona para que no obtenga todos los beneficios de la vinculación.

Suponiendo que usara un conmutador verdadero de 8 puertos que fuera compatible con la política RR y luego lo conectara al enrutador, obtendría mayores velocidades de transferencia entre los dos dispositivos mediante la conexión a través del conmutador y las velocidades de transferencia normales a Internet y al resto de la red. red.

También debe aumentar sus memorias intermedias de lectura / escritura, txqeueuelen y su memoria netcore y tcp.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.