Ethernet Bonding en Ubuntu 10.10

Hola, eolianos.

Por motivos que no vienen al caso, un familiar tiene dos líneas ADSL (3 y 6MB) con telefónica en la misma vivienda. Pensando en aprovechar las mismas me puse a buscar por Internet alguna forma de "sumarlas", descartando por el momento adquirir algún router con balanceo de carga y multi-wan.

Encontré que en GNU/Linux era en teoría muy sencillo hacer lo que llaman "ethernet bonding" (network teaming, nic teaming, creo que es lo mismo). Tras preguntar a San Google efectivamente parecía muy sencillo, instalar "ifenslave" y a correr. Pero al parecer en Ubuntu 10.10 la cosa ha cambiado y bastante.

Pulula por la red "únicamente" (al menos lo que yo he llegado a encontrar) un tutorial: http://bit.ly/dYC0t7 El cuál, al menos a mí, no me funciona.

Imagino que el error está en la configuración de /etc/network/interfaces, que en el tutorial deja bastante al aire, pero no logro averiguar cuál es el fallo. Tengo entendido, al menos así parece en su Wiki, que en Arch es muy simple hacer bonding pero como el equipo no es mío y ya Ubuntu les parece difícil (diferente, ellos lo llaman difícil) no puedo elegir esa solución.

¿Alguien me echa un cable? Las dudas que se me plantean son, ¿han de estar los routers en el mismo rango de IP's o pueden ser diferentes (192.168.0.1 y 192.168.1.1, por ejemplo)? ¿todas las tarjetas de red son compatibles con "bonding"?

Muchas gracias de antemano y perdón por el ladrillaco...

EDITO: Creo que he conseguido algo, aunque pierdo muchos paquetes y tengo MUCHÍSIMO lag, me va fatal pero no en tráfico en internet sino en tráfico LAN. Intento acceder a uno de los routers y tengo que esperar bastante tiempo con "Enviando solicitud". El caso es que veo cómo en los dos routers parpadea el led que indica tráfico ethernet, coas que antes no pasaba. Mi estructura es la siguiente.

eth0 - 192.168.1.1---------------------------\
---------------------------------------------------------\
---------------------------------------------------------------------------> bond0 - 192.168.1.111
---------------------------------------------------------/
eth1 - 192.168.1.222-----------------------/

La configuración de /etc/network/interfaces:
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).

# The loopback network interface
auto lo
iface lo inet loopback

iface eth0 inet manual

iface eth1 inet manual

auto bond0
iface bond0 inet static
bond_miimon  100
bond_mode balance-rr
address  192.168.1.111
netmask  255.255.255.0
gateway  192.168.1.1
up /sbin/ifenslave bond0 eth0 eth1
down /sbin/ifenslave -d bond0 eth0 eth1


¿Puede ser que de alguna manera se "saturen" los routers al hacer el balanceo de carga? No sé, es raro...
Para hacer bonding (al menos el bonding que estas configurando tú), tienes que tener soporte en el switch para una agregación de puertos (etherchannel para los ciscos).
Revisa la configuración http://www.cyberciti.biz/howto/question/static/linux-ethernet-bonding-driver-howto.php
The balance-rr, balance-xor and broadcast modes generally require that the switch have the appropriate ports grouped together. The nomenclature for such a group differs between switches, it may be called an "etherchannel" (as in the Cisco example, above), a "trunk group" or some other similar variation. For these modes, each switch will also have its own configuration options for the switch's transmit policy to the bond. Typical choices include XOR of either the MAC or IP addresses. The transmit policy of the two peers does not need to match. For these three modes, the bonding mode really selects a transmit policy for an EtherChannel group; all three will interoperate with another EtherChannel group.
Yo creía que no era necesario un switch para hacer bonding, iluso de mí...
Scopata escribió:Yo creía que no era necesario un switch para hacer bonding, iluso de mí...

No te has leído el link, verdad?

The active-backup, balance-tlb and balance-alb modes do not require any specific configuration of the switch.
yo estuve mirando tambien algo parecido, pero no consegui nada con gnu/linux, entonces empece a mirar pfsense, que al parecer si se puede hacer, si pruebas y te vas, ya me contaras! ;)
Ok, vale, ya entendí, hay varios modos de hacer bonding con o sin switch...

Este fin de semana lo intentaré otra vez y a ver si saco algo en claro, la verdad es que creía que era algo fácil porque en los foros cuando la gente lo pregunta y demás le responden "Fedora!", por poner un ejemplo, en plan... "Hazlo en Linux que es pan comido".

Un saludo y gracias.
Scopata escribió:Ok, vale, ya entendí, hay varios modos de hacer bonding con o sin switch...

Este fin de semana lo intentaré otra vez y a ver si saco algo en claro, la verdad es que creía que era algo fácil porque en los foros cuando la gente lo pregunta y demás le responden "Fedora!", por poner un ejemplo, en plan... "Hazlo en Linux que es pan comido".

Un saludo y gracias.

Con switch tiene que ser SI o SI... otra cosa es que si el switch no soporta etherchannel, no puedes utilizar el balanceo round robin o el xor, con lo cual tienes que usar el active backup, blanceo-tlb o alb...
Un saludo!
PD.- Es muy sencillo, pero hay que comprender bien los conceptos... si lo miras bien es editar un par de ficheros de texto... :)
Se me puede estar yendo la pinza, pero ¿para hacer NIC bonding necesitas switch? ¿para qué? yo juraría que no hace falta para nada, pero a estas horas puedo estar desvariando...
Te dejo por aquí un enlace a un tuto bien sencillo, es para Debian Sarge, pero lo mismo da: NIC Bonding/Teaming.

Un saludo.
(mensaje borrado)
8 respuestas