El post de hoy es sobre Port Bonding o Port Trunking, como respuesta a la solicitud de uno de vosotros que nos solicitasteis que explicáramos un poco más de estos métodos que se pueden usar en los equipos QNAP Turbo Nas. Como sabréis, todos los QNAP Turbo Nas que importamos en estos momentos tienen dos tarjetas de red Gigabit, por lo que lo ideal es sacarle el máximo partido a cada una de ellas.
El primer uso de estas dos tarjetas, aunque no el más habitual, es el de ponerlas con configuraciones totalmente diferentes para poder enchufar un mismo QNAP Turbo Nas a dos redes totalmente diferentes con dos switches independientes.
Sin embargo, el uso más habitual es el de poner las dos tarjetas de red enchufadas a un mismo switch con una sola red en él. Suponiendo que vamos a tener una sola red, entonces lo ideal es enchufar los dos puertos de red del QNAP al switch y dependiendo del tipo de configuración que queramos, lo gestionaremos de una manera u otra. Una manera muy sencilla de explicar la razón de post es la suma de puertos, los QNAP tienen dos tarjetas de red Gigabit por lo que podemos crear una sola conexión de dos Gigabits, simple y rápido 🙂
Cuando conectamos cualquiera de nuestros QNAP Turbo Nas al switch, lo podremos configurar con cualquiera de los 7 modos de Port Bonding o Trunking que existen, por lo que para continuar con el post, empezaremos por explicar que es el port bonding o port trunking.
El Port Bonding o Port Trunking es una técnica que permite agregar varios interfaces de red físicos en uno único virtual. A cada interfaz físico se le denominará esclavo (slave). Con esto podemos realizar un balanceo de carga entre las dos interfaces y conseguir un ancho de banda final igual a la suma de los anchos de banda de cada esclavo. Además de una ventaja adicional inmediata: redundancia de la conexión, lo que implica que si tenemos varios enlaces físicos a la red, perder alguno de ellos supondría una degradación de servicio pero no la pérdida completa de conexión.
Port Bonding / Trunking – esta opción en los QNAP la tenemos al principio de la configuración del QNAP con una configuración por defecto, pero para poder sacarle el mayor partido a nuestra máquina, vamos a explicar los diferentes parámetros disponibles.
Dependiendo del método/algoritmo que escojamos, podremos balancear la carga entre todos los esclavos. Los algoritmos implementados son:
– Balance-rr (Round-Robin)
– Active Backup
– Balance XOR
– Broadcast
– IEEE 802.3ad
– Balance-tlb (Adaptive Transmit Load Balancing)
– Balance-alb (Adaptive Load Balancing)
Balance-rr (modo 0): se emplea un algoritmo round robin entre la cola virtual y las de los esclavos. Es algo así como: un paquete para un esclavo, otro para otro esclavo, un paquete para un esclavo, otro para el otro… etc.
Active-backup (modo 1): realmente no balancea la carga, usa sólo un esclavo y en caso de fallar, usa el siguiente disponible.
Balance-xor (modo 2): emplea una fórmula para decidir por qué interfaz esclavo (slave) sale la información: (source-MAC xor dest-MAC) mod n-slaves. Este método ofrece balanceo de carga y tolerancia a errores en caso de pérdida de una de las conexiones.
Broadcast (modo 3): se transmite todo por todas las interfaces/tarjetas. Este método no balancea la carga, pero provee tolerancia en caso de fallo en cualquiera de las interfaces.
802.3ad (modo 4): Configura una política de agregación de enlace dinámico IEEE 802.3ad. Crea grupos de agregación que comparten las mismas especificaciones de velocidad y duplex. Transmite y recibe en todos los esclavos en el agregador activo.
Balance-tlb (modo 5): balancea la carga de transmisión entre los esclavos dependiendo de la velocidad de estos y de la carga total. El tráfico es recibido por un esclavo, en caso de fallar otro esclavo toma su MAC y continúa recibiendo tráfico. No requiere de ninguna configuración en el switch.
Balance-alb (mode=balance o mode=6): realiza el balanceo anterior además de un balanceo también en la recepción. Este método debe modificar las MAC de los esclavos estando las tarjetas activas.
Los tipos más frecuentes son los primeros 4, aunque nuestra sugerencia es la siguiente. Si el switch del que usted dispone no es gestionable, entonces use el modo 0 (Balance-rr), y en caso de que si que lo sea, aprovéchese de la suma de velocidades con el modo 4 (IEEE 802.3ad)
Tenga en cuenta que el balanceo de carga NO le proporciona suma de velocidad, asi que si lo que quiere es suma velocidades, use el modo 4 y gestione su Switch
Configuraciones en el switch
Los modos active-backup, balance-tlb y balance-alb no requiere ninguna configuración especial en el switch, ideales si no tenemos acceso a la configuración del equipamiento de red Eye-wink.
El modo 802.3ad requiere que el switch tenga los puertos donde conectamos los esclavos en modo 802.3ad aggregation. Esto depende de cada switch, por ejemplo, en los switch’s de Cisco esta capacidad se llama EtherChannel y debe estar en modo lacp.
Por último, los modos balance-rr, balance-xor y broadcast generalmente requieren poder agrupar puertos. Las nomenclaturas de estos grupos dependen del fabricante del switch, como hemos dicho antes, Cisco llama a estas agrupaciones EtherChannel, también se usa trunk group, etc.
Direcciones MAC
Las direcciones MAC de nuestros grupos (bonds) serán cogidas siempre del primer esclavo. Para restaurar las direcciones MAC, entonces necesitaremos desmontar los grupos, y los MAC de cada interfaz volverán a ser los mismos que originalmente tenían.
Por último, aqui os paso un par de links para que podáis seguir leyendo sobre este maravilloso mundo del port bonding / trunking
Linux Ethernet Bonding Driver HOWTO, click aqui
Página del proyecto Linux Channel Bonding, click aqui