Mi experiencia, creando mi primer bonding
Creación de un bonding con dos vlan en RHEL 9.4, usando nmcli.
Cosas importantes antes de empezar:
- SOLO PUEDE HABER UN GATEWAY (en grande, que yo siempre la lio)
- Hay que indicar el hash policy si nuestro switch usa una capa superior al 2.
Vamos a empezar, lo primero es crear el bonding principal de dónde colgarán todos:
nmcli connection add type bond con-name bond1 ifname bond1 bond.options "mode=802.3ad,miimon=1000"
mode –> Modo del bond (balance-rr, active-backup, balance-xor, broadcast, 802.3ad, balance-tlb, balance-alb).
El modo 802.3ad es el Link Aggregation Control Protocol (LACP), permite combinar múltiples interfaces de red físicas en un solo enlace lógico para mejorar el rendimiento y proporcionar redundancia.
miimon –> Intervalo en ms para chequear el estado del enlace (ej. 1000).
Como no lo queremos por DHCP y tampoco usaremos IPV6, lo indicamos de la siguiente manera:
nmcli connection modify bond1 ipv4.method disable
nmcli connection modify bond1 ipv6.method ignore
Ahora le indicamos el hash policy de conexión con el switch y las opciones de lacp:
nmcli connection modify bond1 +bond.options “lacp_rate=1"
nmcli connection modify bond1 +bond.options "xmit_hash_policy=layer3+4"
lacp_rate –> 1 (modo rápido, envía LACPDU cada 1 segundo. Si queremos modo lento, pondremos 0. Envía LACPDU cada 30 segundos.
xmit_hash_policy –> Indica el método de distribución de tráfico entre las interfaces físicas que forman parte del bonding.
Layer 3 (capa de red): Dirección IP de origen y destino
Layer 4 (capa de transporte): Puerto TCP/UDP de origen y destino.
Con estas opciones, el sistema calcula un hash usando IP y puertos del tráfico, y lo usa para decidir por cuál interfaz física enviar cada flujo.
Si no indicas nada, por defecto el bonding se crea con layer 2. La mayoría de switch solo permiten layer 2.
Ahora añadiremos las tarjetas de red que formarán el bonding, en mi caso, dos:
nmcli connection add type ethernet con-name bond1-slave1 ifname ens2f1np1 master bond1
nmcli connection add type ethernet con-name bond1-slave2 ifname ens5f1np1 master bond1
Ahora crearemos la VLAN que colgará del bonding (bond1) y que hará uso de las tarjetas de red, la VLAN tiene que coincidir con la VLAN del switch y tener el puerto configurado en modo trunk:
nmcli connection add type vlan con-name bond1-vlan606 ifname bond1.606 vlan.parent bond1 vlan.id 606
Como no queremos tener DHCP, asignamos ip manual al VLAN de la siguiente manera:
nmcli connection modify bond1-vlan606 ipv4.address '10.47.232.116/23' ipv4.gateway '10.47.232.1' ipv4.method manual
RECORDAR!!! SOLO PUEDE HABER UN GATEWAY CONFIGURADO EN LAS CONEXIONES DE RED!!! Si creamos otra VLAN, con nombre bond1-vlan900, esta VLAN tendrá que ir sin gateway!!
Ahora vamos a habilitar las conexiones para el autoarranque, en principio, el bond1 levantaría todas las demás, pero es una configuración que no molesta tener:
nmcli connection modify bond1 connection.autoconnect yes
nmcli connection modify bond1-slave1 connection.autoconnect yes
nmcli connection modify bond1-slave2 connection.autoconnect yes
nmcli connection modify bond1-vlan606 connection.autoconnect yes
Activamos todas las conexiones:
nmcli connection up bond1
nmcli connection up bond1-slave1
nmcli connection up bond1-slave2
nmcli connection up bond1-vlan606
Si el router está bien configurado, ya debería funcionar todo.
Podemos confirmar el estado mirando:
cat /proc/net/bonding/bond1
Aqui podemos ver el estado del bonding.
Ethernet Channel Bonding Driver: v3.7.1 (April 27, 2011)
Bonding Mode: IEEE 802.3ad Dynamic link aggregation
Transmit Hash Policy: layer3+4 (2)
MII Status: up
MII Polling Interval (ms): 1000
Up Delay (ms): 0
Down Delay (ms): 0802.3ad info
LACP rate: fast
Aggregator selection policy (ad_select): stable
Active Aggregator Info:
Aggregator ID: 1
Number of ports: 2
Actor Key: 17
Partner Key: 1
Partner Mac Address: 00:11:22:33:44:55Slave Interface: ens2f1np1
MII Status: up
Speed: 1000 Mbps
Duplex: full
Link Failure Count: 0
Permanent HW addr: 00:aa:bb:cc:dd:01
Aggregator ID: 1Slave Interface: ens5f1np1
MII Status: up
Speed: 1000 Mbps
Duplex: full
Link Failure Count: 0
Permanent HW addr: 00:aa:bb:cc:dd:02
Aggregator ID: 1
A cada boding con su vlan que este sin gateway, le indicamos como route, que, a su red se llega a través de que IP.
Ejemplo:
192.168.122.0/24 –> ruta de la red.
192.168.122.32/24 –> IP de la vlan606
nmcli connection modify bond0-vlan606 +ipv4.routes «192.168.122.0/24 192.168.122.32»