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
- Chargez le pilote de périphérique
- Supprimez les périphériques réseau de la liste des périphériques ignorés.
- Création du périphérique de groupe.
- Configuration du périphérique.
- Mise en ligne du périphérique.
- De manière persistante
- Création d'un script de configuration.
- 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 :
- Déterminez si les modules de pilote de périphérique
qeth
sont chargés. L'exemple suivant montre des modulesqeth
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 commandelsmod
montre que les modulesqeth
ne sont pas chargés, exécutez la commandemodprobe
pour les charger :# modprobe qeth
- 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 est0.0.f500
, le write_device_bus_id est0.0.f501
et le data_device_bus_id est0.0.f502
:# cio_ignore -r 0.0.f500,0.0.f501,0.0.f502
- 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
- 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)
- 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éseauenccw0.0.f500
.
Alternativement, vous pouvez utiliser les attributs
sysfs
afin de paramétrer le périphérique en ligne comme suit :
- 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
- 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
- Mettez le périphérique en ligne en écrivant
1
sur l'attributsysfs
en ligne :# echo 1 > /sys/bus/ccwgroup/drivers/qeth/0.0.f500/online
- Puis vérifiez l'état du périphérique :
# cat /sys/bus/ccwgroup/drivers/qeth/0.0.f500/online
1
Une valeur de retour1
indique que le périphérique est en ligne, tandis qu'une valeur de retour0
indique que le périphérique est hors-ligne. - 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éseauenccw0.0.f500
.La commande suivante du paquet s390utils affiche les paramètres les plus importants de votre périphériqueqeth
:# 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 :
- 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
- 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 groupeccw
>.# 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)
- 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 :
- Modifiez l'instruction
DEVICE
afin de refléter le contenu du fichierif_name
de votreccw
. - 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é suryes
. - Assurez-vous que l'instruction
SUBCHANNELS
correspond aux adresses matérielles de votre périphérique qeth. - Modifiez l'instruction
PORTNAME
ou laissez-la de côté si elle n'est pas nécessaire à votre environnement. - Vous pouvez ajouter tout attribut
sysfs
valide et sa valeur au paramètreOPTIONS
. 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ériquesqeth
.Le défaut du pilote de périphériqueqeth
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, ajoutezlayer2=0
au paramètreOPTIONS
.
/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 :
- 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 est0.0.0600
, le write_device_bus_id est0.0.0601
et le data_device_bus_id est0.0.0602
:# cio_ignore -r 0.0.0600,0.0.0601,0.0.0602
- 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
- Vérifiez le statut du périphérique réseau :
# lsqeth
- Vous pouvez maintenant démarrer la nouvelle interface :
# ifup enccw0.0.0600
- 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)
- 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
- 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
- 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
- Chargement du pilote de périphériques :
# modprobe lcs
- 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
- Création du périphérique de groupe
# echo read_device_bus_id,write_device_bus_id > /sys/bus/ccwgroup/drivers/lcs/group
- 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. - Mise en ligne du périphérique
# echo 1 > /sys/bus/ccwgroup/drivers/lcs/read_device_bus_id/online
- 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 :
- Créer un script de configuration en tant que fichier dans
/etc/sysconfig/network-scripts/
avec un nom commeifcfg-device
, device correspondant à la valeur trouvée dans le fichierif_name
dans le groupe de périphériquesqeth
créé plus tôt, par exempleenccw0.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
- 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 optionnelOPTIONS
. Voir la Section 17.3.1.3, « Ajout persistant d'un périphériqueqeth
» pour connaître la syntaxe. - Définissez le paramètre
DEVICE
comme suit :DEVICE=enccwbus_ID
- 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 :
- 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
- 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