22.6. Aggiunta di un dispositivo di rete

Il processo per l'aggiunta di un dispositivo di rete è stato modificato con la migrazione del kernel 2.4 al kernel 2.6:
  • Il file system proc non è più utilizzato per controllare o per ottenere lo stato dei dispositivi di rete.
  • Il nuovo file system sys fornisce ora dei servizi in grado di controllare i dispositivi.
  • /sys/class/net/interface_name/device fornisce ora lo stato dei dispositivi attivi.
    interface_name rappresenta un nome come eth0 o eth2, conferito dal driver del dispositivo ad una interfaccia di rete, quando il dispositivo risulta essere configurato.
  • /etc/chandev.conf non è più esistente.
    Il file system sys contiene ora le informazioni precedentemente contenute in /etc/chandev.conf.
  • /etc/modules.conf non è più esistente.
    Le specificazioni alias dell'interfaccia della rete sono contenute in /etc/modprobe.conf.
Sezione 22.6.1, «Aggiunta di un dispositivo qeth» describes in detail how to add a qeth device to an existing instance of Red Hat Enterprise Linux. Sezione 22.6.2, «Breve riferimento all'aggiunta dei dispositivi di rete» is a quick reference for installing other IBM System z network interfaces.

22.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
Due to the length of this command, it has been broken into two lines.
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:

Nota

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/online1
A return value of "1" indicates that the device is online, while a return value '0' indicates that the device is 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.
  • add_hhlen
  • broadcast_mode
  • buffer_count
  • canonical_macaddr
  • card_type
  • checksumming
  • chpid
  • detach_state
  • fake_broadcast
  • fake_ll
  • ipa_takeover
  • portno
  • priority_queueing
  • recover
  • route4
  • rxip
  • state
  • ungroup
  • vipa
Per maggiori informazioni consultate http://www-128.ibm.com/developerworks/linux/linux390/october2005_documentation.html#3 (Driver del dispositivo, caratteristiche e comandi - SC33-8289-02).
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 della rete utilizzano la convenzione dei nomi ifcfg-device, dove il dispositivo rappresenta il valore presente nel file if_name del dispositivo del gruppo qeth precedentemente creato. 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.