Configuring network (Italiano)
From ArchWiki
i18n |
---|
Česky |
English |
Español |
Italiano |
Русский |
Slovensky |
Türkçe |
简体中文 |
Sommario
Una guida semplice per far funzionare la rete.
Caricare il modulo del dispositivo
Se si utilizza hwdetect dovrebbe riconoscere il modulo della vostra interfaccia di rete (NIC) e caricarlo automaticamente al boot. Altrimenti si deve sapere quale modulo è necessario per la nostra scheda.
Per sapere il nome del modulo necessario, cerca nel Web il modello della tua interfaccia, o prova ad utilizzare un LiveCD e lancia lsmod per mostrare tutti i moduli caricati in fase di avvio.
Adesso che sai quale modulo utilizzare puoi caricarlo con:
# modprobe <modulename>
Se non vuoi/puoi utilizzare qualche auto-loader come hwdetect puoi aggiungerlo nell' array dei moduli in /etc/rc.conf
, in modo tale da non doverlo caricare manualmente ad ogni boot. Ad esempio, se il modulo che ci interessa è tg3:
MODULES=(!usbserial tg3 snd-cmipci)
Altri moduli comuni sono 8319too per le schede con chipset Realtek e sis900 per quelle con chip Sis.
Configurazione indirizzo IP
DHCP
In questo caso è necessario il pacchetto dhcpd (già disponibile nella maggior parte delle installazioni). Inoltre, è necessario editare /etc/rc.conf
in questo modo:
eth0="dhcp" INTERFACES=(eth0) ROUTES=(!gateway)
IP Statico
In questo caso è necessario conoscere:
* l'ip statico che ci è stato assegnato, * la subnet mask, * l'indirizzo di broadcast, * l'indirizzo del gateway, * l'indirizzo dei server DNS, * il nome del dominio.
Se la rete è privata, è sufficiente utilizzare un indirizzo del tipo 192.168.*.'*, una subnet mask 255.255.0.0 e un indirizzo di broadcast 192.168.255.255. A meno che non si utilizzi un router l'indirizzo del gateway non è necessario. A questo punto, editare /etc/rc.conf
in questo modo, sostituendo i propri IP, netmask, broadcast e gateway:
eth0="eth0 82.137.129.59 netmask 255.255.255.0 broadcast 82.137.129.255" INTERFACES=(eth0) gateway="default gw 82.137.129.1" ROUTES=(gateway)
ed il file /etc/resolv.conf
, inserendo gli indirizzi dei propri server DNS ed il proprio dominio:
nameserver 61.23.173.5 nameserver 61.95.849.8 search example.com
E' possibile inserire un numero di nameserver a piacere.
Se si utilizza DHCP e non si vuole che i server DNS cambino ogni volta che si avvia la rete, si può aggiungere l'opzione "-R" a DHCPCD_ARGS
nel /etc/conf.d/dhcpcd
(usato da /etc/rc.d/network
). Questo fa si che il DCHP non riscriva ogni volta il file /etc/resolv.conf
:
DHCPCD_ARGS="-R -t 30 -h $HOSTNAME"
Altre opzioni
Se per qualsiasi motivo dhcpcd eth0 fallisse, installare dhclient (pacman -Sy dhclient) ed utilizzare 'dhclient eth0'.
Impostare il nome del PC
Editare /etc/rc.conf
ed impostare HOSTNAME al nome desiderato:
HOSTNAME="banana"
Impostare nome pc/IP
Editare /etc/hosts
e aggiungere lo stesso hostname che è stato inserito in /etc/rc.conf
:
127.0.0.1 banana.domain.org localhost.localdomain localhost banana
E' necessario questo formato, incluse le voci di localhost, per compatibilità con i programmi.
Caricare la configurazione
Per testare le impostazioni riavviare il computer, o eseguire, da root, /etc/rc.d/network restart
Provare a pingare il gateway, i server DNS, il provider o altri siti Internet, in questo ordine, per rilevare eventuali problemi di connessione.
Impostazioni aggiuntive
Configurazione Wireless
La configurazione del wireless è l'argomento di un'altra pagina del wiki.
Firewall
E' possibile installare/configurare un firewall per proteggersi.
Ifplugd
E' possibile installare questo demone che configura automaticamente la scheda quando viene inserito il cavo di rete e la deconfigura quando il cavo viene tolto. Questo è particolarmente utile sui portatili con schede integrate, dal momento che l'interfaccia verrà configurata solo nel momento in cui il cavo sarà collegato.
L'installazione è molto semplice dato che il pacchetto si trova in [extra]:
# pacman -S ifplugd
Il demone è configurato di default sull'interfaccia eth0. Questa ed altre impostazioni possono essere configurate nel file /etc/ifplugd/ifplugd.conf
.
A questo punto ifplugd può essere avviato con:
# /etc/rc.d/ifplugd start
e può essere aggiunto nell'array DAEMONS in /etc/rc.conf
.
bonding
E' possibile installare 'ifenslave' per fare il bind di due interfacce 'reali' con un unico indirizzo ip. Un esempio di configurazione è il seguente: /etc/conf.d/bonding
bond_bond0="eth0 eth1" BOND_INTERFACES=(bond0)
/etc/rc.conf
MODULES=(... bonding ...) bond0="bond0 192.168.1.1 netmask 255.255.255.0 broadcast 192.168.1.255" INTERFACES=(bond0)
e riavviare la rete con:
/etc/rc.d/network restart
Più indirizzi su più schede
Un ip su una scheda:
vi /etc/rc.conf eth0="eth0 192.168.0.1 netmask 255.255.255.0 broadcast 192.168.0.255" INTERFACES=(lo eth0)
Due ip su una scheda (BUG:/etc/rc.d/network stop)
vi /etc/rc.conf eth0="eth0 192.168.0.1 netmask 255.255.255.0 broadcast 192.168.0.255" eth1="eth0:1 192.168.0.2 netmask 255.255.255.0 broadcast 192.168.0.255" INTERFACES=(lo eth0 eth1)
Stesso ip su due schede:
pacman -S ifenslave vi /etc/rc.conf bond0="bond0 192.168.0.1 netmask 255.255.255.0 broadcast 192.168.0.255" INTERFACES=(lo bond0) MODULES=(... bonding ...)
Due ip su due schede (BUG:/etc/rc.d/network stop)
pacman -S ifenslave vi /etc/rc.conf bond0="bond0 192.168.0.1 netmask 255.255.255.0 broadcast 192.168.0.255" bond01="bond0:1 192.168.0.2 netmask 255.255.255.0 broadcast 192.168.0.255" INTERFACES=(lo bond0 bond01) MODULES=(... bonding ...)
Troubleshooting
Cambiare PC collegato al cable modem
La maggior parte degli ISP utilizzano modem configurati per riconoscere soltanto un client tramite il MAC address della scheda di rete. Una volta che il modem ha memorizzato il MAC del primo PC, non comunicherà in nessun modo ad un altro MAC address. Così, se si sostituisce il Pc con un altro (o con router), il nuovo Pc (o il router) non funzionerà con il modem, perchè avrà aun MAC address diverso dal vecchio. Per ripristinare il modem così da riconoscere il nuovo pc, è necessario spengere e riccendere il modem. Una volta che il modem si è riavviato completamente, riavviate anche il nuovo Pc, in modo tale che faccia una richiesta DHCP, oppure fate la richiesta DHCP manualmente.
Il problema del TCP Window Scaling
I pacchetti TCP contengono nell'header un campo "window" che indica la quantità di dati che deve restituire l'altro host. Questo campo è di 16 bit, dato che la dimensione della finestra è al massimo 64kb. I pacchetti TCP vengono mantenuti in cache per un certo tempo e, se la memoria è (o era) limitata, è probabile che l'host la finisca rapidamente.
Nel 1992, quando cominciò ad essere disponibile molta memoria, per migliorare la situazione, fu scritta la RFC 1323: fu introdotto in "Window Scaling". Il valore "window", presente in tutti i pacchetti, viene modificato da uno "Scale Factor" definito una sola volta all'inizio della connessione. Questo campo, di 8 bit, permette alla finestra di essere fino a 32 volte più grande dei 64Kb iniziali.
Sembra che alcuni router e firewall riscrivano lo Scale Factor a 0 che causa "incomprensioni" tra gli host.
Il kernel 2.6.17 ha introdotto un nuovo algoritmo che genera Scale Factors più alti, in modo tale da rendere il problema di questi router e firewall virtualmente più visibile.
La connessione, in questi casi, si interrompe o è, al più, molto lenta.
Come diagnosticare questo problema?
Prima di tutto chiariamo: è molto difficile. In alcuni casi, non sarà possibile effettuare connessioni TCP (HTTP, FTP, ...), in altri sarà possibile comunicare solo con alcuni host (molto pcohi).
Attenzione: l'output di dmesg
è ok, i log sono puliti e ifconfig
riporta una configurazione corretta, quindi sembra tutto normale.
Se non è possibile raggiungere nessun sito Web, ma è possibile pingare alcuni host, è possibile che tu sia incappato in questo problema: il ping utilizza il protocollo ICMP e non è affetto di problemi del TCP.
Si può provare ad utilizzare WireShark. Si possono vedere comunicazioni UDP e ICMP che avvengono correttamente e le connessioni TCP che non vanno a buon fine (solo verso host 'esterni').
Come risolverlo? (La strada sbagliata)
Per risolvere il problema, si può cambiare il valore tcp_rmem, su cui si basa il calcolo dello Scale Factor. Sebbene dovrebbe funzionare per la maggior parte degli host, non è sicuro che funzioni in tutti i casi, specialmente per host molto distanti.
echo "4096 87380 174760" > /proc/sys/net/ipv4/tcp_rmem
O si può probare a rimuovere uno dei tuoi banchi di RAM (si, hai capito).
Come risolverlo? (Il metodo corretto)
Semplicemente, disabilitate il Window Scaling. Anche se è una caratteristica carina, può rivelarsi scomoda se non puoi sistemare il router malfunzionante. Ci sono diversi metodi per disabiltare il Window Scaling, e sembra che il più (che funziona sui kernel più recenti) sia aggiungere la seguente linea al vostro /etc/rc.local
/proc/sys/net/ipv4/tcp_window_scaling
Come risolverlo? (Il metodo migliore)
Questo problema è causato da router/firewall malfunzionanti, quindi cambiateli.
Problema No Link / WOL schede Realtek
Gli utenti che hanno schede di rete con chipset Realtek 8168/8169/8101/8111 possono avere il problema che l'interfaccia sembri disabilitata in fase di avvio e il led sia spento. Questo, di solito, accade in caso di dual boot insieme a Windows. Sembra che il problema sia dovuto all' utilizzo dei driver ufficiali Relatek (qualsiasi versione successiva al Maggio 2007) in ambiente Windows. Questi driver disabiltano il Wake-on-Lan disabilitando in fase di spegnimento di Windows, lasciandola in questo modo finchè Windows non viene riavviato. Per verificare se il problema affligge anche la nostra scheda semplicemente notando che il led dell'interfaccia rimane spento a meno che non si avvii Windows. In condizioni normali il led dovrebbe essere sempre acceso finchè il Pc è acceso, anche durante il POST. Questo problema affliggerà tutti i sistemi che non hanno driver aggiornati (esempio i live CD). Ecco alcune possibili soluzioni al problema.
Metodo 1 - Ripristino driver Windows
E' possibile fare un ripristino del driver Windows alla versione fornita da Microsoft (se disponibile), o ripristinare una versione del driver Realtek a precedente al Maggio 2007 (che probabilmente si trova sul CD di installazione dell'hardware).
Metodo 2 - Abilitare il Wake on Lan nel driver Windows
Probabilmente il metodo migliore e più veloce è cambiare questa impostazione nel driver Windows. Questo metodo dovrebbe anche risolvere il problema non soltanto per Arch, ma anche per altri sistemi, come Live CD ed altri. In Windows, sotto "Gestione Periferiche", trovate la scheda Realtek e selezionatela. Nella scheda "Avanzate" abilitate "Wake-on-lan after shutdown".
Metodo 3 - Aggiornare il driver Linux
Scaricare ed installare una nuova versione del driver dal sito ufficiale Realtek (non testato).