Configuración de una VIPA bajo z/OS

El presente post explica como realizar una configuración de una VIPA, tanto estática, como dinámica, bajo z/OS y una OSA predefinida.

Visión general de una VIPA

VIPA son las siglas de Virtual IP Address. Este elemento es útil en una OSA predefinida, ya que se pueden configurar mas de una IP saliendo por el mismo interfaz de red o mas interfaces, y sirve para balancear servicios y demás utilidades.
Una VIPA puede tener una dirección estática (al igual que la dirección de una OSA real), o puede ser dinámica y adquirir un rango de IPs, por ejemplo.

Configuración de una VIPA

Todo parte de la pila TCP/IP, de modo que el único dataset que vamos a tocar es el TCPIP.PROFILE.TCPIP.
Para habilitar la VIPA, se deben hacer las siguientes modificaciones en dicho dataset. Para ello, se debe parar el proceso TCPIP, de lo contrario, no nos dejará hacerlo ya que nos dirá que está en uso. Si no es posible pararlo, se puede utilizar un OBEYFILE que altere los cambios, pero nos decantaremos por la opción de pararlo que es mas sencillo y funciona siempre.

1.- Buscar la línea siguiente, y añadir lo que está en negrita:

IPCONFIG DATAGRAMFWD VARSUBNETTING SYSPLEXROUTING
SOURCEVIPA
TCPSTACKSOURCEVIPA 192.168.101.230

Con esas dos sentencias, habilitamos el stack desde donde partirá las IPs virtuales, empezando por la IP 192.168.101.230 (la OSA real puede tener otra distinta).

2.- Si queremos crear una VIPA estática, debemos crear un tipo Device que sea Virtual, así como su link correspondiente. En nuestro ejemplo, el device será VDEV1, y su link, VLINK1. Por tanto, añadiremos las dos siguientes líneas:

DEVICE VDEV1 VIRTUAL 0
LINK VLINK1 VIRTUAL 0 VDEV1

3.- Si además de tener un enlace estático, lo queremos dinámico, crearíamos otro tipo de DEVICE llamado VIPADYNAMIC. El siguiente ejemplo muestra cómo definimos dos VIPAs dinámicas, con las dos IPs que se asignarán dinámicamente, la 192.168.101.230 y 192.168.101.231, poniendo la máscara de subred en primer lugar.

VIPADYNAMIC
VIPADEFINE 255.255.255.0 192.168.101.230 192.168.101.231
ENDVIPADYNAMIC

4.- Si hemos definido una VIPA estática, debemos poner la IP que se le asignará, de modo que en la zona HOME, debemos añadir, además de la OSA, nuestro enlace virtual definido en el punto 2, VLINK1. Por tanto, la definición quedaría así (CTCLINK1 es nuestro CTC o LCS real en Hercules):

HOME
192.168.101.8 CTCLINK1
192.168.101.232 VLINK1

Con esto, hemos definido 3 IPs además de la que ya estaba (que era la 192.168.101.8): 2 dinámicas y 1 estática. La estática será la 192.168.101.232 y las dinámicas serán la 192.168.101.230 y 192.168.101.231.

5.- Ahora toca configurar las rutas. Para ello, y dado que tenemos más de una IP, hemos comentado todas las líneas que teníamos de GATEWAY, y hemos habilitado el módulo BEGINRoutes y ENDRoutes, añadiendo la siguiente línea:

BEGINRoutes
;
; Direct Routes - Routes that are directly connected to my inter
;
; Destination Subnet Mask First Hop Link Name Packet S
;
ROUTE 192.168.101.0/24 = CTCLINK1 MTU 1500
ENDRoutes

Esto hará que todas las IPs que correspondan con la dirección 192.168.101.X, salgan por la OSA real (evidentemente, una IP virtual al fin y al cabo, debe tener una tarjeta real por detrás para salir).
En principio, no se toca nada más en este dataset.

NOTA: No debemos poner un START VDEV1 al final del dataset, al igual que hacemos un START de la OSA, ya que al ser virtual no se tiene que iniciar porque no existe.

Ejecución del TCPIP

Con el dataset editado correctamente podemos desde el SDSF, hacer un /S TCPIP, y una vez en ejecución, la salida de dicho STC, CFGPRINT, debería contener algo como esto:

EZZ0300I OPENED PROFILE FILE DD:PROFILE
EZZ0309I PROFILE PROCESSING BEGINNING FOR DD:PROFILE
EZZ0316I PROFILE PROCESSING COMPLETE FOR FILE DD:PROFILE
EZZ0641I IP FORWARDING NOFWDMULTIPATH SUPPORT IS ENABLED
EZZ0350I SYSPLEX ROUTING SUPPORT IS ENABLED
EZZ0351I SOURCEVIPA SUPPORT IS ENABLED
EZZ0352I VARIABLE SUBNETTING SUPPORT IS ENABLED FOR OROUTED
EZZ0338I TCP PORTS 1 THRU 1023 ARE RESERVED
EZZ0338I UDP PORTS 1 THRU 1023 ARE RESERVED
EZZ0613I TCPIPSTATISTICS IS DISABLED
EZZ0400I TELNET/VTAM (SECOND PASS) BEGINNING FOR FILE: DD:PROFILE
EZZ0403I TELNET/VTAM (SECOND PASS) COMPLETE FOR FILE: DD:PROFILE

Una vez hecho esto, todo quedará configurado. Haciendo desde cualquier equipo de la red un PING, dichas IPs deberían responder.

About Urtzi Larrieta

Director de Proyectos de entornos Mainframe, AIX y AS/400, llevo mas de 10 años trabajando para el sector servicios y banca, así como proyectos de sistemas, renovación tecnológica, estrategias de backup, y consultoría de sistemas.