25.3. Aggiunta di un dispositivo di rete

I moduli del driver del dispositivo di rete sono caricati automaticamente da udev.
È possibile aggiungere una interfaccia di rete su IBM System z dinamicamente o in modo persistente.
  • Dinamicamente
    1. Caricare il driver del dispositivo
    2. Rimuovere i dispositivi di rete dall'elenco dei dispositivi ignorati.
    3. Creazione dispositivo del gruppo.
    4. Configurare il dispositivo.
    5. Imposta il dispositivo online:
  • In modo persistente
    1. Creazione di uno script di configurazione.
    2. Attivare l'interfaccia.
Le seguenti sezioni fornisco le informazioni di base per ogni compito dei driver del dispositivo di rete IBM System z Sezione 25.3.1, «Come aggiungere un dispositivo qeth» descrive il metodo con il quale è possibile aggiungere un dispositivo qeth ad una istanza esistente di Red Hat Enterprise Linux. Sezione 25.3.2, «Aggiunta di un dispositivo LCS» descrive come aggiungere un dispositivo lcs ad una istanza esistente di Red Hat Enterprise Linux. Sezione 25.3.3, «Mappatura dei nomi dei dispositivi di rete e dei canali secondari» descrive il funzionamento dei nomi dei dispositivi di rete persistenti. Sezione 25.3.4, «Configurazione di un dispositivo di rete System z per il file system root di rete» descrive come configurare un dispositivo di rete da usare con un file system root accessibile solo attraverso la rete.

25.3.1. Come aggiungere un dispositivo qeth

Il driver del dispositivo di rete qeth supporta la funzione System z OSA-Express in modalità QDIO, HiperSockets, z/VM guest LAN, e z/VM VSWITCH.
In base al tipo di interfaccia aggiunta il driver del dispositivo qeth assegna uno dei nomi dell'interfaccia di base:
  • hsin per dispositivi HiperSockets
  • ethn per funzioni Ethernet
Il valore n è un valore intero che identifica un solo dispositivo. n è 0 per il primo dispositivo di quel genere, 1 per il secondo e così via.

25.3.1.1. Come aggiungere dinamicamente un dispositivo qeth

Per aggiungere dinamicamente un dispositivo qeth seguire le seguenti fasi:
  1. Determinare se i moduli driver del dispositivo qeth sono stati caricati. Il seguente esempio mostra i moduli qeth caricati:
    # 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
    Se l'output del comando lsmod mostra che i moduli qeth non sono stati caricati eseguire il comando modprobe per caricarli:
    # modprobe qeth
  2. Usare cio_ignore per rimuovere i canali di rete dall'elenco dei dispositivi ignorati e renderli visibili a Linux:
    # cio_ignore -r read_device_bus_id,write_device_bus_id,data_device_bus_id
    Sostituire read_device_bus_id,write_device_bus_id,data_device_bus_id con i tre ID del bus del dispositivo che rappresentano un dispositivo di rete. Per esempio se read_device_bus_id è 0.0.f500, write_device_bus_id è 0.0.f501, e data_device_bus_id è 0.0.f502:
    # cio_ignore -r 0.0.f500,0.0.f501,0.0.f502
  3. Usare il comando znetconf per rilevare ed elencare le configurazioni del candidato per i dispositivi di rete:
    # 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. Selezionare la configurazione con la quale desiderate lavorare ed utilizzate znetconf per applicare la configurazione ed impostare il dispositivo del gruppo configurato online come dispositivo di rete.
    # znetconf -a f500
    Scanning for network devices...
    Successfully configured device 0.0.f500 (eth1)
  5. Facoltativamente sarà possibile passare gli argomenti configurati sul dispositivo del gruppo prima di impostarlo online:
    # znetconf -a f500 -o portname=myname
    Scanning for network devices...
    Successfully configured device 0.0.f500 (eth1)
    Ora sarà possibile configurare l'interfaccia eth1 della rete.
Alternativamente è possibile utilizzare gli attributi sysfs per impostare il dispositivo online nel modo seguente:
  1. Create un dispositivo del gruppo qeth:
    # echo read_device_bus_id,write_device_bus_id,data_device_bus_id > /sys/bus/ccwgroup/drivers/qeth/group
    Per esempio:
    # echo 0.0.f500,0.0.f501,0.0.f502 > /sys/bus/ccwgroup/drivers/qeth/group
  2. Successivamente verificare che il dispositivo del gruppo qeth sia stato creato correttamente andando alla ricerca del canale di lettura:
    # ls /sys/bus/ccwgroup/drivers/qeth/0.0.f500
    Facoltativamente è possibile impostare le funzioni ed i parametri aggiuntivi in base al metodo attraverso il quale si esegue l'impostazione del sistema ed in base alle funzioni necessarie, ad esempio:
    • portno
    • layer2
    • portname
    Per maggiori informazioni sui parametri aggiuntivi consultare il capitolo relativo al driver del dispositivo qeth in Linux sui Driver del dispositivo System z, Funzioni e comandi su Red Hat Enterprise Linux 6.
  3. Impostate il dispositivo online scrivendo 1 nell'attributo sysfs online:
    # echo 1 > /sys/bus/ccwgroup/drivers/qeth/0.0.f500/online
  4. Verificatene il suo stato:
    # cat /sys/bus/ccwgroup/drivers/qeth/0.0.f500/online
    1
    Un valore 1 indica che il dispositivo è online mentre un valore 0 indica che il dispositivo è offline.
  5. Andate alla ricerca del nome dell'interfaccia assegnata al dispositivo:
    # cat /sys/bus/ccwgroup/drivers/qeth/0.0.f500/if_name
    eth1
    Ora sarà possibile configurare l'interfaccia eth1 della rete.
    Il seguente comando del pacchetto s390utils mostra le impostazioni più importanti del dispositivo 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. Rimozione dinamica di un dispositivo qeth

Per rimuovere un dispositivo qeth usare il tool znetconf. Per esempio:
  1. Usare il comando znetconf per visualizzare tutti i dispositivi di rete configurati:
    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. Selezionare il dispositivo di rete da rimuovere ed innescare znetconf per impostare il dispositivo offline e rimuovere dal gruppo il dispositivo del gruppo 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. Verificate la corretta rimozione:
    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. Aggiunta persistente di un dispositivo qeth

Per rendere il nuovo dispositivo qeth persistente sarà necessario creare il file di configurazione per la nuova interfaccia. I file di configurazione dell'interfaccia di rete si trovano in /etc/sysconfig/network-scripts/.
I file di configurazione di rete usano una convenzione di nomi ifcfg-device, dove device è il valore presente nel file if_name nel dispositivo del gruppo qeth precedentemente creato. In questo esempio è eth1. cio_ignore viene gestito in modo trasparente per le configurazioni del dispositivo persisteni e non sarà necessario rimuovere manualmente il dispositivo dall'elenco Ignora.
Se esiste già un file di configurazione per un altro dispositivo dello stesso tipo la soluzione più semplice è quella di copiarlo con un nome nuovo.
# cd /etc/sysconfig/network-scripts
# cp ifcfg-eth0 ifcfg-eth1
Se non siete in possesso di un dspositivo definito simile sarà necessario crearne uno. Usate questo esempio di ifcfg-eth0 come template:
/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
Modificate il nuovo file ifcfg-eth1 nel modo seguente:
  1. Modificate DEVICE in modo da riflettere i contenuti del file if_name di ccwgroup.
  2. Modificate IPADDR in modo da riflettere l'indirizzo IP della nuova interfaccia.
  3. Modificare NETMASK se necessario.
  4. Se la nuova interfaccia deve essere attivata al momento dell'avvio allora assicuratevi che ONBOOT sia impostato su yes.
  5. Assicuratevi che SUBCHANNELS corrisponda agli indirizzi hardware per il dispositivo qeth.
  6. Modificare PORTNAME o lasciatelo fuori se non è necessario al vostro ambiente.
  7. È possibile aggiungere qualsiasi attributo sysfs con il relativo valore sul parametro OPTIONS. L'installer di Red Hat Enterprise Linux lo utilizza per configurare la modalità layer (layer2) ed il numero di porta relativa (portno) dei dispositivi qeth.
    L'impostazione predefinita del driver del dispositivo qeth per i dispositivi OSA è ora la modalità layer 2. Per continuare ad usare le definizioni ifcfg precedenti nel default della modalità layer 3, aggiungere layer2=0 sul parametro 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
Le modifiche al file ifcfg diventano effettive solo dopo il riavvio del sistema o dopo l'aggiunta dinamica di nuovi canali del dispositivo di rete modificando la configurazione I/O del sistema (per esempio, eseguendo un collegamento in z/VM). Alternativamente è possibile innescare l'attivazione di un file ifcfg per i canali di rete non precedentemente attivi, eseguendo i seguenti comandi:
  1. Usare cio_ignore per rimuovere i canali di rete dall'elenco dei dispositivi ignorati e renderli visibili a Linux:
    # cio_ignore -r read_device_bus_id,write_device_bus_id,data_device_bus_id
    Sostituire read_device_bus_id,write_device_bus_id,data_device_bus_id con i tre ID del bus del dispositivo che rappresentano un dispositivo di rete. Per esempio se read_device_bus_id è 0.0.0600, write_device_bus_id è 0.0.0601, e data_device_bus_id è 0.0.0602:
    # cio_ignore -r 0.0.0600,0.0.0601,0.0.0602
  2. Per innescare uevent il quale attiva le modifiche emettere:
    echo add > /sys/bus/ccw/devices/read-channel/uevent
    Per esempio:
    echo add > /sys/bus/ccw/devices/0.0.0600/uevent
  3. Controllate lo stato del dispositivo di rete:
    # lsqeth
  4. Ora iniziare la nuova interfaccia di rete:
    # ifup eth1
  5. Controllate lo stato dell'interfaccia:
    # 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. Controllate il routing per la nuova interfaccia:
    # 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. Verificare le modifiche usando il comando ping nei confronti del gateway o di un altro host, sulla sottorete del nuovo dispositivo:
    # 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. Se le informazioni sul route di default sono cambiate, è necessario aggiornare /etc/sysconfig/network conseguentemente.