Comenzando por el Switch

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.

| 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 🔥

|
Maximun Frame Size
|
Device View

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

Donde seleccionamos nuestras dos interface para crear ese ID quizas.
LAG Configuration

| En columna "LAG TYPE" tenemos un combo y dentro usamos LACP al luego hacemos click en el botón apply. |
En la imagen de abajo inspeccionamos, y debe estar Link Up como lo indica la columna Link Status, seguro de ahi podemos ya tener conexión con los equipos conectados.

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

Aquí importamos el fichero anterior

Para la actualización de firmware debemos ir justo aqui, y en el combo seleccionar el item "Software"

La ultima versión de firmware es la 1.0.5.12 y la descargamos desde la web oficial
https://www.downloads.netgear.com/files/GDC/GS308T/GS308T_GS310TP_V1.0.5.12.zip?_ga=2.63578287.1809244577.1771028522-923238260.1771028522[GS310TP_V1.0.5.12.zip^]
MTU en NIC ethernet 🤔
Algo sobre el LLDP
El Link Layer Discovery Protocol tiene un código hexadecimal 0x88cc y es un protocolo de capa 2 que permite
a los dispositivos de red anunciar su identidad, capacidades y vecinos en una red local.
Es útil para la administración de redes y la resolución de problemas.
logs del tcpdump
sudo tcpdump -i enp5s0 -nn -v ether proto 0x88cc
-
-i enp5s0:Escucha en tu cable de red. -
-nn:Ver la IP tal cual, sin conversión de ningun tipo. -
-v:Verbose (Detallado). -
ether proto 0x88cc: Filtra solo los paquetes LLDP.
tcpdump: listening on enp5s0, link-type EN10MB (Ethernet), snapshot length 262144 bytes
00:50:03.963074 LLDP, length 161
Chassis ID TLV (1), length 7
Subtype MAC address (4): 6c:cd:d6:9e:16:32
Port ID TLV (2), length 3
Subtype Local (7): g2
Time to Live TLV (3), length 2: TTL 120s
Organization specific TLV (127), length 7: OUI ANSI/TIA (0x0012bb)
LLDP-MED Capabilities Subtype (1)
Media capabilities [LLDP-MED capabilities, network policy] (0x0003)
Device type [network connectivity] (0x04)
Organization specific TLV (127), length 12: OUI IEEE 802.3 Private (0x00120f)
Power via MDI Subtype (2)
MDI power support [PSE, supported, enabled], power pair signal, power class unknown
Organization specific TLV (127), length 9: OUI IEEE 802.3 Private (0x00120f)
MAC/PHY configuration/status Subtype (1)
autonegotiation [supported, enabled] (0x03)
PMD autoneg capability [10BASE-T hdx, 10BASE-T fdx, 100BASE-TX hdx, 100BASE-TX fdx, 1000BASE-T fdx] (0x6c01)
MAU type 1000BASET fdx (0x001e)
System Description TLV (6), length 60
S350 Series 8-Port Gigabit Ethernet Smart Managed Pro Switch
System Capabilities TLV (7), length 4
System Capabilities [Bridge] (0x0004)
Enabled Capabilities [Bridge] (0x0004)
Management Address TLV (8), length 37
(1)
Management Address length 5, AFI IPv4 (1): 192.168.1.3
Interface Index Interface Numbering (2): 17
OID length 251.3.6.1.4.1.4526.100.4.52
End TLV (0), length 0
| 1 | la ip del switch será, 192.168.1.3 |
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


|
A tomar en cuenta
|
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 ipServidor (1)
| 1 | El parámetro -c es de cliente, obviamente lo ejecutamos en el cliente apuntando a la ip del server/NAS |


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

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

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

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.
