F.6. Añadir un dispositivo de red

El proceso de añadir un dispositivo de red ha cambiado en gran medida para Red Hat Enterprise Linux. Esto se debe, en parte, a la migración del kernel desde 2.4 a 2.6.

La Sección F.6.1 describe en detalle cómo añadir un dispositivo qeth a una instancia existente de Red Hat Enterprise Linux. La Sección F.6.2 es una referencia rápida para la instalación de otras interfaces de red zSeries.

F.6.1. Procedimiento para añadir un dispositivo qeth

Primero, determine si están cargados los módulos controladores del dispositivo qeth.

# lsmod | grep qeth
qeth                  135240  0
qdio                   45360  2 qeth
ipv6                  303984  13 qeth
ccwgroup               15104  1 qeth

Si la salida del comando lsmod muestra que los módulos no están cargados, debe volver a ejecutar el comando modprobe para cargarlos:

# modprobe qeth

Luego, cree un grupo de dispositivos qeth.

# echo <read_device_bus_id>,<write_device_bus_id>,<data_device_bus_id>
  > /sys/bus/ccwgroup/drivers/qeth/group

Debido al largo de esta línea de comandos, se ha separado en dos líneas para facilitar la lectura.

En el ejemplo siguiente, read_device_bus_id es 0.0.0600, write_device_bus_id es 0.0.0601, y data_device_bus_id es 0.0.0602. El dispositivo es una NIC z/VM virtual y 192.168.70.69 es la dirección IP a asignarse a esta interfaz.

# echo 0.0.0600,0.0.0601,0.0.0602 > /sys/bus/ccwgroup/drivers/qeth/group

Luego, verifique que el grupo de dispositivos qeth haya sido creado correctamente:

# ls /sys/bus/ccwgroup/drivers/qeth
0.0.0600  0.0.09a0  group  notifier_register

Opcionalmente puede añadir un nombre de puerto. Primero debe verificar si se requiere un nombre de puerto:

# cat /sys/bus/ccwgroup/drivers/qeth/0.0.0600/portname
no portname required

La respuesta indica que no necesita proporcionar un nombre de puerto.

Para añadir un nombre de puerto, verifique que los dispositivos esten desconectados y luego ejecute el comando siguiente:

NotaNota
 

El dispositivo debe estar desconectado cuando añada un nombre de puerto.

# echo <portname> > /sys/bus/ccwgroup/drivers/qeth/0.0.0600/portname

Luego, vuelva a colocar en línea el dispositivo:

# echo 1 /sys/bus/ccwgroup/drivers/qeth/0.0.0600/online

Luego verifique el estado del dispositivo:

# cat /sys/bus/ccwgroup/drivers/qeth/0.0.0600/online
1

Un valor de "1" indica que el dispositivo está en línea, mientras que un valor de '0' indica que el dispositivo está apagado.

Verifique cuál nombre de interfaz fue asignado al dispositivo:

# cat /sys/bus/ccwgroup/drivers/qeth/0.0.0600/if_name
eth1

Para cambiar el valor de if_name, ejecute el comando siguiente:

# echo <new_if_name> > /sys/bus/ccwgroup/drivers/qeth/0.0.0600/if_name

Opcionalmente, puede configurar parámetros y funcionalidades adicionales, dependiendo de la forma en que esté configurando su sistema y de las funcionalidades requeridas.

Para información sobre cómo funcionan estas funcionalidades, consulte http://oss.software.ibm.com/developerworks/opensource/linux390/docu/lx26apr04dd01.pdf (Linux for zSeries and S/390 Device Drivers, Features, and Commands).

Ahora necesita crear el archivo de configuración para su nueva interfaz. Los archivos de configuración para las interfaces de red se colocan en /etc/sysconfig/network-scripts/.

Los archivos de configuración de red utilizan la convención de nombres ifcfg-<device>, donde device es el valor encontrado en el archivo if_name en el grupo de dispositivo \tqeth que fue creado anteriormente. En este ejemplo es eth1.

Si hay un archivo de configuración existente ya definido para otro dispositivo del mismo tipo, la solución más simple es copiarlo al nuevo nombre.

# cd /etc/sysconfig/network-scripts
# cp ifcfg-eth0 ifcfg-eth1

Si no dispone de un dispositivo similar definido, entonces deberá crear uno. Utilice este ejemplo de ifcfg-eth0 como una plantilla.

/etc/sysconfig/network-scripts/ifcfg-eth0
# IBM QETH
DEVICE=eth0
BOOTPROTO=static
HWADDR=00:06:29:FB:5F:F1
IPADDR=9.12.20.136
NETMASK=255.255.255.0
ONBOOT=yes
NETTYPE=qeth
SUBCHANNELS=0.0.09a0,0.0.09a1,0.0.09a2
TYPE=Ethernet

Edite el nuevo archivo ifcfg-eth1.

Por los momentos, elimine la línea HWADDR.

Modifique la sentencia DEVICE para reflejar los contenidos del archivo if_name desde su ccwgroup.

Modifique la sentencia IPADDR para reflejar la dirección IP de su nueva interfaz.

Modifique la sentencia NETMASK como sea necesario.

Si desea que su nueva interfaz sea activada al momento del arranque, entonces asegúrese de que ONBOOT esté configurado a yes.

Asegúrese de que la sentencia SUBCHANNELS coincida con las direcciones de hardware para su dispositivo qeth.

/etc/sysconfig/network-scripts/ifcfg-eth1
# IBM QETH
DEVICE=eth1
BOOTPROTO=static
IPADDR=192.168.70.87
NETMASK=255.255.255.0
ONBOOT=yes
NETTYPE=qeth
SUBCHANNELS=0.0.0600,0.0.0601,0.0.0602
TYPE=Ethernet

Un dispositivo qeth requiere de una definición de alias en /etc/modprobe.conf. Modifique este archivo y añada un alias para su interfaz.

/etc/modprobe.conf
alias eth0 qeth
alias eth1 qeth
options dasd_mod dasd=0.0.0100,0.0.4b19

Ahora puede iniciar la nueva interfaz.

# ifup eth1

Verifique el estado de la interfaz:

# ifconfig eth1
eth1      Link encap:Ethernet  HWaddr 02:00:00:00:00:01
          inet addr:192.168.70.87  Bcast:192.168.70.255  Mask:255.255.255.0
          inet6 addr: fe80::ff:fe00:1/64 Scope:Link
          UP BROADCAST RUNNING NOARP MULTICAST  MTU:1492  Metric:1
          RX packets:23 errors:0 dropped:0 overruns:0 frame:0
          TX packets:3 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:644 (644.0 b)  TX bytes:264 (264.0 b)

Tenga en cuenta el campo HWaddr en la primera línea de la salida del comando ifconfig. El valor después de esto se debe añadir al archivo ifcfg-eth1. Añada una línea como la siguiente a ese archivo:

HWADDR=02:00:00:00:00:01

Ahora ifcfg-eth1 se vé similar a lo siguiente:

# IBM QETH
DEVICE=eth1
HWADDR=02:00:00:00:00:01
BOOTPROTO=static
IPADDR=192.168.70.69
NETMASK=255.255.255.0
ONBOOT=yes
NETTYPE=qeth
SUBCHANNELS=0.0.0600,0.0.0601,0.0.0602
TYPE=Ethernet

Verifique el enrutamiento para la nueva interfaz:

# route
Kernel IP routing table
Destination     Gateway         Genmask        Flags Metric Ref  Use Iface
192.168.70.0    *               255.255.255.0  U     0      0      0 eth1
9.12.20.0       *               255.255.255.0  U     0      0      0 eth0
169.254.0.0     *               255.255.0.0    U     0      0      0 eth1
default         pdlrouter-if5.p 0.0.0.0        UG    0      0      0 eth0

Verifique sus cambios ejecutando el comando ping para hacer 'ping' a la puerta de enlace:

# ping -c 1 192.168.70.8
PING 192.168.70.8 (192.168.70.8) 56(84) bytes of data.
64 bytes from 192.168.70.8: icmp_seq=0 ttl=63 time=8.07 ms

Si la información de enrutamiento por defecto ha cambiado, debe actualizar /etc/sysconfig/network de la forma correspondiente.

F.6.2. Referencia rápida para añadir nuevas interfaces

Existen varias tareas para añadir una interfaz de red en sistemas zSeries.

Las secciones siguientes proporcionan información específica para cada una de las tareas de cada controlador de dispositivos de red zSeries.

F.6.2.1. Trabajando con el controlador de dispositivos LCS

El controlador de dispositivo LCS (LAN channel station) soporta OSA-2 Ethernet/Token Ring, OSA-Express Fast Ethernet e modo no QDIO, y OSA-Express High Speed Token Ring en modo no QDIO. Para z990, el controlador LCS también soporta Gigabit Ethernet en modo no QDIO (incluyendo 1000Base-T).

Basado en el tipo de interfaz que se está añadiendo, el controlador LCS asigna uno de dos nombres base para interfaces: eth<n> para OSA-Express Fast Ethernet y Gigabit Ethernet tr<n> para Token Ring, donde <n> es un entero único que identifica el dispositivo. <n> es 0 para el primer tipo de dispositivo de ese tipo, 1 para el segundo y así sucesivamente.

  • Cargar el controlador de dispositivo:

    # modprobe lcs
  • Crear el grupo de dispositivo:

    # echo <read_device_bus_id>,<write_device_bus_id> 
    > /sys/bus/ccwgroup/drivers/lcs/group

    Debido al largo de esta línea de comandos, se ha separado en dos líneas para facilitar la lectura.

  • Configure el dispositivo.

    Las tarjetas OSA puede proporcionar hasta 16 puerto para un único CHPID. Por defecto, el grupo de dispositivo LCS utiliza el puerto 0. Para utilizar un puerto diferente, ejecute un comando similar al siguiente:

    # echo <portno> > /sys/bus/ccwgroup/drivers/lcs/<device_bus_id>/portno

    Para más información sobre la configuración del controlador LCS, consulte:

    http://oss.software.ibm.com/developerworks/opensource/linux390/docu/lx26apr04dd01.pdf (Linux for zSeries and S/390 Device Drivers, Features, and Commands)

  • Coloque el dispositivo en línea:

    # echo 1 /sys/bus/ccwgroup/drivers/lcs/<read_device_bus_id>/online
  • Defina un alias.

    Basado en el tipo de interfaz que esté añadiendo, agregue una línea a /etc/modprobe.conf que sea similar a uno de los siguientes:

    eth<n> alias lcs
    tr<n> alias lcs
  • Cree un script para la configuración.

    Cree un archivo en /etc/sysconfig/network-scripts/ con un nombre como:

    ifcfg-eth<n>
    ifcfg-tr<n>

    El archivo debería ser similar a:

    /etc/sysconfig/network-scripts/ifcfg-eth0
    # IBM LCS
    DEVICE=eth0
    BOOTPROTO=static
    HWADDR=00:06:29:FB:5F:F1
    IPADDR=9.12.20.136
    NETMASK=255.255.255.0
    ONBOOT=yes
    NETTYPE=lcs
    SUBCHANNELS=0.0.09a0,0.0.09a1
    PORTNAME=0
    TYPE=Ethernet

    Basado en la interfaz que está añadiendo, el parámetro DEVICE debería ser alguno de los siguientes:

    DEVICE=eth<n>
    DEVICE=tr<n>
  • Active el dispositivo.

    Basado en la interfaz que está añadiendo, ejecute el comando ifup:

    # ifup eth<n>
    # ifup tr<n>

F.6.2.2. Trabajando con el controlador de dispositivos QETH

El controlador de dispositivo QETH soporta zSeries HiperSockets, OSA-Express Fast Ethernet, Gigabit Ethernet (incluyendo 1000Base-T), High Speed Token Ring, y las funcionalidades ATM (ejecutando la emulación Ethernet LAN) en modo QDIO.

Basado en el tipo de interfaz que está añadiendo, el controlador QETH asigna alguna de los tres nombres de interfaces siguientes:

  • hsi<n> para dispositivos HiperSocket

  • eth<n> para OSA-Express Fast Ethernet y Gigabit Ethernet

  • tr<n> para Token Ring

El valor <n> es un entero que identifica unívocamente al dispositivo. <n> es 0 para el primer dispositivo de ese tipo, 1 para el segundo, y así sucesivamente.

  • Cargar el controlador de dispositivo:

    # modprobe qeth
  • Crear el grupo de dispositivo:

    # echo <read_device_bus_id>,<write_device_bus_id>,<data_device_bus_id>
      > /sys/bus/ccwgroup/drivers/qeth/group

    Debido al largo de esta línea de comandos, se ha separado en dos líneas para facilitar la lectura.

  • Configure el dispositivo.

    Para más información sobre la configuración del controlador QETH, consulte la siguiente información:

    http://oss.software.ibm.com/developerworks/opensource/linux390/docu/lx26apr04dd01.pdf (Linux for zSeries and S/390 Device Drivers, Features, and Commands)

  • Coloque el dispositivo en línea:

    # echo 1 /sys/bus/ccwgroup/drivers/qeth/<read_device_bus_id>/nline
  • Defina un alias.

    Basado en el tipo de interfaz que se está añadiendo, añada una línea a /etc/modprobe.conf que sea alguna de las siguientes:

    hsi<n> alias qeth
    eth<n> alias qeth
    tr<n> alias qeth
  • Cree un script para la configuración.

    Cree un archivo en /etc/sysconfig/network-scripts/ con un nombre como:

    ifcfg-hsi<n> 
    ifcfg-eth<n>
    ifcfg-tr<n>

    El archivo debería verse como:

    /etc/sysconfig/network-scripts/ifcfg-eth0
    # IBM QETH
    DEVICE=eth0
    BOOTPROTO=static
    HWADDR=00:06:29:FB:5F:F1
    IPADDR=9.12.20.136
    NETMASK=255.255.255.0
    ONBOOT=yes
    NETTYPE=qeth
    SUBCHANNELS=0.0.09a0,0.0.09a1,0.0.09a2
    TYPE=Ethernet

    Basado en el tipo de interfaz que se está añadiendo, el parámetro DEVICE debería ser como alguno de los siguientes:

    DEVICE=hsi<n>
    DEVICE=eth<n>
    DEVICE=tr<n>
  • Active el dispositivo.

    Basado en la interfaz que está añadiendo, ejecute el comando ifup:

    # ifup hsi<n>
    # ifup eth<n>
    # ifup tr<n>

F.6.2.3. Trabajando con el controlador de dispositivos CTC

Una conexión de tipo CTC (Channel-to-Channel) es la conexión típica para de alta velocidad entre mainframes. El controlador de dispositivos CTC se puede utilizar para establecer una conexión punto a punto TCP/IP o tty entre dos instancias Linux para zSeries y S/390 o entre una instancia Linux para zSeries y s/390 y otro instancia de sistema operativo mainframe tal como z/OS, OS/390, z/VM, o z/VSE.

El controlador CTC asigna un nombre base de interfaz similar a lo siguiente:

ctc<n>

El valor <n> es un entero que identifica unívocamente al dispositivo. <n> es 0 para el primer dispositivo de ese tipo, 1 para el segundo, y así sucesivamente.

  • Cargar el controlador de dispositivo:

    # modprobe ctc
  • Crear el grupo de dispositivo:

    # echo <read_device_bus_id>,<write_device_bus_id> 
    > /sys/bus/ccwgroup/drivers/ctc/group

    Debido al largo de esta línea de comandos, se ha separado en dos líneas para facilitar la lectura.

  • Configure el dispositivo.

    Configure el protocolo:

    # echo <protocol> /sys/bus/ccwgroup/drivers/ctc/<device_bus_id>/protocol

    Donde <protocol> es 0, 1, 2, o 3.

    0 — Este protocolo proporciona compatibilidad con pares diferentes a OS/390, o z/OS, por ejemplo, una máquina de servicio VM TCP. Este es el comportamiento predeterminado.

    1 — Este protocolo proporciona la verificación mejorada de paquetes para los equivalentes Linux.

    2 — Este protocolo proporciona una conexión tty basada en CTC con un sistema Linux.

    3 — Este protocolo proporciona compatibilidad con sistemas OS/390 o z/OS.

    Para más información sobre la configuración del controlador CTC, consulte lo siguiente:

    http://oss.software.ibm.com/developerworks/opensource/linux390/docu/lx26apr04dd01.pdf (Linux for zSeries and S/390 Device Drivers, Features, and Commands)

  • Coloque el dispositivo en línea:

    # cho 1 /sys/bus/ccwgroup/drivers/lcs/<read_device_bus_id>/online
  • Defina un alias.

    Basado en el tipo de interfaz que se está añadiendo, añada una línea a /etc/modprobe.conf que sea algo como:

    ctc<n> alias ctc
  • Cree un script para la configuración.

    Cree un archivo en /etc/sysconfig/network-scripts/ con un nombre como el siguiente:

    ifcfg-ctc<n>

    El archivo debería de verse como:

    /etc/sysconfig/network-scripts/ifcfg-ctc0
    # IBM CTC
    DEVICE=ctc0
    BOOTPROTO=static
    IPADDR=192.168.70.136
    GATEWAY=172.16.70.136
    NETMASK=255.255.255.255
    ONBOOT=yes
    SUBCHANNELS=0.0.1b00,0.0.1b01
    NETTYPE=ctc
    CTCPROT=0
    TYPE=CTC
  • Active el dispositivo.

    Basado en la interfaz que está añadiendo, ejecute el comando ifup:

    # ifup ctc<n>

F.6.2.4. Trabajando con el controlador de dispositivos IUCV

El controlador de dispositivo IUCV (Inter-User Communication Vehicle) es una facilidad de comunicación VM que permite que un programa ejecutándose en un invitado VM se pueda comunicar con otro invitado VM, con un programa de control, o hasta consigo mismo. El controlador de dispositivo IUCV para Linux zSeries y S/390 es un controlador de dispositivo de red que utiliza IUCV para conectarse a los invitados Linux ejecutándose en un VM con IDs de usuario diferente, o para conectar un invitado Linux a otro invitado VM tal como una máquina de servicio TCP/IP.

El controlador de dispositivo IUCV asigna un nombre base de interfaz como el siguiente:

iucv<n>

El valor <n> es un entero que identifica unívocamente al dispositivo. <n> es 0 para el primer dispositivo de ese tipo, 1 para el segundo, y así sucesivamente.

  • Cargar el controlador de dispositivo:

    # modprobe netiucv
  • Cree el dispositivo IUCV:

    # echo <peer_id> > /sys/bus/iucv/drivers/netiucv/connection

    El valor de <peer_id> es el ID del invitado del VM al cual se quiere conectar. El controlador de dispositivo IUCV interpreta el ID como en mayúsculas. Usualmente este es TCPIP.

    Esto crea una estructura sysfs como la siguiente:

    cat /sys/bus/iucv/drivers/netiucv/netiucv<n>

    El valor <n> es un entero que identifica unívocamente al dispositivo. <n> es 0 para el primer dispositivo de ese tipo, 1 para el segundo, y así sucesivamente.

  • Configure el dispositivo.

    Configure el tamaño máximo de la memoria intermedia (buffer) si es necesario:

    # echo <value> > /sys/bus/iucv/drivers/netiucv/netiucv<n>/buffer
      

    El <value> es el número de bytes que desea establecer. Si especifica un valor fuera de este rango, se ignora el comando.

    El rango permisible de valores para el tamaño máximo de memoria intermedia depende de los valores de MTU. Deben estar dentro del rango <mínimo MTU + tamaño de cabezera> a <máximo MTU + tamaño de cabezera>. El espacio de cabezera típicamente es de 4 bytes. El tamaño máximo predeterminado para la memoria intermedia es de 32768 bytes (32 KB).

    Para más información sobre la configuración del controlador IUCV, consulte lo siguiente:

    http://oss.software.ibm.com/developerworks/opensource/linux390/docu/lx26apr04dd01.pdf (Linux for zSeries and S/390 Device Drivers, Features, and Commands)

  • Defina un alias.

    Basado en el tipo de interfaz que se está añadiendo, añada una línea a /etc/modprobe.conf que sea algo como:

    iucv<n> alias netiucv
  • Cree un script para la configuración.

    Cree un archivo en /etc/sysconfig/network-scripts/ con un nombre como el siguiente:

    ifcfg-iucv<n>

    El archivo debería verse como:

    /etc/sysconfig/network-scripts/ifcfg-iucv0
    # IBM IUCV
    DEVICE=iucv0
    BOOTPROTO=static
    IPADDR=192.168.70.136
    GATEWAY=172.16.70.136
    NETMASK=255.255.255.255
    ONBOOT=yes
    NETTYPE=iucv
    PEERID=TCPIP
    TYPE=IUCV
  • Active el dispositivo.

    Basado en el tipo de interfaz que se está añadiendo, ejecute un comando ifup como el siguiente:

    # ifup iucv<n>