Lan rápida con Link aggregation

Comenzando por el Switch

NETGEAR Log Dark

En redes LAN es útil tener un alto ancho de banda, lo que produciría un aumento de la productividad notable en muchos escenarios, a la hora de transferir ficheros grandes.

No hace falta ser un PRO para que un entorno de estos nos ayude bastante.

La técnica que usaremos sera link aggregation aka lagg.

switcheNetGear.jpg

las pastillas de atrás son droga, no vean eso, es lo mas importante pero no lo vean.

Es importante un switch compatible y administrable por ejemplo este lo acabo de adquirir por amazon, pequeñito ocho puertos, nada grande, pero funcional por tan solo 65 mangos y no volvernos locos con actualizaciones muy extravagantes, (bueno por los momentos)…​ tal cual como recomienda Ian 🔥

switcheNetGearPortConfiguration

Maximun Frame Size
  1. El Frame Size se debe establecer a 9000 aka jumbo-frame super necesario para este caso.

  2. Y abajo se muestran las 2 interfaces de red con ese MTU.


Device View

deviceView

Actualmente esta así

  • puerto 1 con cable ethernet

  • puerto 7 y 8 para el LAGG

  • puerto 6 para mi internet

  • proximamente, 2 interfaces sobrantes para el LAGG


LAG Membership

pestañaLag

Donde seleccionamos nuestras dos interface para crear ese ID quizas.


LAG Configuration

lagConfiguration

  • En columna "LAG TYPE" tenemos un combo y dentro usamos LACP

Y por los momentos con eso basta para la parte del switch


Importar/Exportar Backup

Siempre es útil la config, para no perder tanto el tiempo.

Aquí exportamos la configuración en formato .cfg

exportar backup

Aquí importamos el fichero anterior

importar backup


MTU en NIC ethernet 🤔

Se me hace muy extraño que no tenga que subir el MTU de mi tarjeta de red lan, obviamente si lo había hecho para probar, pero el resultado fue malo, no me cargaban las cosas en Google-chrome, muy extraño, mejor dicho el CSS del login del XigmaNAS y otros.

Aquí esta la prueba.

0Bytes


Configuración en XigmaNAS

Las versíon usada de XigmaNAS es 12.2.0.4 - Ornithopter (revision 8860)

En este punto me veo en la necesidad de parar todos los jails existentes, antes de crear la interface lagg0, porque sino, no se levantan luego con bastille.
En el XigmaNAS, por las pruebas que he realizado, no hace falta establecer el MTU, por lo visto el switch ya maneja esa parte, si lo establecemos, ni siquiera los jails arrancan. Error de arriba
xigmanas: ~# bastille create -V jail1 13.0-RELEASE 192.168.1.3/24 lagg0 (1)
Valid: (192.168.1.3/24).
Valid: (lagg0).

Creating a thinjail...

[jail1]:
ifconfig: BRDGADD lagg0: Device busy
jail: jail1: jib addm bastille6 lagg0: failed

[jail1]: Not started. See 'bastille start jail1'.
[jail1]: Not started. See 'bastille start jail1'.
[jail1]:
ifconfig: BRDGADD lagg0: Device busy
jail: jail1: jib addm bastille6 lagg0: failed

xigmanas: ~#
1 Intentando crear un jail con V-NET y con la interface lagg0, pero tenemos error, todo esto pasa porque se creo la interface lagg0 ( o la agregración ) antes de parar los jails, e incluso no nos deja crear otro.

Pestaña Network > Interface Managment > LAGG

Seleccionamos la interface que tengamos disponible en este caso:

  • igb0

  • igb1

crearLAGG xigma

interace lagg0

A tomar en cuenta
  • En este punto debemos seleccionar nuestra interface lagg0 correspondiente a nuestro Link Aggregation creado en el paso anterior y sin reiniciar, porque si reiniciamos sin seleccionarla, no tendríamos conexión a la interface WEB, y se deberá usar el monitor/serial para establecerla.

  • En caso tal de fastidio 🤣 podemos ir al switch y quitar el LACP y dejarle static como aquí permitiendo acceder a la GUI del NAS y seleccionar la interface lagg0.

Luego de setear aquí la interface, damos un reboot.

Configuración de los jails

Una vez que tengamos nuestra nueva interface, debemos parar nuestros jails y setearles manualmente la interface lagg0 en el fichero jails.conf

bastille stop nuestroJail (1)
1 Parar nuestro jail rapidamente desde la consola del NAS. Desde la GUI al ser síncrono, se queda bloqueado el main thread, y es medio engorroso ciertas veces.
exec.prestart += "jib addm bastille0 lagg0"; (1)
1 En el jails.conf anteriormente estaba la igb0 nuestra interface original, ahora será lagg0.
Los jails deben pararse si o si, para establecer esta interface manual, no se hace de manera automática, incluso, pasa lo mismo en TrueNAS Core

Iperf3

Haremos un pequeño benchmark con iperf3

iperf3 -s (1)
1 El parámetro -s es para el servidor, en este caso, lo ejecutamos en nuestro NAS
iperf3 -c ipServirdor (1)
1 El parámetro -c es de cliente, obviamente lo ejecutamos en el cliente apuntando a la ip del server/NAS

Antes

redNormal10MBytes

Después

iperfServidor

La columna TRANSFER nos indica que, si descargo un fichero de mi servidor, tendrá esa velocidad aprox, y de verdad que es bastante aproximada.

Claro esta que funciona.

Descargas via HTTP

descargaConGoogleChrome

Simulando dos personas descargando

Aquí el ancho de banda se divide, pero nada mal, aun así es mucho mas rapido que en un inicio.

simulando2PersonasDescargando

Subiendo fichero via Samba/smb

Pensaba de verdad que iba a ser mas lento, pero que va, bastante bien diría, para los anteriores 10MBytes

velocidadEnViaSamba

Samba multichannel

Esta técnica permite escritura/lectura de manera asíncrona aprovechando los threads del procesador, logrando un alto rendimiento, se habla de que esto puede generar inconsistencia en los datos, pero al parecer no es tan así 🤔.

Además que se debe tener las interfaces de red sin lagg 😅 que no es nuestro punto, quizás se toque luego.