Indice
Suggerimento | |
---|---|
Per una guida generica all'uso della rete in GNU/Linux, leggere la Linux Network Administrators Guide. |
Suggerimento | |
---|---|
Per una guida moderna sull'uso della rete specifica per Debian, leggere The Debian Administrator's Handbook — Configuring the Network. |
Avvertimento | |
---|---|
Invece di usare lo schema di nomi tradizionale per le interfacce
(« |
Avvertimento | |
---|---|
Questo capito sta diventando non aggiornato dato che è basato su Debian 7.0
( |
Suggerimento | |
---|---|
Anche se questo documento usa ancora il vecchio
ifconfig(8)
con IPv4 per i suoi esempi di configurazione della rete, Debian sta migrando
a
ip(8)
con IPv4+IPv6 nel rilascio |
In questa sezione viene descritta in breve l'infrastruttura base di rete in un sistema Debian moderno.
Tabella 5.1. Elenco degli strumenti di configurazione della rete
pacchetto | popcon | dimensione | tipo | descrizione |
---|---|---|---|---|
ifupdown
|
V:561, I:995 | 195 | config::ifupdown | strumento standard per attivare e disattivare la rete (specifico di Debian) |
ifplugd
|
V:4, I:20 | 214 | " " | gestisce automaticamente la rete cablata |
ifupdown-extra
|
V:0, I:1 | 96 | " " |
script per testare la rete di supporto al pacchetto
"ifupdown "
|
ifmetric
|
V:0, I:1 | 36 | " " | imposta la metrica di routing per un'interfaccia di rete |
guessnet
|
V:0, I:0 | 422 | " " |
script di mappatura di supporto al pacchetto "ifupdown ",
attraverso il file "/etc/network/interfaces "
|
ifscheme
|
V:0, I:0 | 58 | " " |
script di mappatura di supporto al pacchetto "ifupdown "
|
ifupdown-scripts-zg2
|
V:0, I:0 | 147 | " " | script di interfaccia di Zugschlus per il metodo manuale di ifupdown |
network-manager
|
V:366, I:469 | 10172 | config::NM | NetworkManager (demone): gestisce la rete automaticamente |
network-manager-gnome
|
V:236, I:411 | 6281 | " " | NetworkManager (frontend GNOME) |
wicd
|
I:35 | 35 | config::wicd | gestore della rete cablata e wireless (metapacchetto) |
wicd-cli
|
V:0, I:2 | 59 | " " | gestore della rete cablata e wireless (client a riga di comando) |
wicd-curses
|
V:1, I:5 | 175 | " " | gestore della rete cablata e wireless (client Curses) |
wicd-daemon
|
V:30, I:40 | 954 | " " | gestore della rete cablata e wireless (demone) |
wicd-gtk
|
V:24, I:37 | 574 | " " | gestore della rete cablata e wireless (client GTK+) |
iptables
|
V:240, I:993 | 1528 | config::Netfilter | strumenti amministrativi per filtraggio di pacchetti di rete e NAT (Netfilter) |
iproute
|
V:107, I:475 | 23 | config::iproute2 | iproute2, IPv6 e altra configurazione di rete avanzata: ip(8), tc(8), ecc. |
ifrename
|
V:0, I:2 | 122 | " " | rinomina le interfacce di rete in base a vari criteri statici: ifrename(8) |
ethtool
|
V:94, I:266 | 372 | " " | mostra e modifica le impostazioni dei device Ethernet |
iputils-ping
|
V:257, I:997 | 111 | test::iproute2 | testa la raggiungibilità di rete di un host remoto con nome host o indirizzo IP (iproute2) |
iputils-arping
|
V:66, I:405 | 58 | " " | testa la raggiungibilità di rete di un host remoto specificato con il suo indirizzo ARP |
iputils-tracepath
|
V:14, I:264 | 75 | " " | traccia il percorso di rete verso un host remoto |
net-tools
|
V:395, I:976 | 940 | config::net-tools | toolkit di rete NET-3 (net-tools, configurazione di rete IPv4): ifconfig(8), ecc. |
inetutils-ping
|
V:0, I:1 | 337 | test::net-tools | testa la raggiungibilità della rete di un host remoto con nome host o indirizzo IP (datato, GNU) |
arping
|
V:1, I:28 | 67 | " " | testa la raggiungibilità di rete di un host remoto specificato con il suo indirizzo ARP (datato) |
traceroute
|
V:68, I:992 | 154 | " " | traccia il percorso di rete verso un host remoto (datato, console) |
isc-dhcp-client
|
V:406, I:963 | 649 | config::low-level | client DHCP |
wpasupplicant
|
V:294, I:544 | 2528 | " " | supporto client per WPA e WPA2 (IEEE 802.11i) |
wpagui
|
V:0, I:3 | 780 | " " | client GUI Qt per WPA supplicant |
wireless-tools
|
V:94, I:274 | 286 | " " | strumenti per manipolare le estensioni wireless per Linux |
ppp
|
V:186, I:515 | 927 | " " |
connessione PPP/PPPoE con chat
|
pppoeconf
|
V:0, I:11 | 290 | config::helper | strumento di aiuto di configurazione per la connessione PPPoE |
pppconfig
|
V:1, I:3 | 805 | " " |
strumento di aiuto per la connessione PPP con chat
|
wvdial
|
V:0, I:7 | 276 | " " |
strumento di aiuto per la connessione PPP con wvdial e
ppp
|
mtr-tiny
|
V:7, I:58 | 138 | test::low-level | traccia il percorso di rete verso un host remoto (curses) |
mtr
|
V:5, I:40 | 190 | " " | traccia il percorso di rete verso un host remoto (curses e GTK+) |
gnome-nettool
|
V:11, I:257 | 2116 | " " | strumenti per operazioni comuni sulle informazioni di rete (GNOME) |
nmap
|
V:45, I:432 | 22707 | " " | strumento per mappatura della rete / esplorazione delle porte (Nmap, console) |
zenmap
|
V:3, I:12 | 2842 | " " | strumento per mappatura della rete /esplorazione delle porte (GTK+) |
tcpdump
|
V:20, I:199 | 1175 | " " | analizzatore del traffico di rete (Tcpdump, console) |
wireshark
|
V:5, I:64 | 71 | " " | analizzatore del traffico di rete (Wireshark, GTK+) |
tshark
|
V:3, I:38 | 370 | " " | analizzatore del traffico di rete (console) |
nagios3
|
I:8 | NOT_FOUND | " " | sistema di monitoraggio e gestione per host, servizi e reti (Nagios) |
tcptrace
|
V:0, I:1 | 392 | " " |
produce un riassunto delle connessioni dall'output di
tcpdump
|
snort
|
V:0, I:1 | 1920 | " " | sistema flessibile di rilevazione delle intrusioni di rete (Snort) |
ntopng
|
V:0, I:1 | 684 | " " | mostra l'uso della rete nel browser web |
dnsutils
|
V:80, I:876 | 518 | " " |
client di rete forniti con BIND:
nslookup(8),
nsupdate(8),
dig
|
dlint
|
V:0, I:19 | 96 | " " | controlla l'informazione DNS di zona usando interrogazioni del server di nomi |
dnstracer
|
V:0, I:2 | 56 | " " | traccia una catena di server DNS fino alla sorgente |
La risoluzione del nome host è attualmente supportata dal meccanismo NSS (Name Service Switch). Il flusso di eventi nella risoluzione è il seguente.
Il file "/etc/nsswitch.conf
" con blocchi tipo
"hosts: files dns
" detta l'ordine di risoluzione dei nomi
di host. (Questo rimpiazza la vecchia funzionalità del blocco
"order
in "/etc/host.conf
".)
Il metodo files
è invocato per primo. Se il nome host
viene trovato nel file "/etc/hosts
", vengono restituiti
tutti gli indirizzi validi per esso e il programma termina. (Il file
"/etc/host.conf
" contiene "multi on
".)
Viene invocato il metodo dns
. Se il nome host viene
trovato dalla interrogazione al DNS (Internet Domain Name System,
sistema dei nomi di dominio Internet), identificato dal file
"/etc/resolv.conf
", vengono restituiti tutti gli
indirizzi validi per esso e il programma termina.
Per esempio, "/etc/hosts
" contiene righe come le
seguenti.
127.0.0.1 localhost 127.0.1.1 <nome_host> # Le righe seguenti sono desiderabili per host con supporto per IPv6 ::1 ip6-localhost ip6-loopback fe00::0 ip6-localnet ff00::0 ip6-mcastprefix ff02::1 ip6-allnodes ff02::2 ip6-allrouters ff02::3 ip6-allhosts
Ogni riga inizia con un indirizzo IP e prosegue con l'hostname associato.
L'indirizzo IP 127.0.1.1
nella seconda riga dell'esempio
può non essere presente in altri sistemi simil-Unix. L'Installatore Debian crea questa voce per i
sistemi senza un indirizzo IP permanente come soluzione per alcuni software
(es., GNOME) come documentato nel bug#719621.
Il <nome_host> corrisponde al nome host definito in
"/etc/hostname
".
Per un sistema con un indirizzo IP permanente, si dovrebbe usare qui tale
indirizzo invece di 127.0.1.1
.
Per un sistema con un indirizzo IP permanente e un FQDN (Fully Qualified Domain Name, nome di dominio pienamente qualificato) fornito dal DNS (Domain Name System), dovrebbe essere usato qui il canonico <nome_host>.<nome_dominio>, invece del semplice <nome_host>.
Il file "/etc/resolv.conf
" è un file statico se non è
installato il pacchetto resolvconf
. Se invece
quest'ultimo è installato il file è un collegamento simbolico. In ogni caso
contiene le informazioni che inizializzano le routine del risolutore. Se il
DNS si trova all'IP="192.168.11.1
", il file conterrà la
riga seguente.
nameserver 192.168.11.1
Il pacchetto resolvconf
rendo questo file
"/etc/resolv.conf
" un collegamento simbolico e gestisce
il suo contenuto con script eseguiti in automatico.
Per le postazioni PC nei tipici ambienti LAN ad hoc, il nome host può essere
risolto usando il Multicast DNS (mDNS, Zeroconf) in aggiunta ai metodi di base con
file
e dns
.
Avahi fornisce un'infrastruttura per il Multicast DNS Service Discovery in Debian.
È equivalente a Apple Bonjour / Apple Rendezvous.
Il pacchetto plugin libnss-mdns
fornisce la risoluzione
dei nomi host attraverso mDNS per la funzionalità GNU Name Service Switch
(NSS) della libreria C GNU (glibc).
Il file "/etc/nsswitch.conf
" dovrebbe contenere una
sezione simile a "hosts: files mdns4_minimal [NOTFOUND=return] dns
mdns4
".
I nomi host che terminano con lo pseudo-dominio di livello più alto (TLD) ".local" vengono risolti.
L'indirizzo multicast del collegamento locale mDNS IPv4
"224.0.0.251
" o il suo equivalente IPv6
"FF02::FB
" vengono usati per fare interrogazioni DNS per
un nome che termina con ".local
".
La risoluzione del nome host con il deprecato NETBios su TCP/IP, usato dai vecchi sistemi
Windows può essere fornita installando il pacchetto
winbind
. Per abilitare questa funzionalità il file
"/etc/nsswitch.conf
" dovrebbe avere una sezione come
"hosts: files mdns4_minimal [NOTFOUND=return] dns mdns4
wins
". (I sistemi Windows moderni solitamente usano il metodo
dns
per la risoluzione del nome host.)
Nota | |
---|---|
L'espansione dei gTLD (generic Top-Level Domain, domini di più alto livello generici) nel Domain Name System (Sistema di nomi di dominio) è in corso d'opera. Fare attenzione a possibili collisioni di nomi quando si sceglie un nome di dominio usato solamente all'interno di una LAN. |
Il nome dell'interfaccia di rete, ad esempio eth0
, viene
assegnato a ciascun hardware, quando viene rilevato, nel kernel Linux
attraverso il meccanismo di configurazione in spazio utente
udev
(vedere Sezione 3.3, «Il sistema udev»). Il nome
dell'interfaccia di rete è chiamato interfaccia
fisica in
ifup(8)
e
interfaces(5).
Per garantire che ciascuna interfaccia di rete abbia un nome persistente ad
ogni avvio, usando indirizzi MAC ecc.,
esiste un file di regole:
"/etc/udev/rules.d/70-persistent-net.rules
". Questo file
viene generato automaticamente dal programma
"/lib/udev/write_net_rules
" eseguito probabilmente dal
file "persistent-net-generator.rules
". Lo si può
modificare per cambiare le regole di assegnazione dei nomi.
Attenzione | |
---|---|
Quando si modifica il file delle regole
" |
Ecco un ripasso degli intervalli di indirizzi IPv4 a 32 bit in ciascuna classe, riservati per l'uso in reti locali (LAN) dalla rfc1918. È garantito che questi indirizzi non creino conflitti con altri indirizzi della vera e propria rete Internet.
Tabella 5.2. Elenco di intervalli di indirizzi di rete
Classe | indirizzi di rete | maschera di rete | maschera rete /bit | numero di sottoreti |
---|---|---|---|---|
A | 10.x.x.x | 255.0.0.0 | /8 | 1 |
B | 172.16.x.x — 172.31.x.x | 255.255.0.0 | /16 | 16 |
C | 192.168.0.x — 192.168.255.x | 255.255.255.0 | /24 | 256 |
Nota | |
---|---|
Se uno di questi indirizzi viene assegnato ad un host, allora l'host non deve accedere ad Internet direttamente, ma deve accedervi attraverso un gateway che agisca da proxy per i singoli servizi o che, in alternativa, faccia da NAT (Network Address Translation, traduzione degli indirizzi di rete). I router a banda larga di solito agiscono da NAT per l'ambiente LAN dell'utente finale. |
Nonostante la maggior parte dei dispositivi hardware sia supportata dal sistema Debian, ci sono alcuni dispositivi di rete che necessitano, per essere supportati, firmware non libero secondo la definizione nelle DFSG. Vedere Sezione 9.9.6, «Driver per hardware e firmware».
I sistemi Debian squeeze
e successivi possono gestire la
connessione di rete attraverso software per demoni di gestione come NetworkManager (NM) (network-manager e
pacchetti associati) oppure Wicd (wicd e
pacchetti associati).
Questi sono forniti con propri programmi per l'interfaccia utente con GUI o a riga di comando.
Sono forniti con un proprio demone come sistema di backend.
Permettono al proprio sistema di connettersi facilmente ad Internet.
Permettono una facile gestione della configurazione delle reti cablate e wireless.
Permettono di configurare la rete in modo indipendente dal datato pacchetto
ifupdown
.
Nota | |
---|---|
Non usare questi strumenti di configurazione automatica della rete per server. Sono pensati principalmente per utenti con desktop mobili su portatili. |
Questi strumenti moderni di configurazione della rete devono essere
configurati in modo corretto per evitare conflitti con il datato pacchetto
ifupdown
e con il suo file di configurazione
"/etc/network/interfaces
".
Suggerimento | |
---|---|
Con systemd, la rete può essere configurata
invece in |
Nota | |
---|---|
Alcune funzionalità di questi strumenti automatici di configurazione della
rete possono soffrire dei problemi. Non sono così robusti come il vecchio
pacchetto |
La documentazione ufficiale per NM e Wicd su Debian è fornita
rispettivamente in
"/usr/share/doc/network-manager/README.Debian
" e
"/usr/share/doc/wicd/README.Debian
".
Fondamentalmente, la configurazione di rete per il desktop viene fatta nel modo seguente.
Aggiungere l'utente desktop, ad esempio pippo
, al gruppo
"netdev
" con il comando seguente. (In alternativa farlo
automaticamente attraverso D-bus nei moderni
ambienti desktop come GNOME e KDE).
$ sudo adduser pippo netdev
Mantenere la configurazione di "/etc/network/interfaces
"
semplice come la seguente.
auto lo iface lo inet loopback
Riavviare NM o Wicd con il comando seguente.
$ sudo /etc/init.d/network-manager restart
$ sudo /etc/init.d/wicd restart
Configurare la propria rete attraverso l'interfaccia grafica.
Nota | |
---|---|
Solo le interfacce che non sono elencate
in " |
Suggerimento | |
---|---|
Se si desirano estendere le capacità di configurazione della rete di NM,
cercare i moduli plugin appropriati e i pacchetti supplementari, quali
|
Attenzione | |
---|---|
Questi strumenti di configurazione automatica della rete possono non essere
compatibili con alcune configurazioni esotiche del datato
|
Quando il metodo descritto in Sezione 5.2, «La configurazione moderna della rete per il desktop» non è sufficiente per le proprie necessità, si dovrebbe usare il metodo datato di connessione e configurazione della rete che combina assieme diversi strumenti più semplici.
La connessione di rete in vecchio stile è specifica per ciascun metodo (vedere Sezione 5.4, «Il metodo di connessione alla rete (datato)»).
Esistono 2 tipi di programma per la configurazione a basso livello della rete in Linux (vedere Sezione 5.7.1, «Comandi iproute2»).
I vecchi programmi net-tools (ifconfig(8), …) provengono dal sistema di rete Linux NET-3. La maggior parte di essi è ora superata.
I nuovi programmi Linux iproute2 (ip(8), …) formano l'attuale sistema Linux di rete.
Anche se questi programmi di rete a basso livello sono potenti, sono complicati da usare. Perciò sono stati creati strumenti di configurazione della rete di alto livello.
Il pacchetto ifupdown
è lo standard de facto per una
configurazione di rete di altro livello di questo tipo in Debian. Permette
di attivare la rete semplicemente eseguendo, per esempio, "ifup
eth0
". Il suo file di configurazione è il file
"/etc/network/interfaces
" e i suoi contenuti hanno
tipicamente un aspetto simile al seguente.
auto lo iface lo inet loopback auto eth0 iface eth0 inet dhcp
Il pacchetto resolvconf
è stato creato per fornire al
sistema ifupdown
il supporto per una riconfigurazione
indolore della risoluzione degli indirizzi di rete, riscrivendo
automaticamente il file "/etc/resolv.conf
" di
configurazione del risolutore. Attualmente la maggior parte dei pacchetti di
configurazione della rete in Debian sono modificati per usare il pacchetto
resolvconf
(vedere
"/usr/share/doc/resolvconf/README.Debian
").
Per automatizzare la configurazione dinamica di ambienti di rete come un PC
portatile in una LAN cablata, sono stati creati script di aiuto per il
pacchetto ifupdown
, come ifplugd
,
guessnet
, ifscheme
, ecc. Essi sono
relativamente difficili da usare ma si comportano bene con il sistema
ifupdown
esistente.
Questi sono spiegati in dettaglio con esempi (vedere Sezione 5.5, «Configurazione base della rete con ifupdown (metodo vecchio)» e Sezione 5.6, «Configurazione avanzata della rete con ifupdown (strumento datato)»).
Attenzione | |
---|---|
I metodi per testare la connessione descritti in questa sezione sono pensati
per fare prove. Non sono pensati per essere usati direttamente per
connettersi alla rete quotidianamente. È consigliato il loro uso con NM,
Wicd o il pacchetto |
I metodi di connessione tipici alla rete e i percorsi tipici per la connessione per un PC possono essere schematizzati nel modo seguente.
Tabella 5.3. Elenco dei metodi di connessione alla rete e dei percorsi di connessione
PC | metodo di connessione | percorso di connessione |
---|---|---|
Porta seriale (ppp0 )
|
PPP | ⇔ modem ⇔ POTS ⇔ punto di accesso dial-up ⇔ ISP |
Porta ethernet (eth0 )
|
PPPoE/DHCP/Statico | ⇔ modem BB (banda larga) ⇔ servizio BB ⇔ punto di accesso BB ⇔ ISP |
Porta ethernet (eth0 )
|
DHCP/Statico | ⇔ LAN ⇔ router BB (banda larga) con NAT (traduzione degli indirizzi di rete (⇔ modem BB …) |
Quella che segue è una schematizzazione degli script di configurazione per ciascun metodo di connessione.
Tabella 5.4. Elenco di configurazioni della connessione di rete
metodo di connessione | configurazione | pacchetto(i) backend |
---|---|---|
PPP | pppconfig per creare chat deterministiche
|
pppconfig , ppp |
PPP (alternativo) | wvdialconf per creare chat euristiche
|
ppp , wvdial |
PPPoE | pppoeconf per creare chat deterministiche
|
pppoeconf , ppp |
DHCP |
descritto in "/etc/dhcp/dhclient.conf "
|
isc-dhcp-client
|
IP statico (IPv4) |
descritto in "/etc/network/interfaces "
|
iproute o net-tools (obsolete)
|
IP statico (IPv6) |
descritto in "/etc/network/interfaces "
|
iproute
|
Gli acronimi per le connessioni di rete hanno il significato seguente.
Tabella 5.5. Elenco di acronimi per le connessioni di rete
acronimo | significato |
---|---|
POTS | Plain Old Telephone Service, il semplice vecchio servizio telefonico |
BB | banda larga |
servizio BB (BB-service) | ad esempio, la linea digitale (DSL), la TV via cavo o fibre ottiche |
modem BB | ad esempio, il modem DSL, il modem via cavo o l'ONT, il terminale di rete ottica |
LAN | rete locale (Local Area Network) |
WAN | rete geografica (Wide Area Network) |
DHCP | Protocollo di Configurazione Dinamica dell'Host |
PPP | protocollo Point-to-Point |
PPPoE | protocollo Point-to-Point via Ethernet |
ISP | Fornitore di servizi Internet (Internet Service Provider) |
Nota | |
---|---|
I servizi di connessione WAN attraverso la TV via cavo sono generalmente serviti da DHCP o PPPoE. Quelli ADSL e FTTP sono generalmente serviti da PPPoE. Si deve consultare il proprio fornitore di servizi Internet per i requisiti esatti di configurazione della connessione WAN. |
Nota | |
---|---|
Quando un router BB è usato per creare un ambiente LAN domestico, i PC della LAN sono connessi alla WAN attraverso il router BB con NAT (traduzione degli indirizzi di rete). In questi casi alle interfacce di rete dei PC nella LAN sono assegnati dal router BB indirizzi IP statici o DHCP. Il router BB deve essere configurato per connettersi alla WAN seguendo le istruzioni del proprio fornitore di servizi Internet. |
Le reti tipiche moderne per le abitazioni e le piccole aziende, cioè le LAN, sono connesse alla WAN (Internet) usando un router per banda larga economico. La LAN dietro questo router è di solito servita dal server DHCP (protocollo di configurazione dinamica dell'host) in esecuzione sul router.
Installare semplicemente il pacchetto isc-dhcp-client
per
Ethernet con DHCP
(protocollo di configurazione dinamica dell'host).
Vedere dhclient.conf(5).
Per Ethernet con IP statico non è necessaria alcuna azione particolare.
Lo script di configurazione pppconfig
imposta la
connessione PPP interattivamente chiedendo
all'utente di selezionare solamente quanto segue.
Il numero di telefono
Il nome utente per il fornitore di servizi Internet
La password per il fornitore di servizi Internet
La velocità della porta
La porta di comunicazione del modem
Il metodo di autenticazione
Tabella 5.6. Elenco dei file di configurazione per la connessione PPP con pppconfig
file | funzione |
---|---|
/etc/ppp/peers/<nome_isp>
|
Il file di configurazione per pppd specifico per il
fornitore di servizi <nome_isp>, generato da
pppconfig
|
/etc/chatscripts/<nome_isp>
|
Il file di configurazione per chat specifico per il
fornitore di servizi <nome_isp>, generato da
pppconfig
|
/etc/ppp/options
|
I parametri generici di esecuzione per ppd
|
/etc/ppp/pap-secret
|
Dati di autenticazione per PAP (rischio per la sicurezza) |
/etc/ppp/chap-secret
|
Dati di autenticazione per PAP (più sicuri) |
Attenzione | |
---|---|
Se i comandi |
Si può testare la configurazione usando strumenti di configurazione di rete a basso livello come nel modo seguente.
$ sudo pon <nome_isp> ... $ sudo poff <nome_isp>
Vedere "/usr/share/doc/ppp/README.Debian.gz
".
Un approccio diverso all'uso di
pppd(8)
è la sua esecuzione tramite
wvdial(1)
che è fornito nel pacchetto "wvdial
. Invece di essere
pppd
ad eseguire
chat(8)
per comporre il numero e negoziare la connessione, è
wvdial
che fa queste cose e poi avvia
pppd
per tutto il resto.
Lo script di configurazione wvdialconf
imposta la
connessione PPP interattivamente chiedendo all'utente di selezionare
solamente quanto segue.
Il numero di telefono
Il nome utente per il fornitore di servizi Internet
La password per il fornitore di servizi Internet
Nella maggior parte dei casi wvdial
crea la connessione
con successo e mantiene automaticamente un elenco dei dati di
autenticazione.
Tabella 5.7. Elenco dei file di configurazione per la connessione PPP con wvdialconf
file | funzione |
---|---|
/etc/ppp/peers/wvdial
|
Il file di configurazione per pppd specifico per
wvdial , generato da wvdialconf
|
/etc/wvdial.conf
|
Il file di configurazione creato da wvdialconf
|
/etc/ppp/options
|
I parametri generici di esecuzione per ppd
|
/etc/ppp/pap-secret
|
Dati di autenticazione per PAP (rischio per la sicurezza) |
/etc/ppp/chap-secret
|
Dati di autenticazione per PAP (più sicuri) |
Si può testare la configurazione usando strumenti di configurazione di rete a basso livello come nel modo seguente.
$ sudo wvdial ... $ sudo killall wvdial
Vedere wvdial(1) e wvdial.conf(5).
Quando il fornitore di servizi Internet dà una connessione PPPoE e si decide
di connettere il proprio PC direttamente alla WAN, la rete del proprio PC
deve essere configurata con PPPoE. PPPoE sta per "PPP over Ethernet" (PPP
via Ethernet). Lo script di configurazione pppoeconf
configura la connessione PPPoE in modo interattivo.
I file di configurazione sono i seguenti.
Tabella 5.8. Elenco dei file di configurazione per la connessione PPPoE con pppoeconf
file | funzione |
---|---|
/etc/ppp/peers/dsl-provider
|
Il file di configurazione per pppd specifico per
pppoe , generato da pppoeconf
|
/etc/ppp/options
|
I parametri generici di esecuzione per ppd
|
/etc/ppp/pap-secret
|
Dati di autenticazione per PAP (rischio per la sicurezza) |
/etc/ppp/chap-secret
|
Dati di autenticazione per PAP (più sicuri) |
Si può testare la configurazione usando strumenti di configurazione di rete a basso livello come nel modo seguente.
$ sudo /sbin/ifconfig eth0 up $ sudo pon dsl-provider ... $ sudo poff dsl-provider $ sudo /sbin/ifconfig eth0 down
Vedere "/usr/share/doc/pppoeconf/README.Debian
".
La configurazione tradizionale della rete
TCP/IP in un sistema Debian usa il pacchetto
ifupdown
come strumento ad alto livello. Ci sono 2 casi
tipici.
Per sistemi con IP dinamico, come PC
portatili, si dovrebbe impostare la rete TCP/IP con il pacchetto resolvconf
che
permette di cambiare facilmente la configurazione di rete (vedere Sezione 5.5.4, «Interfaccia di rete servita da DHCP»).
Per sistemi con IP statico, come sever,
si dovrebbe impostare la rete TCP/IP senza il pacchetto resolvconf
e
mantere semplice il proprio sistema (vedere Sezione 5.5.5, «Interfaccia di rete con IP statico»).
Questi metodi di impostazione tradizionali sono piuttosto utili se si desidera impostare una configurazione avanzata; si possono trovare i dettagli qui di seguito.
Il pacchetto ifupdown
fornisce l'infrastruttura standard
per la configurazione di rete di alto livello nel sistema Debian. In questa
sezione viene descritta la configurazione base della rete con
ifupdown
con un'introduzione semplificata e molti esempi
tipici.
Il pacchetto ifupdown
contiene 2 comandi:
ifup(8)
e
ifdown(8).
Offrono una configurazione della rete di alto livello in base al file di
configurazione "/etc/network/interfaces".
Tabella 5.9. Elenco di comandi base per la configurazione della rete con ifupdown
comando | azione |
---|---|
ifup eth0
|
attiva una interfaccia di rete eth0 con la configurazione
di eth0 se esiste un blocco "iface
eth0 "
|
ifdown eth0
|
disattiva una interfaccia di rete eth0 con la
configurazione di eth0 se esiste un blocco
"iface eth0 "
|
Avvertimento | |
---|---|
Non usare strumenti di configurazione a basso livello, come i comandi ifconfig(8) e ip(8), per configurare un'interfaccia nello stato attivo (up). |
Nota | |
---|---|
Non esiste un comando |
La sintassi di base di "/etc/network/interfaces
", come
spiegato in
interfaces(5),
può essere riassunta nel modo seguente.
Tabella 5.10. Elenco dei blocchi in "/etc/network/interfaces
"
blocco | significato |
---|---|
"auto <nome_interfaccia> "
|
attiva l'interfaccia <nome_interfaccia> all'avvio del sistema |
"allow-auto <nome_interfaccia> "
|
" " |
"allow-hotplug <nome_interfaccia> "
|
attiva l'interfaccia <nome_interfaccia> quando il kernel rileva un evento hotplug dall'interfaccia |
Le righe che iniziano con "iface <nome_config> … "
|
definiscono la configurazione di rete <nome_config> |
Le righe che iniziano con "mapping
<glob_nome_interfaccia> "
|
definiscono i valori di mappatura di <nome_config> al corrispondente <nome_interfaccia> |
Le righe che iniziano con un carattere cancelletto "# "
|
sono commenti e vengono ignorate (i commenti di fine riga non sono supportati) |
Le righe che terminano con una barra rovesciata "\ "
|
estendono la configurazione alla riga seguente |
Le righe con un blocco iface
hanno la sintassi
seguente.
iface <nome_config> <famiglia_indirizzi> <nome_metodo> <opzione1> <valore1> <opzione2> <valore2> ...
Per la configurazione di base non vengono usati i blocchi mapping
ma viene usato il nome
dell'interfaccia di rete come nome della configurazione di rete (vedere
Sezione 5.6.5, «Il blocco di mappatura "mapping"»).
Avvertimento | |
---|---|
Non creare definizioni duplicate per un blocco " |
La voce di configurazione seguente, nel file
"/etc/network/interfaces
" attiva l'interfaccia di rete
loopback, lo
, all'avvio del sistema (attraverso il blocco
auto
).
auto lo iface lo inet loopback
Questo blocco esiste sempre nel file
"/etc/network/interfaces
".
Dopo aver preparato il sistema con Sezione 5.4.1, «Connessione DHCP con Ethernet», l'interfaccia di rete
con DHCP viene configurata creando una voce di configurazione nel file
"/etc/network/interfaces
" nel modo seguente.
allow-hotplug eth0 iface eth0 inet dhcp
Quando il kernel Linux rileva l'interfaccia fisica eth0
,
il blocco allow-hotplug
fa sì che
ifup
attivi l'interfaccia e il blocco iface
fa sì che
ifup
usi DHCP per configurare l'interfaccia.
L'interfaccia di rete con IP statico viene configurata creando una voce di
configurazione nel file "/etc/network/interfaces
" nel
modo seguente.
allow-hotplug eth0 iface eth0 inet static address 192.168.11.100 netmask 255.255.255.0 gateway 192.168.11.1 dns-domain example.com dns-nameservers 192.168.11.1
Quando il kernel Linux rileva l'interfaccia fisica eth0
,
il blocco allow-hotplug
fa sì che
ifup
attivi l'interfaccia e il blocco iface
fa sì che
ifup
usi l'IP statico per configurare l'interfaccia.
In questo esempio sono stati dati per veri i seguenti dati.
Intervallo di indirizzi IP della rete LAN: 192.168.11.0
-
192.168.11.255
Indirizzo IP del gateway: 192.168.11.1
Indirizzo IP del PC: 192.168.11.100
Il pacchetto resolvconf
è installato.
Nome di dominio: "example.com
"
Indirizzo IP del server DNS: 192.168.11.1
Quando il pacchetto resolvconf
non è installato, la
configurazione relativa al DNS deve essere fatta manualmente modificando
"/etc/resolv.conf
" nel modo seguente.
nameserver 192.168.11.1 domain example.com
Attenzione | |
---|---|
L'indirizzo IP usato nell'esempio soprastante non deve essere copiato pari pari. È necessario mettere i numeri IP della reale configurazione della propria rete. |
La LAN wireless (in breve WLAN) fornisce connettività veloce wireless attraverso comunicazioni con espansione di spettro in bande radio senza licenza basate sull'insieme di standard chiamato IEEE 802.11.
Le interfacce WLAN sono quasi come normali interfacce Ethernet, ma
richiedono alcuni dati sull'identità della rete e sulla chiave di cifratura
per essere usate una volta inizializzate. Gli strumenti di rete di alto
livello per esse sono esattamente gli stessi delle interfacce di rete,
tranne che i nomi delle interfacce sono un po' diversi come
eth1
, wlan0
, ath0
,
wifi0
, … a seconda dei driver del kernel utilizzati.
Suggerimento | |
---|---|
Il device |
Quelle che seguono sono alcune parole chiave relative alla WLAN che è bene ricordare.
Tabella 5.11. Elenco di acronimi per WLAN
acronimo | forma estesa | significato |
---|---|---|
NWID | Network ID (ID di rete) | identificativo di rete a 16 bit usato da reti WaveLAN pre-802.11 (molto deprecato) |
(E)SSID | (Extended) Service Set Identifier (Identificativo di insieme di servizi (esteso)) | il nome di rete dei punti di accesso wireless (Wireless Access Points, AP) interconnessi a formare una LAN wireless 802.11; identificativo del dominio |
WEP, (WEP2) | Wired Equivalent Privacy (Privacy equivalente alla cablata) | standard di cifratura per wireless a 64 bit (128 bit) di prima generazione con chiave a 40-bit (deprecato) |
WPA | Wi-Fi Protected Access (Accesso Wi-Fi protetto) | standard di cifratura per wireless di seconda generazione (maggior parte del 802.11i), compatibile con WEP |
WPA2 | Wi-Fi Protected Access 2 (Accesso Wi-Fi protetto 2) | standard di cifratura per wireless di terza generazione (tutto il 802.11i), non compatibile con WEP |
Di fatto la scelta del protocollo è di solito limitata dal router wireless che si possiede.
È necessario installare il pacchetto wpasupplicant
per
supportare la WLAN con i nuovi WPA/WPA2.
In caso di IP DHCP per la connessione WLAN, la
voce nel file "/etc/network/interfaces
" dovrebbe essere
come la seguente.
allow-hotplug ath0 iface ath0 inet dhcp wpa-ssid zonacasa # la chiave di cifratura, psk, esadecimale e' codificata da una passphrase in puro testo wpa-psk 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f
Vedere "/usr/share/doc/wpasupplicant/README.modes.gz
".
È necessario installare il pacchetto wireless-tools
per
supportare la rete WLAN con il vecchio WEP. (Il proprio router economico
potrebbe usare ancora questa infrastruttura non sicura, ma è meglio di
niente.)
Attenzione | |
---|---|
Notare che il traffico di rete in una WLAN con WEP può essere spiato da altri. |
In caso di IP DHCP per la connessione WLAN, la
voce nel file "/etc/network/interfaces
" dovrebbe essere
come la seguente.
allow-hotplug eth0 iface eth0 inet dhcp wireless-essid Casa wireless-key1 0123-4567-89ab-cdef wireless-key2 12345678 wireless-key3 s:password wireless-defaultkey 2 wireless-keymode open
Vedere "/usr/share/doc/wireless-tools/README.Debian
".
È necessario come prima cosa configurare la connessione PPP come descritto
in precedenza (vedere Sezione 5.4.3, «Connessione PPP con pppconfig»). Quindi aggiungere nel file
"/etc/network/interfaces
" la voce per il device PPP
primario ppp0
nel modo seguente.
iface ppp0 inet ppp provider <nome_isp>
È necessario come prima cosa configurare la connessione PPP alternativa con
wvdial
, come descritto in precedenza (vedere Sezione 5.4.4, «Connessione PPP alternativa con wvdialconf»). Quindi
aggiungere nel file "/etc/network/interfaces
" la voce per
il device PPP primario ppp0
nel modo seguente.
iface ppp0 inet wvdial
Per i PC connessi direttamente alla WAN con servizio PPPoE, è necessario
configurare il sistema con la connessione PPPoE come descritto in precedenza
(vedere Sezione 5.4.5, «Connessione PPPoE con pppoeconf»). Quindi
aggiungere nel file "/etc/network/interfaces
" la voce per
il device PPPoE primario eth0
nel modo seguente.
allow-hotplug eth0 iface eth0 inet manual pre-up /sbin/ifconfig eth0 up up ifup ppp0=dsl down ifdown ppp0=dsl post-down /sbin/ifconfig eth0 down # Quello che segue e' usato solo internamente iface dsl inet ppp provider dsl-provider
Il file "/etc/network/run/ifstate
" memorizza gli stati
previsti di configurazione della rete per
tutte le interfacce di rete attualmente attive gestite dal
pacchettoifupdown
. Sfortunatamente, anche se il tentativo
del sistema ifupdown
di attivare un'interfaccia come
previsto fallisce, il file "/etc/network/run/ifstate
" la
elenca come attiva.
Se l'output del comando ifconfig(8) per un'interfaccia non ha una riga come quella dell'esempio seguente, l'interfaccia non può essere usata come parte di una rete IPV4.
inet addr:192.168.11.2 Bcast:192.168.11.255 Mask:255.255.255.0
Nota | |
---|---|
Per i dispositivi Ethernet connessi con PPPoE, l'output di ifconfig(8) manca di una riga come quella dell'esempio precedente. |
Quando si cerca di riconfigurare un'interfaccia, ad esempio
eth0
, per prima cosa è necessario disattivarla con il
comando "sudo ifdown
eth0
". Questo rimuove la voce corrispondente ad
eth0
dal file
"/etc/network/run/ifstate
". (Potrebbero essere generati
messaggi di errore se eth0
non è attiva o se non era
stata configurata in modo conrretto.) Per il momento, fare questa azione per
una postazione di lavoro per singolo utente sembra sicuro in qualunque
momento.
Si può ora modificare liberamente il contenuto di
"/etc/network/interfaces
" in base alle proprie necessità
per riconfigurare l'interfaccia di rete eth0
.
In seguito si può riattivare eth0
con il comando
"sudo ifup eth0
".
Suggerimento | |
---|---|
Si può (re)inizializzare l'interfaccia di rete semplicemente usando
" |
Il pacchetto ifupdown-extra
fornisce facili testi della
connessione di rete per l'uso con il pacchetto ifupdown
.
Il comando network-test(1) può essere usato dalla shell.
Gli script automatici vengono eseguiti per ogni invocazione del comando
ifup
.
Il comando network-test
libera l'utente dal faticoso
compito di eseguire comandi a basso livello per analizzare i problemi di
rete.
Gli script automatici vengono installati in
"/etc/network/*/
" e effettuano le azioni seguenti.
Verifica della connessione del cavo di rete
Verifica dell'eventuale uso duplicato di indirizzi IP
Impostazione di instradamenti statici del sistema in base alle definizioni
in "/etc/network/routes
"
Verifica della raggiungibilità del gateway di rete
Registrazione dei risultati nel file "/var/log/syslog
"
Queste voci nel syslog sono piuttosto utili per l'amministrazione di problemi di rete nel sistema remoto.
Suggerimento | |
---|---|
Il comportamento automatico del pacchetto |
Le funzionalità del pacchetto ifupdown
possono essere
migliorate andando oltre quanto è stato descritto in Sezione 5.5, «Configurazione base della rete con ifupdown (metodo vecchio)», con
qualche informazione più avanzata.
Le funzionalità descritte in questa sezione sono completamente opzionali. Essendo io pigro e minimalista, raramente faccio lo sforzo di usarle.
Attenzione | |
---|---|
Se non si è riusciti a configurare la connessione di rete usando le informazioni in Sezione 5.5, «Configurazione base della rete con ifupdown (metodo vecchio)», cercare una soluzione nelle informazioni che seguono non farà che peggiorare le cose. |
Il pacchetto ifplugd
è un vecchio strumento di
configurazione della rete che può gestire soltanto connessioni
Ethernet. Risolve problemi di cavi Ethernet sconnessi/ricconessi per PC
portatili, ecc. Se è installato NetworkManager o Wicd (vedere Sezione 5.2, «La configurazione moderna della rete per il desktop»), questo pacchetto
non è necessario.
Questo pacchetto esegue un demone e rimpiazza
le funzionalità auto o allow-hotplug (vedere Tabella 5.10, «Elenco dei blocchi in "/etc/network/interfaces
"») ed abilita le interfacce quando queste
vengono connesse alla rete.
Ecco come usare il pacchetto ifplugd
per la porta
Ethernet interna, ad esempio eth0
.
Rimuovere il blocco "auto eth0
" o "allow-hotplug
eth0
" dal file "/etc/network/interfaces
".
Mantenere i blocchi "iface eth0 inet …
" e
"mapping …
" nel file
"/etc/network/interfaces
".
Installare il pacchetto ifplugd
.
Eseguire "sudo dpkg-reconfigure ifplugd
".
Indicare eth0
come "interfaccia statica che ifplugd deve
osservare".
Ora, dopo la riconfigurazione, la rete funziona come voluto.
All'avvio o al rilevamento dell'hardware, l'interfaccia non viene attivata da sé stessa.
Procedura di avvio veloce senza lunghi tempi di attesa per DHCP.
Nessuna interfaccia attivata in modo inconsueto senza un appropriato indirizzo IPv4 (vedere Sezione 5.5.12, «Lo stato di configurazione della rete di ifupdown»).
Quando viene rilevato il cavo Ethernet l'interfaccia viene attivata.
Dopo un certo intervallo di tempo dalla disconnessione del cavo Ethernet, l'interfaccia viene automaticamente disattivata.
Quando viene inserito un altro cavo Ethernet, l'interfaccia è attivata nel nuovo ambiente.
Suggerimento | |
---|---|
Gli argomenti del comando ifplugd(8) possono impostare il suo comportamento, come il ritardo nella riconfigurazione delle interfacce. |
Il pacchetto ifmetric
permette di manipolare la metrica
di instradamenti a posteriori, anche per DHCP.
Le azioni seguenti impostano l'interfaccia eth0
come
preferita rispetto alla interfaccia wlan0
.
Installare il pacchetto ifmetric
.
Aggiungere una riga con l'opzione "metric 0
"
immediatamente sotto alla riga "iface eth0 inet dhcp
" in
"/etc/network/interfaces
".
Aggiungere una riga con l'opzione "metric 1
"
immediatamente sotto alla riga "iface wlan0 inet dhcp
" in
"/etc/network/interfaces
".
"metric 0" significa instradamento con la più alta priorità ed è quello predefinito. Un valore di metrica più alto indica instradamenti con priorità più bassa. L'indirizzo IP dell'interfaccia attiva con il valore di metrica più basso diventa quello di origine. Vedere ifmetric(8).
Una singola interfaccia fisica Ethernet può essere configurata come interfacce virtuali multiple con indirizzi IP differenti. Di solito ciò ha lo scopo di connettere un'interfaccia a diverse sottoreti di IP. Per esempio, un'applicazione di questo tipo è l'hosting web virtuale basato su indirizzi IP con una singola interfaccia di rete.
Per esempio, si supponga quanto segue.
Una singola interfaccia Ethernet dell'host è connessa ad un hub Ethernet (non al router a banda larga).
L'hub Ethernet è connesso sia ad Internet sia alla rete LAN.
La rete LAN usa la sottorete 192.168.0.x/24
.
L'host usa per Internet indirizzi IP DHCP sull'interfaccia fisica
eth0
.
L'host usa 192.168.0.1
con l'interfaccia virtuale
eth0:0
per la LAN.
I blocchi seguenti in " /etc/network/interfaces
"
configurano la rete.
iface eth0 inet dhcp metric 0 iface eth0:0 inet static address 192.168.0.1 netmask 255.255.255.0 network 192.168.0.0 metric 1
Attenzione | |
---|---|
Anche se questo esempio di configurazione con traduzione degli indirizzi di rete (NAT) usando netfilter/iptables (vedere Sezione 5.9, «Infrastruttura netfilter») può fornire un router a basso prezzo per la LAN usando una sola interfaccia, non c'è alcuna reale funzionalità di firewall con una configurazione di questo tipo. Si dovrebbero usare 2 interfacce fisiche con NAT per rendere sicura la rete locale rispetto ad Internet. |
Il pacchetto ifupdown
offre funzionalità di
configurazione avanzata della rete usando il nome di configurazione della rete e il nome dell'interfaccia di rete. Viene qui usata una
terminologia leggermente diversa da quella usata in
ifup(8)
e
interfaces(5).
Tabella 5.12. Elenco della terminologia per i device di rete
terminologia delle pagine man | terminologia di questo documento | esempi nel testo seguente | descrizione |
---|---|---|---|
nome dell'interfaccia fisica | nome dell'interfaccia di rete | lo , eth0 ,
<nome_interfaccia> |
nome dato dal kernel Linux (usando il meccanismo udev )
|
nome dell'interfaccia logica | nome della configurazione di rete | config1 , config2 ,
<nome_config> |
elemento indicante il nome che segue la parola iface nel file
"/etc/network/interfaces "
|
I comandi base per la configurazione della rete descritti in Sezione 5.5.1, «Sintassi di base dei comandi» richiedono che, nel file
"/etc/network/interfaces
", il nome della configurazione di rete indicato nel blocco
iface
corrisponda al
nome dell'interfaccia di rete.
I comandi avanzati per la configurazione della rete permettono, nel file
"/etc/network/interfaces
", la distinzione tra il nome
della configurazione di rete e della
interfaccia di rete
Tabella 5.13. Elenco di comandi avanzati per la configurazione della rete con ifupdown
comando | azione |
---|---|
ifup eth0=config1
|
attiva una interfaccia di rete eth0 con la configurazione
config1
|
ifdown eth0=config1
|
disattiva una interfaccia di rete eth0 con la
configurazione config1
|
ifup eth0
|
attiva una interfaccia di rete eth0 con la configurazione
scelta dal blocco di mappatura mapping
|
ifdown eth0
|
disattiva una interfaccia di rete eth0 con la
configurazione scelta dal blocco di mappatura mapping
|
Nella sezione Sezione 5.5.2, «Sintassi di base di "/etc/network/interfaces"»
è stata saltata la spiegazione del blocco mapping
nel file
"/etc/network/interfaces
", per evitare
complicazioni. Questo blocco ha la sintassi seguente.
mapping <glob_nome_interfaccia> script <nome_script> map <script_input1> map <script_input2> map ...
Ciò fornisce funzionalità avanzate al file
"/etc/network/interfaces
" automatizzando la scelta della
configurazione con lo script di mappatura specificato da
<nome_script>
.
Ecco cosa succede quando viene eseguito il comando seguente.
$ sudo ifup eth0
Quando il "<glob_nome_interfaccia>
trova
corrispondenza con "eth0
", l'esecuzione di questo comando
produce, per configurare automaticamente eth0
,
l'invocazione del comando seguente.
$ sudo ifup eth0=$(echo -e '<script_input1> \n <script_input2> \n ...' | <nome_script> eth0)
Le righe, per l'input dello script, che iniziano con
"map
" sono opzionali e possono essere ripetute.
Nota | |
---|---|
L'espressione glob per il blocco |
Quella che segue è una descrizione di come commutare manualmente tra diverse
configurazioni di rete senza dover riscrivere il file
"/etc/network/interfaces
" come in Sezione 5.5.13, «Riconfigurazione base della rete».
Per tutte le configurazioni di rete alle quali si deve accedere è
sufficiente creare una sezione distinta nel file
"/etc/network/interfaces
" come quello seguente.
auto lo iface lo inet loopback iface config1 inet dhcp iface config2 inet static address 192.168.11.100 netmask 255.255.255.0 gateway 192.168.11.1 dns-domain example.com dns-nameservers 192.168.11.1 iface pppoe inet manual pre-up /sbin/ifconfig eth0 up up ifup ppp0=dsl down ifdown ppp0=dsl post-down /sbin/ifconfig eth0 down # Quanto segue viene usato solo internamente iface dsl inet ppp provider dsl-provider iface pots inet ppp provider provider
Notare che il nome di configurazione della
rete, che è l'elemento che viene dopo iface
, non usa il nome dell'interfaccia di rete. Inoltre non ci sono
blocchi auto
, né
allow-hotplug
per
attivare l'interfaccia di rete eth0
automaticamente in
base ad eventi.
Ora tutto è pronto per commutare tra le configurazioni di rete.
Spostare il PC in una LAN con DHCP. L'interfaccia di
rete (l'interfaccia fisica) eth0
viene
attivata assegnandole il nome di configurazione
della rete (il nome dell'interfaccia logica)
config1
nel modo seguente.
$ sudo ifup eth0=config1 Password: ...
L'interfaccia eth0
è attiva, configurata con DHCP e
connessa alla LAN.
$ sudo ifdown eth0=config1 ...
L'interfaccia di rete eth0
è disattivata e disconnessa
dalla LAN.
Spostare il PC in una LAN con IP statico. L'interfaccia di rete eth0
viene
attivata assegnandole il nome di configurazione
della rete config2
nel modo seguente.
$ sudo ifup eth0=config2 ...
L'interfaccia eth0
è attiva, configurata con IP statico e
connessa alla LAN. I parametri aggiuntivi dns-*
forniti
configurano il contenuto di "/etc/resolv.conf
". Tale file
"/etc/resolv.conf
" viene gestito meglio se è installato
il pacchetto resolvconf
.
$ sudo ifdown eth0=config2 ...
L'interfaccia di rete eth0
è di nuovo disattivata e
disconnessa dalla LAN.
Spostare il PC su una porta di un modem per banda larga connesso ad un
servizio PPPoE. L'interfaccia di rete
eth0
viene attivata assegnandole il nome di configurazione della rete pppoe
nel modo seguente.
$ sudo ifup eth0=pppoe ...
L'interfaccia eth0
è attiva, configurata per la
connessione PPPoE diretta con il fornitore di servizi Internet.
$ sudo ifdown eth0=pppoe ...
L'interfaccia di rete eth0
è di nuovo disattivata e
disconnessa.
Spostare il PC in una postazione senza LAN o modem per banda larga, ma con
una linea telefonica ed un modem. L'interfaccia di
rete ppp0
viene attivata assegnandole il nome
di configurazione della rete
pots
nel modo seguente.
$ sudo ifup ppp0=pots ...
L'interfaccia ppp0
è attiva e connessa ad Internet con
PPP.
$ sudo ifdown ppp0=pots ...
L'interfaccia di rete ppp0
è disattivata e disconnessa da
Internet.
Si dovrebbe controllare nel file
"/etc/network/run/ifstate
" lo stato attuale della
configurazione di rete del sistema ifupdown
.
Avvertimento | |
---|---|
Potrebbe essere necessario cambiare i numeri alla fine di
|
Il sistema ifupdown
esegue automaticamente gli script
installati in "/etc/network/*/
" esportando le variabili
d'ambiente negli script.
Tabella 5.14. Elenco delle variabili d'ambiente passate dal sistema ifupdown
variabile d'ambiente | valore passato |
---|---|
"$IFACE "
|
nome fisico (nome dell'interfaccia) dell'interfaccia in fase di elaborazione |
"$LOGICAL "
|
nome logico (nome dell'interfaccia) dell'interfaccia in fase di elaborazione |
"$ADDRFAM "
|
<famiglia_indirizzi> dell'interfaccia |
"$METHOD "
|
<nome_metodo> dell'interfaccia (es., "static") |
"$MODE "
|
"start" se invocato da ifup , "stop" se invocato da
ifdown
|
"$PHASE "
|
come per "$MODE ", ma in modo più dettagliato,
distinguendo le fasi pre-up , post-up ,
pre-down e post-down
|
"$VERBOSITY "
|
indica se è stato usato "--verbose "; se lo è stato viene
impostata a 1, altrimenti a 0
|
"$PATH "
|
percorso di ricerca dei comandi:
"/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin "
|
"$IF_<OPZIONE> "
|
valore della opzione corrispondente all'interno del blocco iface
|
In questo caso, ciascuna variabile d'ambiente di tipo
"$IF_<OPZIONE>
" viene creata a partire dal nome
dell'opzione corrispondente, come <opzione1> e <opzione2>,
preceduto da "$IF_
" e convertendo tutte le lettere in
maiuscolo, sostituendo i caratteri di sottolineatura con trattini e
scartando i caratteri non alfanumerici.
Suggerimento | |
---|---|
Vedere Sezione 5.5.2, «Sintassi di base di "/etc/network/interfaces"» per <famiglia_indirizzi>, <nome_metodo>, <opzione1> e <opzione2>. |
Il pacchetto ifupdown-extra
(vedere Sezione 5.5.14, «Pacchetto ifupdown-extra») usa queste variabili d'ambiente per
estendere la funzionalità del pacchetto ifupdown
. Il
pacchetto ifmetric
(vedere Sezione 5.6.2, «Il pacchetto ifmetric») installa lo script
"/etc/network/if-up.d/ifmetric
" che imposta la metrica
attraverso la variabile "$IF_METRIC
". Anche il pacchetto
guessnet
(vedere Sezione 5.6.8, «Mappatura con guessnet»), che fornisce un'infrastruttura semplice
e potente per la selezione automatica della configurazione di rete tramite
il meccanismo di mappatura , usa queste variabili.
Nota | |
---|---|
Per esempi più dettagliati di script personalizzati per la configurazione
della rete che usano queste variabili d'ambiente, controllare gli script
d'esempio in " |
Invece di scegliere manualmente la configurazione, come descritto in Sezione 5.6.6, «Configurazione della rete commutabile manualmente», si può usare il meccanismo di mappatura descritto in Sezione 5.6.5, «Il blocco di mappatura "mapping"» per selezionare automaticamente la configurazione di rete con script personalizzati.
Il comando
guessnet-ifupdown(8)
fornito nel pacchetto guessnet
è pensato per essere usato
come uno script di mappatura e fornisce un'infrastruttura potente per
migliorare il sistema ifupdown
.
Per ciascuna configurazione di rete in un blocco iface
, si elencano delle
condizioni da testare come valore per le opzioni di guessnet
.
La mappatura sceglie come configurazione di rete la prima iface
che dà come risultato un
non-ERRORE.
Questo doppio uso del file "/etc/network/interfaces
" da
parte dello script di mappatura, guessnet-ifupdown
, e
dell''infrastruttura originale di configurazione della rete,
ifupdown
, non causa impatti negativi dato che le opzioni
guessnet
esportano
solo variabili d'ambiente extra a script eseguiti dal sistema
ifupdown
. Vedere i dettagli in
guessnet-ifupdown(8).
Nota | |
---|---|
Quando in " |
I comandi Iproute2 offrono funzionalità complete di configurazione della rete a basso livello. Quella che segue è una tabella di traduzione dai comandi obsoleti di net-tools ai nuovi comandi iproute2 ecc.
Tabella 5.15. Tabella di traduzione dai comandi obsoleti net-tools
ai
nuovi comandi iproute2
net-tools obsoleti | nuovi iproute2, ecc. | manipolazione |
---|---|---|
ifconfig(8) |
ip addr
|
indirizzo di protocollo (IP o IPv6) di un device |
route(8) |
ip route
|
voce nella tabella di instradamento |
arp(8) |
ip neigh
|
voce nella cache ARP o NDISC |
ipmaddr
|
ip maddr
|
indirizzo multicast |
iptunnel
|
ip tunnel
|
tunnel over IP |
nameif(8) | ifrename(8) | nomina le interfacce di rete in base all'indirizzo MAC |
mii-tool(8) | ethtool(8) | impostazioni del device Ethernet |
Vedere ip(8) e IPROUTE2 Utility Suite Howto.
Si possono usare i comandi a basso livello per la rete seguenti in modo sicuro dato che non cambiano la configurazione della rete.
Tabella 5.16. Elenco di comandi di rete a basso livello
comando | descrizione |
---|---|
ifconfig
|
mostra lo stato del collegamento e l'indirizzo delle interfacce attive |
ip addr show
|
mostra lo stato del collegamento e l'indirizzo delle interfacce attive |
route -n
|
mostra tutta la tabella di instradamento in indirizzi numerici |
ip route show
|
mostra tutta la tabella di instradamento in indirizzi numerici |
arp
|
mostra l'attuale contenuto delle tabelle cache ARP |
ip neigh
|
mostra l'attuale contenuto delle tabelle cache ARP |
plog
|
mostra il registro del demone ppp |
ping yahoo.com
|
controlla la connessione Internet verso "yahoo.com "
|
whois yahoo.com
|
controlla chi ha registrato "yahoo.com " nel database dei
domini
|
traceroute yahoo.com
|
traccia la connessione Internet verso "yahoo.com "
|
tracepath yahoo.com
|
traccia la connessione Internet verso "yahoo.com "
|
mtr yahoo.com
|
traccia la connessione Internet verso "yahoo.com "
(ripetutamente)
|
dig [@dns-server.com] esempio.com [{a|mx|any}]
|
controlla i record DNS di
"esempio.com " con "dns-server.com "
alla ricerca di un record "a ", "mx " o
"any "
|
iptables -L -n
|
controlla il filtraggio dei pacchetti |
netstat -a
|
trova tutte le porte aperte |
netstat -l --inet
|
trova le porte in ascolto |
netstat -ln --tcp
|
trova le porte (numeriche) TCP in ascolto |
dlint esempio.com
|
controlla le informazioni DNS di zona per "esempio.com "
|
Suggerimento | |
---|---|
Alcuni di questi strumenti di configurazione di basso livello della rete
sono contenuti in " |
L'ottimizzazione generale della rete va oltre gli scopi che questo documento si prefigge. Vengono trattati solo quegli argomenti che interessano le connessioni dei computer personali.
Tabella 5.17. Elenco degli strumenti di ottimizzazione della rete
pacchetto | popcon | dimensione | descrizione |
---|---|---|---|
iftop
|
V:9, I:111 | 93 | mostra informazioni sull'uso della banda su di un'interfaccia di rete |
iperf
|
V:4, I:54 | 160 | strumento di misurazione della banda del protocollo Internet |
apt-spy
|
V:0, I:3 | 105 |
scrive un file "/etc/apt/sources.list " in base a test
sulla banda
|
ifstat
|
V:1, I:10 | 55 | Monitoraggio delle STATistiche sulle InterFacce |
bmon
|
V:1, I:12 | 139 | strumento portabile per monitoraggio della banda e stime della velocità |
ethstatus
|
V:0, I:4 | 39 | script che misura velocemente la quantità di dati passanti per un device di rete |
bing
|
V:0, I:2 | 62 | tester empirico stocastico della banda |
bwm-ng
|
V:2, I:17 | 88 | strumento piccolo e semplice basato sulla console per il monitoraggio della banda |
ethstats
|
V:0, I:1 | 20 | strumento basato su console per il monitoraggio delle statistiche Ethernet |
ipfm
|
V:0, I:0 | 78 | strumento di analisi della banda |
Il valore di MTU (Maximum
Transmission Unit, unità massima di trasmissione) può essere
determinato sperimentalmente con
ping(8)
usando l'opzione "-M do
" che invia pacchetti ICMP con una
dimensione dei dati a partire da 1500 (con un offset di 28 byte per
l'intestazione IP+ICMP) e trova la dimensione maggiore che non comporta
frammentazione IP.
Per esempio, provare a fare quanto segue.
$ ping -c 1 -s $((1500-28)) -M do www.debian.org PING www.debian.org (194.109.137.218) 1472(1500) bytes of data. From 192.168.11.2 icmp_seq=1 Frag needed and DF set (mtu = 1454) --- www.debian.org ping statistics --- 0 packets transmitted, 0 received, +1 errors
Provare 1454 invece di 1500
Come si può vedere ping(8) ha avuto successo con 1454.
Questo processo si chiama "Path MTU (PMTU) discovery (RFC1191) e il comado tracepath(8) può automatizzarlo.
Suggerimento | |
---|---|
L'esempio precedente di PMTU con un valore di 1454 è per il mio precedente fornitore FTTP che usava ATM (Asynchronous Transfer Mode) come rete backbone e forniva ai clienti un servizio PPPoE. Il valore effettivo di PMTU dipende dal proprio ambiente, ad esempio è 1500 per il mio nuovo fornitore FTTP. |
Tabella 5.18. Linee guida di base per il valore di MTU ottimale
ambiente di rete | MTU | motivo |
---|---|---|
collegamento dial-up (IP: PPP) | 576 | standard |
collegamento Ethernet (IP: DHCP o statico) | 1500 | standard e predefinito |
collegamento Ethernet (IP: PPPoE) | 1492 (=1500-8) | 2 byte per l'intestazione PPP e 6 byte per l'intestazione PPPoE |
collegamento Ethernet (backbone del fornitore servizi: ATM, IP: DHCP o statico) | 1462 (=48*31-18-8) | ipotesi dell'autore: 18 byte per l'intestazione Ethernet, 8 byte per la coda SAR |
collegamento Ethernet (backbone del fornitore servizi: ATM, IP: PPPoE) | 1454 (=48*31-8-18-8) | vedere Configurazione ottimale dell'MTU per connessioni ADSL con PPPoE" per il ragionamento |
In aggiunta a queste linee guida di base si dovrebbe sapere quanto segue.
Qualsiasi uso di metodi di tunnelling (VPN, ecc.) può ridurre ulteriormente l'MTU ottimale per il loro carico.
Il valore di MTU non dovrebbe superare il valore di PMTU determinato sperimentalmente.
A patto di seguire le indicazioni precedenti un valore maggiore di MTU è meglio.
Quelli che seguono sono alcuni esempi di come impostare il valore di MTU dal suo valore predefinito 1500 a 1454.
Per DHCP (vedere Sezione 5.5.4, «Interfaccia di rete servita da DHCP»), si possono
sostituire le righe pertinenti nei blocchi iface
nel file
"/etc/network/interfaces
" con blocchi come il seguente.
iface eth0 inet dhcp pre-up /sbin/ifconfig $IFACE mtu 1454
Per IP statico (vedere Sezione 5.5.5, «Interfaccia di rete con IP statico»), si possono
sostituire le righe pertinenti nei blocchi iface
nel file
"/etc/network/interfaces
" con blocchi come il seguente.
iface eth0 inet static address 192.168.11.100 netmask 255.255.255.0 gateway 192.168.11.1 mtu 1454 dns-domain example.com dns-nameservers 192.168.11.1
Per la connessione PPPoE diretta (vedere Sezione 5.4.5, «Connessione PPPoE con pppoeconf», si possono sostituire le
riga "mtu
" pertinente nel file
"/etc/ppp/peers/dsl-provider
" con la seguente.
mtu 1454
Il valore di MSS (Maximum Segment Size, dimensione massima di segmento)MSS è usato come misura alternativa della dimensione dei pacchetti. Le relazioni tra MSS e MTU sono le seguenti.
MSS = MTU - 40 per IPv4
MSS = MTU - 60 per IPv6
Nota | |
---|---|
L'ottimizzazione basata su iptables(8) (vedere Sezione 5.9, «Infrastruttura netfilter») può bloccare la dimensione dei pacchetti al valore MSS ed è utile per il router. Vedere "TCPMSS" in iptables(8). |
Il flusso TCP può essere massimizzato regolando i parametri di dimensione del buffer TCP come descritto in "TCP Tuning Guide" e "TCP tuning" per le moderne WAN a larga banda e alta latenza. Per adesso, le attuali impostazioni predefinite di Debian funzionano bene persino per la mia LAN connessa con un servizio FTTP veloce a 1Gbps.
Netfilter fornisce un'infrastruttura per firewall con stati e traduzione di indirizzi di rete (NAT) con moduli del kernel Linux (vedere Sezione 3.3.1, «L'inizializzazione dei moduli del kernel»).
Tabella 5.19. Elenco di strumenti per firewall
pacchetto | popcon | dimensione | descrizione |
---|---|---|---|
iptables
|
V:240, I:993 | 1528 | strumenti di amministrazione per netfilter (iptables(8) per IPv4, ip6tables(8) per IPv6) |
arptables
|
V:0, I:2 | 84 | strumenti di amministrazione per netfilter (arptables(8) per ARP) |
ebtables
|
V:30, I:56 | 351 | strumenti di amministrazione per netfilter (ebtables(8) per bridge Ethernet) |
iptstate
|
V:0, I:4 | 116 | monitora continuamente lo stato di netfilter (in modo simile a top(1)) |
shorewall-init
|
V:0, I:0 | 80 | inizializzazione di Shoreline Firewall |
shorewall
|
V:6, I:16 | 2343 | generatore di file di configurazione per Shoreline Firewall, netfilter |
shorewall-lite
|
V:0, I:0 | 85 | generatore di file di configurazione per Shoreline Firewall, netfilter (versione leggera) |
shorewall6
|
V:0, I:2 | 895 | generatore di file di configurazione per Shoreline Firewall, netfilter (versione IPv6) |
shorewall6-lite
|
V:0, I:0 | 83 | generatore di file di configurazione per Shoreline Firewall, netfilter (versione IPv6 leggera) |
Il principale programma in spazio utente di netfilter è iptables(8). Si può configurare manualmente netfilter in modo interattivo dalla shell, salvare il suo stato con iptables-save(8) e ripristinarlo attraverso uno script di init con iptables-restore(8) al riavvio del sistema.
Script di aiuto per la configurazione come shorewall facilitano questo processo.
Vedere la documentazione all'indirizzo http://www.netfilter.org/documentation/
(o in "/usr/share/doc/iptables/html/
").
Suggerimento | |
---|---|
Anche se questi documenti sono stati scritti per Linux 2.4, sia il comando iptables(8) sia la funzione netfilter del kernel sono validi per gli attuali kernel Linux 2.6 e 3.x. |