Guía A1 Crear un lagg en FreeNAS 11.X


Contenido:


Guía A1 Crear un lagg en FreeNAS 11.X

Contenido:

Consideraciones de la guía.

a. Objetivo principal:

b. Software necesario

Escenario de la guía.

Solución al esceario

1. Configuración de las tarjetas de red

Paso 0 Pasos previos

Paso 1 Verificar que el servidor ha reconocido las tarjetas de red

Paso 2 Configuración del LAGG

Paso 3 Verificar la comunicación IPv4

Paso 4 Configuración de las opciones de red utilizando herramienta Web.

2. Comprobación del funcionamiento del lagg0

Paso 0 Acciones previas si se utiliza máquina virtual para FreeNAS

Paso 1 Verifique que la tarjeta em0 está recibiendo los paquetes

Paso 2 Enviar paquetes ICMP hacia el datastore

Paso 3 Simular falla en la interfaz activa

Paso 4 Simular una segunda falla (desconexión de em1)

Paso 5 Activar las interfaces de red

3. Pruebas de velocidad y ancho de banda.

Prueba 01 Medir ancho de banda para lagg0 con em0

Prueba 02 Medir ancho de banda para lagg0 con em1, simulando falla en em0

Anexos

A1 - Listado de comandos útiles para pruebas de red



Consideraciones de la guía.


a. Objetivo principal:


El objetivo de esta guía es configurar un LAGG para el servidor FreeNAS 11.X de forma que se brinde redundancia (failover) en la comunicación IPv4 del datastore ds01.


b. Software necesario


Para esta práctica se utilizará el siguiente software.


Derechos de autor: La información presentada aquí es propiedad de Víctor Cuchillac (padre) y para el uso se debe citar al autor.

Escenario de la guía.


La EMPRESAY ha contratado los servicios profesionales de vuestro equipo de trabajo para realizar las siguientes tareas:


Para realizar las tareas anteriores en la “EMPRESAY” se requieren las siguientes condiciones:


En la siguiente figura se ilustra la conexión de red LAN que tendrá el datastore ds01, es de hacer notar que el servidor FreeNAS tendrá al menos dos tarjetas de red Ethernet para el acceso a la red SAN. En la sección de la izquierda se puede tener una configuración failover para la tener redundnacia o una configuración round robin para incrementar el rendimiento. En la sección de la derecha, el escenario cuenta con dos Switch Ethernet, con lo que se puede tener alta disponibilidad en todo el enlace, pero no se puede utilizar round robin.




Figura 1. Diagrama de conexión a la red SAN del datastore01 (fuete: elaboración propia)



Solución al esceario


1. Configuración de las tarjetas de red


Paso 0 Pasos previos


Para VMWare Workstation

0.1 Verifique que haya dos tarjetas de red conectadas a la máquina virtual.

0.2 Verifique que esté encendifda la interfaz al iniciar la máuina virtual.

0.3 Seleccione la opción Custom: VMnet8 (NAT)

0.4 Defina una dirección física (en Advance), con el siguiente formato:

        02:00:AA:02:YY:X2 (primera tarjeta de red)

        02:00:AA:02:YY:X3 (segunda tarjeta de red)

        Dónde:

YY = es para definir el número del grupo de alumnos, 01, 02, 08, 10, etc.

XX = la computadora que estará utilizado cada grupo de estudiantes.




Para VirtualBox

0.1 Verifique que haya dos tarjetas de red conectadas a la máquina virtual.

0.2 Utilice el driver Intel Pro /1000 servidor o desktop.

0.3 Defina una dirección física según el siguiente formato:

        02:00:AA:02:YY:X2 (primera tarjeta de red)

        02:00:AA:02:YY:X3 (segunda tarjeta de red)

        Dónde:

YY = es para definir el número del grupo de alumnos, 01, 02, 08, 10, etc.

XX = la computadora que estará utilizado cada grupo de estudiantes.

0.4 Utilizar la opción Red NAT




Nota: Es de tener en cuenta que no deberán existir dos tarjetas de red con la misma dirección MAC en la red LAN

Nota: Para la segunda tarjeta de red se debe utilizar la dirección MAC 02:00:AA:02:YY:X3

Nota: La red NAT debe estar configurada previamente.



Paso 1 Verificar que el servidor ha reconocido las tarjetas de red


Cuando el sistema se inicia se muestra al final del menú de configuración en la primera consola las direcciones web que permite acceder vía cliente web

. . .

. . .

The web user interface is at:


http://0.0.0.0

http://0.0.0.0


Nota:  Dos direcciones IPv4 indican que hay dos tipos de conexión, sin embargo, es mejor revisar el tipo de conexión que existe y ubicar las tarjetas de red disponibles.


    1. Ingresar a la segunda consola de texto


Presionar simultáneamente las teclas “Ctl” + ”Alt” +  “F2”

Ingresar como root/123456


También se puede utilizar la consola de texto 1 (tty01); para esto se debe seleccionar la opción 9 del menú de consola:

9) Shell


Para regresar al menú de consola se debe digitar: exit


1.2 Verificar que se reconozcan las tarjetas de red y la dirección MAC de cada NIC


[root@freenas]~# ifconfig


em0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500

        options=9b<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,VLAN_HWCSUM>

        ether 02:00:aa:02:00:02

        hwaddr 02:00:aa:02:00:02       

        inet 192.168.50.2 netmask 0xffffff00 broadcast 192.168.50.255

        nd6 options=9<PERFORMNUD,IFDISABLED>

        media: Ethernet autoselect (1000baseT <full-duplex>)

        status: active

em1: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500

        options=9b<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,VLAN_HWCSUM>

        ether 02:00:aa:02:00:03

        hwaddr 02:00:aa:02:00:03       

        inet 0.0.0.0 netmask 0xff000000 broadcast 255.255.255.255

        nd6 options=9<PERFORMNUD,IFDISABLED>

        media: Ethernet autoselect (1000baseT <full-duplex>)

        status: active

lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> metric 0 mtu 16384

        options=600003<RXCSUM,TXCSUM,RXCSUM_IPV6,TXCSUM_IPV6>

        inet6 ::1 prefixlen 128

        inet6 fe80::1%lo0 prefixlen 64 scopeid 0x6

        inet 127.0.0.1 netmask 0xff000000

        nd6 options=21<PERFORMNUD,AUTO_LINKLOCAL>


Paso 2 Configuración del LAGG


2.1 Ingresar a la consola con el menú de configuración

Nota: Si el menú no estuviera ejecutándose digite como root el comando netcli

[root@ds01]  ~# /etc/netcli


Console setup

-------------


1) Configure Network Interfaces

2) Configure Link Aggregation

3) Configure VLAN Interface

4) Configure Default Route

5) Configure Static Routes

6) Configure DNS

7) Reset Root Password

8) Reset to factory defaults

9) Shell

10) System Update (requires networking)

11) Reboot

12) Shutdown


The web user interface is at:


http://0.0.0.0

http://0.0.0.0


Enter an option from 1-14:



2.2 Seleccionar Configuración de Lagg (Link Aggregation)


Digite el número 2 y presione “enter”


Enter an option from 1-14: 2


2.3 Seleccionar crear Lagg

Digite el número 1


1) Create Link Aggregation

2) Delete Link Aggregation

Enter an option from 1-2 (enter q to quit): 1


2.4 Seleccionar el tipo de Lagg

Digitar el número 1


1) failover

2) lacp

3) loadbalance

4) roundrobin

5) none

Select a lagg protocol (q to quit): 1




2.5 Definir las interfaces que forman el Lagg


Para el caso de esta guía se utilizará las dos interfaces de red Ethernet.

Presionar 1 para agregar la interfaz em0


1) em0

2) em1

Select an interface (q to quit): 1


Presionar 1 para agregar la interfaz em1


1) em1

Select an interface (q to quit): 1


Presionar “q” para finalizar el proceso de agregar interfaces al Lagg


Select an interface (q to quit): q


2.6 Verificar que se haya creado el Lagg


Ingrese a la Consola de texto (Shell opción 9)

Digite ifconfig  |more y deberá aparecer el lagg0


lagg0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500

        options=9b<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,VLAN_HWCSUM>

        ether 02:00:aa:02:00:02

        inet 192.168.50.2 netmask 0xffffff00 broadcast 192.168.50.255

        nd6 options=9<PERFORMNUD,IFDISABLED>

        media: Ethernet autoselect

        status: active

        laggproto failover lagghash l2,l3,l4

        laggport: em0 flags=5<MASTER,ACTIVE>

        laggport: em1 flags=0<>


Para salir de la consola y regresar al menú de consola se debe digitar “exit


Nota: Hay que tener presente que las direcciones físicas del lagg, y las iterfaces em0 y em1 han sido clonadas.


em0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500

        options=9b<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,VLAN_HWCSUM>

        ether 02:00:aa:02:00:02

        hwaddr 02:00:aa:02:00:02

        nd6 options=9<PERFORMNUD,IFDISABLED>

        media: Ethernet autoselect (1000baseT <full-duplex>)

        status: active

em1: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500

        options=9b<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,VLAN_HWCSUM>

        ether 02:00:aa:02:00:02

        hwaddr 02:00:aa:02:00:03

        nd6 options=9<PERFORMNUD,IFDISABLED>

        media: Ethernet autoselect (1000baseT <full-duplex>)

        status: active




2.7 Asignar dirección IPv4 al Lagg


a. Seleccionar la opción “Configuración de red para las interfaces”.


Console setup

-------------


1) Configure Network Interfaces

2) Configure Link Aggregation

3) Configure VLAN Interface

4) . . .


Enter an option from 1-14: 1


b. Seleccionar la interfaz lagg0

Presionar 1


1) lagg0

Select an interface (q to quit): 1


c. Eliminar la interfaz

Digitar letra “n” y presione la tecla “enter”


Delete interface? (y/n) n


d. Reiniciar la configuración de red exístete

Digitar letra “n” y presione la tecla “enter”


Reset network configuration? (y/n) n


e. Configurar la interfaz para utilizar servicio DHCP

Digitar letra “n” y presione la tecla “enter”


Configure interface for DHCP? (y/n) n


f. Configurar la interfaz para utilizar configuración estática para IPv4

Digitar letra “y” y presione la tecla “enter”


Configure IPv4? (y/n) y


g. Asignar alias a la interfaz lagg0

Digitar “lagg0” o presionar la tecla  “enter”


Interface name [lagg0]:lagg0


h. Asignar la dirección IPv4 a la interfaz lagg0

Digitar 192.168.50+Y.2 /24 (sin espacios), y presione la tecla “enter”


Several input formats are supported

Example 1 CIDR Notation:

    192.168.1.1/24

Example 2 IP and Netmask seperate:

    IP: 192.168.1.1

    Netmask: 255.255.255.0, /24 or 24

IPv4 Address [192.168.50.2]:192.168.50.2/24


i Verificar si se ha creado satisfactoriamente la configuración


Saving interface configuration: Ok


j Configurar la dirección IPv6

Digitar letra “n”, y presione la tecla “enter”


Configure IPv6? (y/n) n


k Verificar que se reinicie la configuración de la red


Restarting network: ok


l verificar que se haya asignado la dirección IPv4 como acceso web


Console setup

-------------

. . .

. . .

You may try the following URLs to access the web user interface:


http://192.168.50.2


2.8 Definir la dirección IPv4 del router


a. Ingresar al menú de configuración de consola

b. Seleccione la opción 4


Console setup

-------------

1) Configure Network Interfaces

2) Configure Link Aggregation

3) Configure VLAN Interface

4) Configure Default Route

5) Configure Static Routes

6) Configure DNS

7) Reset Root Password


Enter an option from 1-12: 4


c. Habilite el router predeterminado para IPv4, presionar la tecla “y” y luego la tecla “enter”


Configure IPv4 Default Route? (y/n)y


d. Ingresar la dirección IPv4 del router01 y presionar la tecla “enter”.


IPv4 Default Route:192.168.50.254


e. Verificar que se haya guardado la dirección


Saving IPv4 gateway: Ok


f. Deshabilitar un router para IPv6, presionar “n” y luego la tecla “enter”.


Configure IPv6 Default Route? (y/n)n



g. Verificar que se haya asignado la regla de ruteo.


Restarting routing: ok


2.9 Verificar que se halla asignado el gateway predefinido para IPv4.


a. Ingresar a la consola TTY02 (Ctl + Alt + F2) o al shel del menú (opción 9)


Enter an option from 1-12: 9


b. Verificar el router predefinido (default)

Digite el siguiente comando route show 0.0.0.0 o route show 0.0.0.0/0


root@freenas:~ # route show 0.0.0.0/0


   route to: default

destination: default

       mask: default

    gateway: 192.168.50.254

        fib: 0

  interface: lagg0

      flags: <UP,GATEWAY,DONE,STATIC>

recvpipe  sendpipe  ssthresh  rtt,msec    mtu        weight    expire

       0         0         0         0      1500         1         0


c. Verificar las rotas de comunicación para las tarjetas de red

Digite el siguiente comando.


root@freenas:~ # netstat -nr


Routing tables

Internet:

Destination        Gateway            Flags     Netif Expire

default            192.168.50.254       UGS       lagg0

127.0.0.1          link#3             UH          lo0

192.168.50.0/24    link#4             U         lagg0

192.168.50.2       link#4             UHS         lo0


Internet6:

Destination        Gateway           Flags     Netif Expire

::/96              ::1               UGRS        lo0

::1                link#3            UH          lo0

::ffff:0.0.0.0/96  ::1               UGRS        lo0

fe80::/10          ::1               UGRS        lo0

fe80::%lo0/64      link#3            U           lo0

fe80::1%lo0        link#3            UHS         lo0

ff02::/16          ::1               UGRS        lo0


2.10 Definir la dirección IPv4 del servidor de Nombres de Dominio


a. Ingresar al menú de configuración de la consola de texto.

Console setup

-------------

1) Configure Network Interfaces

2) Configure Link Aggregation

3) Configure VLAN Interface

4) Configure Default Route

5) Configure Static Routes

6) Configure DNS

. . .


b. Seleccionar la opción 6 y presionar la tecla “enter”


Enter an option from 1-12: 6


c. Definir en nombre del dominio DNS para la EMPRESAY


DNS Domain [local]:empresay.com.sv


d. Definir la dirección IPv4 del servidor DNS de la red LAN y presionar la tecla “enter

Enter nameserver IPs, an empty value ends input

DNS Nameserver 1:192.168.50.254

DNS Nameserver 2:


e. Verificar que el proceso se haya ejecutado correctamente.


Saving DNS configuration: ok

Reloading network config: ok


2.11 Verificar que se haya guardado la dirección del servidor de Nombres


a. Ingresar a la consola TTY02 (Ctl + Alt + F2) o al shel del menú (opción 9)


b. Digitar el siguiente comando


root@freenas:~ # cat /etc/resolv.conf


# Generated by resolvconf

search empresay.com.sv

nameserver 192.168.50.254


Paso 3 Verificar la comunicación IPv4


Para este paso en el equipo hosts (Windows 10 o Linux) en la interfaz VMNet8 se utiliza la dirección IPv4 192.168.50+Y.253,


2.1 Ingrese a la consola TTY2


2.2 Envíe paquetes ICMP al router1


[root@freenas] ~# ping -c 3 192.168.50.253


PING 192.168.50.1 (192.168.50.1): 56 data bytes

64 bytes from 192.168.50.1: icmp_seq=0 ttl=128 time=0.295 ms

64 bytes from 192.168.50.1: icmp_seq=1 ttl=128 time=0.861 ms

64 bytes from 192.168.50.1: icmp_seq=2 ttl=128 time=0.447 ms


--- 192.168.50.1 ping statistics ---

3 packets transmitted, 3 packets received, 0.0% packet loss

round-trip min/avg/max/stddev = 0.295/0.534/0.861/0.239 ms


2.3 Envíe paquetes ICMP al equipo windows10


Nota: Si tuvieran salida a internet (por ejemplo, el router en la dirección 192.168.50.1), puede hacerse ping a Internet


[root@freenas] ~# ping -c 3 google.com


PING google.com (190.150.50.174): 56 data bytes

64 bytes from 190.150.50.174: icmp_seq=0 ttl=56 time=18.612 ms

64 bytes from 190.150.50.174: icmp_seq=1 ttl=56 time=17.285 ms

64 bytes from 190.150.50.174: icmp_seq=2 ttl=56 time=30.565 ms

--- google.com ping statistics ---

3 packets transmitted, 3 packets received, 0.0% packet loss

round-trip min/avg/max/stddev = 17.285/22.154/30.565/5.972 ms



Paso 4 Configuración de las opciones de red utilizando herramienta Web.

4.1 Ingrese a la dirección IPv4 de la primera tarjeta de red en un navegador Web


A. Utilizar la URL http://192.168.50+Y.2

B. Utilizar las credenciales root/123456



C. Dar clic en el botón “Entrar al sistema”


3.2 Seleccione el menú “Red”


3.3 Seleccione el menú “Configuración global”


3.4 Ingrese los siguientes parámetros:



Para la imagen se debe utilizar 192.168.50+Y.254


3.4 Dar un clic en el botón “Guardar”

3.5 Comprobar que los cambios se realizan de forma satisfactoria



2. Comprobación del funcionamiento del lagg0


En esta prueba se enviarán paquetes ICMP de forma ininterrumpida desde un equipo hacia el servidor FreeBSD, luego se desconectará el cable de red de la tarjeta principal em0 (MASTER) y la comunicación deberá continuar por medio de em1. Los paquetes ICMP pueden ser enviados desde el Router01 o una máquina Windows 10.


Nota: Si el datastore ds01 está virtualizado, es posible que se presenten problemas para comprobar el funcionamiento del lagg debido a que FreeBSD esperará detectar la señal eléctrica de la tarjeta, lo cual no ocurrirá por razones de la virtualización.

Nota:  También es importante verificar que al establecerse el lagg se clona la MAC para el lagg0, la em0 y la em1, lo cual hará que el sistema de virtualización detecte que existe tráfico en modo promiscuo el cual no está permitido de manera predefinida en las tecnologías de virtualización. Por ejemplo, en Workstation de VMWARE puede recibirse un mensaje como lo muestra la siguiente pantalla



Paso 0 Acciones previas si se utiliza máquina virtual para FreeNAS


  1. Primera parte. Habilitar el modo promiscuo en el software de virtualización (en la versión 11.04 se puede omitir, en versiones anteriores a la 11.01 se debe reaizar)


  1. Segunda parte Habilitar el modo promiscuo dentro de FreeBSD para el canal lagg0


0.1 Habilitar modo promiscuo en el software de virtualización


No es necesaria en la versión 11.04


Para VirtualBox se deberá realizar lo siguiente:

  1. Abrir el administrador de la máquina virtual
  2. Seleccionar la máquina virtual (por ejemplo, ds01)
  3. Abrir opción de configuración
  4. Seleccionar las opciones de red
  5. Habilitar en cada tarjeta de red el modo promiscuo



Para Workstation Linux se deberá realizar lo siguiente:

  1. Abrir el editor de redes virtuales.
  2. Identificar la tarjeta de red que utiliza la vmnet (en este caso particular tap0 -> vmnet2)
  3. Abrir una consola con permisos de root (o sudo)
  4. Dar permiso de escritura de escritura a los usuarios de /dev/vmnet2 con el comando chmod a+w /dev/vmnet2
  5. Verificar que se hallan aplicado los permisos



Digitar los siguientes comandos si está en Linux


cuchillac@eqlin:~$ sudo chmod a+w /dev/vmnet2

[sudo] password for cuchillac: 123456


cuchillac@eqlin:~$ ls -l /dev/vmnet2

crw--w--w- 1 root root 119, 2 ene  4 19:18 /dev/vmnet2



0.2 Habilitar el modo promiscuo en las interfaces de red en el datastore


a. habilitar el modo promiscuo en las interfaces de red em0 y em1

Digitar los siguientes comandos dentro de una consola de texto de FreeNAS


[root@ds01] ~# ifconfig em0 promisc

[root@ds01] ~# ifconfig em1 promisc


b.  Verificar que se haya activado el modo promiscuo


root@freenas:~ # ifconfig em0


em0: flags=28943<UP,BROADCAST,RUNNING,PROMISC,SIMPLEX,MULTICAST,PPROMISC> metric 0 mtu 1500

        options=9b<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,VLAN_HWCSUM>

        ether 02:00:aa:02:00:02

        nd6 options=9<PERFORMNUD,IFDISABLED>

        media: Ethernet autoselect (1000baseT <full-duplex>)

        status: active


root@freenas:~ # ifconfig em1

em1: flags=28943<UP,BROADCAST,RUNNING,PROMISC,SIMPLEX,MULTICAST,PPROMISC> metric 0 mtu 1500

        options=9b<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,VLAN_HWCSUM>

        ether 02:00:aa:02:00:03

        nd6 options=9<PERFORMNUD,IFDISABLED>

        media: Ethernet autoselect (1000baseT <full-duplex>)

        status: active


Nota:  El modo promiscuo asignado por el comando ifconfig es temporal, es decir desaparece al reiniciar el equipo. Si se desea desactivar el modo promiscuo sin reiniciar el equipo se digita: ifconfig em0 promisc 


Paso 1 Verifique que la tarjeta em0 está recibiendo los paquetes


1.1 Identificar los paquetes que se envían y reciben por interfaz


Ejecute el siguiente comando unas dos o tres veces para ver el valor de los Ipkts de la tarjeta em0


[root@freenas] ~# netstat -i


Name    Mtu Network       Address              Ipkts Ierrs Idrop    Opkts Oerrs  Coll

em0    1500 <Link#1>      02:00:aa:02:00:02      199     0     0      160     0     0

em1    1500 <Link#2>      02:00:aa:02:00:02      350     0     0        0     0     0

lo0   16384 <Link#3>      lo0                   2049     0     0     2049     0     0

lo0       - localhost     localhost               34     -     -       34     -     -

lo0       - fe80::%lo0/64 fe80::1%lo0              0     -     -        0     -     -

lo0       - your-net      localhost             1723     -     -     1732     -     -

lagg0  1500 <Link#4>      02:00:aa:02:00:02      575     0     0      160    59     0

lagg0     - 192.168.50.0/ 192.168.50.2           200     -     -      348     -     -


Explicación de los parámetros a revisar


Nota: Si se está utilizando una máquina virtual y se desea modificar la resolución de la consola de texto, para obtener una pantalla más ancha, digite los siguientes comandos en la segunda consola de texto (ttyv1)


1.2 Monitorear dinámicamente las interfaces de red en FreeBSD 11

       

Para evitar estar digitando de forma consecutiva el comando netstat i, se utilizará el comando cmdwatch.


root@freenas:~ # cmdwatch netstat -i


Every 2s: netstat -i                    Sun Sep  3 22:08:40 2017


Name    Mtu Network       Address              Ipkts Ierrs Idrop    Opkts Oerrs  Coll

em0    1500 <Link#1>      02:00:aa:02:00:02      303     0     0      257     0     0

em1    1500 <Link#2>      02:00:aa:02:00:02      551     0     0        0     0     0

lo0   16384 <Link#3>      lo0                   2330     0     0     2330     0     0

lo0       - localhost     localhost               38     -     -       38     -     -

lo0       - fe80::%lo0/64 fe80::1%lo0              0     -     -        0     -     -

lo0       - your-net      localhost             2000     -     -     2009     -     -

lagg0  1500 <Link#4>      02:00:aa:02:00:02      880     0     0      257    59     0

lagg0     - 192.168.50.0/ 192.168.50.2           303     -     -      444     -     -


Nota:  Para finalizar el proceso se debe presionar simultáneamente “Ctl” + “q”

Propuesta alternativa para monitoreo dinámico de NIC en versiones anteriores a FreeNAS 11.X


En FreeBSD no se puede utilizar el comando de Linux watch -d -n1 netstat i para ver los cambios dinámicamente en la pantalla, el comando equivalente en UNIX es cmdwatch, pero en por criterios de seguridad en versiones previas a FreeNAS 11.X, no permite la instalación de paquetes en la consola principal. Para instalar cmdwatch se debe crear una “jail” y es mucho procedimiento para esta prueba.


La solución propuesta es monitorear el tráfico de una manera sencilla, por lo cual se recomienda crear un script que ejecute periódicamente el comando netstat i


Para evitar estar repitiendo el comando “netstat i”, se creará un script con el nombre mi_script01 el cual ejecutará de forma indefinida “netstat i”, con el valor de sleep se podrá manipular el tiempo para visualizar los cambios.


Nota:  Si el proceso de virtualización realizado por VirtualBox dentro del equipo anfitrión es eficiente, pueda ser que se necesite un tiempo largo (un par de segundos), pero si es poco eficiente se deberá colocar un tiempo más corto.


a. Crear el script que automatizará el proceso de monitoreo:

[root@ds01]  ~# touch mi_script01.sh


b. Editar el archivo recién creado con el siguiente contenido


[root@ds01]  ~# nano mi_script01.sh


#!/usr/local/bin/bash

while [ 1 -lt 2 ]

    do

    clear

    netstat -i

    echo ---Para salir presionar Ctl + c ----------------------

    eval $@

    sleep 0.5

done


c. Asignar permisos de ejecución al script


[root@ds01]  ~# chmod u+x mi_script01.sh


d. Ejecutar el script


[root@ds01]  ~# ./mi_script01


Nota: Si tuviera problemas en para visualizar la restauración de la comunicación, será necesario activar el modo promiscuo en em0 y em1. Para desactivar el modo promiscuo se digita: ifconfig lagg0 promisc





Paso 2 Enviar paquetes ICMP hacia el datastore


Se debe enviar desde una máquina ubicada en la red 192.168.50+Y.0 un flujo continuo de paquetes ICMP al datastore ds01 (no se debe detener el flujo de paquetes ICMP).


2.1 Enviar paquetes ICMP hacia el datastore


Nota: Se recomienda el envío desde el equipo anfitrión Windows 10, pero se puede enviar desde el router01

Nota: Si se desea puede ejecutar el envío de paquetes ICMP con un retraso de 2 a 3 segundos de manera que se puedan observar mejor los paquetes que se envían y reciben en el equipo datastore ds01 (paso anterior)


C:\> ping 192.168.50+Y.2 w 2 -t


PING 192.168.50.2 (192.168.50.2) 56(84) bytes of data.

64 bytes from 192.168.50.2: icmp_seq=1 ttl=64 time=0.113 ms

64 bytes from 192.168.50.2: icmp_seq=2 ttl=64 time=0.117 ms


2.2 Observar paquetes de salida en el datastore


Every 2s: netstat -i                              Sun Sep  3 22:10:55 2017


Name    Mtu Network       Address              Ipkts Ierrs Idrop    Opkts Oerrs  Coll

em0    1500 <Link#1>      02:00:aa:02:00:02      574     0     0      523     0     0

em1    1500 <Link#2>      02:00:aa:02:00:02     1088     0     0        0     0     0

lo0   16384 <Link#3>      lo0                   2532     0     0     2532     0     0

lo0       - localhost     localhost               38     -     -       38     -     -

lo0       - fe80::%lo0/64 fe80::1%lo0              0     -     -        0     -     -

lo0       - your-net      localhost             2202     -     -     2211     -     -

lagg0  1500 <Link#4>      02:00:aa:02:00:02     1688     0     0      523    59     0

lagg0     - 192.168.50.0/ 192.168.50.2           561     -     -      701     -     -


Nota: Si se desea modificar el intervalo de tiempo para refrescar la pantalla en FreeBSD, se debe utilizar la opción cmdwatch --interval=1 netstat


Paso 3 Simular falla en la interfaz activa


3.1 Desconectar el cable de red primera interfaz


Si se utiliza Workstation, desconectar la primera interfaz de red, (izquierda)


Si se utiliza VirtualBox, desconectar la primera interfaz de red “adaptador de red 1” (arriba)




3.2 Observar el tráfico de la comunicación en FreeBSD


Every 2s: netstat -i                               Sun Sep  3 22:11:41 2017


Name    Mtu Network       Address              Ipkts Ierrs Idrop    Opkts Oerrs  Coll

em0    1500 <Link#1>      02:00:aa:02:00:02      646     0     0      595     0     0

em1    1500 <Link#2>      02:00:aa:02:00:02     1283     0     0       52     0     0

lo0   16384 <Link#3>      lo0                   2588     0     0     2588     0     0

lo0       - localhost     localhost               38     -     -       38     -     -

lo0       - fe80::%lo0/64 fe80::1%lo0              0     -     -        0     -     -

lo0       - your-net      localhost             2258     -     -     2267     -     -

lagg0  1500 <Link#4>      02:00:aa:02:00:02     1962     0     0      647    59     0

lagg0     - 192.168.50.0/ 192.168.50.2           678     -     -      823     -     -


3.3 Compruebe que se mantiene la comunicación con IPv4 entre los dos equipos


En el equipo Windows pueda que se observe algo similar a las siguientes líneas, esto dependerá de la conexión a la red, el tipo de tarjetas y las capacidades de virtualización (si las máquinas están virtualizadas)


Respuesta desde 192.168.50.2: bytes=32 tiempo<1m TTL=64

Respuesta desde 192.168.50.2: bytes=32 tiempo<1m TTL=64

Respuesta desde 192.168.50.2: bytes=32 tiempo=1ms TTL=64

Tiempo de espera agotado para esta solicitud.

Respuesta desde 192.168.50.2: bytes=32 tiempo=1ms TTL=64

Respuesta desde 192.168.50.2: bytes=32 tiempo=1ms TTL=64


Nota: Dependiendo del intervalo de envío de los paquetes, el equipo Windows podrá o no visualizar que se han perdido un par de paquetes, pero que el enlace continúa activo.


Paso 4 Simular una segunda falla (desconexión de em1)


4.1 Desconectar la segunda interfaz de red


Si utiliza VMWare Workstation, desconectar la primera interfaz de red




Si se utiliza VirtualBox, desconectar el adaptador de red 2



4.2 Verificar el envío de paquetes desde ds01


Every 2s: netstat -i                           Sun Sep  3 22:14:15 2017


Name    Mtu Network       Address              Ipkts Ierrs Idrop    Opkts Oerrs  Coll

em0    1500 <Link#1>      02:00:aa:02:00:02      646     0     0      595     0     0

em1    1500 <Link#2>      02:00:aa:02:00:02     1482     0     0      266     0     0

lo0   16384 <Link#3>      lo0                   2766     0     0     2766     0     0

lo0       - localhost     localhost               38     -     -       38     -     -

lo0       - fe80::%lo0/64 fe80::1%lo0              0     -     -        0     -     -

lo0       - your-net      localhost             2436     -     -     2445     -     -

lagg0  1500 <Link#4>      02:00:aa:02:00:02     2175     0     0      861   224     0

lagg0     - 192.168.50.0/ 192.168.50.2           868     -     -     1197     -     -


No debe haber paquetes de salida en el lagg0


4.3 Verificar el enlace desde el equipo Windows.


. . .

Respuesta desde 192.168.50.2: bytes=32 tiempo=1ms TTL=64

Respuesta desde 192.168.50.2: bytes=32 tiempo=1ms TTL=64

Tiempo de espera agotado para esta solicitud.

Tiempo de espera agotado para esta solicitud.

Respuesta desde 192.168.50.156: Host de destino inaccesible.

Tiempo de espera agotado para esta solicitud.

Tiempo de espera agotado para esta solicitud.


Paso 5 Activar las interfaces de red


5.1 Activar la interfaz em1

5.2 Verificar que el enlace se ha reanudado


. . .

Tiempo de espera agotado para esta solicitud.

Respuesta desde 192.168.50.2: bytes=32 tiempo<1m TTL=64

Respuesta desde 192.168.50.2: bytes=32 tiempo<1m TTL=64

Respuesta desde 192.168.50.2: bytes=32 tiempo=1ms TTL=64

Respuesta desde 192.168.50.2: bytes=32 tiempo=1ms TTL=64

Respuesta desde 192.168.50.2: bytes=32 tiempo=1ms TTL=64


5.3 Activar la interfaz em0


5.4 Verificar que la interfaz em0 es la que establece la comuicación


Every 2s: netstat -i              Sun Sep  3 22:15:08 2017


Name    Mtu Network       Address              Ipkts Ierrs Idrop    Opkts Oerrs  Coll

em0    1500 <Link#1>      02:00:aa:02:00:02      719     0     0      679     0     0

em1    1500 <Link#2>      02:00:aa:02:00:02     1704     0     0      330     0     0

lo0   16384 <Link#3>      lo0                   2823     0     0     2823     0     0

lo0       - localhost     localhost               38     -     -       38     -     -

lo0       - fe80::%lo0/64 fe80::1%lo0              0     -     -        0     -     -

lo0       - your-net      localhost             2493     -     -     2502     -     -

lagg0  1500 <Link#4>      02:00:aa:02:00:02     2477     0     0     1009   224     0

lagg0     - 192.168.50.0/ 192.168.50.2          1003     -     -     1342     -     -


Puede Utilizar el comando que se muestra en el anexo para verificar la salida de los paquetes. (systat -ifstat 1)


root@ds01:~ # systat -ifstat 1


                    /0   /1   /2   /3   /4   /5   /6   /7   /8   /9   /10

     Load Average   |||


      Interface           Traffic               Peak                Total

          lagg0  in      0.566 KB/s          1.126 KB/s          342.790 KB

                 out     0.310 KB/s          0.873 KB/s          241.876 KB


            lo0  in      0.000 KB/s          1.270 KB/s          843.086 KB

                 out     0.000 KB/s          1.270 KB/s          843.086 KB


            em1  in      0.438 KB/s          0.999 KB/s          169.186 KB

                 out     0.000 KB/s          0.000 KB/s           27.521 KB


            em0  in      0.128 KB/s          0.193 KB/s          141.267 KB

                 out     0.310 KB/s          0.873 KB/s          214.355 KB



Conclusión: La comunicación se realiza por medio de em0 y la interfaz em1 está sin operación, podría existir pérdida de paquetes, pero los protocolo de capa 4, se encargan de los paquetes perdidos de modo que los servicios de capa 7 no se percatan de la interrupción




3. Pruebas de velocidad y ancho de banda.


Para determinar el ancho de banda y velocidad entre el servidor de la SAN y un cliente se utilizará el comando iperf.


Prueba 01 Medir ancho de banda para lagg0 con em0

Datos a utilizar: tiempo de prueba 30 segundos, intervalo de lectura 5 segundos, tarjeta a utilizar: em0. Ninguna tarjeta tiene modo promiscuo.


1. Comandos


Comando en el servidor

[root@ds01]  ~# iperf3 -s -t 30 -i 5


Comando en el cliente

C:\temp\programas\jperf\jperf-2.0.2\bin>iperf.exe -c 192.168.50.2 -t 30 -i 5


2. Resultados


Pantalla en el servidor:

[root@ds01]  ~# iperf3 -s -t 30 -i 5

------------------------------------------------------------

Server listening on TCP port 5001

TCP window size: 64.0 KByte (default)

------------------------------------------------------------

[  4] local 192.168.50.2 port 5001 connected with 192.168.50.155 port 51802

[ ID] Interval       Transfer     Bandwidth

[  4]  0.0- 5.0 sec   340 MBytes   571 Mbits/sec

[  4]  5.0-10.0 sec   344 MBytes   578 Mbits/sec

[  4] 10.0-15.0 sec   344 MBytes   577 Mbits/sec

[  4] 15.0-20.0 sec   335 MBytes   561 Mbits/sec

[  4] 20.0-25.0 sec   316 MBytes   530 Mbits/sec

[  4] 25.0-30.0 sec   334 MBytes   560 Mbits/sec

[  4]  0.0-30.0 sec  1.97 GBytes   563 Mbits/sec


Pantalla en el cliente:

C:\temp\programas\jperf\jperf-2.0.2\bin>iperf.exe -c 192.168.50.2 -t 30 -i 5

------------------------------------------------------------

Client connecting to 192.168.50.2, TCP port 5001

TCP window size: 64.0 KByte (default)

------------------------------------------------------------

[240] local 192.168.50.155 port 51802 connected with 192.168.50.2 port 5001

[ ID] Interval       Transfer     Bandwidth

[240]  0.0- 5.0 sec   340 MBytes   571 Mbits/sec

[240]  5.0-10.0 sec   344 MBytes   578 Mbits/sec

[240] 10.0-15.0 sec   344 MBytes   577 Mbits/sec

[240] 15.0-20.0 sec   334 MBytes   561 Mbits/sec

[240] 20.0-25.0 sec   316 MBytes   530 Mbits/sec

[240] 25.0-30.0 sec   334 MBytes   560 Mbits/sec

[240]  0.0-30.0 sec  1.97 GBytes   563 Mbits/sec


Conclusión: El ancho de banda es de aproximadamente 563 Mbits/sec



Prueba 02 Medir ancho de banda para lagg0 con em1, simulando falla en em0


Datos a utilizar: tiempo de prueba 30 segundos, intervalo de lectura 5 segundos, tarjeta a utilizar: em1, cable desconectado para em0, solo lagg0 primiscuo.


1. Comandos


Comando en el servidor

[root@ds01]  ~# iperf3 -s -t 30 -i 5


Comando en el cliente

C:\temp\programas\jperf\jperf-2.0.2\bin>iperf.exe -c 192.168.50.2 -t 30 -i 5


2. Resultados


Pantalla en el servidor:

[root@ds01]  ~# iperf3 -s -t 30 -i 5

------------------------------------------------------------

Server listening on TCP port 5001

TCP window size: 64.0 KByte (default)

------------------------------------------------------------

[  4] local 192.168.50.2 port 5001 connected with 192.168.50.155 port 52016

[ ID] Interval       Transfer     Bandwidth

[  4]  0.0- 5.0 sec  86.8 MBytes   146 Mbits/sec

[  4]  5.0-10.0 sec  94.4 MBytes   158 Mbits/sec

[  4] 10.0-15.0 sec  54.1 MBytes  90.8 Mbits/sec

[  4] 15.0-20.0 sec  59.3 MBytes  99.5 Mbits/sec

[  4] 20.0-25.0 sec  89.3 MBytes   150 Mbits/sec

[  4] 25.0-30.0 sec  92.7 MBytes   155 Mbits/sec

[  4]  0.0-33.6 sec   544 MBytes   136 Mbits/sec


Pantalla en el cliente:

C:\temp\programas\jperf\jperf-2.0.2\bin>iperf.exe -c 192.168.50.2 -t 30 -i 5

------------------------------------------------------------

Client connecting to 192.168.50.2, TCP port 5001

TCP window size: 64.0 KByte (default)

------------------------------------------------------------

[240] local 192.168.50.155 port 52016 connected with 192.168.50.2 port 5001

[ ID] Interval       Transfer     Bandwidth

[240]  0.0- 5.0 sec  87.0 MBytes   146 Mbits/sec

[240]  5.0-10.0 sec  94.4 MBytes   158 Mbits/sec

[240] 10.0-15.0 sec  88.6 MBytes   149 Mbits/sec

[240] 15.0-20.0 sec  89.2 MBytes   150 Mbits/sec

[240] 20.0-25.0 sec  90.6 MBytes   152 Mbits/sec

[240] 25.0-30.0 sec  94.4 MBytes   158 Mbits/sec

[240]  0.0-30.0 sec   544 MBytes   152 Mbits/sec



Conclusión: El ancho de banda es de aproximadamente 489 Mbits/sec


Conclusión de la prueba01 y prueba02 (la primera interfaz presenta menor ancho de banda en el modo promiscuo cuando se está activa en el lagg0)





Anexos


A1 - Listado de comandos útiles para pruebas de red


Para Windows

Reiniciar los valores de IPv4


netsh interface ipv4 reset


Ver estadísticas para ICMP en IPv4


netstat -s -p icmp 1


Para BSD

Reiniciar los servicios de red

service netif restart


Ver los paquetes en una interfaz


netstat -w 2 -I em0


Ver el tráfico en las interfaces


[root@ds01]  ~# systat -ifstat 1


                    /0   /1   /2   /3   /4   /5   /6   /7   /8   /9   /10

     Load Average   ||||||||


      Interface           Traffic               Peak                Total

          lagg0  in      2.983 KB/s          3.764 KB/s            3.044 MB

                 out    21.207 KB/s         25.840 KB/s           20.165 MB


            lo0  in      0.000 KB/s          0.000 KB/s          387.360 KB

                 out     0.000 KB/s          0.000 KB/s          387.360 KB


            em1  in     24.225 KB/s         25.233 KB/s           23.074 MB

                 out     0.000 KB/s          0.000 KB/s          572.952 KB


            em0  in      2.983 KB/s          3.305 KB/s            3.056 MB

                 out    21.207 KB/s         21.916 KB/s           19.918 MB