Redes

La conexión a una o varias redes ethernet es una de las funciones más importantes en un servidor. Habitualmente, el hardware, incorpora en su placa base 4 interfaces ethernet de 10 GBit/S. Esto puede ser suficiente en muchas ocasiones aunque siempre es recomendable añadir una tarjeta de interfaces adicionales. Una razón para ella es la redundancia en un interfaz para hacerlo robusto a fallos de un switch o de un cable. Otra razón es el aumento de capacidad sumando la capacidad de varios puertos con un interfaz de tipo trunk. Por último tenemos que considerar que hay tarjetas de interfaces ethernet con una velocidad superior a 10 GBit/S.

Información de los interfaces

Para ver los interfaces existentes podemos utilizar el comando dladm.

# dladm
LINK                CLASS     MTU    STATE    OVER
net0                phys      1500   up       --
net1                phys      1500   up       --
net2                phys      1500   down     --
net3                phys      1500   down     --
net4                phys      1500   up       --
sp-phys0            phys      1500   up       --

Los cuatro primeros interfaces son los de la placa base. El interfaz sp-phys0 es la conexión entre el servidor y la ILOM. Podemos ver más características de los interfaces con el siguiente comando.

# dladm show-phys
LINK            MEDIA         STATE      SPEED  DUPLEX    DEVICE
net0            Ethernet      up         1000   full      i40e0
net1            Ethernet      up         1000   full      i40e1
net2            Ethernet      down       0      unknown   i40e2
net3            Ethernet      down       0      unknown   i40e3
sp-phys0        Ethernet      up         10     full      usbecm2

En este caso podemos ver que los interfaces ethernet son de 1 GBit/S. El interfaz sp-phys0 es de 10 MBit/S pero es solo para comunicarse con la ILOM.

Configuración IP

Para visualizar la configurar IP utilizaremos el comando ipadm en lugar de dladm. El resultado es el siguiente:

# ipadm show-if
IFNAME     CLASS    STATE    ACTIVE OVER
lo0        loopback ok       yes    --
net0       ip       ok       yes    --
sp-phys0   ip       ok       yes    --

Para mostrar la información de las direcciones IP

# ipadm show-addr
ADDROBJ           TYPE     STATE        ADDR
lo0/v4            static   ok           127.0.0.1/8
net0/v4           static   ok           192.168.2.110/24
sp-phys0/v4       static   ok           169.254.182.77/24
lo0/v6            static   ok           ::1/128
net0/v6           addrconf ok           fe80::210:e0ff:fee2:c67a/10

Están configurados los interfaces net0 (El que comunica con el la red), el loopback presente en todos los sistemas IP y el interfaz de conexión con la ILOM.

Nuevo interfaz IP

El primer caso es crear la capa IP en el interfaz. Por ejemplo vamos a configurar el interfaz net2.

# ipadm create-ip net2

A continuación le asignamos la dirección IP

ipadm delete-ip net2
ipadm create-addr -T static -a local=10.31.137.4/24 net2/v4

Nuestro interfaz ya estaría listo y funcionando.

Configuración de redundancia IPMP

Podemos añadir el puerto físico net3 a nuestro interfaz mediante la funcionalidad IPMP. Tanto net2 como net3 compartirán la misma dirección IP y se deben conectar a dos puertos del switch ethernet en la misma virtual lan.

Primero creamos el interfaz IPMP con el nuevo puerto net3

ipadm create-ip net3
ipadm create-ipmp ipmp0
ipadm add-ipmp -i net3 ipmp0

A continuación le asignamos la misma dirección IP al interfaz IPMP. Previamente debemos borrarla del puerto net3. Esta operación se debe hacer desde el puerto serie o accediendo desde otro interfaz ya que, durante el tiempo entre un comando y otro, se pierde la conexión.

ipadm delete-ip net2
ipadm create-addr -T static -a local=10.31.137.4/24 ipmp0/v4

Por último añadimos el puerto net2 a nuestro interfaz IPMP.

ipadm create-ip net2
ipadm add-ipmp -i net2 ipmp0

La dirección IP es válida tanto en net2 como en net3. Para ver el estado utilizaremos el comando ipmpstat.

# ipmpstat -g
GROUP     GROUPNAME     STATE     FDT        INTERFACES
ipmp0    ipmp0        ok        10.00s     net2 net3

Y el estado

# ipmpstat -i
INTERFACE   ACTIVE     GROUP     FLAGS      LINK        PROBE     STATE
net2        yes        ipmp0    -------    up          ok        ok
net3        yes        ipmp0    --mb---    up          ok        ok

En este momento los dos puertos están activos pero, si preferimos un funcionamiento active-standby, podemos configurar uno de los puertos como standby

# ipadm set-ifprop -p standby=on -m ip net3

Creación de un interfaz agregado

Un agregado combina dos o más puertos en un solo interfaz. La diferencia con un interfaz IPMP es que, en el interfaz IPMP, no es necesaria ninguna configuración adicional en los puertos. En el caso del aggregado los puertos deben estar configurados en el switch ethernet en modo trunk y con una configuración compatible. Normalmente el switch suele ser el activo y, el servidor, el pasivo.

Vamos a crear un aggregado utilizando los puertos anteriores:

dladm create-aggr -P L3 -L passive -l net2 -l net3 aggr0

La opción -L indica que es un agregado del tipo LACP. Además indicamos que, el servidor, es el pasivo. El switch ethernet debe tener un trunk del tipo LACP configurado en modo activo.

Podemos ver el nuevo agregado con el comando dladm.

# dladm
LINK                CLASS     MTU    STATE    OVER
aggr0               aggr      1500   up       net2 net3
net0                phys      1500   up       --
net1                phys      1500   up       --
net2                phys      1500   up       --
net3                phys      1500   up       --
sp-phys0            phys      1500   up       --

Podemos ver el estado con el siguiente comando:

$ dladm show-aggr -x
LINK       PORT   SPEED   DUPLEX  STATE    ADDRESS            PORTSTATE
aggr0      --     1000Mb  full    up       8:0:27:49:10:b8    --
           net2   1000Mb  full    up       8:0:27:49:10:b8    attached
           net3   1000Mb  full    up       8:0:27:e4:d9:46    attached

A continuación ya podemos configurar una dirección IP

# ipadm create-ip aggr0
# ipadm create-addr -a local=10.31.137.4/24 aggr0/v4

Nuevas direcciones IP en el mismo interfaz

En el mismo interfaz IP podemos configurar más de una dirección IP. Pueden pertenecer a la misma red o a otra red. No hay ninguna limitación. Se pueden añadir nuevas direcciones a cualquier tipo de interfaz: un puerto único, un interfaz IPMP o un interfaz aggregado.

El comando utilizado es ipadm. Vamos a añadir nuevas direcciones al interfaz net0.

ipadm create-addr -T static -a local=192.168.2.111/24 net0/v4b
ipadm create-addr -T static -a local=192.168.2.112/24 net0/v4c
ipadm create-addr -T static -a local=192.168.2.113/24 net0/v4d

Las cuatro direcciones IP funcionan indistintamente. El servidor recibe paquetes en las 4 y puede enviar paquetes por cualquiera de ellas. Esto suele ser un problema ya que, si la dirección IP cambia, podemos tener problemas con los firewall de seguridad y a la hora de que nuestro servidor se identifique.

Lo mejor es deshabilitar las tres nuevas direcciones de manera que, a la hora de realizar una conexión saliente, solo utilice la primera net0/v4. Esto se realiza de la siguiente manera:

ipadm set-addrprop -p deprecated=on net0/v4b
ipadm set-addrprop -p deprecated=on net0/v4c
ipadm set-addrprop -p deprecated=on net0/v4d

Con esta configuración, las direcciones IP net0/v4b a net0/v4d, solo se utilizarán en recepción, nunca para una conexión saliente.