F.6. Ajout d'un périphérique réseau

Le processus d'ajout d'un périphérique réseau a considérablement changé pour Red Hat Enterprise Linux. La migration du noyau 2.4 vers le noyau 2.6 en est en partie responsable :

Dans la Section F.6.1, la manière d'ajouter un périphérique qeth à une instance existante de Red Hat Enterprise Linux est décrite en détails. Vous trouverez dans la Section F.6.2 un mini guide sur l'installation d'autres interfaces réseau zSeries.

F.6.1. Ajout d'un périphérique qeth

Déterminez tout d'abord si les modules de pilote du périphérique qeth ont été chargés.

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

Si la sortie de la commande lsmod montre que les modules ne sont pas chargés, vous devez lancer la commande modprobe pour les charger :

# modprobe qeth

Créez ensuite un périphérique de groupe qeth.

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

Vu la longueur de cette commande, elle a été coupée sur deux lignes.

Dans l'exemple qui suit, read_device_bus_id a la valeur 0.0.0600, write_device_bus_id la valeur 0.0.0601 et data_device_bus_id la valeur 0.0.0602. Le périphérique est un NIC virtuel z/VM et l'adresse IP à attribuer à cette interface est 192.168.70.69.

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

Vérifiez ensuite que le périphérique de groupe qeth a été correctement créé :

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

Vous pouvez également ajouter un nom de port. Vous devez tout d'abord vérifier si un nom de port est requis.

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

Cette réponse indique que vous n'avez pas à fournir de nom de port.

Pour ajouter un nom de port, vérifiez que les périphériques sont éteints, puis lancez la commande suivante :

NoteRemarque
 

Les périphériques doivent être éteints lorsque vous ajoutez un nom de port.

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

Ramenez ensuite les périphériques en ligne :

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

Puis vérifiez l'état du périphérique :

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

Une valeur retournée de « 1 » indique que le périphérique est en ligne, alors qu'une valeur retournée de « 0 » indique le contraire.

Vérifiez que le nom de l'interface a été attribué au périphérique :

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

Pour changer la valeur de if_name, utilisez la commande suivante :

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

Vous pouvez également définir d'autres paramètres et fonctions, selon la manière dont vous configurez votre système et les fonctions dont vous avez besoin.

Pour de plus amples informations sur le fonctionnement de ces fonctions, consultez le document Linux for zSeries and S/390 Device Drivers, Features, and Commands à l'adresse suivante : http://oss.software.ibm.com/developerworks/opensource/linux390/docu/lx26apr04dd01.pdf.

Vous devez maintenant créer le fichier de configuration pour votre nouvelle interface. Les fichiers de configuration des interfaces réseau se trouvent dans /etc/sysconfig/network-scripts/.

Les fichiers de configuration réseau utilisent la convention de dénomination ifcfg-<device>, où device correspond à la valeur trouvée dans le fichier if_name du périphérique de groupe qeth créé auparavant. eth1 est la valeur dans notre exemple.

S'il existe déjà un fichier de configuration défini pour un autre périphérique du même type, la solution la plus simple est de le copier sous le nouveau nom.

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

Si vous ne possédez pas de périphérique similaire déjà défini, vous devez en créer un. Utilisez l'exemple de ifcfg-eth0 comme modèle.

/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

Éditez le nouveau fichier ifcfg-eth1.

Supprimez la ligne HWADDR pour le moment.

Modifiez l'instruction DEVICE afin de refléter le contenu du fichier if_name de votre ccwgroup.

Modifiez l'instruction IPADDR afin de refléter l'adresse IP de votre nouvelle interface.

Modifiez l'instruction NETMASK si nécessaire.

Si vous souhaitez que votre nouvelle interface soit activée au démarrage, assurez-vous que ONBOOT est réglé sur yes.

Assurez-vous que l'instruction SUBCHANNELS correspond aux adresses matérielles de votre périphérique 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 périphérique qeth nécessite une définition d'alias dans /etc/modprobe.conf. Éditez ce fichier et ajoutez un alias pour votre interface.

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

Vous pouvez maintenant démarrer la nouvelle interface :

# ifup eth1

Vérifiez le statut de l'interface :

# 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)

Notez le champ HWaddr dans la première ligne de la sortie de la commande ifconfig. La valeur après doit être ajoutée au fichier ifcfg-eth1. Ajoutez une ligne comme la suivante dans ce fichier :

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

Maintenant, le fichier ifcfg-eth1 ressemble à l'exemple suivant :

# 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

Vérifiez le routage pour la nouvelle interface :

# 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

Vérifiez vos modifications a l'aide de la commande ping pour envoyer un ping vers la passerelle :

# 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 les informations de route par défaut ont changées, vous devez également mettre à jour /etc/sysconfig/network.

F.6.2. Mini guide sur l'ajout de périphériques réseau

Il existe plusieurs tâches élémentaires pour l'ajout d'une interface réseau sur les systèmes zSeries.

Les sections suivantes fournissent des informations de base pour chaque tâche de chaque pilote de périphérique réseau zSeries.

F.6.2.1. Travailler avec le pilote de périphérique LCS

Le pilote de périphérique LCS (LAN channel station) prend en charge l'Ethernet/anneau à jeton OSA-2, l'Ethernet OSA-Express Fast Ethernet dans un mode non-QDIO et OSA-Express High Speed Token Ring dans un mode non-QDIO. Pour z990, il prend également en charge l'Ethernet Gigabit dans un mode non-QDIO (y compris 1000Base-T).

Selon le type d'interface ajoutée, le pilote LCS attribue l'un des deux noms d'interface de base : eth<n> pour l'Ethernet OSA-Express Fast Ethernet et Gigabit et tr<n> pour Token Ring (anneau à jetons), où <n> est un entier qui identifie le périphérique de façon unique. <n> a la valeur 0 pour le premier périphérique de ce type, 1 pour le second et ainsi de suite.

  • Chargement du pilote de périphérique

    # modprobe lcs
  • Création du périphérique de groupe

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

    Vu la longueur de cette commande, elle a été coupée sur deux lignes.

  • Configuration du périphérique

    Les cartes OSA peuvent fournir jusqu'à 16 ports pour un seul CHPID. Par défaut, le périphérique de groupe LCS utilise le port 0. Pour utiliser un autre port, exécutez la commande suivante :

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

    Afin d'obtenir davantage d'informations sur la configuration du pilote LCS, reportez-vous à l'adresse suivante :

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

  • Mise en ligne du périphérique

    # echo 1 /sys/bus/ccwgroup/drivers/lcs/<read_device_bus_id>/online
  • Définition de l'alias

    Selon le type d'interface ajoutée, ajoutez une ligne dans le fichier /etc/modprobe.conf similaire à l'exemple suivant :

    eth<n> alias lcs
    tr<n> alias lcs
  • Création d'un script de configuration

    Créez un fichier dans /etc/sysconfig/network-scripts/ ayant l'un des noms suivants :

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

    Le fichier devrait ressembler à l'extrait suivant :

    /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

    Selon le type d'interface ajoutée, le paramètre DEVICE devrait correspondre à l'un des exemples suivants :

    DEVICE=eth<n>
    DEVICE=tr<n>
  • Activation du périphérique

    Selon le type d'interface ajoutée, lancez une commande ifup :

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

F.6.2.2. Travailler avec le pilote de périphérique QETH

Le pilote de périphérique réseau QETH prend en charge les HiperSockets zSeries, l'Ethernet OSA-Express Fast Ethernet, l'Ethernet Gigabit (y compris 1000Base-T), High Speed Token Ring et les fonctions ATM (exécutant l'émulation de LAN Ethernet) en mode QDIO.

Selon le type d'interface ajoutée, le pilote QETH attribue l'un des trois noms d'interface suivants :

  • hsi<n> pour les périphériques HiperSocket

  • eth<n> pour l'Ethernet OSA-Express Fast Ethernet et Gigabit

  • tr<n> pour l'anneau à jetons (Token Ring)

La valeur <n> est un entier qui identifie le périphérique de façon unique. <n> a la valeur 0 pour le premier périphérique de ce type, 1 pour le second et ainsi de suite.

  • Chargement du pilote de périphérique

    # modprobe qeth
  • Création du périphérique de groupe

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

    Vu la longueur de cette commande, elle a été coupée sur deux lignes.

  • Configuration du périphérique

    Afin d'obtenir davantage d'informations sur la configuration du pilote QETH, reportez-vous à l'adresse suivante :

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

  • Mise en ligne du périphérique

    # echo 1 /sys/bus/ccwgroup/drivers/qeth/<read_device_bus_id>/nline
  • Définition de l'alias

    Selon le type d'interface ajoutée, ajoutez une ligne dans le fichier /etc/modprobe.conf similaire à l'une des lignes suivantes :

    hsi<n> alias qeth
    eth<n> alias qeth
    tr<n> alias qeth
  • Création d'un script de configuration

    Créez un fichier dans /etc/sysconfig/network-scripts/ ayant l'un des noms suivants :

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

    Le fichier devrait ressembler à l'extrait suivant :

    /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

    Selon le type d'interface ajoutée, le paramètre DEVICE devrait correspondre à l'un des exemples suivants :

    DEVICE=hsi<n>
    DEVICE=eth<n>
    DEVICE=tr<n>
  • Activation du périphérique

    Selon le type d'interface ajoutée, lancez une commande ifup :

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

F.6.2.3. Travailler avec le pilote de périphérique CTC

Une connexion canal à canal CTC (Channel-to-Channel) est la connexion rapide typique entre les ordinateurs principaux. Le pilote de périphérique CTC peut être utilisé pour établir une connexion TCP/IP point à point ou tty entre deux instances Linux pour zSeries et S/390 ou entre une instance de Linux pour zSeries et S/390 et une autre instance de système d'exploitation comme z/OS, OS/390, z/VM ou z/VSE.

Le pilote CTC attribue un nom d'interface de base comme par exemple :

ctc<n>

La valeur <n> est un entier qui identifie le périphérique de façon unique. <n> a la valeur 0 pour le premier périphérique de ce type, 1 pour le second et ainsi de suite.

  • Chargement du pilote de périphérique

    # modprobe ctc
  • Création du périphérique de groupe

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

    Vu la longueur de cette commande, elle a été coupée sur deux lignes.

  • Configuration du périphérique

    Définition du protocole :

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

    <protocol> a la valeur 0, 1, 2 ou 3.

    0 — Ce protocole offre une compatibilité avec des pairs autres qu'une machine de services TCP VM OS/390 ou z/OS, par exemple. 0 est la valeur par défaut.

    1 — Ce protocole offre un contrôle de paquetages amélioré pour les pairs Linux.

    2 — Ce protocole offre une connexion tty basée sur CTC avec un pair Linux.

    3 — Ce protocole offre une compatibilité avec les pairs OS/390 ou z/OS.

    Afin d'obtenir davantage d'informations sur la configuration du pilote CTC, reportez-vous à l'adresse suivante :

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

  • Mise en ligne du périphérique

    # cho 1 /sys/bus/ccwgroup/drivers/lcs/<read_device_bus_id>/online
  • Définition de l'alias

    Selon le type d'interface ajoutée, ajoutez une ligne au fichier /etc/modprobe.conf similaire à l'exemple suivant :

    ctc<n> alias ctc
  • Création d'un script de configuration

    Créez un fichier dans /etc/sysconfig/network-scripts/ ayant l'un des noms suivants :

    ifcfg-ctc<n>

    Le fichier devrait ressembler à l'extrait suivant :

    /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
  • Activation du périphérique

    Selon le type d'interface ajoutée, lancez une commande ifup :

    # ifup ctc<n>

F.6.2.4. Travailler avec le pilote de périphérique IUCV

Le véhicule IUCV (Inter-User Communication Vehicle) est un utilitaire de communication VM permettant à un programme d'être exécuté dans un invité VM afin de communiquer avec un autre invité VM, un programme de contrôle ou même avec lui-même. Le pilote de périphérique IUCV Linux pour zSeries et S/390 est un pilote de périphérique réseau qui utilise IUCV pour connecter des invités Linux exécutés sur différents identifiants utilisateurs VM ou pour connecter un invité Linux à un autre invité VM comme une machine de services TCP/IP.

Le pilote IUCV attribue un nom d'interface de base comme par exemple :

iucv<n>

La valeur <n> est un entier qui identifie le périphérique de façon unique. <n> a la valeur 0 pour le premier périphérique de ce type, 1 pour le second et ainsi de suite.

  • Chargement du pilote de périphérique

    # modprobe netiucv
  • Création du périphérique IUCV

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

    La valeur <peer_id> correspond à l'ID de l'invité VM sur lequel vous souhaitez vous connecter. Le pilote de périphérique IUCV interprète l'ID en majuscules. Sa valeur est généralement TCPIP.

    Une structure sysfs est alors créée comme dans l'exemple suivant :

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

    La valeur <n> est un entier qui identifie le périphérique de façon unique. <n> a la valeur 0 pour le premier périphérique de ce type, 1 pour le second et ainsi de suite.

  • Configuration du périphérique

    Définition de la taille de tampon maximum, si nécessaire :

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

    La valeur <value> correspond au nombre d'octets que vous souhaitez configurer. Si vous spécifiez une valeur en-dehors de la gamme valide, la commande sera ignorée.

    La gamme de valeurs possibles pour la taille de tampon maximum dépend des paramètres MTU. Elle doit être comprise entre <MTU minimum + taille d'en-tête> et <MTU maximum + taille d'en-tête>. L'espace d'en-tête est de 4 octets en général. La valeur par défaut pour la taille de tampon maximum est de 32768 octets (32 Ko).

    Afin d'obtenir davantage d'informations sur la configuration du pilote IUCV, reportez-vous à l'adresse suivante :

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

  • Définition de l'alias

    Selon le type d'interface ajoutée, ajoutez une ligne au fichier /etc/modprobe.conf similaire à l'exemple suivant :

    iucv<n> alias netiucv
  • Création d'un script de configuration

    Créez un fichier dans /etc/sysconfig/network-scripts/ ayant l'un des noms suivants :

    ifcfg-iucv<n>

    Le fichier devrait ressembler à l'extrait suivant :

    /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
  • Activation du périphérique

    Selon le type d'interface ajoutée, lancez une commande ifup comme la suivante :

    # ifup iucv<n>