Gentoo Logo

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


3. Impostazioni modulari

Indice:

3.a. Moduli di rete

Attualmente vengono supportati gli script di rete modulari, il che significa che si può aggiungere il supporto per nuovi tipi di interfaccia e moduli di configurazione mantenendo allo stesso tempo la compatibilità con quelli esistenti.

I moduli vengono caricati in modo predefinito se il pacchetto che essi necessitano è installato. Se si specifica un modulo che non ha installato il suo pacchetto, si ottiene un errore che avvisa quale pacchetto necessita di essere installato. Idealmente, le impostazioni per i moduli sono da usare solamente quando si hanno due o più pacchetti installati che forniscono lo stesso servizio e si deve preferire uno rispetto ad un altro.

Nota: Tutte le impostazioni discusse, sono in /etc/conf.d/net, dove non diversamente specificato.

Codice 1.1: Preferenza dei moduli

# Si preferisce ifconfig piuttosto che iproute2
modules="ifconfig"

# Si possono anche specificare altri moduli per una interfaccia
# In questo caso si preferisce pump su dhcpcd
modules_eth0="pump"

# Si possono anche specificare quali moduli non usare - per esempio
# si potrebbe usare un supplicant o un linux-wlan-ng per controllare
# la configurazione wireless ma volere ancora configurare le impostazioni di
# rete per ESSID che sono associate.
modules="!iwconfig"

3.b. Utilità di configurazione delle interfacce

Sono fornite due utilità di configurazione delle interfacce: ifconfig e iproute2. C'è bisogno di una di esse per fare qualsiasi tipo di configurazione di rete.

ifconfig è installato per default (il pacchetto net-tools è parte del set di sistema). iproute2 è un pacchetto più potente e flessibile, ma non è incluso in modo predefinito.

Codice 2.1: Installare iproute2

# emerge sys-apps/iproute2

# Preferire ifconfig invece di iproute2 se entrambi sono installati
# visto che openrc preferisce iproute2
modules="ifconfig"

Poichè ifconfig e iproute2 fanno un lavoro molto simile, viene permesso che le loro configurazioni di base funzionino l'una con l'altra. Per esempio entrambi i codici funzionano a prescindere dal modulo che si sta usando.

Codice 2.2: Esempi di ifconfig e iproute2

config_eth0="192.168.0.2/24"
config_eth0="192.168.0.2 netmask 255.255.255.0"

# Si può anche specificare il broadcast
config_eth0="192.168.0.2/24 brd 192.168.0.255"
config_eth0="192.168.0.2 netmask 255.255.255.0 broadcast 192.168.0.255"

3.c. DHCP

DHCP è la possibilità di ottenere informazioni di rete (indirizzo IP, server DNS, Gateway, ecc.) da un server DHCP. Ciò significa che se c'è un server DHCP funzionante sulla rete, basta dire ad ogni client di usare DHCP in modo da fargli impostare la rete da sè. Bisogna configurare altre cose come wireless, ppp o altre se sono richieste, prima di usare DHCP.

DHCP può essere fornito da dhclient, dhcpcd, o pump. Ogni modulo DHCP ha i suoi pro e i suoi contro, eccone un breve riassunto.

Modulo DHCP Pacchetto Pro Contro
dhclient net-misc/dhcp Fatto da ISC, gli stessi che fanno il software BIND DNS. Altamente configurabile La configurazione è complessa, il software è enorme, non si possono ottenere server NTP da DHCP, non invia l'hostname in modo predefinito
dhcpcd net-misc/dhcpcd Da tanto tempo scelta predefinita di Gentoo, nessuna dipendenza da strumenti esterni, attivamente sviluppato da Gentoo Può essere lento, non può essere ancora eseguito come demone quando il lease è infinito
pump net-misc/pump Leggero, nessuna dipendenza da altri strumenti Non è più mantenuto dagli sviluppatori originali, non sicuro, specialmente su alcuni modem, non si possono ottenere server NIS da DHCP

Se si ha installato più di un client DHCP, bisogna specificare quale usare, altrimenti la scelta predefinita sarà dhcpcd, se disponibile.

Per passare opzioni specifiche al modulo dhcp, usare module_eth0="..." (cambiare module con il module DHCP che si sta usando, es. dhcpcd_eth0)

L'obiettivo è quello di rendere DHCP più semplice, perciò vengono supportati i seguenti comandi usando la variabile dhcp_eth0. L'impostazione predefinita è non impostare nessuna di queste.

  • release - rilascia l'indirizzo IP per ri-usarlo
  • nodns - non sovrascrivere /etc/resolv.conf
  • nontp - non sovrascrivere /etc/ntp.conf
  • nonis - non sovrascrivere /etc/yp.conf

Codice 3.1: Esempio di configurazione DHCP in /etc/conf.d/net

# Necessario solamente se sono stati installati più moduli DHCP
modules="dhcpcd"

config_eth0="dhcp"
dhcpcd_eth0="-t 10" # Timeout dopo 10 secondi
dhcp_eth0="release nodns nontp nonis" # Ottiene solo un indirizzo

Nota: dhcpcd e pump inviano l'attuale hostname al server DHCP predefinito, in questo modo non occorre più specificarlo.

3.d. ADSL con PPPoe/PPPoA

Prima bisogna installare il software ADSL.

Codice 4.1: Installare il pacchetto ppp

# emerge net-dialup/ppp

Nota: Se c'è la necessità di utilizzare PPPoA, assicurarsi di usare >=baselayout-1.12.x.

Poi, creare lo script net per PPP e quello per l'interfaccia di rete usata da PPP.

Codice 4.2: Creare gli script PPP e ethernet

# ln -s /etc/init.d/net.lo /etc/init.d/net.ppp0
# ln -s /etc/init.d/net.lo /etc/init.d/net.eth0

Assicurarsi di impostare rc_depend_strict a "YES" in /etc/rc.conf.

Ora bisogna configurare /etc/conf.d/net.

Codice 4.3: Una configurazione base per PPPoe

config_eth0=( null ) (Specificare la propria interfaccia ethernet)
config_ppp0=( "ppp" )
link_ppp0="eth0" (Specificare la propria interfaccia ethernet)
plugins_ppp0=( "pppoe" )
username_ppp0='user'
password_ppp0='password'
pppd_ppp0=
noauth
defaultroute
usepeerdns
holdoff 3
child-timeout 60
lcp-echo-interval 15
lcp-echo-failure 3
noaccomp noccp nobsdcomp nodeflate nopcomp novj novjccomp"

rc_need_ppp0="net.eth0"

La password può essere anche impostata in /etc/ppp/pap-secrets.

Codice 4.4: Esempio /etc/ppp/pap-secrets

# L'asterisco * è importante
"username"  *  "password"

Se si utilizza PPPoE con un modem USB bisogna installare br2684ctl. Si prega di leggere /usr/portage/net-dialup/speedtouch-usb/files/README per ottenere informazioni su come configurarlo adeguatamente.

Importante: Leggere attentamente le sezioni su ADSL e PPP in /usr/share/doc/openrc-0.8.3-r1/net.example.bz2. Questo file contiene un gran numero di spiegazioni dettagliate riguardo a tutte le impostazioni per la propria configurazione particolare di PPP. Ovviamente, cambiare 0.8.3-r1 con la versione di OpenRC installata nel proprio sistema.

3.e. APIPA (Automatic Private IP Addressing)

APIPA cerca di trovare un indirizzo libero tra 169.254.0.0-169.254.255.255 con un arping di un indirizzo casuale, incluso nella gamma di indirizzi summenzionati, sull'interfaccia. Se non c'è nessuna risposta allora si assegna questo indirizzo all'interfaccia.

L'uso di APIPA è utile per le LAN in cui non c'è nessun server DHCP e non ci si connette direttamente a Internet e tutti gli altri computer utilizzano APIPA.

Per il supporto ad APIPA installare net-misc/iputils o net-analyzer/arping.

Codice 5.1: Configurazione di APIPA in /etc/conf.d/net

# Cercare DHCP - se fallisce passare ad APIPA
config_eth0="dhcp"
fallback_eth0="apipa"

# Usare APIPA
config_eth0="apipa"

3.f. Bonding

Per poter effettuare il bonding/trunking (ndT: unione/aggregazione) di collegamenti installare net-misc/ifenslave.

Il bonding è usato per aumentare la larghezza di banda della rete. Se si hanno due schede di rete sulla stessa rete, si possono collegare insieme in modo che le applicazioni vedano una sola interfaccia ma in realtà utilizzino entrambe le due schede di rete.

Codice 6.1: Configurazione per il bonding in /etc/conf.d/net

# Per collegare le interfacce
slaves_bond0="eth0 eth1 eth2"

# Si può non assegnare un IP all'interfaccia collegata
config_bond0="null"

# Dipende da eth0, eth1 e eth2 poichè essi possono richiedere una configurazione extra
rc_need_bond0="net.eth0 net.eth1 net.eth2"

3.g. Bridging (supporto 802.1d)

Per il supporto al "bridging" installare net-misc/bridge-utils

Il bridging è usato per collegare insieme delle reti. Per esempio, si ha un server che si connette a Internet con un modem ADSL e una scheda wireless access che permette a altri computer di connettersi a Internet con il modem ADSL. Si può creare un "bridge" (ponte) per unire le due interfacce.

Codice 7.1: Configurazione per il bridge in /etc/conf.d/net

# Configurare il bridge - "man brctl" per ulteriori dettagli
brctl_br0="setfd 0" "sethello 0" "stp off"

# Per aggiungere delle porte al bridge br0
bridge_br0="eth0 eth1"

# Si devono configurare le porte con valori null in modo da non avviare dhcp
config_eth0="null"
config_eth1="null"

# Dare un indirizzo al bridge - si può usare DHCP
config_br0="192.168.0.1/24"

# Dipende da eth0 e eth1 poichè essi possono richiedere una configurazione aggiuntiva
rc_need_br0="net.eth0 net.eth1"

Importante: Per usare alcune impostazioni per il bridge di rete, è consigliabile consultare la documentazione riguardante i nomi di variabili

3.h. Indirizzo MAC (MAC Address)

Se se ne ha la necessità, è possibile cambiare anche l'indirizzo MAC di una interfaccia attraverso il file di configurazione della rete.

Codice 8.1: Esempio di cambio di un Indirizzo MAC

# Impostare l'indirizzo MAC all'interfaccia
mac_eth0="00:11:22:33:44:55"

# Per rendere casuali solo gli ultimi 3 byte
mac_eth0="random-ending"

# Per rendere casuale tra lo stesso tipo fisico di connessione (esempio
# fibra, copper, wireless), tutti i fornitori
mac_eth0="random-samekind"

# Per rendere casuale tra qualsiasi tipo fisico di connessione (esempio
# fibra, copper, wireless), tutti i fornitori
mac_eth0="random-anykind"

# Casualità completa - ATTENZIONE: alcuni indirizzi MAC generati
# da questo esempio potrebberoNON funzionare come previso
mac_eth0="random-full"

3.i. Tunnelling

Non occorre installare niente per il tunnelling in quanto il gestore dell'interfaccia lo fa già da sè.

Codice 9.1: Configurazione per il tunnelling in /etc/conf.d/net

# Per tunnel GRE
iptunnel_vpn0="mode gre remote 207.170.82.1 key 0xffffffff ttl 255"

# Per tunnel IPIP
iptunnel_vpn0="mode ipip remote 207.170.82.2 ttl 255"

# Per configurare l'interfaccia
config_vpn0="192.168.0.2 peer 192.168.1.1"

3.j. VLAN (supporto 802.1q)

Per il supporto alle VLAN installare net-misc/vconfig.

Virtual LAN è un gruppo di dispositivi di rete che si comportano come se fossero connessi ad un singolo segmento di rete, anche se realmente non lo sono. I membri della VLAN possono solo vedere i membri della stessa VLAN anche se potrebbero condividere la stessa rete.

Codice 10.1: Configurazione per la VLAN in /etc/conf.d/net

# Specificare i numeri VLAN per le interfacce in questo modo
# Assicurarsi che gli ID di VLAN NON abbiano degli zeri riempitivi
vlans_eth0="1 2"

# Si può anche configurare la VLAN
# vedere la pagina man di vconfig per ulteriori dettagli
vconfig_eth0="set_name_type VLAN_PLUS_VID_NO_PAD"
vconfig_vlan1="set_flag 1" "set_egress_map 2 6"

# Configurare l'interfaccia come al solito
config_vlan1=( "172.16.3.1 netmask 255.255.254.0"
config_vlan2=( "172.16.2.1 netmask 255.255.254.0"

Importante: Per usare alcune impostazioni di VLAN, è consigliabile consultare la documentazione relativa ai nomi di variabili.


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


Stampa

Visualizza tutto

Aggiornato il 11 settembre 2012

La versione originale di questo documento è più recente ed è stata aggiornata il 25 settembre 2014

Oggetto: Gentoo fornisce delle impostazioni di rete flessibili, dando la possibilità di scegliere diversi client DHCP, impostare bonding, bridging, VLAN ed altro.

Sven Vermeulen
Autore

Grant Goodyear
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

Tobias Scherbaum
Redazione

Xavier Neys
Redazione

Joshua Saddler
Redazione

Gerald J. Normandin Jr.
Revisione

Donnie Berkholz
Revisione

Ken Nowack
Revisione

Lars Weiler
Contributi

Marco Mascherpa
Traduzione

Stefano Pacella
Traduzione

Enrico Morelli
Traduzione

Davide Cendron
Traduzione

Sergio Vaccaro
Traduzione

Donate to support our development efforts.

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