17.3. Hinzufügen eines Netzwerkgeräts
Module für Netzwerkgerätetreiber werden automatisch von udev geladen.
Sie können eine Netzwerkschnittstelle auf IBM System z dynamisch oder persistent hinzufügen.
- Dynamisch
- Laden Sie den Gerätetreiber.
- Entfernen Sie die Netzwerkgeräte aus der Liste der ignorierten Geräte.
- Erstellen Sie das Gruppengerät.
- Konfigurieren Sie das Gerät.
- Stellen Sie das Gerät online.
- Persistent
- Erstellen Sie ein Konfigurationsskript.
- Aktivieren Sie die Schnittstelle.
Die folgenden Abschnitte liefern grundlegende Informationen für jede Aufgabe für alle IBM System z-Netzwerkgerätetreiber. In Abschnitt 17.3.1, »Hinzufügen eines
qeth
-Geräts« wird beschrieben, wie ein qeth-Gerät zu einer vorhandenen Instanz von Red Hat Enterprise Linux hinzugefügt wird. In Abschnitt 17.3.2, »Hinzufügen eines LCS-Geräts« wird beschrieben, wie ein LCS-Gerät zu einer vorhandenen Instanz von Red Hat Enterprise Linux hinzugefügt wird.
17.3.1. Hinzufügen eines qeth
-Geräts
Der
qeth
-Netzwerkgerätetreiber unterstützt System z OSA-Express-Features in QDIO-Modus, HiperSockets, z/VM-Gast-LAN und z/VM-VSWITCH.
Der
qeth
-Gerätetreiber weist denselben Schnittstellennamen für Ethernet- und Hipersockets-Geräte zu: enccw
bus_ID. Die Bus-ID besteht aus der Channel-Subsystem-ID, Subchannel-Set-ID und der Gerätenummer, z. B. enccw0.0.0a00
.
17.3.1.1. qeth
-Gerät dynamisch hinzufügen
Um ein
qeth
-Gerät dynamisch hinzuzufügen, führen Sie die folgenden Schritte aus:
- Ermitteln Sie, ob die Module des
qeth
-Gerätetreibers geladen wurden. Nachfolgendes Beispiel zeigt geladeneqeth
-Module:# 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
Falls die Ausgabe deslsmod
-Befehls zeigt, dass dieqeth
-Module nicht geladen wurden, führen Sie den Befehlmodprobe
aus, um sie zu laden:# modprobe qeth
- Verwenden Sie das Dienstprogramm
cio_ignore
, um die Netzwerkchannel aus der Liste der ignorierten Geräte zu entfernen und sie für Linux sichtbar zu machen:# cio_ignore -r read_device_bus_id,write_device_bus_id,data_device_bus_id
Ersetzen Sie read_device_bus_id, write_device_bus_id und data_device_bus_id durch die drei Geräte-Bus-IDs, die ein Netzwerkgerät repräsentieren. Wenn beispielsweise read_device_bus_id0.0.f500
ist, dann ist write_device_bus_id0.0.f501
und data_device_bus_id0.0.f502
:# cio_ignore -r 0.0.f500,0.0.f501,0.0.f502
- Verwenden Sie das Dienstprogramm znetconf, um Konfigurationen für Netzwerkgeräte auszumachen und aufzulisten:
# 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
- Wählen Sie die Konfiguration aus, mit der Sie arbeiten möchten, und verwenden Sie znetconf, um die Konfiguration anzuwenden und das konfigurierte Gruppengerät als Netzwerkgerät online zu stellen.
# znetconf -a f500 Scanning for network devices... Successfully configured device 0.0.f500 (enccw0.0.f500)
- Optional können Sie auch für das Gruppengerät konfigurierte Argumente übergeben, bevor das Gerät online gestellt wird:
# znetconf -a f500 -o portname=myname Scanning for network devices... Successfully configured device 0.0.f500 (enccw0.0.f500)
Nun können Sie mit der Konfiguration der Netzwerkschnittstelleenccw0.0.f500
fortfahren.
Alternativ können Sie die
sysfs
-Attribute verwenden, um das Gerät wie folgt online zu stellen:
- Erstellen Sie ein
qeth
-Gruppengerät:# echo read_device_bus_id,write_device_bus_id,data_device_bus_id > /sys/bus/ccwgroup/drivers/qeth/group
Zum Beispiel:# echo 0.0.f500,0.0.f501,0.0.f502 > /sys/bus/ccwgroup/drivers/qeth/group
- Vergewissern Sie sich als Nächstes, dass das
qeth
-Gruppengerät ordnungsgemäß erstellt wurde, indem Sie nach dem Read-Channel suchen:# ls /sys/bus/ccwgroup/drivers/qeth/0.0.f500
Sie können optional zusätzliche Parameter und Features festlegen abhängig von der Art und Weise, wie Sie Ihr System einrichten, und von den Features, die Sie benötigen, wie z. B.:portno
layer2
portname
- Stellen Sie das Gerät online, indem Sie
1
in das onlinesysfs
-Attribut schreiben:# echo 1 > /sys/bus/ccwgroup/drivers/qeth/0.0.f500/online
- Überprüfen Sie anschließend den Status des Geräts:
# cat /sys/bus/ccwgroup/drivers/qeth/0.0.f500/online
1
Ein Rückgabewert von1
zeigt an, dass das Gerät online ist, während ein Rückgabewert von0
anzeigt, dass das Gerät offline ist. - Finden Sie den Namen der Schnittstelle heraus, die dem Gerät zugewiesen wurde:
# cat /sys/bus/ccwgroup/drivers/qeth/0.0.f500/if_name
enccw0.0.f500
Nun können Sie mit der Konfiguration der Netzwerkschnittstelleenccw0.0.f500
fortfahren.Der folgende Befehl aus dem s390utils-Paket zeigt die wichtigsten Einstellungen Ihresqeth
-Geräts an:# 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. qeth-Gerät dynamisch entfernen
Um ein
qeth
-Gerät zu entfernen, verwenden Sie das znetconf-Dienstprogramm. Zum Beipiel:
- Verwenden Sie das Dienstprogramm
znetconf
, um alle konfigurierten Netzwerkgeräte anzuzeigen: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
- Wählen Sie das Netzwerkgerät, das entfernt werden soll und führen Sie
znetconf
aus, um das Gerät offline zu nehmen und dasccw
-Gruppengerät aufzulösen.# 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)
- Überprüfen Sie das erfolgreiche Entfernen:
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. qeth
-Gerät persistent hinzufügen
Um Ihr neues
qeth
-Gerät persistent zu machen, müssen Sie eine Konfigurationsdatei für Ihre neue Schnittstelle erstellen. Die Konfigurationsdateien für Netzwerkschnittstellen befinden sich im Verzeichnis /etc/sysconfig/network-scripts/
.
Die Dateien für die Netzwerkkonfiguration verwenden die Namenskonvention
ifcfg-device
, wobei device der Wert ist, der sich in der Datei if_name
im zuvor erstellten qeth
-Gruppengerät befindet, zum Beispiel enccw0.0.09a0
. Die cio_ignore
-Befehle werden transparent für persistente Gerätekonfigurationen gehandhabt und Sie brauchen Geräte aus der ignore-Liste nicht manuell freizugeben.
Falls eine Konfigurationsdatei für ein anderes Gerät mit demselben Typ bereits existiert, ist es am einfachsten, diese Datei mit einem neuen Namen zu kopieren und dann zu bearbeiten:
# cd /etc/sysconfig/network-scripts # cp ifcfg-enccw0.0.09a0 ifcfg-enccw0.0.0600
Verwenden Sie das Dienstprogramm lsqeth, um die IDs Ihrer Netzwerkgeräte herauszufinden:
# 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
Falls Sie kein ähnliches Gerät definiert haben, müssen Sie eine neue Datei erstellen. Verwenden Sie dieses Beispiel für
/etc/sysconfig/network-scripts/ifcfg-0.0.09a0
als Vorlage:
# 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
Bearbeiten Sie die neue
ifcfg-0.0.0600
-Datei wie folgt:
- Bearbeiten Sie die
DEVICE
-Anweisung entsprechend der Inhalte der Dateiif_name
aus Ihrerccw
-Gruppe. - Bearbeiten Sie die
IPADDR
-Anweisung entsprechend der IP-Adresse Ihrer neuen Schnittstelle. - Bearbeiten Sie die
NETMASK
-Anweisung nach Bedarf. - Falls die neue Schnittstelle zum Zeitpunkt des Bootens aktiviert werden soll, stellen Sie sicher, dass
ONBOOT
aufyes
gesetzt ist. - Stellen Sie sicher, dass die
SUBCHANNELS
-Anweisung den Hardwareadressen für Ihr qeth-Gerät entspricht. - Bearbeiten Sie die
PORTNAME
-Anweisung oder lassen Sie sie weg, falls sie in Ihrer Umgebung nicht notwendig ist. - Sie können jedes gültige
sysfs
-Attribut und dessen Wert zumOPTIONS
-Parameter hinzufügen. Das Red Hat Enterprise Linux-Installationsprogramm verwendet diesen zur Konfiguration des Layer-Modus (layer2
) und der dazugehörigen Portnummer (portno
) vonqeth
-Geräten.Derqeth
-Gerätetreiberstandard für OSA-Geräte ist nun Layer-2-Modus. Um weiterhin alteifcfg
-Definitionen zu verwenden, die auf dem vorherigen standardmäßigen Layer-3-Modus basieren, fügen Sielayer2=0
zumOPTIONS
-Parameter hinzu.
/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
Änderungen an einer
ifcfg
-Datei werden nur nach einem Neustart des Systems oder nach dynamischen Hinzufügen von neuen Netzwerkgeräte-Channels durch Änderung der I/O-Konfiguration des Systems (z. B. durch Anhängen unter z/VM) wirksam. Alternativ können Sie die Aktivierung einer ifcfg
-Datei für zuvor inaktive Netzwerkchannels initiieren, indem Sie die folgenden Befehle ausführen:
- Verwenden Sie das Dienstprogramm
cio_ignore
, um die Netzwerkchannel aus der Liste der ignorierten Geräte zu entfernen und sie für Linux sichtbar zu machen:# cio_ignore -r read_device_bus_id,write_device_bus_id,data_device_bus_id
Ersetzen Sie read_device_bus_id, write_device_bus_id und data_device_bus_id durch die drei Geräte-Bus-IDs, die ein Netzwerkgerät repräsentieren. Wenn beispielsweise read_device_bus_id0.0.0600
ist, dann ist write_device_bus_id0.0.0601
und data_device_bus_id0.0.0602
:# cio_ignore -r 0.0.0600,0.0.0601,0.0.0602
- Führen Sie Folgendes aus, um uevent zu initiieren, welches die Änderung aktiviert:
echo add > /sys/bus/ccw/devices/read-channel/uevent
Zum Beispiel:echo add > /sys/bus/ccw/devices/0.0.0600/uevent
- Überprüfen Sie den Status des Netzwerkgeräts:
# lsqeth
- Starten Sie jetzt die neue Schnittstelle:
# ifup enccw0.0.0600
- Überprüfen Sie den Status der Schnittstelle:
# 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)
- Überprüfen Sie das Routing für die neue Schnittstelle:
# 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
- Verifizieren Sie Ihre Änderungen, in dem Sie das
ping
-Dienstprogramm verwenden, um das Gateway oder einen anderen Host im Subnetz des neuen Geräts anzupingen:# 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
- Wenn die Standardroute sich geändert hat, müssen Sie auch
/etc/sysconfig/network
entsprechend aktualisieren.
17.3.2. Hinzufügen eines LCS-Geräts
Der LAN Channel Station (LCS)-Gerätetreiber unterstützt 1000Base-T Ethernet auf den OSA-Express2 und OSA-Express 3 Features.
Der
LCS
-Gerätetreiber weist den folgenden Schnittstellennamen für OSA-Express-Fast-Ethernet und Gigabit-Ethernet-Geräte zu: enccw
bus_ID. Die Bus-ID besteht aus der Channel-Subsystem-ID, Subchannel-Set-ID und der Gerätenummer, z. B. enccw0.0.0a00
.
17.3.2.1. LCS-Gerät dynamisch hinzufügen
- Laden Sie den Gerätetreiber:
# modprobe lcs
- Verwenden Sie das Dienstprogramm
cio_ignore
, um die Netzwerkchannel aus der Liste der ignorierten Geräte zu entfernen und sie für Linux sichtbar zu machen:# cio_ignore -r read_device_bus_id,write_device_bus_id
Ersetzen Sie read_device_bus_id und write_device_bus_id durch die beiden Geräte-Bus-IDs, die ein Netzwerkgerät repräsentieren. Zum Beispiel:# cio_ignore -r 0.0.09a0,0.0.09a1
- Erstellen Sie das Gruppengerät:
# echo read_device_bus_id,write_device_bus_id > /sys/bus/ccwgroup/drivers/lcs/group
- Konfigurieren Sie das Gerät. OSA-Karten können bis zu 16 Ports für einen einzelnen CHPID liefern. Standardmäßig verwendet das LCS-Gruppengerät Port
0
. Geben Sie einen Befehl ähnlich dem folgenden ein, um einen andern Port zu verwenden:# echo portno > /sys/bus/ccwgroup/drivers/lcs/device_bus_id/portno
Ersetzen Sie portno durch die Portnummer, die Sie verwenden möchten. - Stellen Sie das Gerät online:
# echo 1 > /sys/bus/ccwgroup/drivers/lcs/read_device_bus_id/online
- Geben Sie folgenden Befehl ein, um herauszufinden, welcher Netzwerkgerätename zugewiesen wurde:
# 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. LCS-Gerät persistent hinzufügen
Die
cio_ignore
-Befehle werden transparent für persistente Gerätekonfigurationen gehandhabt und Sie brauchen Geräte aus der ignore-Liste nicht manuell freizugeben.
Führen Sie die folgenden Schritte aus, um ein LCS-Gerät persistent hinzuzufügen:
- Erstellen Sie ein Konfigurationsskript als Datei in
/etc/sysconfig/network-scripts/
mit einem Namen in der Formifcfg-device
, wobei device der Wert ist, der sich in der Dateiif_name
im zuvor erstelltenqeth
-Gruppengerät befindet, zum Beispielenccw0.0.09a0
. Die Datei sollte etwa wie folgt aussehen:/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
- Bearbeiten Sie den Wert von
PORTNAME
entsprechend der LCS-Portnummer (portno
), die Sie verwenden möchten. Sie können jedes beliebige lcs-sysfs-Attribut und dessen Wert zum optionalenOPTIONS
-Parameter hinzufügen. In Abschnitt 17.3.1.3, »qeth
-Gerät persistent hinzufügen« finden Sie Informationen zur Syntax. - Setzen Sie den
DEVICE
-Parameter wie folgt:DEVICE=enccwbus_ID
- Führen Sie einen
ifup
-Befehl aus, um das Gerät zu aktivieren:# ifup enccwbus_ID
Änderungen an einer
ifcfg
-Datei werden erst nach einem Neustart des Systems wirksam. Alternativ können Sie die Aktivierung einer ifcfg
-Datei für Netzwerkchannels initiieren, indem Sie die folgenden Befehle ausführen:
- Verwenden Sie das Dienstprogramm
cio_ignore
, um den LCS-Geräteadapter aus der Liste der ignorierten Geräte zu entfernen und für Linux sichtbar zu machen:# cio_ignore -r read_device_bus_id,write_device_bus_id
Ersetzen Sie read_device_bus_id und write_device_bus_id durch die Geräte-Bus-IDs des LCS-Geräts. Zum Beispiel:# cio_ignore -r 0.0.09a0,0.0.09a1
- Führen Sie Folgendes aus, um uevent zu initiieren, welches die Änderung aktiviert:
echo add > /sys/bus/ccw/devices/read-channel/uevent
Zum Beispiel:echo add > /sys/bus/ccw/devices/0.0.09a0/uevent
17.3.3. Konfigurieren eines System z-Netzwerkgeräts für das Netzwerk-Root-Dateisystem
Um ein Netzwerkgerät hinzuzufügen, das auf das Root-Dateisystem zugreifen können muss, müssen Sie lediglich die Bootoptionen ändern. Die Bootoptionen können sich in einer Parameterdatei befinden (siehe Kapitel 18, Parameter- und Konfigurationsdateien auf IBM System z) oder Teil einer
zipl.conf
-Datei auf einem DASD oder einer FCP-angehängten SCSI-LUN sein, die mit dem zipl-Bootloader eingerichtet wurden. Es ist nicht notwendig, das initramfs neu zu erstellen.
Dracut, der Nachfolger von mkinitrd, der die Funktionalität im initramfs liefert, das wiederum initrd ersetzt, liefert einen Bootparameter zu Aktivierung von Netzwerkgeräten unter System z zu einem frühen Zeitpunkt im Bootvorgang:
rd.znet=
Als Eingabe verwendet dieser Parameter eine kommagetrennte Liste von
NETTYPE
(qeth, lcs, ctc), zwei (lcs, ctc) oder drei (qeth) Geräte-Bus-IDs und optional zusätzliche Parameter, die aus Schlüssel-Wert-Paaren bestehen, die den sysfs-Attributen des Netzwerkgeräts entsprechen. Dieser Parameter konfiguriert und aktiviert die Netzwerkhardware des System z. Die Konfiguration von IP-Adressen und sonstigen netzwerkspezifischen Einstellungen funktionieren so wie für andere Plattformen. Werfen Sie einen Blick auf die dracut-Dokumentation für weitere Details.
Die cio_ignore-Befehle für die Netzwerkchannels werden transparent beim Booten gehandhabt.
Beispielhafte Bootoptionen für ein Root-Dateisystem, auf das per NFS über das Netzwerk zugegriffen wird:
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