L'esecuzione manuale della configurazione del software di rete dovrebbe costituire un'alternativa estrema, al contrario di YaST il cui uso è consigliato. Queste informazioni generali sulla configurazione della rete possono tuttavia essere utili anche quando si utilizza YaST.
Tutte le schede di rete incorporate e di tipo HotPlug (PCMCIA, USB e alcune schede PCI) vengono rilevate e configurate mediante la tecnologia HotPlug. Una scheda di rete viene vista dal sistema in due modi, prima come dispositivo fisico e quindi come interfaccia. L'inserimento o il rilevamento di un dispositivo attiva un evento HotPlug, che a sua volta attiva l'inizializzazione del dispositivo mediante lo script hwup. Dopo l'inizializzazione della scheda di rete come una nuova interfaccia di rete, il kernel genera un altro evento HotPlug che attiva la configurazione dell'interfaccia mediante ifup.
I nomi di interfaccia vengono numerati dal kernel in base all'ordine temporale della relativa registrazione, mentre la sequenza di inizializzazione definisce l'assegnazione dei nomi. Se per una delle schede di rete si verifica un errore, la numerazione di tutte le schede inizializzate successivamente viene spostata. Per le schede realmente collegabili a caldo, il fattore determinante è l'ordine in cui vengono collegati i dispositivi.
Ai fini della flessibilità, la configurazione del dispositivo (hardware) e dell'interfaccia è stata separata e la mappatura delle configurazioni ai dispositivi e alle interfacce non viene più gestita in base ai nomi delle interfacce. Le configurazioni dei dispositivi si trovano nel percorso /etc/sysconfig/hardware/hwcfg-*, mentre quelle delle interfacce si trovano nel percorso /etc/sysconfig/network/ifcfg-*. I nomi delle configurazioni vengono assegnati secondo un metodo descrittivo che consente di identificare i dispositivi e le interfacce a cui sono associate. Il precedente metodo di mappatura dei driver ai nomi di interfaccia richiedeva l'uso di nomi di interfaccia statici, pertanto non può più essere utilizzato in /etc/modprobe.conf. Secondo il nuovo concetto, le voci alias immesse in questo file potrebbero causare effetti collaterali indesiderati.
I nomi di configurazione, ovvero la parte che segue hwcfg- o ifcfg-, possono descrivere i dispositivi per mezzo dello slot, di un ID specifico del dispositivo o del nome di interfaccia. Il nome di configurazione di una scheda PCI, ad esempio, potrebbe essere bus-pci-0000:02:01.0 (slot PCI) o vpid-0x8086-0x1014-0x0549 (fornitore e ID prodotto). Il nome dell'interfaccia associata potrebbe essere bus-pci-0000:02:01.0 o wlan-id-00:05:4e:42:31:7a (indirizzo MAC).
Per assegnare una determinata configurazione di rete a una scheda qualsiasi di un certo tipo (di cui ne viene inserita una sola alla volta) anziché una certa scheda, selezionare nomi di configurazione meno specifici. Ad esempio, è possibile utilizzare bus-pcmcia per tutte le schede PCMCIA. I nomi possono essere limitati, d'altra parte, da un precedente tipo di interfaccia. Ad esempio, alle schede WLAN connesse a una porta USB verrà assegnato il nome wlan-bus-usb.
Il sistema utilizza sempre le configurazione che descrive meglio un'interfaccia o il dispositivo che fornisce l'interfaccia. La ricerca della configurazione più adatta viene gestita da getcfg. Nell'output di getcfg sono disponibili tutte le informazioni che è possibile utilizzare per descrivere un dispositivo. I dettagli riguardanti la specifica dei nomi di configurazione sono disponibili nella documentazione di getcfg.
Con il metodo descritto è possibile configurare un'interfaccia di rete nel modo corretto anche se i dispositivi di rete non sono sempre inizializzati nello stesso ordine. Il nome dell'interfaccia continua tuttavia a dipendere dalla sequenza di inizializzazione. Sono disponibili due modi per assicurare l'accesso in maniera affidabile all'interfaccia di una determinata scheda di rete:
getcfg-interface restituisce il nome dell'interfaccia di rete associata. In alcuni file di configurazione è quindi possibile immettere il nome della configurazione, ad esempio firewall, dhcpd, instradamento o varie interfacce di rete virtuali (tunnel), anziché il nome di interfaccia che non è permanente.
nome configurazione
I nomi di interfaccia permanenti possono essere assegnati a tutte le interfacce le cui configurazioni non includono nomi di interfaccia. Questa operazione può essere eseguita per mezzo di voci PERSISTENT_NAME= nella configurazione di un'interfaccia (nomepifcfg-*). Il nome permanente nomep non dovrà tuttavia essere lo stesso nome assegnato automaticamente dal kernel, quindi eth*, tr*, wlan* e così via non sono consentiti. Utilizzare invece net* o nomi descrittivi come external, internal o dmz. Un nome permanente può essere assegnato a un'interfaccia solo immediatamente dopo la registrazione e ciò significa che il driver della scheda di rete deve essere ricaricato o che deve essere eseguito il comando hwup . Il comando rcnetwork descrizione dispositivorestart non è sufficiente per questo scopo.
![]() | uso di nomi di interfaccia permanenti |
|---|---|
L'uso di nomi di interfaccia permanenti non è stato testato in tutte le aree, quindi è possibile che alcune applicazioni non siano in grado di gestire nomi di interfaccia selezionati liberamente. | |
ifup richiede un'interfaccia esistente, in quanto l'hardware non viene inizializzato. L'inizializzazione dell'hardware viene gestita dal comando hwup, eseguito da hotplug o coldplug. Quando si inizializza un dispositivo, viene eseguito automaticamente ifup per la nuova interfaccia tramite hotplug, la quale viene configurata se la modalità di avvio è impostata su onboot, hotplug o auto e il servizio network è stato avviato. In precedenza il comando ifup attivava l'inizializzazione dell'hardware, mentre ora la procedura è stata invertita. Un componente hardware viene prima di tutto inizializzato, quindi seguono tutte le altre azioni. In questo modo è sempre possibile configurare un numero variabile di dispositivi nel modo migliore possibile mediante un set di configurazioni esistente.
nomeinterfaccia
Nella Tabella 38.5, «Script di configurazione manuale della rete» sono riassunti gli script più importanti utilizzati nella configurazione della rete. Dove possibile gli script sono distinti per hardware e interfaccia.
Tabella 38.5. Script di configurazione manuale della rete
Fase di configurazione | Comando | Funzione |
|---|---|---|
Hardware | hw{up,down,status} |
Gli script |
Interfaccia | getcfg | getcfg può essere utilizzato per richiedere il nome dell'interfaccia associata a un nome di configurazione o a una descrizione dell'hardware. Ulteriori informazioni sono disponibili nella documentazione di getcfg. |
Interfaccia | if{up,down,status} |
Gli script |
Ulteriori informazioni su HotPlug e sui nomi di dispositivi permanenti sono disponibili nel Capitolo 32, Sistema Hotplug e nel Capitolo 33, Nodi di dispositivi dinamici con udev.
In questa sezione viene fornita una panoramica dei file di configurazione di rete e vengono descritti lo scopo e il formato utilizzato.
Questi file contengono le configurazioni hardware delle schede di rete e di altri dispositivi, oltre ai parametri necessari, ad esempio il modulo del kernel, la modalità di avvio e le associazioni di script. Per informazioni, fare riferimento alla documentazione di hwup. Indipendentemente dall'hardware esistente, le configurazioni hwcfg-static-* vengono applicate all'avvio di coldplug.
Questi file contengono le configurazioni per l'interfaccia di rete, ad esempio la modalità di avvio e l'indirizzo IP. I parametri possibili sono descritti nella documentazione di ifup. Se fosse necessario utilizzare un'impostazione generale per una sola interfaccia, è inoltre possibile utilizzare tutte le variabili dai file dhcp, wireless e config nei file ifcfg-*.
Il file config contiene impostazioni generali relative al comportamento di ifup, ifdown e ifstatus. dhcp contiene impostazioni per DHCP e wireless per le schede LAN wireless. Le variabili nei tre file di configurazione sono commentate e possono essere utilizzate anche nei file ifcfg-*, dove sono considerate con maggiore priorità.
In questo file viene determinato l'instradamento statico dei pacchetti TCP/IP. Tutti gli instradamenti statici necessari per i vari task di sistema possono essere immessi nel file /etc/sysconfig/network/routes, ovvero instradamenti a un host, a un host tramite un gateway e a una rete. Per ogni interfaccia che richiede un instradamento individuale, è necessario definire un file di configurazione aggiuntivo, /etc/sysconfig/network/ifroute-*. Sostituire * con il nome dell'interfaccia. Le voci contenute nei file di configurazione dell'instradamento hanno un aspetto analogo al seguente:
# Destination Dummy/Gateway Netmask Device # 127.0.0.0 0.0.0.0 255.255.255.0 lo 204.127.235.0 0.0.0.0 255.255.255.0 eth0 default 204.127.235.41 0.0.0.0 eth0 207.68.156.51 207.68.145.45 255.255.255.255 eth1 192.168.0.0 207.68.156.51 255.255.0.0 eth1
Nella prima colonna è indicata la destinazione dell'instradamento, ad esempio l'indirizzo IP di una rete o di un host oppure, nel caso di nomi di server raggiungibili, il nome completo della rete o dell'host.
Nella seconda colonna è indicato il gateway di default o un gateway attraverso il quale è possibile accedere a un host o alla rete. Nella terza colonna è indicata la maschera di rete per le reti o gli host che utilizzano un gateway. Ad esempio, 255.255.255.255 è la maschera per un host che utilizza un gateway.
La quarta colonna si riferisce solo alle reti connesse all'host locale, ad esempio un dispositivo di loopback, Ethernet, ISDN, PPP o fittizio. Il nome del dispositivo deve essere immesso in questa colonna.
È possibile utilizzare una quinta colonna facoltativa per specificare il tipo di un instradamento. Per assicurare la corretta interpretazione del comando da parte del parser, dovrà essere inserito un segno meno - nelle colonne non necessarie. Per informazioni, fare riferimento alla documentazione di routes(5).
In questo file (parola chiave search) viene specificato il dominio a cui appartiene l'host, oltre allo stato dell'indirizzo del server dei nomi (parola chiave nameserver). È possibile specificare più nomi di domini. Quando viene risolto un nome non completo, viene effettuato il tentativo di generarne uno aggiungendo le singole voci di search. Per utilizzare più server dei nomi immettere più righe, iniziando ognuna con nameserver. Anteporre ai commenti segni #. Il server dei nomi specificato viene immesso da YaST in questo file. Nell'Esempio 38.5, «/etc/resolv.conf» è illustrato il possibile aspetto di /etc/resolv.conf.
Esempio 38.5. /etc/resolv.conf
# Our domain search example.com # # We use sun (192.168.0.20) as nameserver nameserver 192.168.0.20
Alcuni servizi, ad esempio pppd (wvdial), ipppd (isdn), dhcp (dhcpcd e dhclient), pcmcia e hotplug, modificano il file /etc/resolv.conf mediante lo script modify_resolvconf. Se il file /etc/resolv.conf è stato modificato temporaneamente da questo script, contiene un commento predefinito con informazioni sul servizio che ha apportato la modifica, sulla posizione in cui si trova la copia di backup del file originale e sul modo per disattivare il meccanismo di modifica automatico. Se /etc/resolv.conf viene modificato più volte, include le modifiche in un formato nidificato. Tali modifiche possono essere ripristinate correttamente anche se l'operazione viene eseguita in un ordine diverso da quello in cui sono state immesse. I servizi che potrebbero richiedere questa flessibilità comprendono isdn, pcmcia e hotplug.
Se un servizio non è stato terminato in modo normale e corretto, è possibile utilizzare modify_resolvconf per ripristinare il file originale. All'avvio del sistema viene inoltre eseguito un controllo per verificare se, ad esempio, dopo un crash di sistema è presente un file resolv.conf modificato e non pulito, nel qual caso viene ripristinato il file resolv.conf originale (non modificato).
In YaST viene utilizzato il comando modify_resolvconf check per verificare se resolv.conf è stato modificato, quindi all'utente viene notificato che dopo il ripristino del file le modifiche andranno perse. A parte questo aspetto, modify_resolvconf non viene utilizzato da YaST e ciò significa che l'impatto della modifica di resolv.conf tramite YaST è lo stesso di qualsiasi modifica manuale. In entrambi i casi le modifiche hanno un effetto permanente, mentre le modifiche richieste dai servizi sopra indicati sono solo temporanee.
In questo file, illustrato nell'Esempio 38.6, «/etc/hosts», gli indirizzi IP vengono assegnati a nomi host. Se non viene implementato un server dei nomi, tutti gli host con i quali verrà stabilita una connessione IP devono essere elencati in questo file. Per ogni host immettere nel file una riga formata dall'indirizzo IP, dal nome host completo e dal nome host. L'indirizzo IP deve trovarsi all'inizio della riga e le voci devono essere separate da spazi vuoti e tabulazioni. I commenti sono sempre preceduti dal segno #.
In questo file i nomi di rete vengono convertiti in indirizzi di rete. Il formato è simile a quello del file hosts, ad eccezione del fatto che i nomi di rete precedono gli indirizzi. Vedere l'Esempio 38.7, «/etc/networks».
La risoluzione del nome, ovvero la conversione dei nomi host e di rete tramite la libreria del Resolver, viene controllata da questo file. Questo file viene utilizzato solo per i programmi collegati a libc4 o libc5. Per gli attuali programmi glibc, fare riferimento alle impostazioni contenute nel file /etc/nsswitch.conf. Utilizzare una riga per ogni singolo parametro. I commenti sono preceduti da un segno #. Nella Tabella 38.6, «Parametri per /etc/host.conf» sono illustrati i parametri disponibili. Nell'Esempio 38.8, «
/etc/host.conf
» è riportato un esempio di file /etc/host.conf.
Tabella 38.6. Parametri per /etc/host.conf
order hosts, bind | Specifica in quale ordine viene eseguito l'accesso ai servizi per la risoluzione del nome. Gli argomenti disponibili, separati da spazi vuoti o da virgole, sono: |
hosts: cerca il file | |
bind: accede a un server dei nomi. | |
nis: utilizza NIS. | |
multi on/off | Definisce se un host immesso nel file |
nospoof on spoofalert on/off | Questi parametri hanno effetto sullo spoofing del server dei nomi tuttavia, a parte ciò, non hanno alcuna influenza sulla configurazione della rete. |
trim domainname |
Il nome di dominio specificato viene separato dal nome host dopo la risoluzione di quest'ultimo, a condizione che nel nome host sia incluso il nome di dominio. Questa opzione è utile se nel file |
L'introduzione della Libreria GNU C 2.0 è stata accompagnata dall'introduzione di Name Service Switch (NSS). Per informazioni, fare riferimento alla documentazione di nsswitch.conf(5) e a The GNU C Library Reference Manual.
L'ordine delle query è definito nel file /etc/nsswitch.conf. Nell'Esempio 38.9, «/etc/nsswitch.conf» è riportato un esempio di file nsswitch.conf. I commenti sono introdotti da segni #. In questo esempio la voce nel database hosts significa che viene inviata una richiesta a /etc/hosts (files) tramite DNS (vedere il Capitolo 40, DNS: Domain Name System).
Esempio 38.9. /etc/nsswitch.conf
passwd: compat group: compat hosts: files dns networks: files dns services: db files protocols: db files netgroup: files automount: files nis
I «database» disponibili tramite NSS sono elencati nella Tabella 38.7, «Database disponibili tramite /etc/nsswitch.conf». Nel prossimo futuro sono inoltre previsti automount, bootparams, netmasks e publickey. Le opzioni di configurazione per i database NSS sono elencate nella Tabella 38.8, «Opzioni di configurazione per i «database» NSS».
Tabella 38.7. Database disponibili tramite /etc/nsswitch.conf
|
Alias di posta implementati da |
| Indirizzi Ethernet. |
|
Per gruppi di utenti, utilizzato da |
|
Per nomi host e indirizzi IP, utilizzato da |
|
Elenchi di utenti e host validi presenti nella rete allo scopo di controllare le autorizzazioni di accesso; vedere la documentazione di |
|
Nomi e indirizzi di rete, utilizzato da |
|
Password utente, utilizzato da |
|
Protocolli di rete, utilizzato da |
|
Nomi e indirizzi di chiamate di procedura remota (RPC), utilizzato da |
|
Servizi di rete, utilizzato da |
|
Password shadow di utenti, utilizzato da |
Tabella 38.8. Opzioni di configurazione per i «database» NSS
|
Accesso diretto ai file, ad esempio |
| Accesso tramite un database. |
| NIS, vedere anche il Capitolo 41, Uso di NIS. |
|
Può essere utilizzata solo come estensione per |
|
Può essere utilizzata solo come estensione per |
Questo file viene utilizzato per configurare nscd (Name Service Cache Daemon). Vedere la documentazione di nscd(8) e di nscd.conf(5). Per default, le voci di sistema di passwd e groups vengono memorizzate nella cache da nscd. È un aspetto importante per le prestazioni dei servizi di directory, come NIS e LDAP, poiché diversamente sarebbe necessario utilizzare la connessione di rete per ogni accesso a nomi o gruppi. hosts non viene memorizzato nella cache per default, in quanto il meccanismo di nscd per la memorizzazione nella cache di host non consente al sistema locale di eseguire in modo sicuro i controlli per le ricerche dirette e inverse. Anziché richiedere la memorizzazione nella cache dei nomi da parte di nscd, configurare un server DNS di caching.
Se viene attivata la funzione di caching per passwd, il riconoscimento di un nuovo utente locale aggiunto richiede di solito circa 15 secondi. Per ridurre questo tempo di attesa, riavviare nscd con il comando rcnscd restart.
Oltre ai file di configurazione descritti in precedenza, sono disponibili diversi altri script che caricano i programmi di rete durante l'avvio del computer e che vengono avviati non appena il sistema passa a uno dei runlevel multi-utente. Nella Tabella 38.9, «Alcuni script di avvio per i programmi di rete» sono descritti alcuni di questi script.
Tabella 38.9. Alcuni script di avvio per i programmi di rete
Questo script gestisce la configurazione delle interfacce di rete. L'hardware deve essere già stato inizializzato da /etc/init.d/coldplug (tramite hotplug). Se il servizio network non è stato avviato, le interfacce di rete non verranno implementate al momento dell'inserimento tramite hotplug. | |
Avvia xinetd che può essere utilizzato per rendere disponibili i servizi server nel sistema. Ad esempio, può avviare vsftpd ogni volta che viene iniziata una connessione FTP. | |
Avvia il portmapper necessario per il server RPC, ad esempio un server NFS. | |
Avvia il server NFS. | |
Controlla il processo sendmail. | |
Avvia il server NIS. | |
Avvia il client NIS. |