I file di configurazione delle interfacce controllano il funzionamento di un determinato dispositivo di interfaccia di rete. All'avvio del sistema, Red Hat Linux utilizza i file per determinare quali interfacce attivare automaticamente e come configurarle in modo corretto. Solitamente, i file sono chiamati ifcfg-<nome>, dove <nome> si riferisce al nome del dispositivo controllato dal file di configurazione.
8.2.1. Interfacce Ethernet
Uno dei file pi� comuni � ifcfg-eth0, il quale controlla la prima scheda di interfaccia di rete o NIC nel sistema. Un sistema con pi� schede NIC contiene diversi file ifcfg-eth numerati. Poich� ogni dispositivo ha il proprio file di configurazione, l'utente pu� controllare da vicino il funzionamento di ogni singola interfaccia.
Di seguito viene riportato un esempio di un file ifcfg-eth0 per un sistema che utilizza un indirizzo IP fisso:
I valori richiesti in un file di configurazione dell'interfaccia, possono variare in funzione di altri valori. Per esempio, il file ifcfg-eth0 di un'interfaccia che utilizza DHCP � piuttosto diverso, a causa del fatto che le informazioni IP sono ora fornite dal server DHCP:
DEVICE=eth0
BOOTPROTO=dhcp
ONBOOT=yes
Lo Strumento di amministrazione di rete (system-config-network) rappresenta un modo semplice per apportare cambiamenti ai vari file di configurazione dell'interfaccia di rete (consultare il capitolo Configurazione della rete nel Red Hat Enterprise Linux System Administration Guide per istruzioni pi� dettagliate sull'uso di questo tool).
Potete anche modificare manualmente il file di configurazione per una determinata interfaccia di rete.
In ogni file di configurazione delle interfacce sono presenti i valori seguenti:
BOOTPROTO=<protocol>, dove <protocol> � uno di questi:
none — non utilizzare alcun protocollo di avvio.
bootp — utilizzare il protocollo BOOTP.
dhcp — utilizzare il protocollo DHCP. utilizzare il protocollo DHCP.
BROADCAST=<indirizzo>, dove <indirizzo> � l'indirizzo broadcast. Questa direttiva � stata disapprovata, in quanto il valore viene calcolato automaticamente con ifcalc.
DEVICE=<nome>, dove <nome> � il nome del dispositivo fisico (tranne per i dispositivi PPP allocati dinamicamente, dove invece corrisponde al nome logico).
DHCP_HOSTNAME — Usare questa opzione solo se il server DHCP richiede al client di specificare un hostname prima di ricevere un indirizzo IP. (Il demone del server DHCP in Red Hat Enterprise Linux non supporta questa caratteristica.)
DNS{1,2}=<indirizzo>, dove <indirizzo> � l'indirizzo di un server dei nomi da inserire in /etc/resolv.conf qualora la direttiva PEERDNS sia impostata su yes.
ETHTOOL_OPTS=<options>, dove <options> rappresenta qualsiasi delle opzioni specifiche al dispositivo supportato da ethtool. Per esempio, se desiderate forzare 100MB, duplex completo:
ETHTOOL_OPTS="autoneg off speed 100 duplex full"
Nota bene, se desiderate modificare le impostazioni duplex o la velocit�, � quasi sempre necessario disabilitare autonegotiation con l'opzione autoneg off. Tale operazione deve essere fatta per prima, poich� le entry dell'opzione seguono l'ordine prestabilito.
GATEWAY=<indirizzo>, dove <indirizzo> corrisponde all'indirizzo IP del router della rete o del dispositivo gateway (se presente).
HWADDR=<MAC-address>, dove <MAC-address> � l'indirizzo hardware del dispositivo Ethernet nella forma di AA:BB:CC:DD:EE:FF. Questa direttiva � utile per le macchine con NIC multipli, per assicurare l'assegnazione corretta dei nomi del dispositivo alle interfacce, senza dare importanza all'ordine di caricamento configurato per ogni modulo NIC. Questa direttiva non deve essere usata insieme con MACADDR.
IPADDR=<indirizzo>, dove <indirizzo> corrisponde all'indirizzo IP.
MACADDR=<MAC-address>, dove <MAC-address> � l'indirizzo hardware del dispositivo Ethernet nella forma di AA:BB:CC:DD:EE:FF. Questa direttiva viene usata per sovrascrivere l'altra assegnata al NIC fisico. Questa direttiva non dovrebbe essere assegnata insieme con HWADDR.
MASTER=<bond-interface>, dove <bond-interface> � l'interfaccia channel bonding alla quale � collegata l'interfaccia Ethernet.
Questa direttiva � usata insieme con la direttiva SLAVE.
Consultare la Sezione 8.2.3 per maggiori informazioni sulle interfacce channel bonding.
NETMASK=<mask>, dove <mask> � il valore della maschera di rete.
NETWORK=<indirizzo>, dove <indirizzo> � l'indirizzo della rete. Questa direttiva � stata deprecata, in quanto il valore viene calcolato automaticamente con ifcalc.
ONBOOT=<risposta>, dove <risposta> � una delle seguenti:
yes — il dispositivo dovrebbe essere attivato all'avvio.
no — il dispositivo non dovrebbe essere attivato all'avvio.
PEERDNS=<risposta>, dove <risposta> � una delle seguenti:
yes — Modifica /etc/resolv.conf se la direttiva DNS � stata impostata. Se state utilizzando DHCP, allora l'opzione yes � quella di default.
no — Non modificare /etc/resolv.conf.
SLAVE=<bond-interface>, dove <bond-interface> � una dei seguenti:
yes — Questo dispositivo � controllato dall'interfaccia channel bonding specificata nella direttiva MASTER.
no — Questo dispositivo non � controllato dall'interfaccia channel bonding specificata nella direttiva MASTER.
Questa direttiva � usata insieme con la direttiva MASTER.
Consultare la Sezione 8.2.3 per maggiori informazioni sulle interfacce channel bond.
SRCADDR=<indirizzo>, dove <indirizzo> � l'indirizzo IP sorgente specificato per i pacchetti in uscita.
USERCTL=<risposta>, dove <risposta> � una delle seguenti:
yes — gli utenti non root sono autorizzati a controllare il dispositivo.
no — gli utenti non root non sono autorizzati a controllare il dispositivo.
8.2.2. Interfacce IPsec
Con Red Hat Enterprise Linux � possibile collegarsi ad altri host o reti usando un collegamento IP sicuro, conosciuto anche come IPsec. Per maggiori informazioni per l'IP sec usando lo Strumento di amministrazione di rete, (system-config-network), leggete il capitolo intitolato Configurazione della rete, che si trova nella Red Hat Enterprise Linux System Administration Guide. Per informazioni su come impostare manualmente IPsec, consultare il capitolo intitolato Virtual Private Networks nella Red Hat Enterprise Linux Security Guide.
Il seguente rappresenta il file ifcfg per un collegamento IPsec network-to-network per il LAN A. Il nome unico per identificare il collegamento in questo esempio � ipsec1, in questo modo il file risultante viene chiamato /etc/sysconfig/network-scripts/ifcfg-ipsec1.
Nell'esempio sopra riportato, X.X.X.X rappresenta l'indirizzo IP publicly routable del router IPsec di destinazione.
Di seguito viene riportato un elenco in ogni file di configurazione delle interfacce sono presenti i valori seguenti:
DST=<address>, dove <address> � l'indirizzo IP del router o dell'host di destinazione IPsec. Questo viene usato per entrambe le configurazioni IPsec host-to-host e network-to-network.
DSTNET=<network>, dove <network> � l'indirizzo della rete di destinazione IPsec. Viene usato solo per i collegamenti IPsec network-to-network.
SRC=<address>, dove <address> � l'indirizzo IP del router o dell'host sorgente dell'IPsec. Questa impostazione � facoltativa e viene usata solo per i collegamenti IPsec host-to-host.
SRCNET=<network>, dove <tnetwork> � l'indirizzo di rete della rete sorgente IPsec. Viene usato solo per collegamenti IPsec network-to-network.
TYPE=<interface-type>, dove <interface-type> � IPSEC. Entrambe le applicazioni fanno parte del pacchetto ipsec-tools.
Consultate /usr/share/doc/initscripts-<version-number>/sysconfig.txt (sostituire <version-number> con il numero della versione del pacchetto initscripts installato) per i parametri di configurazione se usate la cifratura manuale della chiave insieme con IPsec.
Il demone di gestione della chiave IKEv1 di racoon tratta e configura un insieme di parametri per IPSec. � in grado di utilizzare delle chiavi pre-condivise, delle firme RSA, o GSS-API. Se viene usato racoon per gestire automaticamente la chiave di codifica, sono necessarie le seguenti opzioni:
IKE_METHOD=<encryption-method>, dove <encryption-method> pu� essere PSK, X509, o GSSAPI. Se viene specificato PSK, anche il parametro IKE_PSK deve essere impostato. Se si specifica X509, bisogna impostare il parametro IKE_CERTFILE.
IKE_PSK=<shared-key>, dove viene condiviso <shared-key>, un valore segreto per il metodo PSK (chiavi precondivise).
IKE_CERTFILE=<cert-file>, dove <cert-file> � un file valido del certificato X.509 per l'host.
IKE_PEER_CERTFILE=<cert-file>, dove <cert-file> � un file valido del certificato X.509 per l'host remoto.
IKE_DNSSEC=<answer>, dove <answer> � yes. Il demone racoon riprende il certificato X.509 dell'host remoto tramite DNS. Se viene specificato un IKE_PEER_CERTFILE, non includere questo parametro.
Per maggiori informazioni sugli algoritmi disponibili per IPsec, consultare la pagina man setkey. Per maggiori informazioni su racoon, consultare le pagine man racoon e racoon.conf.
8.2.3. Interfacce Channel Bonding
Red Hat Enterprise Linux permette agli amministratori di unire le interfacce di rete multiple insieme in un singolo canale usando il modulo del kernel bonding e una interfaccia di rete speciale chiamata interfaccia channel bonding. Il channel bonding permette a due o pi� interfacce di agire come se fossero una unica interfaccia, aumentando simultaneamente la larghezza della banda fornendo cos� una ridondanza.
Per creare una interfaccia channel bonding, creare un file nella directory /etc/sysconfig/network-scripts/ chiamato ifcfg-bond<N>, sostituendo <N> con il numero per l'interfaccia, come ad esempio 0.
Il contenuto del file pu� essere identico a qualsiasi tipo di interfaccia alla quale ci si sta legando, come ad esempio una interfaccia Ethernet. La sola differenza � che la direttiva DEVICE= deve essere bond<N>, sostituendo <N> con il numero per l'interfaccia.
Il seguente � un esempio del file di configurazione channel bonding:
Dopo aver creato l'interfaccia channel bonding, le interfacce di rete da unire devono essere configurate aggiungendo le direttive MASTER= e SLAVE= ai loro file di configurazione. I file di configurazione per ogni interfaccia channel bonded, possono essere quasi identici.
Per esempio, se il channel bonding unisce due interfacce Ethernet, eth0 e eth1 potrebbero somigliare al seguente esempio:
In questo esempio, sostituire <N> con il valore numerico per l'interfaccia.
Il modulo del Kernel deve essere caricato per far si che l'interfaccia channel bonding possa essere valida. Per assicurarsi che il modulo sia stato caricato quando si usa l'interfaccia channel bonding, aggiungere la seguente riga a /etc/modules.conf:
alias bond<N> bonding
Sostituire <N> con il numero dell'interfaccia, come ad esempio 0. Per ogni interfaccia channel bonding configurata, ci dovrebbe essere una entry corrispondente in /etc/modules.conf.
Una volta configurato /etc/modules.conf, l'interfaccia channel bonding e le interfacce di rete, � necessario usare il comando ifup per ottenere l'interfaccia channel bonding.
Importante
Gli aspetti pi� importanti inerenti l'interfaccia channel bonding, vengono controllati attraverso il modulo del Kernel. Per maggiori informazioni su come controllare i moduli bonding, consultare la Sezione A.3.2.
8.2.4. File alias e cloni
Due tipi di file di configurazione delle interfacce meno usati sono alias e clone.
I file di configurazione dell'interfaccia Alias, i quali vengono usati principalmente per unire gli indirizzi multipli ad una singola interfaccia, usano, per il naming, il seguente schema:ifcfg-<if-name>:<alias-value>.
Per esempio, un file ifcfg-eth0:0 pu� essere configurato in modo da specificare DEVICE=eth0:0 e un indirizzo IP statico 10.0.0.2., servendo come alias di una interfaccia Ethernet gi� configurata per ricevere le proprie informazioni IP tramite DHCP in ifcfg-eth0. Con questa configurazione, il dispositivo eth0 � legato a un indirizzo IP dinamico, ma la stessa scheda di rete fisica pu� ricevere delle richieste tramite l'indirizzo IP fisso 10.0.0.2.
Attenzione
Le interfacce alias non supportano DHCP.
Un file clone di configurazione dell'interfaccia, dovrebbe usare il seguente formato, ifcfg-<if-name>-<clone-name>. Mentre un file alias abilita indirizzi multipli per una interfaccia gi� esistente, un file clone viene usato per specificare le opzioni aggiuntive per una interfaccia. Per esempio, una interfaccia Ethernet DHCP standard chiamata eth0, potrebbe somigliare a quanto di seguito riportato:
DEVICE=eth0
ONBOOT=yes
BOOTPROTO=dhcp
Poich� il valore di default per la direttiva USERCTL � no, se non specificata, gli utenti non possono attivare e disattivare l'interfaccia. Per dare agli utenti la possibilit� di controllare l'interfaccia,create un clone copiando ifcfg-eth0 in ifcfg-eth0-user e aggiungendo la riga seguente a ifcfg-eth0- user:
USERCTL=yes
In questo modo l'utente attiva l'interfaccia eth0 con il comando ifup eth0-user, perch� le opzioni di configurazione di ifcfg-eth0 e ifcfg-eth0-user vengono combinate. L'esempio riportato � molto semplice, questo metodo pu� essere usato con varie opzioni e interfacce.
Il modo pi� semplice di creare file di configurazione delle interfacce alias e cloni, consiste nell'usare il tool grafico Strumento di amministrazione di rete. Per maggiori informazioni su come utilizzare questo tool, consultate il capitolo Configurazione della rete nella Red Hat Enterprise Linux System Administration Guide.
8.2.5. Interfacce di dialup
Se vi collegate ad Internet tramite una connessione dialup, l'interfaccia avr� bisogno di un file di configurazione.
I file di interfaccia PPP sono chiamati usando il formato seguente ifcfg-ppp<X> (dove <X> � un numero unico che corrisponde ad un'interfaccia specifica).
Il file di configurazione dell'interfaccia PPP viene creato automaticamente quando si usa wvdial, Strumento di amministrazione di rete o Kppp per creare un account dialup. � possibile creare e modificare questo file manualmente.
I file ifcfg-ppp0 hanno all'incirca questo aspetto:
SLIP (Serial Line Internet Protocol) � un'altra interfaccia di dialup, sebbene il suo utilizzo sia meno frequente. I file SLIP hanno nomi di file di configurazione delle interfacce quali ifcfg-sl0.
Oltre a quelle gi� elencate, esistono altre opzioni da utilizzare con questi file:
DEFROUTE=<risposta>, dove <risposta> � una delle seguenti:
yes — imposta l'interfaccia come quella di default.
no — non imposta l'interfaccia come quella di default.
DEMAND=<risposta>, dove <risposta> � una delle seguenti:
yes — Questa interfaccia consente a pppd di avviare una connessione quando qualcuno tenta di usarlo.
no — per quest'interfaccia deve essere stabilita una connessione in modo manuale.
IDLETIMEOUT=<valore>, dove <valore> corrisponde al numero di secondi di inattivit� che precede lo scollegamento dell'interfaccia.
INITSTRING=<stringa>, dove <stringa> rappresenta la stringa di inizializzazione trasmessa al dispositivo del modem. L'opzione �essenzialmente usata con interfacce SLIP.
LINESPEED=<valore>, dove <valore> � la frequenza di baud (baud rate) del dispositivo. I valori standard possibili sono 57600, 38400, 19200, e 9600.
MODEMPORT=<dispositivo>, dove <dispositivo> corrisponde al nome del dispositivo seriale utilizzato per stabilire la connessione per l'interfaccia.
MTU=<valore>, dove <valore> � il parametro (MTU) Maximum Transfer Unit dell'interfaccia. Il parametro MTU si riferisce al numero massimo di byte di dati che una struttura pu� trasportare, senza contare le sue informazioni di testo. In alcune situazioni di dialup, impostando il parametro su di un valore di 576 ne risulta in una perdita di pochi pacchetti con un leggero miglioramento sul rendimento per un collegamento.
NAME=<nome>, dove <nome> � il riferimento al titolo attribuito a un insieme di configurazioni di connessione dialup.
PAPNAME=<nome>, dove <nome> � il nome utente assegnato durante lo scambio di Password Authentication Protocol(PAP), che avviene per abilitare i collegamenti ad un sistema remoto.
PERSIST=<risposta>, dove <risposta> � una delle seguenti:
yes —l'interfaccia deve rimanere sempre attiva, anche dopo lo scollegamento del modem.
no — l'interfaccia non deve rimanere sempre attiva.
REMIP=<indirizzo>, dove <indirizzo> � l'indirizzo IP del sistema remoto. Solitamente non � specificato.
WVDIALSECT=<nome>, dove <nome> associa l'interfaccia alla configurazione del dialer in /etc/wvdial.conf, che contiene il numero telefonico da comporre e altre informazioni importanti per l'interfaccia.
8.2.6. Altre interfacce
Ecco riportati i file di configurazione pi� utilizzati per le interfacce:
ifcfg-lo — Una interfaccia di loopback locale utilizzata per operazioni di controllo, e in molteplici applicazioni che richiedono un indirizzo IP in grado di indicare lo stesso sistema. Qualunque dato trasferito al dispositivo loopback, viene immediatamente ritornato al livello di rete dell'host.
Avvertenza
Non modificate mai lo script dell'interfaccia loopback /etc/sysconfig/network-scripts/ifcfg-lo manualmente. Facendo questo, il sistema operativo potrebbe non funzionare correttamente.
ifcfg-irlan0 — Una interfaccia a infrarossi consente il passaggio di informazioni tra dispositivi, come un laptop e una stampante, attraverso una connessione a infrarossi che funziona in modo simile ad un dispositivo Ethernet, ad eccezione del fatto che normalmente si verifica mediante una connessione peer-to-peer.
ifcfg-plip0 — Una connessione Parallel Line Interface Protocol (PLIP) funziona praticamente allo stesso modo di un dispositivo Ethernet, ad eccezione di un utilizzo diuna porta parallela.
ifcfg-tr0 — A causa di una grande diffusione di Ethernet, le topologie Token Ring non sono cos� diffuse sulle Reti di area locale (LAN) come erano una volta.