Configurare un Router domestico

Contenuti:

1.Introduzione

Costruire il proprio router partendo da vecchi pezzi di PC ha molti vantaggi rispetto al comprare un router di marca, ad esempio un Linksys. Il primo di questi vantaggi è l`avere un controllo completo sulla connessione. Gli altri potrete immaginarli da soli; si può realizzare quasi qualsiasi cosa in questo modo, se solo se ne ha la necessita'.

Questa guida mostrera' come attivare un servizio di NATting (Network Address Translation) configurando il kernel ed iptables, come fornire ed impostare alcuni tra i servizi piu' comuni: DNS (Domain Name System) attraverso dnsmasq, DHCP (Dynamic Host Configuration Protocol) attraverso dhcpd, ADSL (Asymmetric Digital Subscriber Line) attraverso rp-pppoe. Alla fine, concluderemo con qualcosa di piu' sofisticato e divertente (port forwarding, regolazione del traffico di dati, impostazione di proxy/caching, ecc...).

Prima di cominciare, ecco una lista di requisiti che il tuo PC deve soddisfare. Per prima cosa, devono essere presenti almeno due schede di rete nel computer. Successivamente, devi conoscere le impostazioni della tua connessione ad Internet (ad esempio il tuo IP/DNS/GateWay/username/password). Infine, ti servirà un pò di tempo libero e di amore verso Gentoo.

Questa guida si bassa sulla seguente configurazione tipo:

  • eth0 - Scheda di rete connessa alla tua LAN (Local Area Network)
  • eth1 - Scheda di rete connessa alla WAN (Wide Area Network)
  • La LAN utilizza il set 192.168.0.??? di IP privati
  • L`IP del router è quello standard (192.168.0.1)
  • Sul router gira Linux 2.4/2.6 - Dovrai fare da solo con Linux 2.0/2.2

Importante: Per motivi di sicurezza, è vivamente consigliato di disattivare sul router tutti i servizi che non sono necessari finchè non si disporrà di un firewall ben funzionante. Per vedere i servizi attivi, usare il comando rc-status.

2.Configurazione del Kernel (prima conoscete voi stessi)

Come prima cosa, il kernel ha bisogno dei driver per entrambe le schede di rete. Per vedere se le schede sono già state correttamente riconosciute dal Kernel, si può usare il comando ifconfig. Il tuo output può essere diverso da quello che segue, ma questo non ha importanza: quello che conta è che vi siano mostrate entrambe le interfacce di rete.

Esempio 1: Controllare le schede di rete

# ifconfig -a
eth0      Link encap:Ethernet  HWaddr 00:60:F5:07:07:B8
          BROADCAST MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:0 (0.0 b)  TX bytes:0 (0.0 b)
          Interrupt:11 Base address:0x9800 

eth1      Link encap:Ethernet  HWaddr 00:60:F5:07:07:B9
          BROADCAST MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:0 (0.0 b)  TX bytes:0 (0.0 b)
          Interrupt:10 Base address:0x9400 

Se non vedi una o entrambe le schede di rete e non sai che tipo di schede hai, puoi provare a lanciare il comando lspci. Se non hai neanche questa utility, la puoi scaricare con il comando emerge pciutils. Cerca una riga contenente "Ethernet controller" nell'output di lspci. Appena ottenute le informazioni necessarie, puoi ricompilare il Kernel attivando il supporto per le tue schede di rete.

Un'altra cosa che ti servirà è il supporto per iptables, per il NAT e per il controllo del traffico (se lo vuoi attivare). Nella lista che segue, le opzioni richieste sono segnate come (*), quelle consigliate come (x) e quelle per il controllo come (s). Non importa se si sceglie di compilare questi supporti direttamente nel kernel o come moduli, perchè questi ultimi saranno comunque caricati non appena ce ne sarà bisogno.

Esempio 2: Network Options

Networking options  --->
   [*] TCP/IP networking
      [*] IP: advanced router
   [*] Network packet filtering (replaces ipchains)
If you use 2.4.x, you have to enable the following for DHCP:
   [*] Socket Filtering

   IP: Netfilter Configuration  --->
      [*] Connection tracking (required for masq/NAT)
         [x] FTP protocol support
         [x] IRC protocol support
      [*] IP tables support (required for filtering/masq/NAT)
         [*] IP range match support
         [x] MAC address match support
         [*] Multiple port match support
         [*] Packet filtering
            [*] REJECT target support
            [x] REDIRECT target support
         [*] Full NAT
            [*] MASQUERADE target support
         [s] Packet mangling
            [s] MARK target support
         [x] LOG target support

   QoS and/or fair queueing  --->
      [s] QoS and/or fair queueing
         [s] HTB packet scheduler
         [s] Ingress Qdisc

Nota: Potete trovare qualcosa di diverso tra i kernel 2.4 e 2.6, cercate di capire come rimediare :)

3.Collegarsi alla WAN (ovvero ad Internet)

Introduzione 

Ci sono moltissimi modi di connettersi ad Internet, quindi questa guida tratterà soltanto quelli usati dal suo autore, ovvero un collegamento ADSL (PPPoE) e uno con Modem telefonico (meglio conosciuto come "il 56k"). Se conoscete altri metodi, potete mettermene al corrente inviandomi una mail. Potete prendervi la libertà di saltare qualsiasi delle sezioni successive in questo capitolo se non vi riguarda. Lo scopo di questo capitolo e' di connettere il router ad Internet attraverso eth1.

ADSL e PPPoE 

Tutto il software prodotto, che riguarda PPPoE, e' stato riunito in un solo pacchetto chiamato Roaring Penguin . Bastera' eseguire emerge rp-pppoe e saremo pronti per cominciare. Ricordate quando vi è stato chiesto di tenere sotto mano l'username e la password del vostro account Internet? Beh, è venuto il momento di usare quelle informazioni! Aprite /etc/ppp/pppoe.conf nel vostro editor preferito e modificate i parametri in maniera appropriata.

Nota: E` necessario avere installato baselayout-1.10.1 o superiore, per far sì che la seguente configurazione (di net.eth1) funzioni correttamente.

Esempio 3: Configurare eth1

(Sostituire 'vla9h924' con il proprio username e 'password' con la propria password)

# nano /etc/ppp/pppoe.conf
# Scheda di rete connessa al modem ADSL
ETH=eth1
# Username ADSL
USER=vla9h924
# nano /etc/ppp/pap-secrets
# client    server  secret
"vla9h924" * "password"
# nano /etc/conf.d/net
Aggiungere una riga per config_eth1 ed impostarla ad "adsl"
config_eth1=( "adsl" )
# ln -s net.lo /etc/init.d/net.eth1
# rc-update add net.eth1 default
# /etc/init.d/net.eth1 start

Attenzione: Quando l'interfaccia DSL si attiva, sarà creato il device ppp0. Anche se la scheda di rete è eth0, l`IP appartiene a ppp0. Da ora in avanti, dove vedrete esempi che usano 'eth1', sostituitelo con 'eth1'.

Connessione attraverso linea telefonica e/o IP statico/dinamico 

Se possedete un IP statico, avrete bisogno di conoscere qualche dettaglio in più: il vostro IP, il vostro gateway ed i vostri server DNS.

Esempio 4: Configurare eth1

IP dinamico:
# emerge dhcpcd
# nano /etc/conf.d/net
Dovrete inserire una riga simile a questa:
config_eth1=( "dhcp" )

IP Statico:
# nano /etc/conf.d/net
Dovrete inserire righe simili a queste:
ifconfig_eth1=( "66.92.78.102 broadcast 66.92.78.255 netmask 255.255.255.0" )
routes_eth1=( "default gw 66.92.78.1" )
# nano /etc/resolv.conf
Aggiungere una riga per il server DNS:
nameserver 123.123.123.123

Configurazione sia per l'IP dinamico che statico:
# ln -s net.lo /etc/init.d/net.eth1
# rc-update add net.eth1 default
# /etc/init.d/net.eth1 start

Ora dovrebbe essere tutto configurato.

4.Collegarsi alla LAN (portatevi appresso qualche amico)

Questo passaggio è una bazzecola rispetto al precedente.

Esempio 5: Configurare eth0

# nano /etc/conf.d/net
Aggiungere una riga come questa:
ifconfig_eth0=( "192.168.0.1 broadcast 192.168.0.255 netmask 255.255.255.0" )
# rc-update add net.eth0 default
# /etc/init.d/net.eth0 start

5.Servizi LAN (perchè siamo brave persone)

Server DHCP 

Scommetto che sarebbe bello se chiunque a casa vostra potesse semplicemente collegare i propri computer alla rete e tutto funzionasse subito. Non ci sarebbe alcun bisogno di ricordare dettagli noiosi e difficili da memorizzare o di inserirli in interfacce di configurazione confusionarie! Proprio una bella vita, eh? Vi presento DHCP (Dynamic Host Configuration Protocol o Protocollo per la Configurazione Dinamica degli Host) e vi spiego perchè vi dovrebbe interessare :)

DHCP,come si può desumere dal nome, è un protocollo che consente di configurare dinamicamente gli altri host in maniera del tutto automatica. Basta far girare il server DHCP (dhcpd) sul router, passargli tutte le informazioni sulla propria rete (indirizzi IP validi, server DNS, gateway, ecc...) e, quando gli altri host si connetteranno alla rete, useranno client DHCP per autoconfigurarsi. Niente confusione, nè pasticci. Per maggiori informazioni sul DHCP, potete visitare Wikipedia.

Esempio 6: Configurare dhcpd

# emerge dhcp
# nano /etc/dhcp/dhcpd.conf
(Ecco un file di configurazione di esempio:)
authoritative;
ddns-update-style interim;
subnet 192.168.0.0 netmask 255.255.255.0 {
    range 192.168.0.100 192.168.0.250;
    default-lease-time 259200;
    max-lease-time 518400;
    option subnet-mask 255.255.255.0;
    option broadcast-address 192.168.0.255;
    option routers 192.168.0.1;
    option domain-name-servers 192.168.0.1;
}
# nano /etc/conf.d/dhcp
(Impostare IFACE="eth0")
# rc-update add dhcp default
# /etc/init.d/dhcp start

Ora il vostro piccolo router e' un semplice server DHCP! Collegate alla rete qualche computer ed osservate bene come.. semplicemente funziona! :) Con un sistema MS Windows dovrete andare nel pannelo "Proprietà TCP/IP" e selezionare le opzioni "Ottieni un indirizzo IP automaticamente" e "Ottieni l`indirizzo del server DNS automaticamente". A volte, queste modifiche non hanno effetto immediato e dovrete aprire una finestra di comando ed eseguire ipconfig /release e ipconfig /renew. Ma ora basta con Windows, torniamo al nostro pinguino preferito.

Server DNS 

Quando qualcuno vuole visitare un sito web o raggiungere un altro host su Internet, solitamente si ricorda del nome di quel sito, piuttosto che di una stringa di numeri. E` più facile ricordare ebay.com che 66.135.192.87, no? Ecco dove entra in gioco il DNS. I server DNS girano più o meno ovunque su internet e non appena qualcuno vuole visitare ebay.com, questi server trasformano "ebay.com" (di facile comprensione per noi) in "66.135.192.87" (di facile comprensione per i nostri computer). Per maggiori informazioni sul DNS, anche questa volta potete visitare Wikipedia.

Come avrete notato, nella sezione precedente abbiamo impostato DHCP affinchè i client usassero 192.168.0.1 come server DNS. E ricorderete anche che 192.168.0.1 è l`indirizzo IP del router che stiamo costruendo. Io non ricordo proprio di aver configurato un server DNS sul router... allora facciamolo ora!

Esempio 7: Configurare dnsmasq

# emerge dnsmasq
# nano /etc/conf.d/dnsmasq
Aggiungete "-i eth0" a DNSMASQ_OPTS
# rc-update add dnsmasq default
# /etc/init.d/dnsmasq start

Bene, è stato veloce, ma.. cosa abbiamo fatto? La cosa favolosa è che abbiamo fatto veramente tanto! Potete benissimo scegliere altri server DNS se vi trovate meglio con quelli, ma il motivo per cui dnsmasq è grandioso è che fa esattamente quello che noi vogliamo e niente di più. E` un piccolo server per reti locali con funzionalità di caching e forwarding. Noi non vogliamo offrire un DNS per un nostro dominio, ma soltanto offrire un servizio DNS di base a chiunque si trovi nella nostra LAN.

NAT (ovvero IP-masquerading) 

In questo momento, le persone nella vostra rete possono comunicare fra di loro e possono collegarsi a degli hostname tramite DNS, ma non possono ancora connettersi realmente ad internet. E mentre voi potete esserne felici (più banda per voi), scommetto che loro non lo sono altrettanto.

Ecco dove entra in scena NAT. NAT è un modo per connettere più computer in una LAN ad Internet, quando si hanno a disposizione un numero minore di indirizzi IP. Tipicamente, la compagnia telefonica offre ad ogni utente un solo IP, ma noi vogliamo che tutta la casa sia connessa ad internet. NAT è la magia che rende possibile tutto ciò. Anche in questo caso, maggiori informazioni circa NAT possono essere trovate su Wikipedia

Nota: Prima di cominciare, assicuratevi di avere iptables nel vostro sistema. Nonostante sia installato automaticamente nella maggior parte dei sistemi, potreste non averlo. Se è così, basterà eseguire il comando emerge iptables.

Esempio 8: Configurare iptables

Prima di tutto eliminiamo le regole attualmente in uso
# iptables -F
# iptables -t nat -F

Potete semplicemente copiare ed incollare questi esempi
# export LAN=eth0
# export WAN=eth1

Limitiamo i nostri servizio affinchè funzionino solo dalla LAN
# iptables -I INPUT 1 -i ${LAN} -j ACCEPT
# iptables -I INPUT 1 -i lo -j ACCEPT
# iptables -A INPUT -p UDP --dport bootps -i ! ${LAN} -j REJECT
# iptables -A INPUT -p UDP --dport domain -i ! ${LAN} -j REJECT

(Opzionale) Abilitare l'accesso al server ssh dalla WAN
# iptables -A INPUT -p TCP --dport ssh -i ${WAN} -j ACCEPT

Limitare i pacchetti TCP/UDP solo alle porte privilegiate (0-1023)
# iptables -A INPUT -p TCP -i ! ${LAN} -d 0/0 --dport 0:1023 -j DROP
# iptables -A INPUT -p UDP -i ! ${LAN} -d 0/0 --dport 0:1023 -j DROP

Infine abilitiamo NAT
# iptables -I FORWARD -i ${LAN} -d 192.168.0.0/255.255.0.0 -j DROP
# iptables -A FORWARD -i ${LAN} -s 192.168.0.0/255.255.0.0 -j ACCEPT
# iptables -A FORWARD -i ${WAN} -d 192.168.0.0/255.255.0.0 -j ACCEPT
# iptables -t nat -A POSTROUTING -o ${WAN} -j MASQUERADE
Comunichiamo al kernel che l`ip forwarding è funzionante
# echo 1 > /proc/sys/net/ipv4/ip_forward
# for f in /proc/sys/net/ipv4/conf/*/rp_filter ; do echo 1 > $f ; done

Evitiamo di dover riscrivere le regole di iptables ogni volta che ci connettiamo
# /etc/init.d/iptables save
# rc-update add iptables default
# nano /etc/sysctl.conf
Aggiungere le righe seguenti:
net.ipv4.ip_forward = 1
net.ipv4.conf.default.rp_filter = 1

Una volta finito, il resto della vostra rete dovrebbe essere in grado di connettersi ad internet e di usarlo come se fossero collegati direttamente alla WAN.

6.Qualcosa di divertente (da fare nelle giornate di pioggia)

Introduzione 

Che ci crediate o no, avete finito :). Da qui in avanti descriveremo qualcosa che potrebbe interessarvi e che è facile incontrare tra le funzionalità di un router. Tutto, in questo capitolo, è completamente opzionale.

Port Forwarding (Reindirizzamento delle/alle Porte) 

A volte si possono voler offrire alcuni servizi da computer che sono dietro il router (ovvero all'interno della LAN) oppure semplicemente rendersi la vita più semplice quando ci si connette da remoto. Probabilmente vorrete eseguire un server FTP, HTTP, SSH, o VNC in una o più macchine dietro il router ed essere in grado di connettervi a tutte. L`unico problema è che solo un servizio e solo un computer possono essere collegati ad una specifica porta. Per esempio, non c`è modo per installare tre server FTP dietro il router e poi connettersi a tutti e tre tramite la porta 21; solo uno potrà ascoltare sulla porta 21, mentre gli altri dovranno ascoltare, per esempio, sulle porte 123 e 567.

Tutte le regole di port forwarding hanno questa forma: iptables -t nat -A PREROUTING [-p protocollo] --dport [porta del router] -i ${WAN} -j DNAT --to [ip/porta del pc nella LAN]. iptables non accetta hostname nelle regole di port forwarding. Se state effettuando il forwarding da una porta esterna (quella del router) uguale a quella interna (quella del pc nella LAN), potrete omettere la porta di destinazione. Per ulteriori informazioni si può consultare la pagina di manuale di iptables: iptables(8).

Esempio 9: Eseguire iptables

Potete semplicemente copiare ed incollare questi esempi
# export LAN=eth0
# export WAN=eth1

Reindirizzare la porta 2 a un demone ssh di un host della LAN
# iptables -t nat -A PREROUTING -p tcp --dport 2 -i ${WAN} -j DNAT --to 192.168.0.2:22

Reindirizzare la porta 21 (ftp) ad un host della LAN
# iptables -t nat -A PREROUTING -p tcp --dport 21 -i ${WAN} -j DNAT --to 192.168.0.56

Reindirizzare la porta 80 (http) ad un host della LAN
# iptables -t nat -A PREROUTING -p tcp --dport 80 -i ${WAN} -j DNAT --to 192.168.0.56

Reindirizzare due porte adibite a servizio VNC a due host della lan
# iptables -t nat -I PREROUTING -p tcp --dport 5900 -i ${WAN} -j DNAT --to 192.168.0.2
# iptables -t nat -I PREROUTING -p tcp --dport 5901 -i ${WAN} -j DNAT --to 192.168.0.3:5900

Reindirizzare il range di porte 6881-6889 (bittorrent) ad un host della LAN
# iptables -t nat -A PREROUTING -p tcp --dport 6881:6889 -i ${WAN} -j DNAT --to 192.168.0.2

Aggiungiamo il supporto al "Game Cube Warp"
# iptables -t nat -A PREROUTING -p udp --dport 4000 -i ${WAN} -j DNAT --to 192.168.0.56

Aggiungiamo il supporto a "Playstation2 OnLine"
# iptables -t nat -A PREROUTING -p tcp --dport 10070:10080 -i ${WAN} -j DNAT --to 192.168.0.11
# iptables -t nat -A PREROUTING -p udp --dport 10070:10080 -i ${WAN} -j DNAT --to 192.168.0.11

Nota: Se avete altri esempi frequenti, scrivetemi una mail..

Il demone identd (per IRC) 

Il protocollo IRC (Internet Relay Chat) utilizza molto spesso il servizio ident. Ora che i client IRC sono dietro il router, abbiamo bisogno di un modo per raccogliere gli "ident" sia del router che dei client. Per fare ciò è stato creato un server chiamato midentd

Esempio 10: Configurare ident

# emerge midentd
# rc-update add midentd default
# /etc/init.d/midentd start

Ci sono alcuni altri server ident nel portage di Gentoo. A secondo dei vostri bisogni, potete dare anche un`occhiata ad oidentd e fakeidentd.

Time Server 

Avere sempre un orologio di sistema sincronizzato è essenziale per mantenere un sistema correttamente. Uno dei modi più comuni per farlo è usare il Network Time Protocol (NTP) e il pacchetto "ntp", che fornisce sia l'implementazione lato client che quella lato server.

Molte persone usano dei client ntp nei loro pc. Ovviamente, più client ci sono, più grandi sono i carichi di lavoro che i server devono gestire. In situazioni come quella di una rete casalinga però, è possibile diminuire questo carico di lavoro ai server pubblici pur fornendo un risultato accurato e veloce ai nostri host. Tutto quello che dobbiamo fare è eseguire nel router un server ntp che si sincronizza con un server pubblico e poi fornisce l`ora esatta al resto degli host nella LAN. Per cominciare, diamo il comando emerge ntp.

Esempio 11: Configurare il server NTP

# nano /etc/conf.d/ntp-client
Potete configurarlo, ma i valori di default dovrebbero essere corretti
# rc-update add ntp-client default

# nano /etc/ntp.conf
Aggiungete queste righe:
restrict default ignore
restrict 192.168.0.0 mask 255.255.255.0 notrust nomodify notrap
Questo permettera di accedere al vostro server solo dagli host della LAN
# nano /etc/conf.d/ntpd
Potete configurarlo, ma i valori di default dovrebbero essere corretti
# rc-update add ntpd default

# /etc/init.d/ntp-client start
# /etc/init.d/ntpd start

Nota: Assicuratevi che avete abilitato il traffico in entrata ed in uscita alla porta ntp (123/udp) del server. Per i client sarà sufficiente l'abilitazione per il traffico in uscita, sempre sulla stessa porta.

Ora, date il comando emerge ntp anche sui pc client. In questo caso la configurazione dovrebbe essere più semplice, perchè abiliterete soltanto il client

Esempio 12: Configurare un client NTP

# nano /etc/conf.d/ntp-client
Cambiate il nome del server da 'pool.ntp.org' a '192.168.0.1' nella variabile NTPCLIENT_OPTS
# rc-update add ntp-client default
# /etc/init.d/ntp-client start

Server Rsync 

Per reti in cui c`è più di una macchina con Gentoo, vi potrà capitare spesso di usare il comando emerge sync con un server remoto. Potrete risparmiare la vostra banda e quella dei server di Gentoo usando un singolo server rsync locale. E` davvero semplice farlo.

Nota: Per una guida più approfondita su rsync, consultate la guida su rsync ufficiale.

Dal momento che ogni pc con Gentoo richiede rsync nativamente, non c`è bisogno di emergerlo. Basterà cambiare il file di configurazione /etc/rsyncd.conf, rimuovendo i commenti dalla sezione [gentoo-portage] ed assicurandosi di aggiungere un`opzione address. Tutte le altre impostazioni di default dovrebbero andare bene.

Esempio 13: File di configurazione del server rsync

pid file = /var/run/rsyncd.pid
use chroot = yes
read only = yes
address = 192.168.0.1

[gentoo-portage]
	path = /mnt/space/portage
	comment = Gentoo Linux Portage tree
	exclude = /distfiles /packages

Ora dovrete avviare il servizio.

Esempio 14: Avviare il server rsync

# /etc/init.d/rsyncd start
# rc-update add rsyncd default

L`unica cosa che rimane da fare è configurare i client affinchè si colleghino all`IP del router.

Esempio 15: Configurazione dei client in make.conf

SYNC="rsync://192.168.0.1/gentoo-portage"

Server Mail 

A volte può essere utile avere un proprio semplice server SMTP (Simple Mail Transfer Protocol) che gira sul router. Potreste avere qualsiasi ragione per farlo, ma io lo faccio perchè gli utenti vedano la loro mail come inviata instantaneamente, mentre tutto il lavoro è lasciato al server mail. Oltretutto, alcuni ISP, come Verizon, non accettano mail relaying (ovvero non vi permettono di usare i loro server smtp) se non avete un account della loro rete. Ancora, potrete regolare l`invio della mail in modo che gli allegati grandi non creino ritardo nella vostra connessione per mezz`ora.

Esempio 16: Configurare SMTP

# emerge qmail
Assicurarsi che l`output di 'hostname' sia corretto
# ebuild /var/db/pkg/*-*/qmail-1.03-r*/*.ebuild config
# iptables -I INPUT -p tcp --dport smtp -i ! ${LAN} -j REJECT
# ln -s /var/qmail/supervise/qmail-send /service/qmail-send
# ln -s /var/qmail/supervise/qmail-smtpd /service/qmail-smtpd

# cd /etc
# nano tcp.smtp
Aggiungere una riga come questa alla sezione "Allow":
192.168.0.:allow,RELAYCLIENT=""

# tcprules tcp.smtp.cdb rules.tmp < tcp.smtp
# rc-update add svscan default
# /etc/init.d/svscan start

Io sono un grande fan di qmail, ma siete liberi di scegliere un altro mta :). Quando configurate gli account e-mail negli host della vostra rete, impostate il server SMTP in modo che sia 192.168.0.1 e tutto dovrebbe funzionare. Per ulteriore documentazione, potete visitare l`homepage di qmail.

7.Risoluzione dei problemi

Strumenti utili 

Se state avendo qualche problema nel mettere in comunicazione i vostri computer, potreste trovare utili i seguenti strumenti (possono essere trovati tutti nella categoria net-analyzer di portage):

Strumento Descrizione
ethereal Strumento grafico per visualizzare tutto il traffico di rete grezzo secondo alcuni filtri
tcpdump Uno strumento da consolle per intercettare il traffico di rete grezzo secondo alcuni filtri
iptraf Monitor IP per la LAN, basato su le librerie ncurses
ettercap Monitor/Controllore di rete, bassato sulle librerie ncurses

DHCP non parte 

Quando lanciate lo script init.d di dhcp per la prima volta, potrebbe fallire nel caricarsi senza fornire alcuna informazione utile.

Esempio 17: Esempio di fallimento di DHCP

# /etc/init.d/dhcp start
 * Setting ownership on dhcp.leases ...          [ ok ]
 * Starting dhcpd ...                            [ !! ]

Il trucco sta nello scoprire dove il demone dhcpd invii il suo output. Basta semplicemente posizionarsi su /var/log e leggere i file di log. Dal momento che il file dipende da quale syslog si sta usando, lanciare il comando grep -Rl dhcpd /var/log per trovare il file esatto. La causa che ha generato l`errore probabilmente è un errore nel file di configurazione. Potete anche provare a lanciare dhcpd -d -f ed effettuare il debug degli errori basandovi sull`output.

Valore dell`MTU sbagliato 

Se occasionalmente vi si presentano degli errori (come il non visualizzare alcune pagine web, mentre altre si visualizzano correttamente), si potrebbero avere problemi di "Path MTU Discovery". Il modo più veloce per scoprirlo è lanciare iptables:

Esempio 18: Impedire problemi di MTU

# iptables -A FORWARD -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu

Questo avrà effetto solo sulle nuove connessioni, quindi ricaricate la pagina web che presentava problemi per verificare. Nel caso sia d`aiuto, il valore MTU standard per connessioni ethernet a 100Mb è 1500, mentre per le connessioni PPPoE è 1492. Per ulteriori informazioni si può consultare il capitolo 15 della guida "Linux Advanced Routing & Traffic Control HOWTO.

8.Note Finali

Non ci sono note finali che una. Se avete qualsiasi problema con la guida, per favore contattate me o segnalate un bug qui. Se avete qualche pezzo interessante che credete possa migliorare questa guida, mandatemelo per vederlo incluso.



Ultimo aggiorn.:
2005-08-17
Mike Frysinger
Autore

Alberto Santini
Traduzione

Sommario:  In questo documento è spiegato come trasformare una vecchia macchina con Gentoo in un router domestico per collegare tutta la casa ad Internet
- 2002 Gentoo.it - Domande, commenti e/o correzioni? Email gentoo-dev@gentoo.it.