25.3. Ein Netzwerkgerät hinzufügen

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 Gruppen-Gerät.
    4. Konfigurieren Sie das Gerät.
    5. Bringen Sie das Gerät online.
  • Persistent
    1. Erstellen Sie ein Konfigurations-Skript.
    2. Aktivieren Sie die Schnittstelle.
Die folgenden Abschnitte liefern Grundinformationen für jede Aufgabe von jedem IBM System z Netzwerkgerätetreiber. Unter Abschnitt 25.3.1, »Ein qeth-Gerät hinzufügen« wird beschrieben, wie ein qeth-Gerät zu einer existierenden Instanz von Red Hat Enterprise Linux hinzugefügt wird. Unter Abschnitt 25.3.2, »Ein LCS-Gerät hinzufügen« wird beschrieben, wie ein LCS-Gerät zu einer existierenden Instanz von Red Hat Enterprise Linux hinzugefügt wird. Unter Abschnitt 25.3.3, »Subchannels und Netzwerkgerätenamen zuweisen« wird beschrieben, wie persistente Netzwerkgerätenamen funktionieren. Unter Abschnitt 25.3.4, »Konfiguration eines System z Netzwerkgeräts für das Netzwerk Root-Dateisystem« wird beschrieben, wie ein Netzwerkgerät zur Verwendung mit einem Root-Dateisystem, auf das nur via Netzwerk zugegriffen werden kann, konfiguriert wird.

25.3.1. Ein qeth-Gerät hinzufügen

Der qeth-Netzwerkgerätetreiber unterstützt System z OSA-Express-Features in QDIO-Modus, HiperSockets, z/VM Gast-LAN und z/VM VSWITCH.
Basierend auf dem Schittstellentyp, der hinzugefügt wird, weist der qeth-Gerätetreiber einen der folgenden Basis-Gerätenamen zu:
  • hsin für HiperSockets-Geräte
  • ethn für Ethernet-Features
Der Wert n ist ein Ganzzahlwert, der das Gerät eindeutig identifiziert. n ist 0 für das erste Gerät dieses Typs, 1 für das zweite, und so weiter.

25.3.1.1. Ein qeth-Gerät dynamisch hinzufügen

Um ein qeth-Gerät dynamisch hinzuzufügen, führen Sie die folgenden Schritte aus:
  1. Ermitteln, ob die Module des qeth-Gerätetreibers geladen wurden oder nicht. 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 ergibt, dass die qeth-Module nicht geladen wurden, führen Sie den Befehl modprobe aus, um sie zu laden:
    # modprobe qeth
  2. Verwenden Sie den Befehl cio_ignore, um die Netzwerk-Channel 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,data_device_bus_id mit den 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 den Befehl znetconf, um Candidate-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, mit der Sie arbeiten möchten, aus und verwenden Sie znetconf, um die Konfiguration zu anzuwenden und das konfigurierte Gruppengerät als Netzwerkgerät online zu setzen.
    # znetconf -a f500
    Scanning for network devices...
    Successfully configured device 0.0.f500 (eth1)
  5. Optional können Sie auch für das Gruppengerät konfiguriert Argumente weitergeben, bevor das Gerät auf online gesetzt wird:
    # znetconf -a f500 -o portname=myname
    Scanning for network devices...
    Successfully configured device 0.0.f500 (eth1)
    Nun können Sie mit der Konfiguration der Netzwerkschnittstelle eth1 fortfahren.
Alternativ können Sie die sysfs-Attribute verwenden, um das Gerät wie folgt online zu setzen:
  1. Erstellen Sie ein qeth-Gruppen-Gerä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 setzen, abhängig von der Art und Weise, wie Sie Ihr System einrichten und den Features, die Sie benötigen, wie z.B.:
    • portno
    • layer2
    • portname
    Werfen Sie einen Blick auf das Kapitel zu qeth-Gerätetreibern in Linux auf System z. Gerätetreiber, Features und Befehle unter Red Hat Enterprise Linux 6 für Informationen zu zusätzlichen Parametern.
  3. Setzen Sie das Gerät auf online, indem Sie 1 in das online sysfs-Attribut schreiben:
    # echo 1 > /sys/bus/ccwgroup/drivers/qeth/0.0.f500/online
  4. Dann überprüfen Sie den Status des Gerätes:
    # 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. Den Namen der Schnittstelle, die dem Gerät zugewiesen wurde, herausfinden:
    # cat /sys/bus/ccwgroup/drivers/qeth/0.0.f500/if_name
    eth1
    Nun können Sie mit der Konfiguration der Netzwerkschnittstelle eth1 fortfahren.
    Der folgende Befehl aus dem s390utils-Paket zeigt die wichtigsten Einstellungen Ihres qeth-Geräts an:
    # 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. Ein qeth-Gerät dynamisch entfernen

Verwenden Sie das znetconf-Werkzeug, um ein qeth-Gerät zu entfernen. Zum Beispiel:
  1. Verwenden Sie den Befehl znetconf, um alle konfigurierten Netzwerkgeräte anzeigen zu lassen:
    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. Wählen Sie das Netzwerkgerät, das entfernt werden soll und führen Sie znetconf aus, um das Gerät auf offline zu setzen und das ccw-Gruppengerät zu entgruppieren.
    # 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. Ü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 eth0        online

25.3.1.3. Ein 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 unter /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. In diesem Beispiel ist es eth1. cio_ignore wird transparent für persistente Gerätekonfigurationen gehandhabt und Sie müssen keine Geräte aus der Ignorierliste manuell entfernen.
Falls eine Konfigurationsdatei für ein anderes Gerät mit demselben Typ bereits existiert, ist die einfachste Lösung, sie unter Verwendung des neuen Namens zu kopieren.
# cd /etc/sysconfig/network-scripts
# cp ifcfg-eth0 ifcfg-eth1
Falls Sie kein ähnliches Gerät definiert haben, müssen Sie eines erstellen. Verwenden Sie dieses Beispiel von ifcfg-eth0 als eine Vorlage:
/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
Bearbeiten Sie die neue Datei ifcfg-eth1 wie folgt:
  1. Modifizieren Sie die DEVICE-Anweisung, damit der Inhalt der if_name-Datei aus Ihrer ccwgroup wiedergegeben wird.
  2. Modifizieren Sie die IPADDR-Anweisung zur Wiedergabe der IP-Adresse Ihrer neuen Schnittstelle.
  3. Modifizieren 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 Hardware-Adressen für Ihr qeth-Gerät entspricht.
  6. Modifizieren Sie die PORTNAME-Anweisung oder lassen Sie sie aus, 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. Der Red Hat Enterprise Linux Installer verwendet diesen zur Konfiguration des Layer-Modus (layer2) und der dazugehörigen Port-Nummer (portno) von qeth-Geräten.
    Der standardmäßige qeth-Gerätetreiber 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-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
Ä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 Netzwerk-Channels initiieren, indem Sie die folgenden Befehle ausführen:
  1. Verwenden Sie den Befehl cio_ignore, um die Netzwerk-Channel 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,data_device_bus_id mit den 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 eth1
  5. Überprüfen Sie das Routing für die neue Schnittstelle:
    # 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. Ü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 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. Verifizieren Sie Ihre Änderungen, in dem Sie den Ping-Befehl 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 Standardrouten-Information sich geändert hat, so müssen Sie auch /etc/sysconfig/network dementsprechend aktualisieren.