Tutto è nato cercando di scaricare la posta con un modem, rimanendo collegati alla rete LAN dell’ufficio.
Il problema che ho incontrato è stato quello di scaricare la posta da un server su una rete non raggiungibile dalla mia LAN, bensì esclusivamente attraverso il collegamento PPP di un modem.
Dapprima ho erroneamente cambiato il default gateway, inserendo l’IP assegnato alla mia macchina dal collegamento PPP.
Questo faceva si che tutto il traffico internet si indirizzasse sul nuovo gateway, anche le richieste del DNS e questo … non è bello. Infatti usando fetchmail (che passa tutta la posta al MDA..sendmail..) e non riuscendo a risolvere i nomi di dominio dei destinatari, non trasferiva le mail scaricate poichè i DNS in resolv.conf erano quelle utili alla mia LAN.
Una soluzione sarebbe stata quella di cambiare i DNS per il tempo del collegamento, ma rinunciando alla velocità dell’ADSL e adottandoi quella della connessione modem 56 K bps (quando ci arriva…).
Conoscendo l’indirizzo del server mail.serverposta.org dal quale scaricare la posta e sapendo che difficilmente questo cambi improvvisamente IP ho deciso di impostare le regole del traffico in modo che:
a) tutte le richieste al server mail.serverposta.org vengano instradate verso il gateway x.x.x.x attestato su PPP0
b) tutte le altre richieste vengano instradate al default gateway della LAN, quindi anche quelle verso i DNS.
Procedura:
1) Modifico il file host.conf con la riga
order hosts, bind
In questo modo la risoluzione di un nome avviene prima attraverso il file hosts
2) Modifico il file hosts inserendo l’indirizzo del server di posta
10.10.2.10 mail.serverposta.org
3) Disabilito l’opzione che consente allo script ppp-go di impostare com default gateway l’IP della PPP0
4) Aggiungo la regola di route seguente
route add -net 10.0.0.0 netmask 255.0.0.0 gw $ipassegnato ppp0
allo script post-collegamento ip-up
Quando effettuo il collegamento posso scaricare la posta dal server e l’MDA può interrogare a piacimento il suo DNS.
Nota sul DNS : nel file /etc/ppp/options ho inserito l’opzione usepeerdns che mi permette di ottenere gli IP del name server direttamente dal server ISP al quale mi collego. Questi dati vengono poi messi a disposizione nel file /etc/ppp/resolv.conf e nello script /etc/ppp/ip-up (leggi man pppd /usepeerdns)