# Network configuration (Italiano)

Articoli correlati

- Jumbo frames
- Firewalls
- Samba (Italiano)
- Wireless Setup (Italiano)
- List of applications#Network Managers

Una semplice guida per la configurazione di rete e risoluzione di problemi annessi.

## Primo controllo

Molte volte, l’installazione di base ha già creato una configurazione di rete funzionante. Per verificare, utilizzare il seguente comando:

    ping -c 3 www.google.com

    PING www.l.google.com (74.125.224.146) 56(84) bytes of data.
    64 bytes from 74.125.224.146: icmp_req=1 ttl=50 time=437 ms
    64 bytes from 74.125.224.146: icmp_req=2 ttl=50 time=385 ms
    64 bytes from 74.125.224.146: icmp_req=3 ttl=50 time=298 ms

    --- www.l.google.com ping statistics ---
    3 packets transmitted, 3 received, 0% packet loss, time 1999ms
    rtt min/avg/max/mdev = 298.107/373.642/437.202/57.415 ms

Suggerimento: L'opzione `-c 3` esegue `ping` 3 volte. Vedere`man ping` per maggiori informazioni.

Se funziona, si possono personalizzare le impostazioni con le opzioni che seguono.

Se il comando precedente riporta errori di host sconosciuti, significa che il pc non è riuscito a risolvere il nome di dominio. Ciò potrebbe dipendere dal proprio provider o dal proprio router/gateway. Si può provare a pingare un indirizzo IP statico, per accertarsi che la macchina abbia accesso ad Internet.

    $ ping -c 3 8.8.8.8

    PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data.

    64 bytes from 8.8.8.8: icmp_req=1 ttl=53 time=52.9 ms

    64 bytes from 8.8.8.8: icmp_req=2 ttl=53 time=72.5 ms

    64 bytes from 8.8.8.8: icmp_req=3 ttl=53 time=70.6 ms

    --- 8.8.8.8 ping statistics ---

    3 packets transmitted, 3 received, 0% packet loss, time 2002ms

    rtt min/avg/max/mdev = 52.975/65.375/72.543/8.803 ms

Suggerimento: 8.8.8.8 è un indirizzo statico semplice da ricordare. Si tratta dell'indirizzo del principale server DNS di Google, quindi può essere considerato affidabile, e generalmente non è bloccato da filtri sui contenuti e da proxy.

Se si riesce a pingare quell'indirizzo, si può provare ad aggiungere questo nameserver al proprio file resolv.conf.

## Impostare l'host name

Un host name è un nome univoco creato per identificare un pc in rete. Con Arch Linux, l’host name del pc è impostabile in `/etc/rc.conf` o, fino a quando non si riavvia, con il comando `hostname`. Per gli host names si possono utilizzare solo caratteri alfanumerici. Il trattino (`-`) può essere utilizzato, ma né all’inizio né alla fine dell’host name. La lunghezza di quest'ultimo è limitata a 63 caratteri.

Semplicemente inserire il proprio host name in `/etc/hostname`; non inserire il nome di dominio in `/etc/hostname`. Qualora non esistesse, creare il file, come nell'esempio `archlinux` è l'host name:

    /etc/hostname

    archlinux

Dopo aver impostato l’host name, è importante includere lo stesso in `/etc/hosts`. Questo aiuterà i processi che fanno riferimento al computer attraverso il suo hostname per trovarne l’indirizzo IP, così come faranno i programmi che si basano sulla chiamata di sistema `gethostname ()` per determinare l'host name del sistema.

Editare `/etc/hosts` ed aggiungere lo stesso HOSTNAME che è stato inserito in `hostname`:

    127.0.0.1      archlinux.domain.org   localhost.localdomain      localhost    archlinux

Nota: Il nome di dominio completo (FQDN) dovrebbe essere il primo elemento dopo l'indirizzo IP. Tutti i nomi sul lato destro sono solo alias per il nome host/dominio situato più a sinistra. Potete controllare se questo è stato configurato correttamente eseguendo `hostname --fqdn`.

Per impostare l’hostname temporaneamente (fino al successivo riavvio), utilizzare il comando `hostname` dal pacchetto inetutils da root:

    # hostname archlinux

## Driver dispositivo

### Controllo stato driver

Udev dovrebbe riconoscere il modulo dell’interfaccia di rete (NIC) e caricarlo automaticamente al boot. Controllare la voce "Ethernet controller" nell'output di `lspci -v`. Esso dovrebbe indicare quali moduli del kernel contengono il driver del proprio dispositivo di rete. Ad esempio:

    lspci -v

     02:00.0 Ethernet controller: Attansic Technology Corp. L1 Gigabit Ethernet Adapter (rev b0)

     	...
      	Kernel driver in use: atl1
     	Kernel modules: atl1

Dopodichè, controllare che sia caricato il modulo, tramite dmesg | grep <module name>. Ad esempio:

    dmesg |grep atl1

       ...
       atl1 0000:02:00.0: eth0 link is up 100 Mbps full duplex

Se il driver è caricato correttamente, saltare questa sezione. Altrimenti, è necessario individuare quale modulo è necessario per il proprio particolare modello.

### Caricare il modulo del dispositivo

Utilizzare Google per individuare il modulo/driver corretto per il chip. Una volta individuato il modulo da utilizzare, è possibile caricarlo con:

     # modprobe <modulename>

## Interfacce di rete

### Nomi dispositivi persistenti

Per le schede madri con schede di rete NICs integrate, è importante conoscere quale NIC è considerata primaria (ad esempio, "eth0") e quale NIC è considerata secondaria (ad esempio, "eth1"). Molti problemi di configurazione sono causati da utenti che non impostano correttamente la configurazione di "eth0" nel file `/etc/rc.conf`, quando in realtà, hanno il cavo Ethernet collegato in "eth1".

Udev è responsabile dell'assegnazione dei nomi ai dispositivo. Con Udev ed i driver di rete modulari, la numerazione dell'interfaccia di rete non è persistente anche dopo un riavvio, perché i driver vengono caricati in parallelo e, quindi, in ordine casuale. Configurare la connessione di rete è difficile se non si sa se ​​la propria scheda verrà chiamata `eth0` oppure `eth1`. E' possibile risolvere utilizzando `ifrename`, vedere Rename network interfaces. E' anche possibile creare manualmente delle regole udev che assegnino alle interfacce nomi basati sull'interfaccia degli indirizzi MAC. Vedere Persistent Device Names.

### Ottenere il nome corrente del dispositivo

Il nome attuale NIC può essere individuato con il tool ip.

    $ ip addr | sed '/^[0-9]/!d;s/: <.*$//'

    1: lo
    2: eth1
    3: eth0
    4: firewire0

### Abilitare/disabilitare l'interfaccia

È possibili abilitare o disabilitare l'interfaccia di rete:

    ip link set <interface> up/down

Controllare il risultato con `ip addr show dev eth0`. Ad esempio:

    ip addr show dev eth0

       2: eth0: <BROADCAST,MULTICAST,PROMISC,UP,LOWER_UP> mtu 1500 qdisc vboxnetflt state UP qlen 1000
       [...]

## Configurare l'indirizzo IP

Ci sono due opzioni: l'assegnazione dinamica dell'indirizzo utilizzando DHCP oppure un indirizzo "statico" che non cambia. Vedere Wikipedia:DHCP per maggiori informazioni.

### Indirizzo IP dinamico

#### Esecuzione manuale del Demone Client DHCP

Si noti che dhcpcd non è dhcpd.

    dhcpcd eth0

      dhcpcd: version 5.1.1 starting
      dhcpcd: eth0: broadcasting for a lease
      ...
      dhcpcd: eth0: leased 192.168.1.70 for 86400 seconds

Ed ora `ip addr show dev <interface>` dovrebbe mostrare il proprio indirizzo inet.

Per alcune persone, il pacchetto `dhclient` (disponibile in [extra]) ha funzionato dove`dhcpcd` ha fallito.

#### Esecuzione all'avvio di DHCP

In questo caso è necessario il pacchetto dhcpcd (già disponibile nella maggior parte delle installazioni). Inoltre, è necessario editare `/etc/rc.conf` in questo modo:

    interface="eth0"
    address=
    netmask=
    gateway=

Va definita solo l'interfaccia, le altre opzioni saranno impostate tramite DHCP..

Se si utilizza DHCP e non si vuole che i server DNS vengano automaticamente assegnati ogni volta che si avvia la rete, assicurarsi di aggiungere all'ultima sezione del file `/etc/dhcpcd.conf` quanto segue:

    nohook resolv.conf

Per evitare che dhcpcd aggiunga server di nomi di dominio al file resolve.conf, utilizzare l'opzione nooption in `/etc/dhcpcd.conf`:

    nooption donmain_name_servers

Quindi aggiungere il proprio server DNS in `/etc/resolv.conf`.

Si può utilizzare il pacchetto openresolv per controllare molti processi tramite `/etc/resolv.conf` (ad esempio, dhcpcd ed un client VPN). Per utilizzare openresolv, non è necessaria alcuna configurazione aggiuntiva per dhcpcd.

{{Nota|1=È possibile avere un indirizzo IP statico utilizzando dhcpcd. È sufficiente modificare il file `/etc/conf.d/dhcpcd` e cercare qualcosa simile a (dove xxxx è l’indirizzo IP desiderato):

    DHCPCD_ARGS="-q -s x.x.x.x"

### Indirizzo IP Statico

Ci sono vari motivi per cui si potrebbe voler assegnare indirizzi IP statici alla rete. Per esempio, si può ottenere un certo livello di prevedibilità. Oppure si potrebbe non volere che il demone dhcp venga sempre eseguito.

Nota: Se si condivide la connessione internet con un pc Windows senza un router, assicurarsi di utilizzare indirizzi IP statici su entrambi i computer, onde evitare problemi con la LAN.

In questo caso è necessario conoscere:

- Indirizzo IP statico,
- Subnet mask,
- Indirizzo di broadcast,
- Indirizzo IP del gateway,
- Nome indirizzi IP del server,
- Nome di dominio (se non si tratta di una LAN locale, nel qual caso si può mettere up).

Se la rete è privata, è sufficiente utilizzare un indirizzo IP 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 IP del gateway non è necessario. A questo punto, editare `/etc/rc.conf` in questo modo, sostituendo indirizzo IP, netmask, broadcast e gateway:

    interface=eth0
    address=192.68.0.2
    netmask=255.255.255.0
    broadcast=192.168.1.255
    gateway=192.168.22.1

Editare il file `/etc/resolv.conf`, inserendo l'indirizzo IP del proprio name server ed il proprio dominio locale:

    nameserver 61.23.173.5
    nameserver 61.95.849.8
    search example.com

Nota: Attualmente è possibile inserire massimo 3 righe di `nameserver`.
Nota: Coloro che vogliono visionare il rendimento/benchmark, possono dare un'occhiata a GRC's DNS Benchmark .

#### Assegnazione manuale

Si può assegnare l’indirizzo IP dalla console:

     # ip addr add <ip address>/<netmask> dev <interface>

Ad esempio:

     # ip addr add 192.168.1.2/24 dev eth0

Per altre opzioni, vedere: `man ip`

Aggiungere il proprio gateway in questo modo:

     # ip route add default via <ip address>

(Sostituire <ip> con il proprio indirizzo IP del gateway

Ad esempio:

     # ip route add default via 192.168.1.1

Se si ottiene l'errore "No such process", significa che è necessario eseguire `# ip link set dev eth0 up`.

#### Calcolo indirizzi

E' possibile utilizzare ipcalc fornito dal pacchetto ipcalc package per calcolare l'IP broadcast, network, netmask, ed i range di host host per le configurazioni più avanzate. Ad esempio, è possiblie utilizzare l'ethernet tramite firewire per connettere un pc windows ad arch. Per la sicurezza e l'organizzazione della rete, è possibile posizionarli su una propria rete, configurare netmask e broadcast in modo che siano le uniche 2 macchine su di essa. Per mostrare gli indirizzi netmask e broadcast, si può utilizzare ipcalc, fornendo con l'IP arch del firewire nic 10.66.66.1, e specificando ipcalc, dovrebbe creare una rete di 2 soli host.

    $ ipcalc -nb 10.66.66.1 -s 1

    Address:   10.66.66.1
    Netmask:   255.255.255.252 = 30
    Network:   10.66.66.0/30
    HostMin:   10.66.66.1
    HostMax:   10.66.66.2
    Broadcast: 10.66.66.3
    Hosts/Net: 2                     Class A, Private Internet

## Caricare la configurazione

Per testare le configurazioni, riavviare il computer o, da root, eseguire:

    rc.d restart network

Provare a pingare il gateway, il server DNS, l’ISP e altri siti Internet, in questo ordine, per rilevare eventuali problemi di collegamento lungo la strada, ad esempio:

    ping -c 3 www.google.com

## Impostazioni aggiuntive

### ifplugd per laptops

ifplugd nei Official Repositories (Italiano)Repository Ufficiali è un demone che configura automaticamente il dispositivo Ethernet quando viene collegato il cavo e che sconfigura il dispositivo quando il cavo viene scollegato. Ciò è utile su portatili con schede di rete integrate, così verrà creata una configurazione solo quando si collegherà il cavo. Questo sistema può essere utilizzato anche quando si vuole riavviare la rete, senza riavviare il computer e senza utilizzare la shell.

Di default è configurato per funzionare per il dispositivo `eth0`. Questa ed altre impostazioni come i ritardi, possono essere configurati in `/etc/ifplugd/ifplugd.conf`.

Avviare il demone ifplugd ed aggiungere `ifplugd` al proprio DAEMONS array di modo da farlo partire automaticamento all'avvio del sistema.

In alternativa, abilitando`net-auto-wired.service` ifplugd si dovrebbe avviare al boot, se si ha netcfgAUR installato, altrimenti è possibile utilizzare `ifplugd@eth0.service`.

### Bonding o LAG

Sarà necessario installare ifenslave dai Repository ufficiali, così come il pacchetto netcfg-bondingAUR da AUR.

Modificare/creare ciascuno dei seguenti files:

    /etc/network.d/bonded

      CONNECTION="bonding"
      INTERFACE="bond0"
      SLAVES="eth0 eth1"
      IP="dhcp"
      DHCP_TIMEOUT=10

    /etc/rc.conf

      MODULES=(... bonding ...)

    ...
     interface=bond0 #commentare le altre linee (indirizzo,netmask,gateway,...)
    ...
     NETWORKS=(... bonded ...)
    ...

    DAEMONS=(... net-profiles ...) #sostituire network

Nota: Per cambiare la modalità bonding (di default è round robin), ad esempio in aggregazione dinamica del link:

Creare `/etc/modprobe.d/bonding.conf`:

    /etc/modprobe.d/bonding.conf

    options bonding mode=4
    options bonding miimon=100

Per maggiori informazioni inerenti le differenti policy di bonding (ed impostazioni di altri driver) consultare l'Linux Ethernet Bonding Driver HOWTO.

Per attivare le nuove porte, eseguire il modprobe di `bonding`, fermare `network` ed avviare il servizio `net-profiles`:

     # modprobe bonding

     # rc.d stop network

     # rc.d start net-profiles

Per controllare lo stato:

     cat /proc/net/bonding/bond0

### Aliasing indirizzo IP

l'aliasing IP è il processo per l'aggiunta di più di un indirizzo IP all'interfaccia di rete. Così facendo, un nodo su una rete può avere connessioni multiple nella rete stessa, ciascuna con una funzione diversa.

Per utilizzare l'IP aliasing da netcfg, cambiare i comandi `POST_UP` e `PRE_DOWN` sul profilo dell'interfaccia di rete per configurare manualmente gli indirizzi IP aggiuntivi. Vedere qui per maggiori dettagli.

#### Esempio

Sarà necessario netcfgAUR, disponibile nei Repository Ufficiali

    # pacman -S netcfg

Preparare la configurazione

    /etc/network.d/mynetwork

    CONNECTION='ethernet'
    DESCRIPTION='Five different addresses on the same NIC.'
    INTERFACE='eth0'
    IP='static'
    ADDR='192.168.1.10'
    GATEWAY='192.168.1.1'
    DNS=('192.168.1.1')
    DOMAIN=''
    POST_UP='x=0; for i in 11 12 13 14 ; do ip addr add 192.168.1.$i/24 brd 192.168.1.255 dev eth0 label eth0:$((x++)); done'
    PRE_DOWN='for i in 11 12 13 14 ; do ip addr del 192.168.1.$i/24 dev eth0 ; done'

    /etc/rc.conf

    NETWORKS=(mynetwork)

    ...

    DAEMONS=(... net-profiles ...)

### Cambiare MAC/hardware address

Non è più possibile cambiare il proprio MAC address tramite `/etc/rc.conf`. Vedere MAC address spoofing per maggiori dettagli.

## Risoluzione dei problemi

### Scambio computer/modem via cavo

La maggior parte degli ISP (videotron for example) ha il modem via cavo configurato per riconoscere un solo PC client, attraverso il MAC Address della sua interfaccia di rete. Una volta che il modem via cavo ha acquisito il MAC Address del primo PC, o della relativa periferica, non risponderà in alcun modo ad un altro MAC Address. Pertanto, se si cambia un PC con un altro (o router), il nuovo PC (o router) non funzionerà con il modem via cavo, in quanto ha un MAC Address diverso dal precedente. Per effettuare il reset del modem via cavo in modo che riconosca il nuovo PC, è necessario spegnerlo e riaccenderlo. Una volta che il modem via cavo si è riavviato ed è ritornato completamente in linea (le spie luminose sono stabili), riavviare il nuovo computer in modo da effettuare una nuova richiesta DHCP, o effettuarla manualmente.

Se questo metodo non funziona, è necessario clonare il MAC Address del pc originario. Vedere quindi Configuring Network (Italiano)#Cambiare MAC/hardware address.

### 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 pochi).

Quando si ha questo problema, l'output di `dmesg` è ok, i log sono puliti e `ip addr` riporta una configurazione corretta... quindi sembra tutto normale.

Se non è possibile raggiungere nessun sito Web, ma è possibile pingare alcuni host, probabilmente si è incappati in questo problema: il ping utilizza il protocollo ICMP e non è affetto da problemi 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

#### Come risolverlo? (Il metodo corretto)

Semplicemente, disabilitare il Window Scaling. Anche se è una caratteristica carina, può rivelarsi scomoda se non si può sistemare il router malfunzionante. Ci sono diversi metodi per disabiltare il Window Scaling, e sembra che il più sicuro (che funziona sui kernel più recenti) sia aggiungere la seguente linea in `/etc/sysctl.d/99-disable_window_scaling.conf`: (vedere anche sysctl)

    net.ipv4.tcp_window_scaling = 0

#### Come risolverlo? (Il metodo migliore)

Questo problema è causato da router/firewall malfunzionanti, quindi vanno cambiati.

#### Ulteriori informazioni

Questa sezione si basa sull'articolo LWN TCP window scaling and broken routers e sull’articolo di Kernel Trap : Window Scaling on the Internet.

Altre discussioni pertinenti sono presenti su LKML.

### 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 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".

    In Windows XP (example)
    Right click my computer
    --> Hardware tab
      --> Device Manager
        --> Network Adapters
          --> "double click" Realtek ...
            --> Advanced tab
              --> Wake-On-Lan After Shutdown
                --> Enable

Nota: I nuovi driver Realtek di Windows (testato con Realtek 8111/8169 Driver LAN v5.708.1030.2008, datato 2009/01/22, disponibile da GIGABYTE) potrebbero fare riferimento a questa opzione in modo leggermente diverso, come Shutdown Wake-On-LAN --> Enable. Sembra che cambiare in `Disable` non produca alcun effetto (si noterà che la luce Link rimarrà accesa fino alla chiusura di Windows). Una soluzione, non proprio pulitissima, è avviare Windows e semplicemente resettarlo (eseguendo un brutale riavvio/spegnimento), non dando quindi al driver di Windows la possibilità di disabilitare la LAN. La luce Link rimarrà accesa e l’adattatore LAN rimarrà accessibile dopo il POST – cioè fino a quando non si avvierà Windows e lo si spegnerà correttamente.

#### Metodo 3 - Aggiornare il driver Linux Realtek

Scaricare ed installare una nuova versione del driver dal sito ufficiale Realtek. (non testato ma dovrebbe risolvere il problema).

#### Metodo 4 - Abilitare LAN Boot ROM nel BIOS/CMOS

Sembra che abilitando nel BIOS/CMOS l’impostazione Integrated Peripherals --> Onboard LAN Boot ROM si riattivi il chip Realtek LAN all’avvio del sistema, nonostante il driver di Windows lo disabiliti allo spegnimento.
Ciò è stato testato più volte e con successo con una GIGABYTE GA-G31M-ES2L su un BIOS versione F8 rilasciato il 2009/02/05. Formato data YMMV.

### Problema con DLink G604T/DLink G502T DNS

Gli utenti che posseggono un router DLink G604T/DLink G502T, utilizzano DHCP ed hanno un firmware v2.00+ (in genere utenti con firmware AUS), possono avere problemi con alcuni programmi nel risolvere i DNS. Uno di questi programmi, sfortunatamente, è pacman. Fondamentalmente il problema è che il router, in certe situazioni, non invia correttamente i DNS al DHCP, ciò fa sì che i programmi provino a connettersi al server con IP 1.0.0.0 ricevendo un errore di connessione scaduta.

#### Come diagnosticare il problema

Il metodo migliore per diagnosticare il problema è utilizzare Firefox/Konqueror/links/seamonkey ed abilitare wget per pacman. Se questa è una nuova installazione di Arch Linux, allora si può prendere in considerazione l’idea di installare `links` attraverso il live CD.

Prima di tutto, abilitare wget per pacman (in modo da ricevere informazioni inerenti il download dei pacchetti da parte di pacman). Aprire `/etc/pacman.conf` con l’editor di testo che si preferisce e decommentare la seguente linea (eliminare il cancelletto #):

    XferCommand=/usr/bin/wget --passive-ftp -c -O %o %u

Mentre si edita il file `/etc/pacman.conf` controllare che il mirror predefinito che pacman utilizza per il download dei pacchetti.

Ora aprire il mirror predefinito in un browser Internet per verificare se esso funziona. Se funziona, eseguire `pacman -Syy` (altrimenti scegliere un altro mirror ed impostarlo come predefinito di pacman), se si ottiene qualcosa di simile a quanto segue (notare 1.0.0.0):

    ftp://mirror.pacific.net.au/linux/archlinux/extra/os/i686/extra.db.tar.gz
               => `/var/lib/pacman/community.db.tar.gz.part'
    Resolving mirror.pacific.net.au... 1.0.0.0

allora molto probabilmente si tratta di questo problema. 1.0.0.0 significa che non è stato possibile risolvere i DNS, perciò essi vanno aggiunti a `/etc/resolv.conf`.

#### Come risolvere il problema

Fondamentalmente bisogna aggiungere manualmente i server DNS al file `/etc/resolv.conf`, il problema è che DHCP elimina automaticamente e sostituisce il file all'avvio, perciò è necessario editare `/etc/conf.d/dhcpcd` e modificare i flag per impedire che ciò accada:

Quando si apre il file `/etc/conf.d/dhcpcd`, si dovrebbe vedere qualcosa di simile a quanto segue:

    DHCPCD_ARGS="-t 30 -h $HOSTNAME"

Aggiungere il flag –R agli argomenti, ad esempio:

    DHCPCD_ARGS="-R -t 30 -h $HOSTNAME"

Nota: Se si utilizza dhcpcd >=4.0.2 il flag `–R` è obsoleto. Si prega di vedere la sezione Per l'indirizzo IP assegnato da DHCP per informazioni su come utilizzare e modificare il file `/etc/resolv.conf`

Salvare e chiudere il file, poi aprire `/etc/resolv.conf`. Si dovrebbe visualizzare un singolo nameserver (molto probabilmente 10.1.1.1). Questo è il gateway al router, a cui è necessario per ottenere i server DNS del proprio ISP. Incollare l'indirizzo IP nel browser ed effettuare il login al proprio router. Andando nella sezione DNS si dovrebbe vedere un indirizzo IP alla voce Primary DNS Server (Server DNS preferito), copiarlo ed incollarlo come voce nameserver, SOPRA il gateway corrente.

Ad esempio, il file `/etc/resolv.conf` dovrebbe essere simile a:

    nameserver 10.1.1.1

Se il proprio DNS primario è 211.29.132.12, cambiare `/etc/resolv.conf` in:

    nameserver 211.29.132.12
    nameserver 10.1.1.1

Ora riavviare il demone di rete eseguendo `{ic` e `pacman -Syy`. Se si sincronizza correttamente con il server, allora il problema è risolto.

#### Maggiori informazioni

Questo è il forum whirlpool (Comunità Australiana ISP) che parla del problema e suggerisce la medesima soluzione

    http://forums.whirlpool.net.au/forum-replies-archive.cfm/461625.html

### Controllo problemi DHCP prima del rilascio dell'IP

Il probleme potrebbe presentarsi quando DHCP ottiene un'assegnazione errata dell'IP. Ad esempio quando due router sono collegati insieme tramite VPN. Il router connesso tramite VPN può assegnare un indirizzo IP. C’è un modo per risolvere il problema. In una console, da root, rilasciare l'indirizzo IP:

     # dhcpcd -k

Quindi richeiderne uno nuovo:

     # dhcpcd

Potrebbe essere necessario eseguire questi due comandi più volte.

## Wiki Correlati

Samba (Italiano)

Categories:

- Networking (Italiano)
- Getting and installing Arch (Italiano)