25.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 25.3.1, « Ajout d'un périphérique qeth » décrit comment ajouter un périphérique qeth à une instance existante de Red Hat Enterprise Linux. Section 25.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. Section 25.3.3, « Procéder au mappage des sous-canaux et des noms de périphériques réseau » décrit à quel point les noms de périphériques réseau sont persistants. Section 25.3.4, « Configurer un périphérique réseau System z pour un système de fichiers racine de réseau » décrit comment configurer un périphérique réseau à utiliser avec un système de fichiers du noyau uniquement accessible à partir du réseau.

25.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.
Selon le type d'interface ajoutée, le pilote de périphérique qeth assigne l'un des noms d'interface de base suivants :
  • hsin pour les périphériques HiperSocket
  • ethn pour les fonctionnalités Ethernet
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.

25.3.1.1. Ajouter un périphérique qeth de manière dynamique

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 la commande 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 la commande znetconf 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 travaille, 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 (eth1)
  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 (eth1)
    Vous pouvez maintenant continuer avec la configuration de l'interface réseau eth1.
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
    Pour plus d'informations sur les paramètres supplémentaires, reportez-vous au chapitre sur le pilote de périphérique qeth dans Linux on System z Device Drivers, Features, and Commands on Red Hat Enterprise Linux 6.
  3. Mettez le périphérique en ligne en écrivant 1 sur l'attibut 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
    eth1
    Vous pouvez maintenant continuer avec la configuration de l'interface réseau eth1.
    La commande suivante du paquetage s390utils affiche les paramètres les plus importants de votre périphérique qeth :
    # lsqeth eth1
    Device name                     : eth1                
    ---------------------------------------------
            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

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

Pour supprimer un périphérique qeth, utilisez l'outil znetconf. Par exemple :
  1. Utilisez la commande 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 eth0        online 
    0.0.f500,0.0.f501,0.0.f502 1731/01 GuestLAN QDIO     00 qeth eth1        online
  2. Sélectionnez le périphérique réseau à supprimer et lancez 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 (eth1)
  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 eth0        online

25.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 /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. 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.
# 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
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-eth1 comme suit :
  1. Modifiez l'instruction DEVICE afin de refléter le contenu du fichier if_name de votre ccwgroup.
  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-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
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 la commande 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 eth1
  5. 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)
  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 eth1
    10.1.20.0       *               255.255.255.0  U     0      0      0 eth0
    default         10.1.20.1       0.0.0.0        UG    0      0      0 eth0
  7. Vérifiez vos modifications a 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.