Condividere la connessione con Linux

8 Novembre 2007 » In informatica, internet
Tag: , , , , , ,

Ieri sera stavo lavorando al progetto del Linux Home Media Center quando ad un certo punto mi sono trovato nella situazione di dover scaricare alcuni pacchetti per compilare dei moduli per la scheda tv Hauppauge WinTv HVR-3000. Il problema è che non dispongo di una connessione adsl ma solo di quella UMTS/GPRS su connect card PCMCIA Vodafone che uso sul portatile. Per fare quindi un apt-get su Mythbuntu (installata sul LHMC) ho dovuto sfruttare la connessione del portatile dopo aver collegato in rete i due computer, vediamo come:1) Per prima cosa ho assegnato gli ip alle schede di rete dei due computer in modo che appartengano alla stessa sottorete: 192.168.0.5 ad honolulu (portatile che da qui in poi chiamerò honolulu) e 192.168.0.10 ad hawaii (pc tradizionale che fa da LHMC che da qui in poi chiamerò hawaii), subnet mask per tutti e due 255.255.255.0, come gateway per honolulu (e quindi il computer connesso ad internet) va impostato l’ip assegnato dal provider che offre l’accesso e per hawaii ho impostato l’ip di honolulu visto che il traffico dovrà passare da lui per uscire su internet

2) A questo punto non resta che verificare l’effettivo funzionamento del collegamento tra i due computer. Come? Ping è la risposta. Da ogni computer provate a pingare l’altro dalla shell con il semplice comando “ping” seguito dall’ip di sottorete impostato precedentemente. Da honolulu sarà quindi “ping 192.168.0.10” mentre da hawaii avremo “ping 192.168.0.5“. L’importante è la risposta: se vedete comparire alcune linee con dei tempi tutto è filato liscio, se invece messaggio contiente qualcosa tipo “Destination Host Unreachable” significa che qualcosa non va. Ricontrollate i passaggi precedenti.

3) Ora che i due computer comunicano tra di loro dobbiamo fare in modo che i pacchetti inviati da hawaii ed in transito su honolulu vengano inoltrati all’host di destinazione, nonchè prendere i pacchetti di risposta e mandarli ad hawaii. Per fare ciò sfruttiamo netfilter/iptables per fare NAT e masquerading. Il primo, Network Address Translation, non fa altro che sostituire nell’intestazione del pacchetto l’ip privato con l’ip pubblico (in uscita) e viceversa quando il pacchetto è in ingresso. Il masquerading è un caso particolare di NAT attraverso il quale oltre a sostituire gli ip vengono modificate le porte TCP e UDP delle connessioni in transito. Vediamo dunque come dirlo a iptables:

iptables –table nat –append POSTROUTING –out-interface ppp0 -j MASQUERADE

iptables –append FORWARD –in-interface eth0 -j ACCEPT

echo 1 > /proc/sys/net/ipv4/ip_forward

La prima riga aggiunge la regola nella tabella di nat e si occupa del masquerading, la seconda aggiunge la regola alla catena di forward e fa in modo che i pacchetti in ingresso vengano inviati all’interfaccia di rete eth0 che è quella connessa al cavo che arriva ad hawaii da honolulu. L’ultima riga, semplice quanto fondamentale, permette il forward dei pacchetti tra le interfacce (cosa che Linux non permette di default).

A questo punto la connessione è condivisa a tutti gli effetti, quindi un ping da hawaii verso un host esterno dovrebbe rispondere positivamente. Il ping andrà fatto specificando direttamente un ip da contattare e non un dominio visto che non abbiamo ancora impostato dei dns da utilizzare per la risoluzione dei nomi a dominio.

4) Inseriamo quindi su hawaii i dns per la risoluzione dei nomi a dominio. Dove? Via interfaccia grafica o shell il risultato è lo stesso, via shell basterà inserire nel file /etc/resolv.conf delle righe tipo “nameserver xxx.yyy.zzz.xxx” prese da honolulu o da servizi dns di dominio pubblico tipo OpenDns. Fatto questo possiamo provare ad eseguire un ping specificando un dominio al posto di un ip. Se funziona avete seguito correttamente le istruzioni fin’ora riportate.

5) Non resta altro che sfruttare la connessione di honolulu direttamente da hawaii!

Alcuni link utili:

Abbonati ai feed RSS degli articoli e dei commenti.
E' gratis e ti permette di non perderti nemmeno un articolo di questo blog!

Commenti

2 Commenti per “Condividere la connessione con Linux”

  1. malex il 8 Novembre 2007 10:15 am

    Hai ripetuto la prima parte dell’articolo. ;-)
    Poi ci farai sapere come va il tuo Linux Media Center.

  2. Daniel il 8 Novembre 2007 2:35 pm

    Grazie per la segnalazione, tutto sistemato.
    Per quanto riguarda il Media Center vi terrò sicuramente aggiornati con la terza puntata, purtroppo ho molto poco tempo da dedicargli ed al momento devo risolvere i problemi legati ai moduli per la scheda tv che sicuramente mi obbligheranno a ricompilare con una versione particolare del kernel…

Lascia un commento




Post recenti

Consigliati

Negli ultimi 12 mesi...