Gentoo Logo

[ << ] [ < ] [ Home ] [ > ] [ >> ]


2. Configurazione Avanzata

Indice:

2.a. Configurazione avanzata

La variabile config_eth0 è il cuore della configurazione di un'interfaccia, ed è composta da un elenco di istruzioni di alto livello per la sua configurazione (in questo caso l'interfaccia è eth0). Ogni comando di questo elenco è effettuato sequenzialmente, e l'interfaccia viene considerata funzionante se almeno un comando viene eseguito con successo.

Ecco un elenco delle istruzioni integrate.

Comando Descrizione
null Non fa niente
noop Se l'interfaccia è attiva e c'è un indirizzo, chiude la configurazione con successo
un indirizzo IPv4 o IPv6 Aggiunge l'indirizzo dell'interfaccia
dhcp, adsl o apipa (o un comando personalizzato da un modulo di terze parti) Esegue il modulo fornito dal comando. Per esempio dhcp esegue un modulo che fornisce dhcp, il quale può essere uno tra dhcpcd, dhclient o pump.

Se un comando non funziona, si può specificare un comando di riserva. Questo deve corrispondere con esattezza alla struttura di configurazione.

Si possono unire insieme questi comandi. Ecco alcuni esempi reali:

Codice 1.1: Esempi di configurazione

# Aggiungere tre indirizzi IPv4
config_eth0="192.168.0.2/24"
192.168.0.3/24
192.168.0.4/24"

# Aggiungere un indirizzo IPv4 e due indirizzi IPv6
config_eth0="192.168.0.2/24
4321:0:1:2:3:4:567:89ab
4321:0:1:2:3:4:567:89ac"

# Mantenere l'indirizzo assegnato dal kernel, a meno che l'interfaccia
# non venga disattivata e allora assegnarne un altro tramite DHCP. Se DHCP
# fallisce aggiungere un indirizzo statico determinato tramite APIPA
config_eth0="noop
dhcp"
fallback_eth0="null
apipa"

Nota: Quando si usa il modulo ifconfig e si aggiunge più di un indirizzo, per ogni ulteriore indirizzo vengono creati degli alias di interfaccia. Con gli esempi precedenti, si ottengono le interfacce eth0, eth0:1 e eth0:2. Non si può fare niente di speciale con queste interfacce poichè il kernel e gli altri programmi trattano eth0:1 e eth0:2 come eth0.

Importante: L'ordine dei comandi di riserva è importante! Se non si specifica l'opzione null allora il comando apipa si esegue solo se fallisce il comando noop.

Nota: APIPA e DHCP sono discussi più avanti.

2.b. Dipendenze di rete

Gli script di inizializzazione in /etc/init.d possono dipendere da una specifica interfaccia di rete o da net. Tutte le interfacce nel sistema init di Gentoo forniscono quella che viene chiamata net.

Se in /etc/rc.conf si imposta rc_depend_strict="YES", allora tutte le interfacce di rete che forniscono net devono essere attive prima che la dipendenza "net" sia considerarta soddisfatta. In altre parole, se si ha net.eth0 e net.eth1 e un init script dipende da "net", allora entrambe devono essere attivate.

D'altro canto, se si imposta rc_depend_strict="NO", allora la dipendenza "net" è considerata soddisfatta nel momento cin cui almeno una interfaccia di rete viene attivata.

Ma che succede se net.br0 dipende da net.eth0 e net.eth1? net.eth1 potrebbe essere un dispositivo wireless o ppp che deve essere configurato prima che sia aggiunto al bridge. Non può essere fatto in /etc/init.d/net.br0 poichè questo è un collegamento simbolico a net.lo

La risposta corretta è definire un'impostazione rc_need_ in /etc/conf.d/net

Codice 2.1: Dipendenza net.br0 in /etc/conf.d/net

rc_need_br0="net.eth0 net.eth1"

Ma questo da solo non basta. Gli init script Gentoo usano una dipendenza virtuale chiamata net per informare il sistema di quando la rete è disponibile. Ovviamente, nel caso precedente, la rete va considerata disponibile quando net.br0 è stata avviata, non quando lo sono le altre. Quindi dobbiamo dichiarare quanto vogliamo anche in /etc/conf.d/net:

Codice 2.2: Aggiornare le dipendenze virtuali per al rete

rc_net_lo_provide="!net"
rc_net_eth0_provide="!net"
rc_net_eth1_provide="!net"

Per una discussione più dettagliata sulla dipendenza, consultare la sezione Scrivere Init Script nel Manuale Gentoo. All'interno di quel file sono disponibili ulteriori informazioni su /etc/rc.conf.

2.c. Nomi di variabili e valori

I nomi delle variabili sono dinamici. Di solito seguono la struttura variable_${interface|mac|essid|apmac}. Per esempio, la variabile dhcpcd_eth0 contiene il valore per le opzioni dhcpcd per eth0 e dhcpcd_essid contiene il valore per le opzioni dhcpcd quando una interfaccia si connette a essid "essid".

Non c'è nessuna regola che dice che i nomi delle interfacce debbano essere ethx. Molte interfacce wireless hanno nomi come wlanx, rax e anche ethx. Alcune interfacce definite dagli utenti, come i bridge, possono avere qualsiasi nome, per esempio foo. Per rendere il tutto più interessante, gli Access Point Wireless possono avere nomi che contengono caratteri alfa numerici - questo è importante perchè si possono configurare i parametri di rete per ESSID.

Gentoo usa variabili bash per la rete - e bash non può usare altro che caratteri alfanumerici inglesi. Per ovviare a questa limitazione si cambia ogni carattere non alfanumerico inglese nel carattere _

Altro problema con bash, è il contenuto delle variabili - alcuni caratteri hanno bisogno di essere specificati in modo particolare. Si risolve mettendo un \ all'inizio di questi. I seguenti caratteri devono essere specificati in modo particolare: ", ' e \.

In questo esempio si usa wireless ESSID poichè contiene un vasto numero di caratteri. Si usa il ESSID My "\ NET:

Codice 3.1: Esempio di nomi di variabili

(Funziona, ma il domain è invalido)
dns_domain_My____NET="My \"\\ NET"

(Il comando precedente imposta il domain dns a My "\ NET quando una
scheda wireless si connette a un AP che ha ESSID come My "\ NET)

[ << ] [ < ] [ Home ] [ > ] [ >> ]


Stampa

Visualizza tutto

Aggiornato il 19 agosto 2011

Questa traduzione non è più mantenuta

Oggetto: La guida di riferimento per capire come funziona la configurazione, è un prerequisito per capire le impostazioni modulari.

Sven Vermeulen
Autore

Roy Marples
Autore

Daniel Robbins
Autore

Chris Houser
Autore

Jerry Alexandratos
Autore

Seemant Kulleen
Sviluppo x86

Tavis Ormandy
Sviluppo Alpha

Jason Huebel
Sviluppo AMD64

Guy Martin
Sviluppo HPPA

Pieter Van den Abeele
Sviluppo PPC

Joe Kallar
Sviluppo SPARC

John P. Davis
Redazione

Pierre-Henri Jondot
Redazione

Eric Stockbridge
Redazione

Rajiv Manglani
Redazione

Jungmin Seo
Redazione

Stoyan Zhekov
Redazione

Jared Hudson
Redazione

Colin Morey
Redazione

Jorge Paulo
Redazione

Carl Anderson
Redazione

Jon Portnoy
Redazione

Zack Gilburd
Redazione

Jack Morgan
Redazione

Benny Chuang
Redazione

Erwin
Redazione

Joshua Kinard
Redazione

Xavier Neys
Redazione

Grant Goodyear
Revisione

Gerald J. Normandin Jr.
Revisione

Donnie Berkholz
Revisione

Ken Nowack
Revisione

Lars Weiler
Redazione

Tobias Scherbaum
Redazione

Marco Mascherpa
Traduzione

Stefano Rossi
Traduzione

Enrico Morelli
Traduzione

Donate to support our development efforts.

Copyright 2001-2014 Gentoo Foundation, Inc. Questions, Comments? Contact us.