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
    1. Laden Sie den Gerätetreiber.
    2. Entfernen Sie die Netzwerkgeräte aus der Liste der ignorierten Geräte.
    3. Erstellen Sie das Gruppengerät.
    4. Konfigurieren Sie das Gerät.
    5. Stellen Sie das Gerät online.
  • Persistent
    1. Erstellen Sie ein Konfigurationsskript.
    2. 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: enccwbus_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:
  1. Ermitteln Sie, ob die Module des qeth-Gerätetreibers geladen wurden. Nachfolgendes Beispiel zeigt geladene qeth-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 des lsmod-Befehls zeigt, dass die qeth-Module nicht geladen wurden, führen Sie den Befehl modprobe aus, um sie zu laden:
    # modprobe qeth
  2. 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_id 0.0.f500 ist, dann ist write_device_bus_id 0.0.f501 und data_device_bus_id 0.0.f502:
    # cio_ignore -r 0.0.f500,0.0.f501,0.0.f502
  3. 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
  4. 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)
  5. 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 Netzwerkschnittstelle enccw0.0.f500 fortfahren.
Alternativ können Sie die sysfs-Attribute verwenden, um das Gerät wie folgt online zu stellen:
  1. 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
  2. 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
  3. Stellen Sie das Gerät online, indem Sie 1 in das online sysfs-Attribut schreiben:
    # echo 1 > /sys/bus/ccwgroup/drivers/qeth/0.0.f500/online
  4. Überprüfen Sie anschließend den Status des Geräts:
    # cat /sys/bus/ccwgroup/drivers/qeth/0.0.f500/online
    1
    Ein Rückgabewert von 1 zeigt an, dass das Gerät online ist, während ein Rückgabewert von 0 anzeigt, dass das Gerät offline ist.
  5. 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 Netzwerkschnittstelle enccw0.0.f500 fortfahren.
    Der folgende Befehl aus dem s390utils-Paket zeigt die wichtigsten Einstellungen Ihres qeth-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:
  1. 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
  2. Wählen Sie das Netzwerkgerät, das entfernt werden soll und führen Sie znetconf aus, um das Gerät offline zu nehmen und das ccw-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)
  3. Ü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:
  1. Bearbeiten Sie die DEVICE-Anweisung entsprechend der Inhalte der Datei if_name aus Ihrer ccw-Gruppe.
  2. Bearbeiten Sie die IPADDR-Anweisung entsprechend der IP-Adresse Ihrer neuen Schnittstelle.
  3. Bearbeiten Sie die NETMASK-Anweisung nach Bedarf.
  4. Falls die neue Schnittstelle zum Zeitpunkt des Bootens aktiviert werden soll, stellen Sie sicher, dass ONBOOT auf yes gesetzt ist.
  5. Stellen Sie sicher, dass die SUBCHANNELS-Anweisung den Hardwareadressen für Ihr qeth-Gerät entspricht.
  6. Bearbeiten Sie die PORTNAME-Anweisung oder lassen Sie sie weg, falls sie in Ihrer Umgebung nicht notwendig ist.
  7. Sie können jedes gültige sysfs-Attribut und dessen Wert zum OPTIONS-Parameter hinzufügen. Das Red Hat Enterprise Linux-Installationsprogramm verwendet diesen zur Konfiguration des Layer-Modus (layer2) und der dazugehörigen Portnummer (portno) von qeth-Geräten.
    Der qeth-Gerätetreiberstandard für OSA-Geräte ist nun Layer-2-Modus. Um weiterhin alte ifcfg-Definitionen zu verwenden, die auf dem vorherigen standardmäßigen Layer-3-Modus basieren, fügen Sie layer2=0 zum OPTIONS-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:
  1. 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_id 0.0.0600 ist, dann ist write_device_bus_id 0.0.0601 und data_device_bus_id 0.0.0602:
    # cio_ignore -r 0.0.0600,0.0.0601,0.0.0602
  2. 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
  3. Überprüfen Sie den Status des Netzwerkgeräts:
    # lsqeth
  4. Starten Sie jetzt die neue Schnittstelle:
    # ifup enccw0.0.0600
  5. Ü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)
  6. Ü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
  7. 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
  8. 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: enccwbus_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

  1. Laden Sie den Gerätetreiber:
    # modprobe lcs
  2. 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
  3. Erstellen Sie das Gruppengerät:
    # echo read_device_bus_id,write_device_bus_id > /sys/bus/ccwgroup/drivers/lcs/group
  4. 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.
  5. Stellen Sie das Gerät online:
    # echo 1 > /sys/bus/ccwgroup/drivers/lcs/read_device_bus_id/online
  6. 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:
  1. Erstellen Sie ein Konfigurationsskript als Datei in /etc/sysconfig/network-scripts/ mit einem Namen in der Form 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 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
  2. 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 optionalen OPTIONS-Parameter hinzufügen. In Abschnitt 17.3.1.3, »qeth-Gerät persistent hinzufügen« finden Sie Informationen zur Syntax.
  3. Setzen Sie den DEVICE-Parameter wie folgt:
    DEVICE=enccwbus_ID
  4. 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:
  1. 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
  2. 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