17.3. Ajout d'un périphérique réseau

Les modules de pilote de périphérique réseau sont automatiquement chargés par udev.
Vous pouvez ajouter une interface réseau sur System z d'IBM de manière dynamique ou persistante.
  • Dynamiquement
    1. Chargez le pilote de périphérique
    2. Supprimez les périphériques réseau de la liste des périphériques ignorés.
    3. Création du périphérique de groupe.
    4. Configuration du périphérique.
    5. Mise en ligne du périphérique.
  • De manière persistante
    1. Création d'un script de configuration.
    2. Activez l'interface du périphérique.
Les sections suivantes offrent des informations de base sur chaque tâche de chaque pilote de périphérique réseau IBM System z. Section 17.3.1, « Ajout d'un périphérique qeth » décrit comment ajouter un qeth à une instance existante de Red Hat Enterprise Linux. Section 17.3.2, « Ajout d'un périphérique LCS » décrit comment ajouter un périphérique lcs à une instance existante de Red Hat Enterprise Linux.

17.3.1. Ajout d'un périphérique qeth

Le pilote de périphérique réseau qeth prend en charge les fonctionnalités OSA-Express en mode QDIO des systèmes System z, HiperSockets, LAN invités z/VM, et z/VM VSWITCH.
Le pilote de périphérique qeth attribue le même nom d'interface aux périphériques Ethernet et Hipersockets : enccw bus_ID. L'ID de bus est composée de l'ID de sous-système de canal, d'un sous-canal set ID et du numéro de périphérique, par exemple enccw0.0.0a00.

17.3.1.1. Ajout dynamique d'un périphérique qeth

Pour ajouter un périphérique qeth de manière dynamique, procédez aux étapes suivantes :
  1. Déterminez si les modules de pilote de périphérique qeth sont chargés. L'exemple suivant montre des modules qeth chargés :
    # lsmod | grep qeth
    qeth_l3                  127056  9
    qeth_l2                   73008  3
    ipv6                  492872  155ip6t_REJECT,nf_conntrack_ipv6,qeth_l3
    qeth                  115808  2 qeth_l3,qeth_l2
    qdio                   68240  1 qeth
    ccwgroup               12112  2 qeth
    Si la sortie de la commande lsmod montre que les modules qeth ne sont pas chargés, exécutez la commande modprobe pour les charger :
    # modprobe qeth
  2. Utilisez cio_ignore afin de supprimer les canaux réseau de la liste des périphériques ignorés et pour les rendre visibles à Linux :
    # cio_ignore -r read_device_bus_id,write_device_bus_id,data_device_bus_id
    Remplacez read_device_bus_id, write_device_bus_id, data_device_bus_id par trois ID de bus de périphérique représentant un périphérique réseau. Par exemple, si read_device_bus_id est 0.0.f500, le write_device_bus_id est 0.0.f501 et le data_device_bus_id est 0.0.f502 :
    # cio_ignore -r 0.0.f500,0.0.f501,0.0.f502
  3. Veuillez utiliser lznetconf pour détecter et répertorier les configurations candidates des périphériques réseau :
    # znetconf -u
    Scanning for network devices...
    Device IDs                 Type    Card Type      CHPID Drv. 
    ------------------------------------------------------------
    0.0.f500,0.0.f501,0.0.f502 1731/01 OSA (QDIO)        00 qeth 
    0.0.f503,0.0.f504,0.0.f505 1731/01 OSA (QDIO)        01 qeth 
    0.0.0400,0.0.0401,0.0.0402 1731/05 HiperSockets      02 qeth
  4. Sélectionnez la configuration avec laquelle vous souhaitez travailler, puis utilisez znetconf pour appliquer la configuration et mettre le périphérique groupe configuré en ligne en tant que périphérique réseau.
    # znetconf -a f500
    Scanning for network devices...
    Successfully configured device 0.0.f500 (enccw0.0.f500)
  5. Optionnellement, vous pouvez aussi passer des arguments configurés sur le périphérique groupe avant que celui-ci ne soit mis en ligne :
    # znetconf -a f500 -o portname=myname
    Scanning for network devices...
    Successfully configured device 0.0.f500 (enccw0.0.f500)
    Vous pouvez maintenant continuer avec la configuration de l'interface réseau enccw0.0.f500.
Alternativement, vous pouvez utiliser les attributs sysfs afin de paramétrer le périphérique en ligne comme suit :
  1. Créez 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
    Par exemple :
    # echo 0.0.f500,0.0.f501,0.0.f502 > /sys/bus/ccwgroup/drivers/qeth/group
  2. Vérifiez ensuite que le périphérique de groupe qeth a été correctement créé en cherchant le canal de lecture :
    # ls /sys/bus/ccwgroup/drivers/qeth/0.0.f500
    Vous pouvez également définir des paramètres et fonctions supplémentaires, selon la manière dont vous configurez votre système et les fonctions dont vous avez besoin. Par exemple :
    • portno
    • layer2
    • portname
  3. Mettez le périphérique en ligne en écrivant 1 sur l'attribut sysfs en ligne :
    # echo 1 > /sys/bus/ccwgroup/drivers/qeth/0.0.f500/online
  4. Puis vérifiez l'état du périphérique :
    # cat /sys/bus/ccwgroup/drivers/qeth/0.0.f500/online
    1
    Une valeur de retour 1 indique que le périphérique est en ligne, tandis qu'une valeur de retour 0 indique que le périphérique est hors-ligne.
  5. Trouvez le nom de l'interface qui a été assignée au périphérique :
    # cat /sys/bus/ccwgroup/drivers/qeth/0.0.f500/if_name
    enccw0.0.f500
    Vous pouvez maintenant continuer avec la configuration de l'interface réseau enccw0.0.f500.
    La commande suivante du paquet s390utils affiche les paramètres les plus importants de votre périphérique qeth :
    # lsqeth enccw0.0.f500
    Device name                     : enccw0.0.f500                
    -------------------------------------------------
            card_type               : OSD_1000
            cdev0                   : 0.0.f500
            cdev1                   : 0.0.f501
            cdev2                   : 0.0.f502
            chpid                   : 76
            online                  : 1
            portname                : OSAPORT
            portno                  : 0
            state                   : UP (LAN ONLINE)
            priority_queueing       : always queue 0
            buffer_count            : 16
            layer2                  : 1
            isolation               : none

17.3.1.2. Suppression dynamique d'un périphérique qeth

Pour supprimer un périphérique qeth utiliser znetconf. Par exemple :
  1. Utilisez znetconf pour voir tous les périphériques réseau configurés :
    znetconf -c
    Device IDs                 Type    Card Type      CHPID Drv. Name        	State  
    --------------------------------------------------------------------------------------
    0.0.8036,0.0.8037,0.0.8038 1731/05 HiperSockets      FB qeth hsi1        	online 
    0.0.f5f0,0.0.f5f1,0.0.f5f2 1731/01 OSD_1000          76 qeth enccw0.0.09a0      online 
    0.0.f500,0.0.f501,0.0.f502 1731/01 GuestLAN QDIO     00 qeth enccw0.0.f500      online
  2. Sélectionnez le périphérique réseau à supprimer et exécutez znetconf afin de mettre le périphérique hors-ligne et de dégrouper le périphérique de groupe ccw>.
    # znetconf -r f500
    Remove network device 0.0.f500 (0.0.f500,0.0.f501,0.0.f502)?
    Warning: this may affect network connectivity!
    Do you want to continue (y/n)?y
    Successfully removed device 0.0.f500 (enccw0.0.f500)
  3. Vérifiez si la suppression a été effective :
    znetconf -c
    Device IDs                 Type    Card Type      CHPID Drv. Name        	State  
    --------------------------------------------------------------------------------------
    0.0.8036,0.0.8037,0.0.8038 1731/05 HiperSockets      FB qeth hsi1        	online 
    0.0.f5f0,0.0.f5f1,0.0.f5f2 1731/01 OSD_1000          76 qeth enccw0.0.09a0      online

17.3.1.3. Ajout persistant d'un périphérique qeth

Pour rendre votre nouveau périphérique qeth persistant, vous devrez créer le fichier de configuration pour votre nouvelle interface. Les fichiers de configuration des interfaces réseau se trouvent dans le répertoire /etc/sysconfig/network-scripts/.
Les fichiers de configuration réseau utilisent la convention de nommage ifcfg-device, où device correspond à la valeur trouvée dans le fichier if_name du périphérique de groupe qeth créé auparavant. Dans cet exemple, il s'agit de eth1. L'utilitaire cio_ignore est géré de manière transparente pour les configurations persistantes de périphériques et vous n'aurez pas besoin de libérer de périphériques de la liste Ignorer manuellement.
S'il existe déjà un fichier de configuration du même type pour un autre périphérique, la solution la plus simple est de le copier sous le nouveau nom et de l'éditer :
# cd /etc/sysconfig/network-scripts
# cp ifcfg-enccw0.0.09a0 ifcfg-enccw0.0.0600
Pour connaître les ID de vos périphériques de réseau, utiliser lsqeth :
# lsqeth -p
devices                    CHPID interface        cardtype       port chksum prio-q'ing rtr4 rtr6 lay'2 cnt
-------------------------- ----- ---------------- -------------- ---- ------ ---------- ---- ---- ----- -----
0.0.09a0/0.0.09a1/0.0.09a2 x00   enccw0.0.09a0    Virt.NIC QDIO  0    sw     always_q_2 n/a  n/a  1     64  
0.0.0600/0.0.0601/0.0.0602 x00   enccw0.0.0600    Virt.NIC QDIO  0    sw     always_q_2 n/a  n/a  1     64
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 /etc/sysconfig/network-scripts/ifcfg-0.0.09a0 comme modèle.
# IBM QETH
DEVICE=enccw0.0.09a0
BOOTPROTO=static
IPADDR=10.12.20.136
NETMASK=255.255.255.0
ONBOOT=yes
NETTYPE=qeth
SUBCHANNELS=0.0.09a0,0.0.09a1,0.0.09a2
PORTNAME=OSAPORT
OPTIONS='layer2=1 portno=0'
MACADDR=02:00:00:23:65:1a
TYPE=Ethernet
Éditez le nouveau fichier ifcfg-0.0.0600 comme suit :
  1. Modifiez l'instruction DEVICE afin de refléter le contenu du fichier if_name de votre ccw.
  2. Modifiez l'instruction IPADDR afin de refléter l'adresse IP de votre nouvelle interface.
  3. Modifiez l'instruction NETMASK si nécessaire.
  4. Si vous souhaitez que votre nouvelle interface soit activée au démarrage, assurez-vous que ONBOOT est réglé sur yes.
  5. Assurez-vous que l'instruction SUBCHANNELS correspond aux adresses matérielles de votre périphérique qeth.
  6. Modifiez l'instruction PORTNAME ou laissez-la de côté si elle n'est pas nécessaire à votre environnement.
  7. Vous pouvez ajouter tout attribut sysfs valide et sa valeur au paramètre OPTIONS. L'installateur Red Hat Enterprise Linux utilise actuellement ceci afin de configurer le mode « layer » (layer2) et le numéro de port relatif (portno) des périphériques qeth.
    Le défaut du pilote de périphérique qeth pour les périphériques OSA est maintenant le mode layer 2. Pour continuer d'utiliser les anciennes définitions d'ifcfg reposant sur le défaut du mode layer 3, ajoutez layer2=0 au paramètre OPTIONS.
/etc/sysconfig/network-scripts/ifcfg-0.0.0600
# IBM QETH
DEVICE=enccw0.0.0600
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
PORTNAME=OSAPORT
OPTIONS='layer2=1 portno=0'
MACADDR=02:00:00:b3:84:ef
TYPE=Ethernet
Les modifications apportées à un fichier ifcfg ne peuvent prendre effet qu'après un redémarrage ou après l'ajout dynamique de nouveaux canaux de périphériques réseau en changeant la configuration d'E/S du système (par exemple, en attachant sous z/VM). Alternativement, vous pouvez aussi déclencher l'activation d'un fichier ifcfg pour les canaux réseau qui n'étaient pas actifs auparavant en exécutant les commandes suivantes :
  1. Utilisez cio_ignore afin de supprimer les canaux réseau de la liste des périphériques ignorés et pour les rendre visibles à Linux :
    # cio_ignore -r read_device_bus_id,write_device_bus_id,data_device_bus_id
    Remplacez read_device_bus_id, write_device_bus_id, data_device_bus_id par trois ID de bus de périphérique représentant un périphérique réseau. Par exemple, si le read_device_bus_id est 0.0.0600, le write_device_bus_id est 0.0.0601 et le data_device_bus_id est 0.0.0602 :
    # cio_ignore -r 0.0.0600,0.0.0601,0.0.0602
  2. Pour déclencher l'événement uevent qui active la modification, exécutez :
    echo add > /sys/bus/ccw/devices/read-channel/uevent
    Par exemple :
    echo add > /sys/bus/ccw/devices/0.0.0600/uevent
  3. Vérifiez le statut du périphérique réseau :
    # lsqeth
  4. Vous pouvez maintenant démarrer la nouvelle interface :
    # ifup enccw0.0.0600
  5. Vérifiez le statut de l'interface :
    # ifconfig enccw0.0.0600
    enccw0.0.0600     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)
  6. 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 enccw0.0.0600
    10.1.20.0       *               255.255.255.0  U     0      0      0 enccw0.0.09a0
    default         10.1.20.1       0.0.0.0        UG    0      0      0 enccw0.0.09a0
  7. Vérifiez vos modifications à l'aide de la commande ping pour envoyer un ping vers la passerelle ou vers un autre hôte sur le sous-réseau du nouveau périphérique :
    # 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
  8. Si les informations de route par défaut ont changées, vous devez également mettre à jour /etc/sysconfig/network.

17.3.2. Ajout d'un périphérique LCS

Le pilote de périphérique LAN channel station (ou LCS) prend en charge l'Ethernet 1000Base-T sur les fonctions OSA-Express2 et OSA-Express 3.
Le pilote de périphérique LCS attribue le même nom d'interface aux périphériques Ethernet OSA_Express Fast et Gigabit Ethernet: enccw bus_ID. L'ID de bus est composée de l'ID de sous-système de canal, d'un sous-canal set ID et du numéro de périphérique, par exemple enccw0.0.0a00.

17.3.2.1. Ajout dynamique d'un périphérique LCS

  1. Chargement du pilote de périphériques :
    # modprobe lcs
  2. Utilisez cio_ignore afin de supprimer les canaux réseau de la liste des périphériques ignorés et pour les rendre visibles à Linux :
    # cio_ignore -r read_device_bus_id,write_device_bus_id
    Remplacez read_device_bus_id et write_device_bus_id par les deux ID de bus de périphérique représentant un périphérique réseau. Par exemple :
    # cio_ignore -r 0.0.09a0,0.0.09a1
  3. Création du périphérique de groupe
    # echo read_device_bus_id,write_device_bus_id > /sys/bus/ccwgroup/drivers/lcs/group
  4. Configurez le 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 une commande similaire à celle qui suit :
    # echo portno > /sys/bus/ccwgroup/drivers/lcs/device_bus_id/portno
    Remplacez portno par le numéro de port que vous souhaitez utiliser.
  5. Mise en ligne du périphérique
    # echo 1 > /sys/bus/ccwgroup/drivers/lcs/read_device_bus_id/online
  6. Pour trouver quel nom de périphérique réseau a été assigné, saisissez la commande suivante :
    # ls -l /sys/bus/ccwgroup/drivers/lcs/read_device_bus_ID/net/
    drwxr-xr-x 4 root root 0 2010-04-22 16:54 enccw0.0.0600

17.3.2.2. Ajout persistant d'un périphérique LCS

cio_ignore est géré de manière transparente pour les configurations persistantes de périphériques et vous n'avez pas besoin de libérer de périphériques de la liste Ignorer manuellement.
Pour ajouter un périphérique LCS de manière persistante, procédez aux étapes suivantes :
  1. Créer un script de configuration en tant que fichier dans /etc/sysconfig/network-scripts/ avec un nom comme ifcfg-device, device correspondant à la valeur trouvée dans le fichier if_name dans le groupe de périphériques qeth créé plus tôt, par exemple enccw0.0.09a0. Le fichier doit ressembler à ce qui suit :
    /etc/sysconfig/network-scripts/ifcfg-enccw0.0.09a0
    # IBM LCS
    DEVICE=enccw0.0.09a0
    BOOTPROTO=static
    IPADDR=10.12.20.136
    NETMASK=255.255.255.0
    ONBOOT=yes
    NETTYPE=lcs
    SUBCHANNELS=0.0.09a0,0.0.09a1
    PORTNAME=0
    OPTIONS=''
    TYPE=Ethernet
  2. Modifiez la valeur de PORTNAME afin de refléter le numéro du port LCS (portno) que vous souhaiteriez utiliser. Vous pouvez ajouter tout attribut sysfs lcs valide ainsi que sa valeur au paramètre optionnel OPTIONS. Voir la Section 17.3.1.3, « Ajout persistant d'un périphérique qeth » pour connaître la syntaxe.
  3. Définissez le paramètre DEVICE comme suit :
    DEVICE=enccwbus_ID
  4. Exécutez la commande ifup pour activer le périphérique :
    # ifup enccwbus_ID
Les modifications apportées à un fichier ifcfg ne prennent effet qu'après le redémarrage du système. Vous pouvez déclencher l'activation d'un fichier ifcfg pour des canaux de réseau en exécutant les commandes suivantes :
  1. Utilisez cio_ignore pour supprimer l'adaptateur du périphérique réseau de la liste des périphériques ignorés et pour le rendre visible à Linux :
    # cio_ignore -r read_device_bus_id,write_device_bus_id
    Remplacez read_device_bus_id et write_device_bus_id par les ID de bus de périphérique du périphérique LCS. Par exemple :
    # cio_ignore -r 0.0.09a0,0.0.09a1
  2. Pour déclencher l'événement uevent qui active la modification, exécutez :
    echo add > /sys/bus/ccw/devices/read-channel/uevent
    Par exemple :
    echo add > /sys/bus/ccw/devices/0.0.09a0/uevent 

17.3.3. Configurer un périphérique réseau System z pour un système de fichiers racine de réseau

Pour ajouter un périphérique réseau requis pour pouvoir accéder au système de fichiers racine, vous n'avez qu'à changer les options de démarrage. Les options de démarrage peuvent être dans un fichier de paramètres (voir le Chapitre 18, Fichiers de paramètres et de configuration dans IBM System z), ou faire partie de zipl.conf sur un DASD ou un LUN SCSI attaché via FCP préparé avec le chargeur de démarrage zipl. Il n'est pas nécessaire de recréer l'initramfs.
Dracut (qui succède à mkinitrd en offrant une fonctionnalité dans l'initramfs qui, à son tour, remplace initrd) fournit un paramètre de démarrage pour activer les périphériques réseau sur System z au début du processus de démarrage : rd_znet=.
Comme entrée, ce paramètre accepte une liste, séparée des virgules, des ID de bus périphérique NETTYPE (qeth, lcs, ctc), deux (lcs, ctc) ou trois (qeth), ainsi que des paramètres supplémentaires optionnels qui sont composés de paires clé-valeur correspondant aux attributs sysfs du périphérique réseau. Ce paramètre configure et active le matériel réseau System z. La configuration des adresses IP et d'autres spécifications de réseau fonctionne de la même manière que sur d'autres plateformes. Pour obtenir plus d'informations, consulter la documentation de dracut.
cio_ignore pour les canaux réseau est géré de manière transparente lors du démarrage.
Exemple d'options de démarrage pour un système de fichiers racine accédé sur le réseau via NFS :
root=10.16.105.196:/nfs/nfs_root cio_ignore=all,!condev rd.znet=qeth,0.0.0a00,0.0.0a01,0.0.0a02,layer2=1,portno=0,portname=OSAPORT ip=10.16.105.197:10.16.105.196:10.16.111.254:255.255.248.0:nfs‑server.subdomain.domain:enccw0.0.09a0:none rd_NO_LUKS rd_NO_LVM rd_NO_MD rd_NO_DM LANG=en_US.UTF-8 SYSFONT=latarcyrheb-sun16 KEYTABLE=us