Proxmox: Crear un Bond o Nic Teaming o Link Aggregation
Aunque ya tengo varias entradas sobre este tema, creo que no lo había llevado a Proxmox, aunque lo he hecho muchas veces (quizás por eso no he tenido la necesidad de documentarlo).
Os dejo varias entradas que hablan sobre lo que es un Bond, Nic Teaming o Link Aggregation, los tipos que hay, en qué consiste…creo que no es necesario repetir otra vez lo mismo:
- Unraid: Configurar Trunk con HP Aruba
- Configurar NIC Teaming en Windows 11
- Crear Teaming en Centos 7
- Teaming Switch Meraki e Hyper-V
- Link Aggregation Synology VMware
El material que voy a usar para esto son:
- Equipos Minis Forum U820 / NAB5 / NUC Extreme 9 instalados con Proxmox
- Switch HP Aruba Officeconnect 1820
- Cables ethernet y 2 puertos cada PC
Configuración de Bond en Proxmox
DOCUMENTACION OFICIAL: https://pve.proxmox.com/wiki/Network_Configuration
Partimos de que mis dos tarjetas en los minis forum ya estaban conectadas, una a mi LAN y otra para la conexión del cluster de forma interna. Mi idea es crear todo sobre un enlace, utilizar VLANs u otros tipos de conceptos más lógicos para dividir el tráfico de red en el LAB, ya que con puerto de 1Gb y 2.5Gb sumados, tengo velocidad suficiente.
Ahora mismo tengo esta configuración, con 2 Linux Bridge, cada uno asociado a una tarjeta física diferente:
OBJETIVO:
- Crear un bond0 con las dos interfaces, que sumen las velocidades (nada de activo-pasivo) y con la IP de mi LAN. Luego ya veremos como mejoramos esta configuración en otras entradas o si tiene que variar. Os dejo el NUC ya configurado:
Hay que tener en cuenta, que es posible que os podáis quedar sin red en el proceso, así que si lo podéis hacer vía consola y con un ordenador en remoto mejor que mejor.
Lo primero de todo es configurar nuestro Proxmox. Extraemos el nombre de las tarjetas que van a intervenir con el siguiente comando “ip a” o vía visual en la sección HOST -> Sistema -> Red:
- Vemos que los nombres son enp1s0 y enp2s0
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
root@minis:~# ip a 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo valid_lft forever preferred_lft forever inet6 ::1/128 scope host noprefixroute valid_lft forever preferred_lft forever 2: enp1s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast master vmbr0 state UP group default qlen 1000 link/ether 84:47:09:0a:7e:71 brd ff:ff:ff:ff:ff:ff 3: enp2s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq master vmbr1 state UP group default qlen 1000 link/ether 84:47:09:0a:7e:72 brd ff:ff:ff:ff:ff:ff 4: wlp3s0: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default qlen 1000 link/ether 68:3e:26:c3:df:1b brd ff:ff:ff:ff:ff:ff 5: vmbr0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000 link/ether 84:47:09:0a:7e:71 brd ff:ff:ff:ff:ff:ff inet 192.168.2.169/24 scope global vmbr0 valid_lft forever preferred_lft forever inet6 fe80::8647:9ff:fe0a:7e71/64 scope link valid_lft forever preferred_lft forever 6: vmbr1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000 link/ether 84:47:09:0a:7e:72 brd ff:ff:ff:ff:ff:ff inet 192.168.1.1/24 scope global vmbr1 valid_lft forever preferred_lft forever inet6 fe80::8647:9ff:fe0a:7e72/64 scope link valid_lft forever preferred_lft forever |
- Vía gráfica:
Ahora tenemos que modificar vía comando o vía gráfica la configuración. Yo prefiero la primera, aunque se puede hacer vía la pantalla anterior y terminar con “Apply Configuration” cuando queramos corroborar lo que hemos hecho:
- Vía comando, iremos al fichero “nano /etc/network/interfaces“:
Hago una copia antes de empezar “root@minis:~# cp /etc/network/interfaces /etc/network/interfaces.old”
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
auto lo iface lo inet loopback iface enp1s0 inet manual iface enp2s0 inet manual auto vmbr0 iface vmbr0 inet static address 192.168.2.169/24 gateway 192.168.2.69 bridge-ports enp1s0 bridge-stp off bridge-fd 0 iface wlp3s0 inet manual auto vmbr1 iface vmbr1 inet static address 192.168.1.1/24 bridge-ports enp2s0 bridge-stp off bridge-fd 0 source /etc/network/interfaces.d/* |
Y modificamos el texto con la siguiente configuración:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
auto lo iface lo inet loopback auto enp1s0 iface enp1s0 inet manual auto enp2s0 iface enp2s0 inet manual iface wlp6s0 inet manual auto bond0 iface bond0 inet static bond-slaves enp1s0 enp2s0 bond-miimon 100 bond-mode balance-rr auto vmbr0 iface vmbr0 inet static address 192.168.2.169/24 gateway 192.168.2.69 bridge-ports bond0 bridge-stp off bridge-fd 0 source /etc/network/interfaces.d/* |
Guardamos y reiniciamos el servicio de red:
1 |
root@minis:~# systemctl restart networking |
Esto nos puede dejar incomunicados hasta que no configuremos el switch.
A nivel de Switch, crearemos un Trunk con los puertos de cada PC (en mi caso hasta 3):
Y vamos comprobando que nos responde la nueva IP, un simple ping nos debería valer.
Habrá una pequeña caída entre que pulsamos aplicar y modificamos el switch, que tenemos que coordinar:
Revisar velocidad interface bond en Proxmox
Por último, nos conectamos al equipo y lanzamos el siguiente comando “ethtool bond0” para revisar que la velocidad es la adecuada y suma, en mi caso 2Gb:
Si queréis aseguraros que todo está bien configurado, adicionalmente podéis ir desconectando alguno de los cables y ver que devuelve este comando.
Te ha gustado la entrada SGUENOS EN TWITTER O INVITANOS A UN CAFE?
Buenas,
Acabo de configurar un BOND en mi pequeño mini PC, ya que tiene dos tarjetas de red de 1 GB y me gustaría que fuera a 2 GB. El tema es que configuro correctamente el BOND y pruebo que me sincroniza a 2000 Mb/s, pero si intento instalar cualquier nuevo LXC me da error en la instalación, ya que me indica que no hay red. Si hago ping desde el terminal de Proxmox me lo resuelve e incluso las actualizaciones de Proxmox son correctas, pero es como si me hubiera dejado para que al crear nuevas máquinas no encontrara la salida de red correcta. ¿Sabes que podría ser? Muchas gracias por todo y felicidades por el blog.
Hola Alex, entiendo que te da el error en el asistente de creación. ¿Tienes vmbr0 asignado al bond0 (o como les hayas llamado)? Si desde el host tienes red (señal que la parte del switch estará bien configurada), entiendo que es un tema de configuración del vmbr0 (en el apartado Red de cada Host)…Salu2
Lo acabo de volver a hacer de nuevo, he reinstalado Proxmox desde cero y he configurado el BOND desde la interface web. Mismo resultado, hay red, pero al instalar cualquier script de Proxmox VE Helper-Scripts me da error en la instalación. Ojo, sí que me lo descarga, pero no termina la instalación correctamente, ya que el nuevo contenedor no encuentra salida a internet.
Luego lo he revisado desde terminal la configuración del fichero “interfaces” y la única diferencia que he visto es que me ha configurado el bond0 como “inet manual”. Lo he cambiado a “static” tal como indicas en el tutorial. Los nombres están correctamente, Proxmox tiene salida a internet, hago ping desde el terminal y funciona correctamente, pero lo que no consigo es que los nuevos contenedores tengan salida a internet.
Seguramente será algo de mi switch, que no gestionara correctamente el BOND, pero era por si me había dejado algo.
Gracias por la respuesta “superrápida” y felicidades de nuevo por el blog. Me lo estoy empapando de arriba a abajo.
Saludos.
Gracias Alex. Tendría que entender tu infraestructura, lo normal es que no tengas esos problemas por configurar el bond. Pero es verdad, que si el switch no está bien configurado puede provocar comportamientos anómalos. Revisa el firewall del host, de los contenedores o el tuyo propio…mira si generando manualmente dos contenedores se ven entre ellos, igual también usar traceroute para ver donde se queda el tráfico…si tienes VLANs taggeadas…