ethernet

Ethernet bonding

¿Tienes una máquina cualquiera, servidor, pc-doméstico y/o lavadora por red con dos interfaces ethernet y solo usas una?


Hazle bonding, que está feo que coja polvo el conector de red… ¿no?

Además, es sencillo. Hasta Paquirrín podría hacerlo.

¿Qué es el bonding de ethernet?

Pues bien, grosso modo, consiste en balancear una conexión de red por ethernet en dos tarjetas de red físicas. Cada una con su MAC. Convirtiéndolas en una sola interfaz con una sola MAC que se autogestiona y redirecciona la conexión por la que más le convenga o, en el caso de que ocurra, por la que no esté rota. Nos da protección ante rotura de una de las dos tarjetas y minimizamos así las posibilidades de quedarnos sin red en un servidor. Si queréis saber más, aquí en la Wikipedia hay más.

Al turrón:

Supongamos que tenemos dos interfaces, llamadas eth0 y eth1.
1.- Instalamos ifenslave con apt (recordad que en este blog todos los ejemplos son en Debian, pero os podéis apañar en otras distros)

apt-get install ifenslave

2.- Creamos el fichero bonding.conf en /etc/modprobe.d, añadimos estas lineas en él y lo cargamos:

alias bond0 bonding
options bonding mode=active-backup miimon=100 downdelay=150 updelay=150

3.- Modificamos /etc/network/interfaces para que quede de forma similar a esta, eliminaremos la configuración de eth0 y eth1 y la sustituiremos con esta pero con vuestra configuración particular (En el ejemplo la red es 192.168.1.0):

# The loopback network interface
auto lo bond0
iface lo inet loopback
# The primary network interface
allow-hotplug eth0
allow-hotplug eth1
iface bond0 inet static
    slaves eth0 eth1
    address     192.168.1.2
    netmask     255.255.255.0
    gateway     192.168.1.1
    network     192.168.1.0
    broadcast   192.168.1.255
    bond_mode active-backup
    bond_miimon 100
    bond_downdelay 150

4.- Si no estamos delante del servidor de forma corpórea tendremos que llevar cuidado en cómo ejecutamos el paso de reiniciar la red. Lo recomendable si no estamos físicamente presentes es levantar primero la interfaz bond0 con:

ifup bond0

Y después tiramos abajo eth0 y eth1:

ifdown eth0
ifdown eth1

Pero si estamos presentes (y no es un servidor en producción en el que se está trabajando, claro), es mejor tirar abajo networking:

/etc/init.d/networking stop

Y levantarlo:

/etc/init.d/networking start

5.- Comprobaremos que todo está correcto:

ifconfig
bond0     Link encap:Ethernet  HWaddr f0:1f:af:d3:48:a8
          inet addr:192.168.1.2  Bcast:192.168.101.255  Mask:255.255.255.0
          inet6 addr: fe80::f21f:afff:fed3:48a8/64 Scope:Link
          UP BROADCAST RUNNING MASTER MULTICAST  MTU:1500  Metric:1
          RX packets:29648237 errors:0 dropped:2523856 overruns:0 frame:0
          TX packets:30004957 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:20909383227 (19.4 GiB)  TX bytes:31281472852 (29.1 GiB)
eth0      Link encap:Ethernet  HWaddr f0:1f:af:d3:48:a8
          UP BROADCAST RUNNING SLAVE MULTICAST  MTU:1500  Metric:1
          RX packets:26476124 errors:0 dropped:0 overruns:0 frame:0
          TX packets:30004957 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:20383770558 (18.9 GiB)  TX bytes:31281472852 (29.1 GiB)
          Interrupt:16
eth1      Link encap:Ethernet  HWaddr f0:1f:af:d3:48:a8
          UP BROADCAST RUNNING SLAVE MULTICAST  MTU:1500  Metric:1
          RX packets:3172113 errors:0 dropped:2471750 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:525612669 (501.2 MiB)  TX bytes:0 (0.0 B)
          Interrupt:17
lo        Link encap:Local Loopback
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:1606767 errors:0 dropped:0 overruns:0 frame:0
          TX packets:1606767 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:438725905 (418.4 MiB)  TX bytes:438725905 (418.4 MiB)

Fijaos que todas las interfaces tienen la misma MAC y que eth0 y eth1 rezan “UP BROADCAST RUNNING SLAVE MULTICAST”.
Con esto ya dispondríais de bonding y podéis enchufar las dos interfaces de red físicas a vuestra red.
Anuncios