F.6. Aggiunta di un dispositivo di rete

Il processo di aggiunta di un dispositivo di rete per Red Hat Enterprise Linux, è stato sostanzialmente modificato. Ciò è dovuto in parte alla migrazione del kernel 2.4 al kernel 2.6:

la Sezione F.6.1 descrive in dettaglio come aggiungere un dispositivo qeth su di una istanza esistente di Red Hat Enterprise Linux. la Sezione F.6.2 risulta essere un riferimento rapido per l'installazione di altre interfacce di rete zSeries.

F.6.1. Aggiunta di un dispositivo qeth

Come prima cosa determinare se i moduli del driver del dispositivo qeth sono stati caricati.

# lsmod | grep qeth
qeth                  135240  0
qdio                   45360  2 qeth
ipv6                  303984  13 qeth
ccwgroup               15104  1 qeth

Se l'output del comando lsmod mostra che i moduli non sono stati caricati, è necessario emettere il comando modprobe per poterli caricare:

# modprobe qeth

Successivamente create un dispositivo del gruppo di qeth.

# echo <read_device_bus_id>,<write_device_bus_id>,<data_device_bus_id>
  > /sys/bus/ccwgroup/drivers/qeth/group

A causa della lunghezza di questo comando, esso è stato suddiviso in due linee.

Nell'esempio seguente read_device_bus_id risulta essere 0.0.0600, write_device_bus_id è 0.0.0601, e data_device_bus_id è 0.0.0602. Il dispositivo è un NIC virtuale di z/VM, e l'indirizzo IP che desideriamo assegnare è 192.168.70.69.

# echo 0.0.0600,0.0.0601,0.0.0602 > /sys/bus/ccwgroup/drivers/qeth/group

Successivamente verificate che il dispositivo del gruppo qeth è stato creato correttamente:

# ls /sys/bus/ccwgroup/drivers/qeth
0.0.0600  0.0.09a0  group  notifier_register

Facoltativamente potreste aggiungere un portname. Come prima cosa controllatre se è necessario un portname:

# cat /sys/bus/ccwgroup/drivers/qeth/0.0.0600/portname
no portname required

Se ricevete la suddetta risposta, ciò stà ad indicare che non è necessario specificare alcun portname.

Per aggiungere un portname, controllate che i dispositivi siano offline per poi eseguire il seguente comando:

NotaNota Bene
 

Quando aggiungete un portname, il dispositivo deve essere offline.

# echo <portname> > /sys/bus/ccwgroup/drivers/qeth/0.0.0600/portname

Successivamente riportate il dispositivo online:

# echo 1 /sys/bus/ccwgroup/drivers/qeth/0.0.0600/online

Verificatene il suo stato:

# cat /sys/bus/ccwgroup/drivers/qeth/0.0.0600/online
1

Un valore pari ad "1", indica che il dispositivo è online, mentre un valore '0' indica che il dispositivo è offline.

Controllate il nome dell'interfaccia assegnata al dispositivo:

# cat /sys/bus/ccwgroup/drivers/qeth/0.0.0600/if_name
eth1

Per modificare il valore if_name, utilizzate il seguente comando:

# echo <new_if_name> > /sys/bus/ccwgroup/drivers/qeth/0.0.0600/if_name

Facoltativamente potreste impostare un set aggiuntivo di parametri e di caratteristiche, a seconda del modo in cui impostate il vostro sistema e delle caratteristiche stesse a voi necessarie.

Per maggiori informazioni sul funzionamento dei suddetti contenuti, consultate http://oss.software.ibm.com/developerworks/opensource/linux390/docu/lx26apr04dd01.pdf (Linux per driver di dispositivi zSeries e S/390, contenuti, e comandi).

Ora è necessario creare il file di configurazione per la vostra nuova interfaccia. I file di configurazione dell'interfaccia di rete, si trovano in /etc/sysconfig/network-scripts.

I file di configurazione di rete utilizzano la naming convention ifcfg-<device>, dove il dispositivo risulta essere il valore trovato all'interno del file if_name, nel dispositivo del gruppo qeth creato precedentemente. In questo esempio risulta essere eth1.

Se un file di configurazione risulta essere già presente per un altro dispositivo dello stesso tipo, la cosa migliore da fare è quella di copiarlo sul nuovo nome.

# cd /etc/sysconfig/network-scripts
# cp ifcfg-eth0 ifcfg-eth1

Se non avete alcun dispositivo simile già definito, allora è necessario crearlo. Utilizzate questo esempio di ifcfg-eth0 come riferimento.

/etc/sysconfig/network-scripts/ifcfg-eth0
# IBM QETH
DEVICE=eth0
BOOTPROTO=static
HWADDR=00:06:29:FB:5F:F1
IPADDR=9.12.20.136
NETMASK=255.255.255.0
ONBOOT=yes
NETTYPE=qeth
SUBCHANNELS=0.0.09a0,0.0.09a1,0.0.09a2
TYPE=Ethernet

Modificate il nuovo file ifcfg-eth1.

Rimuovete per adesso la riga HWADDR.

Modificate l'istruzione DEVICE in modo da riflettere i contenuti del file if_name dal vostro gruppo ccw.

Modificate l'istruzione IPADDR in modo da riflettere l'indirizzo IP della vostra nuova interfaccia.

Modificate l'istruzione di NETMASK come necessario.

Se desiderate attivare la vostra nuova interfaccia al momento dell'avvio, assicuratevi che ONBOOT sia impostato su yes.

Assicuratevi che l'istruzione SUBCHANNELS corrisponda agli indirizzi hardware per il vostro dispositivo qeth.

/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
TYPE=Ethernet

Un dispositivo qeth necessita di una definizione alias in /etc/modprobe.conf. Modificate questo file e aggiungete un alias per la vostra interfaccia.

/etc/modprobe.conf
alias eth0 qeth
alias eth1 qeth
options dasd_mod dasd=0.0.0100,0.0.4b19

Adesso potete avviare la vostra nuova interfaccia:

# ifup eth1

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)

Notate il campo HWaddr sulla prima riga dell'output del comando ifconfig. Il valore seguente deve essere aggiunto al file ifcfg-eth1. Aggiungete una riga simile al file sopra indicato:

HWADDR=02:00:00:00:00:01

Ora ifcfg-eth1 sarà simile a:

# IBM QETH
DEVICE=eth1
HWADDR=02:00:00:00:00:01
BOOTPROTO=static
IPADDR=192.168.70.69
NETMASK=255.255.255.0
ONBOOT=yes
NETTYPE=qeth
SUBCHANNELS=0.0.0600,0.0.0601,0.0.0602
TYPE=Ethernet

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
9.12.20.0       *               255.255.255.0  U     0      0      0 eth0
169.254.0.0     *               255.255.0.0    U     0      0      0 eth1
default         pdlrouter-if5.p 0.0.0.0        UG    0      0      0 eth0

Verificate le vostre modifiche utilizzando il comando ping, per eseguire un ping del gateway:

# 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

Se le informazioni sul route di default sono cambiate, è necessario aggiornare /etc/sysconfig/network conseguentemente.

F.6.2. Breve riferimento all'aggiunta dei dispositivi di rete

Vi sono diversi compiti di base da seguire per poter aggiungere una interfaccia di rete sui sistemi zSeries.

Le seguenti sezioni forniscono delle informazioni di base per ogni compito di ogni driver del dispositivo di rete zSeries.

F.6.2.1. Funzionamento con il driver del dispositivo LCS

Il driver del dispositivo LAN channel station (LCS), supporta OSA-2 Ethernet/Token Ring, OSA-Express Fast Ethernet in modalità non-QDIO, e OSA-Express High Speed Token Ring in modalità non-QDIO. Per z990, il driver LCS supporta Gigabit Ethernet in modalità non-QDIO (incluso 1000Base-T).

In base al tipo di interfaccia aggiunta, il driver LCS assegna uno dei due nomi dell'interfaccia di base: eth<n> per OSA-Express Fast Ethernet e Gigabit Ethernet tr<n> per Token Ring, dove <n> risulta essere un valore intero che identifica unicamente il dispositivo. <n> è 0 per il primo dispositivo di quel tipo, 1 per il secondo e così via.

  • Caricamento del driver del dispositivo:

    # modprobe lcs
  • Creazione del dispositivo del gruppo:

    # echo <read_device_bus_id>,<write_device_bus_id> 
    > /sys/bus/ccwgroup/drivers/lcs/group

    A causa della lunghezza di questo comando, esso è stato suddiviso in due linee.

  • Configurare il dispositivo.

    Le schede OSA sono in grado di fornire fino a 16 porte per un singolo CHPID. Per default il dispositivo del gruppo LCS utilizza la porta 0. Per utilizzare una porta diversa, emettere un camando simile al seguente:

    # echo <portno> > /sys/bus/ccwgroup/drivers/lcs/<device_bus_id>/portno

    Per maggiori informazioni su come configurare il dispositivo in questione consultate quanto segue:

    http://oss.software.ibm.com/developerworks/opensource/linux390/docu/lx26apr04dd01.pdf (Linux per Driver dei Dispositivi zSeries e S/390, Caratteristiche e Comandi)

  • Impostare il dispositivo online:

    # echo 1 /sys/bus/ccwgroup/drivers/lcs/<read_device_bus_id>/online
  • Definire l'alias

    In base al tipo di interfaccia introdotta, aggiungete una riga a /etc/modprobe.conf simile a quella seguente:

    eth<n> alias lcs
    tr<n> alias lcs
  • Creazione di uno script di configurazione.

    Create un file in /etc/sysconfig/network-scripts con un nome simile a quelli seguenti:

    ifcfg-eth<n>
    ifcfg-tr<n>

    Il file dovrebbe essere simile al seguente:

    /etc/sysconfig/network-scripts/ifcfg-eth0
    # IBM LCS
    DEVICE=eth0
    BOOTPROTO=static
    HWADDR=00:06:29:FB:5F:F1
    IPADDR=9.12.20.136
    NETMASK=255.255.255.0
    ONBOOT=yes
    NETTYPE=lcs
    SUBCHANNELS=0.0.09a0,0.0.09a1
    PORTNAME=0
    TYPE=Ethernet

    In base al tipo di interfaccia aggiunta, il parametro DEVICE dovrebbe essere uno dei seguenti:

    DEVICE=eth<n>
    DEVICE=tr<n>
  • Attivazione del dispositivo.

    In base al tipo di interfaccia aggiunta, emettere il comando ifup:

    # ifup eth<n>
    # ifup tr<n>

F.6.2.2. Funzionamento con il driver del dispositivo QETH

Il driver del dispositivo di rete QETH supporta zSeries HiperSockets, OSA-Express Fast Ethernet, Gigabit Ethernet (incluso 1000Base-T), High Speed Token Ring, e le caratteristicheATM (esecuzione dell'emulazione Ethernet LAN) in modalità QDIO.

In base al tipo di interfaccia aggiunta, il driver QETH assegnerà uno dei tre nomi dell'interfaccia di base:

  • hsi<n> per i dispositivi HiperSocket

  • eth<n> per OSA-Express Fast Ethernet e Gigabit Ethernet

  • tr<n> per Token Ring

Dove <n> è un valore intero che identifica unicamente il dispositivo. <n> è 0 per il primo dispositivo di quel tipo, 1 per il secondo e così via.

  • Caricamento del driver del dispositivo:

    # modprobe qeth
  • Creazione del dispositivo del gruppo:

    # echo <read_device_bus_id>,<write_device_bus_id>,<data_device_bus_id>
      > /sys/bus/ccwgroup/drivers/qeth/group

    A causa della lunghezza di questo comando, esso è stato suddiviso in due linee.

  • Configurare il dispositivo.

    Per maggiori informazioni su come configurare il driver QETH consultate quanto segue:

    http://oss.software.ibm.com/developerworks/opensource/linux390/docu/lx26apr04dd01.pdf (Linux per Driver dei Dispositivi zSeries e S/390, Caratteristiche e Comandi)

  • Impostare il dispositivo online:

    # echo 1 /sys/bus/ccwgroup/drivers/qeth/<read_device_bus_id>/nline
  • Definire l'alias

    In base al tipo di interfaccia introdotta, aggiungete una riga su /etc/modprobe.conf, simile alle seguenti:

    hsi<n> alias qeth
    eth<n> alias qeth
    tr<n> alias qeth
  • Creazione di uno script di configurazione.

    Create un file in /etc/sysconfig/network-scripts con un nome simile a quelli seguenti:

    ifcfg-hsi<n> 
    ifcfg-eth<n>
    ifcfg-tr<n>

    Il file dovrebbe somigliare al seguente:

    /etc/sysconfig/network-scripts/ifcfg-eth0
    # IBM QETH
    DEVICE=eth0
    BOOTPROTO=static
    HWADDR=00:06:29:FB:5F:F1
    IPADDR=9.12.20.136
    NETMASK=255.255.255.0
    ONBOOT=yes
    NETTYPE=qeth
    SUBCHANNELS=0.0.09a0,0.0.09a1,0.0.09a2
    TYPE=Ethernet

    In base al tipo di interfaccia aggiunta, il parametro DEVICE dovrebbe essere uno dei seguenti:

    DEVICE=hsi<n>
    DEVICE=eth<n>
    DEVICE=tr<n>
  • Attivazione del dispositivo.

    In base al tipo di interfaccia aggiunta, emettere il comando ifup:

    # ifup hsi<n>
    # ifup eth<n>
    # ifup tr<n>

F.6.2.3. Funzionamento con il driver del dispositivo CTC

Il collegamento Channel-to-Channel (CTC) risulta essere il tipico collegamento veloce tra mainframe. Il driver del dispositivo CTC può essere utilizzato per stabilire un collegamento point-to-point TCP/IP o tty tra Linux per istanze zSeries e S/390, oppure tra Linux per istanze zSeries e S/390 ed istanze del sistema operativo di altre mainframe, come ad esempio z/OS, OS/390, z/VM, o z/VSE.

Il driver CTC assegna una interfaccia di base simile a quanto segue:

ctc<n>

Dove <n> è un valore intero che identifica unicamente il dispositivo. <n> è 0 per il primo dispositivo di quel tipo, 1 per il secondo e così via.

  • Caricamento del driver del dispositivo:

    # modprobe ctc
  • Creazione del dispositivo del gruppo:

    # echo <read_device_bus_id>,<write_device_bus_id> 
    > /sys/bus/ccwgroup/drivers/ctc/group

    A causa della lunghezza di questo comando, esso è stato suddiviso in due linee.

  • Configurare il dispositivo.

    Impostare il protocollo:

    # echo <protocol> /sys/bus/ccwgroup/drivers/ctc/<device_bus_id>/protocol

    Dove <protocol> risulta essere 0, 1, 2, or 3.

    0 — Questo protocollo fornisce una compatibilità con peer diversi da OS/390, o z/OS, per esempio, una macchina del servizio VM TCP. Questo risulta essere il default.

    1 — Questo protocollo fornisce un miglior controllo dei pacchetti per i peer di Linux.

    2 — Questo protocollo fornisce un collegamento tty basato su CTC con un peer di Linux.

    3 — Questo protocollo fornisce una compatibilità con peer OS/390 o z/OS.

    Per maggiori informazioni su come configurare il driver CTC consultate quanto segue:

    http://oss.software.ibm.com/developerworks/opensource/linux390/docu/lx26apr04dd01.pdf (Linux per Driver dei Dispositivi zSeries e S/390, Caratteristiche e Comandi)

  • Impostare il dispositivo online:

    # cho 1 /sys/bus/ccwgroup/drivers/lcs/<read_device_bus_id>/online
  • Definire l'alias

    In base al tipo di interfaccia integrata, aggiungere una riga su /etc/modprobe.conf simile a quanto segue:

    ctc<n> alias ctc
  • Creazione di uno script di configurazione.

    Create un file in /etc/sysconfig/network-scripts con un nome simile al seguente:

    ifcfg-ctc<n>

    Il file dovrebbe somigliare al seguente:

    /etc/sysconfig/network-scripts/ifcfg-ctc0
    # IBM CTC
    DEVICE=ctc0
    BOOTPROTO=static
    IPADDR=192.168.70.136
    GATEWAY=172.16.70.136
    NETMASK=255.255.255.255
    ONBOOT=yes
    SUBCHANNELS=0.0.1b00,0.0.1b01
    NETTYPE=ctc
    CTCPROT=0
    TYPE=CTC
  • Attivazione del dispositivo.

    In base al tipo di interfaccia aggiunta, emettere il comando ifup:

    # ifup ctc<n>

F.6.2.4. Funzionamento con il driver del dispositivo IUCV

Inter-User Communication Vehicle (IUCV) risulta essere un servizio di comunicazione VM che abilita un programma in esecuzione in un VM guest, di comunicare con un altro VM guest, o con un programma di controllo, o addirittura con se stesso. Linux per il driver del dispositivo IUCV S/390 e zSeries, risulta essere un driver del dispositivo di rete, il quale utilizza IUCV per il collegamento dei guest di Linux in esecuzione su ID user VM diversi, o per collegare un guest di Linux ad un altro VM guest come ad esempio una macchina del servizio TCP/IP.

Il driver IUCV assegna un nome per l'interfaccia di base simile al seguente:

iucv<n>

Dove <n> è un valore intero che identifica unicamente il dispositivo. <n> è 0 per il primo dispositivo di quel tipo, 1 per il secondo e così via.

  • Caricamento del driver del dispositivo:

    # modprobe netiucv
  • Creazione del dispositivo IUCV:

    # echo <peer_id> > /sys/bus/iucv/drivers/netiucv/connection

    Dove <peer_id> è l'ID guest del VM guest al quale desiderate collegarvi. Il driver del dispositivo IUCV interpreta l'ID con lettere maiuscole. Questo è generalmente TCPIP.

    Ciò crea una struttura sysfs simile alla seguente:

    cat /sys/bus/iucv/drivers/netiucv/netiucv<n>

    Dove <n> è un valore intero che identifica unicamente il dispositivo. <n> è 0 per il primo dispositivo di quel tipo, 1 per il secondo e così via.

  • Configurare il dispositivo.

    Se necessario impostate la misura massima dei buffer:

    # echo <value> > /sys/bus/iucv/drivers/netiucv/netiucv<n>/buffer
      

    <value> è il numero di byte che desiderate impostare. Se specificate un valore diverso dalla gamma valida, il comando viene ignorato.

    La gamma di valori accettata per la misura massima del buffer, dipende dalle impostazioni MTU. I suddetti valori devono rientrare nella gamma <MTU minimo+ misura della testata> fino a <MTU massimo+ misura della testata>. Lo spazio della testata è generalmente di 4 byte. Il valore di default per la misura massima del buffer è di 32768 bytes (32 KB).

    Per maggiori informazioni sulla configurazione del driver IUCV consultate quanto segue:

    http://oss.software.ibm.com/developerworks/opensource/linux390/docu/lx26apr04dd01.pdf (Linux per Driver dei Dispositivi zSeries e S/390, Caratteristiche e Comandi)

  • Definire l'alias

    In base al tipo di interfaccia integrata, aggiungere una riga su /etc/modprobe.conf simile a quanto segue:

    iucv<n> alias netiucv
  • Creazione di uno script di configurazione.

    Create un file in /etc/sysconfig/network-scripts con un nome simile al seguente:

    ifcfg-iucv<n>

    Il file dovrebbe somigliare al seguente:

    /etc/sysconfig/network-scripts/ifcfg-iucv0
    # IBM IUCV
    DEVICE=iucv0
    BOOTPROTO=static
    IPADDR=192.168.70.136
    GATEWAY=172.16.70.136
    NETMASK=255.255.255.255
    ONBOOT=yes
    NETTYPE=iucv
    PEERID=TCPIP
    TYPE=IUCV
  • Attivazione del dispositivo.

    In base al tipo di interfaccia aggiunta, emettere un comando ifup simile al seguente:

    # ifup iucv<n>