[ << ]
[ < ]
[ 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 |
config_eth0="192.168.0.2/24"
192.168.0.3/24
192.168.0.4/24"
config_eth0="192.168.0.2/24
4321:0:1:2:3:4:567:89ab
4321:0:1:2:3:4:567:89ac"
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 |
dns_domain_My____NET="My \"\\ NET"
|
[ << ]
[ < ]
[ Home ]
[ > ]
[ >> ]
I contenuti di questo documento sono rilasciati sotto la licenza Creative
Commons - Attribution / Share Alike.
|