Handbook:PPC/Networking/Modular/it
Moduli di rete
Netifrc supporta gli script per la rete modulare, intendendo con ciò che il supporto per nuovi tipi di interfacce e moduli di configurazione può essere facilmente aggiunto mantenendo la compatibilità con quelli esistenti.
I moduli caricano in via predefinita se il pacchetto di cui hanno bisogno è installato. Se gli utenti specificano qui un modulo che non ha il suo pacchetto installato allora otterranno un errore riportante quale pacchetto bisogna installare. Nel caso ideale, l'impostazione dei moduli è usata solo quando due o più pacchetti, che forniscono lo stesso servizio, vengono installati e si ha bisogno di preferirne uno all'altro.
Tutte le impostazioni qui discusse sono memorizzate in /etc/conf.d/net se non altrimenti specificato.
/etc/conf.d/netDefinizioni dei moduli# Preferire ifconfig a iproute2 # modules="ifconfig" # Si possono specificare anche altri moduli per un interfaccia # In questo caso si preferisce dhclient a dhcpcd modules_eth0="dhclient" # Si possono specificare anche quali moduli non utilizzare - ad esempio può essere # che si usi un supplicant o linux-wlan-ng per controllare la configurazione del wireless ma # si vogliono ancora configurare le impostazioni di rete secondo l'ESSID a cui si è associati modules="!iwconfig"
Gestori delle interfacce
Vengono forniti due gestori di interfacce: ifconfig e iproute2. Si ha bisogno di uno di essi per fare qualsiasi tipo di configurazione di rete.
Entrambi sono installati in via predefinita come parte del profilo di sistema. iproute2 è il pacchetto più potente e flessibile. ifconfig e net-tools non dovrebbero più essere usati per l'impostazione della configurazione di rete.
Poichè iproute2 e ifconfig fanno cose molto simili, si permette che la loro configurazione di base funzioni per entrambi. Ad esempio, la configurazione sotto funziona a prescindere dal modulo usato.
/etc/conf.d/netConfigurazione di esampioconfig_eth0="192.168.0.2/24" config_eth0="192.168.0.2 netmask 255.255.255.0"
DHCP
DHCP è un mezzo per ottenere un indirizzo IP, insieme ad altre informazioni di rete (server DNS, gateway, etc.) da un server. Con un server DHCP funzionante in una rete, l'utente deve solo dire ad ogni dispositivo di ottenere le informazioni di configurazione via DHCP, che è poi utilizzato per configurare automaticamente il dispositivo. Naturalmente, ciò richiede una connessione di rete (p.es. tramite un access point wireless, PPPoE, etc.).
Il DHCP può essere fornito da dhclient o dhcpcd. Ogni modulo DHCP ha i suoi pro e i suoi contro - ecco un rapido resoconto:
| Modulo DHCP | Pacchetto | Pro | Contro |
|---|---|---|---|
| dhclient | net-misc/dhcp | Creato da ISC, la stessa gente che ha creato il software BIND DNS. Molto configurabile. Può essere usato per fornire DHCPv4 o DHCPv6. | La configurazione è eccessivamente complessa, il software è piuttosto pesante, non può ottenere i server NTP dal DHCP, di norma non invia l'hostname. Non più mantenuto alla fonte. |
| dhcpcd | net-misc/dhcpcd | Da lungo tempo il predefinito di Gentoo, nessuna dipendenza da strumenti esterni, attivamente sviluppato da Gentoo. Fornisce DHCPv4 and DHCPv6 allo stesso tempo. | A volte può essere lento, non si trasforma ancora in un servizio quando il lease è infinito. |
Se più di un client DHCP è installato, è possibile specificare quale client usare impostando la variabile "modules", p.es. modules="dhcpcd". Altrimenti, se dhcpcd è installato, viene usato in via predefinita.
Per inviare specifiche opzioni al modulo DHCP, usare module_eth0="...", dove module è il nome del modulo DHCP in uso - per esempio, "dhcpcd_eth0".
Si tende a rendere DHCP più o meno compatibile - come tale si supportano i seguenti comandi usando la variabile dhcp_eth0. La modalità predefinita è di non impostare alcuno di essi:
release- Rilascia l'indirizzo IP per riutilizzarlo.
nodns- Impedisce di sovrascrivere /etc/resolv.conf
nontp- Impedisce di sovrascrivere /etc/ntp.conf
nonis- Impedisce di sovrascrivere /etc/yp.conf
/etc/conf.d/netConfigurazione tipo DHCPv4# Richiesto solo se è installato più di un modulo DHCP modules="dhcpcd" config_eth0="dhcp" dhcpcd_eth0="-t 10"# Scade dopo 10 secondi dhcp_eth0="release nodns nontp nonis"# Ottiene solo un indirizzo
dhcpcd invia l'hostname corrente al server DHCP in via predefinita quindi non è più necessario specificarlo.
/etc/conf.d/netConfigurazione tipo DHCPv6# Richiesto solo se è installato più di un modulo DHCP modules="dhclient" config_eth0="dhcpv6" # Per usare sia DHCPv4 che DHCPv6 in una rete con doppio stack, rimuovere la riga sopra e togliere il commento alle seguenti righe #config_eth0="dhcp #dhcpv6" # Per passare argomenti di esecuzione a dhclient per DHCPv6 dhclientv6_eth0="-t 10"# Scade dopo 10 secondi # Imposta opzioni DHCPv6 generiche dhcpv6_eth0="release nodns nontp nonis nogateway nosendhost"
ADSL con PPPoE/PPPoA
Primo, installare il software ADSL:
root #emerge --ask net-dialup/pppSecondo, creare lo script di rete per PPP e lo script di rete per l'interfaccia Ethernet usata dal PPP:
root #ln -s /etc/init.d/net.lo /etc/init.d/net.ppp0
root #ln -s /etc/init.d/net.lo /etc/init.d/net.eth0Assicurarsi di impostare rc_depend_strict a YES in /etc/rc.conf
Ora bisogna configurare /etc/conf.d/net.
/etc/conf.d/netConfigurazione di base del PPPoEconfig_eth0=null(Definisceinterfacciaethernet) config_ppp0="ppp" link_ppp0="eth0"(Definisceinterfacciaethernet) 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_net_ppp0_need="net.eth0"
E' anche possibile configurare la password in /etc/ppp/pap-secrets.
/etc/ppp/pap-secretsModello di pap-secrets# Il simbolo * è importante "username" * "password"
Se il PPPoE è usato con un modem USB allora assicurarsi di fare l'emerge di br2684ctl. Si prega di leggere /var/db/repos/gentoo/net-dialup/speedtouch-usb/files/README per informazioni su come configurarlo adeguatamente.
Si prega di leggere attentamente la sezione sull'ADSL e il PPP in /usr/share/doc/netifrc-*/net.example.bz2. In esso sono contenute spiegazioni molto più dettagliate di tutte le impostazioni di cui ogni specifica configurazione del PPP avrà probabilmente bisogno.
APIPA (Automatic Private IP Addressing)(Assegnazione automatica indirizzo IP privato)
APIPA cerca di trovare un indirizzo libero nell'intervallo 169.254.0.0-169.254.255.255 usando arping per effettuare il ping sull'interfaccia ad un indirizzo casuale di quell'intervallo. Se non riceve risposta, quell'indirizzo viene assegnato all'interfaccia
Ciò è utile solo per reti locali dove:
- non c'è un server DHCP;
- il sistema non si connette direttamente a Internet; e
- tutti gli altri computer usano APIPA.
Per avere il supporto ad APIPA, si faccia l'emerge di net-misc/iputils con l'opzione USE arping o di net-analyzer/arping .
/etc/conf.d/netConfigurazione di APIPA# Provare prima DHCP - se fallisce allora ripegare su APIPA config_eth0="dhcp" fallback_eth0="apipa" # Usare solo APIPA config_eth0="apipa"
Bonding(Concatenare interfacce)
Il bonding è usato per aumentare l'ampiezza di banda della rete o per migliorare la robustezza nei confronti dei guasti hardware. Se un sistema ha due schede di rete dirette alla stessa rete, si possono concatenare: le applicazioni vedranno una sola interfaccia, ma entrambe le schede di rete saranno usate.
Ci sono molti modi di configurare il bonding. Alcuni di essi, come la modalità 802.3ad LACP, richiedono che siano supportati dallo switch e configurazione aggiuntiva negli stessi. Come fonte per le singole opzioni, si prega di fare riferimento alla copia locale di /usr/src/linux/Documentation/networking/bonding.txt.
Innanzitutto, ripulire la configurazione delle interfacce partecipanti:
/etc/conf.d/netRipulire configurazione delle interfacceconfig_eth0="null" config_eth1="null" config_eth2="null"
Poi, definire il bonding tra le interfacce:
/etc/conf.d/netDefinire il bondingslaves_bond0="eth0 eth1 eth2" config_bond0="192.168.100.4/24" # Scegliere una modalità corretta e opzioni di configurazione aggiuntive adatte ai propri bisogni mode_bond0="balance-alb"
Rimuovere i servizi net.eth* dal runlevel relativo, creare un servizio net.bond0, e aggiungerlo al runlevel appropriato.
Bridging(Unire segmenti di rete diversi) (Supporto a 802.1d)
Il bridging è usato per collegare insieme reti. Ad esempio, un network può avere un server che lo collega ad Internet tramite un modem ADSL, e anche un adattatore wireless per consentire ad altri dispositivi sul network di accedere ad Internet attraverso quel modem. E' possibile creare un bridge (connessione) che unisca insieme le due interfacce.
/etc/conf.d/netConfigurazione del bridge# Configurare il bridge - "man brctl" per maggiori dettagli bridge_forward_delay_br0=0 bridge_hello_time_br0=200 bridge_stp_state_br0=1 # Per aggiungere porte al bridge br0 bridge_br0="eth0 eth1" # Bisogna configurare le porte a valori nulli così il dhcp non verrà avviato config_eth0="null" config_eth1="null" # Infine dare un indirizzo al bridge - si potrebbe usare anche il DHCP config_br0="192.168.0.1/24" # Dipende da eth0 e eth1 poichè potrebbero richiedere ulteriore configurazione rc_net_br0_need="net.eth0 net.eth1"
Per usare alcune configurazioni di bridge, consultare la documentazione sul nome della variabile.
Quando si effettua il bridging usando IPv6, SLAAC richiede che STP sia impostato a
1 come si vede nell'esempio sopra.Indirizzo MAC
Attraverso il file di configurazione di rete è possibile cambiare pure l'indirizzo MAC delle interfacce .
/etc/conf.d/netEsempio di modifica dell'indirizzo MAC# Per impostare l'indirizzo MAC 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 (p.es. fibra, # rame, wireless) , tutti i produttori mac_eth0="random-samekind" # Per rendere casuale tra qualsiasi tipo fisico di connessione (p.es. fibra, rame, # wireless) , tutti i produttori mac_eth0="random-anykind" # Per rendere completamente casuale - ATTENZIONE: alcuni indirizzi MAC generati così potrebbero # NON comportarsi come sperato mac_eth0="random-full"
Tunneling(Incapsulare un protocollo di rete dentro un altro)
Il tunneling non ha bisogno che sia installato alcun software aggiuntivo in quanto il gestore dell'interfaccia può farlo.
/etc/conf.d/netConfigurazione del tunneling# 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"
VLAN (Supporto di 802.1q)
Per il supporto alla VLAN, assicurarsi che sys-apps/iproute2 sia installato, e che iproute2 sia usato come modulo di configurazione (invece di ifconfig).
Una VLAN, Virtual LAN (LAN virtuale) è un gruppo di dispositivi di rete che si comportano come se fossero collegati ad un singolo segmento di rete, anche se potrebbe non esserlo. I membri di una VLAN possono vedere solo altri membri della stessa VLAN, anche quando condividono la stessa rete fisica.
Per configurare le VLAN, innanzitutto specificare i numeri delle VLAN in /etc/conf.d/net così:
/etc/conf.d/netSpecificare i numeri delle VLANvlans_eth0="1 2"
Successivamente, configurare l'interfaccia per ogni singola VLAN:
/etc/conf.d/netConfigurazione dell'interfaccia per ogni VLANconfig_eth0_1="172.16.3.1 netmask 255.255.254.0" routes_eth0_1="default via 172.16.3.254" config_eth0_2="172.16.2.1 netmask 255.255.254.0" routes_eth0_2="default via 172.16.2.254"
Configurazioni particolari delle VLAN sono gestite da vconfig così:
/etc/conf.d/netConfigurare le VLANvlan1_name="vlan1" vlan1_ingress="2:6 3:5" eth0_vlan1_egress="1:2"
Per usare alcune configurazioni delle VLAN, consultare la documentazione sul nome delle variabili.