Differences between revisions 1 and 2
Revision 1 as of 2005-08-12 18:09:25
Size: 1404
Editor: Kurgan
Comment:
Revision 2 as of 2005-08-13 10:17:03
Size: 5392
Editor: Kurgan
Comment:
Deletions are marked like this. Additions are marked like this.
Line 2: Line 2:

Usare un modem seriale sul WRT e` possibile, ma e` un bel casino perche` mancano le linee di controllo dalle seriali (DCD, CTS, RTS, DTR, DSR).
Questo provoca alcuni problemi anche gravi, se volete provare e poi vi trovate una bolletta di trenta milioni, non date la colpa a me. La mancanza del DCD richiede che il modem risponda "CONNECT" al momento della connessione, e se per caso cade la linea per colpa del modem, il pppd non se ne rendera` conto, e sara` convinto di essere ancora collegato. Al contrario, la mancanza del DTR impedisce al pppd di usare questa linea di controllo per dire al modem di riattaccare, quindi il ppp potrebbe essere convinto di avere riattaccato mentre il modem resta connesso all'infinito. Per cercare di ovviare al problema si puo` usare uno script di disconnessione che esegua la sequenza +++ATH, la quale pero` non e` accettata da tutti i modem allo stesso modo. Il mio TA ISDN, per esempio, quando e` in modo "PPP" ignora QUALSIASI carattere, quindi non riesco a farlo tornare al modo comandi con "+++". Spesso quando il link PPP termina, e` il remoto che riattacca, il che fa riattaccare istantaneamente anche il modem locale, ma questa non e` una certezza molto solida sulla quale appoggiarsi per salvare la propria bolletta.

'''Allo stato attuale delle cose (White Russian RC2) inoltre il pppd non e` compilato con il supporto per libpcap e i filtri, quindi di fatto il dial on demand non e` utilizzabile, perche` il rumore di fondo di internet terrebbe la linea sempre connessa.'''
Line 38: Line 43:

==== Configurazione del PPP ====
Per configurare il PPP, ho adottato una logica minimalista, mettendo tutti i dati necessari in un file unico, sotto {{{/etc/ppp/peers}}}, che verra` poi richiamato dal comando {{{ppp dial <nomefile>}}}.

 * Rimuovere o rinominare il file {{{/etc/ppp/options}}}
 * Creare un file {{{/etc/ppp/peers/<nome del tuo provider>}}}, con questo contenuto:
{{{
# username (in chap-secrets)
name kurgan
# server name (in chap-secrets)
remotename casa
# scripts per la connessione e la disconnessione
connect "/usr/sbin/chat -v -f /etc/ppp/chatscripts/dialup -T 19"
disconnect "/usr/sbin/chat -v -f /etc/ppp/chatscripts/disconnect"
# seriale
tts/1
# velocita`
115200
# non ho le linee di controllo
local
nocrtscts
nocdtrcts
# sono il default GW
defaultroute
replacedefaultroute
# debug, per loggare di piu`
debug
# se voglio il dial on demand, con relativo timeout di disconnessione
demand
idle 20
# il remoto non deve autenticarsi su di me, ma viceversa
noauth
# se il remoto non capisce la compressione, la disabilito in vario modo
noaccomp
nopcomp
nobsdcomp
nodeflate
noccp
}}}

 * Creare la directory {{{/etc/ppp/chatscripts}}}
 * Creare il file di chat per il dial con nome {{{/etc/ppp/chatscripts/dialup}}}. Notare il "&D0" per dire al modem di ignorare il DTR, che tanto non abbiamo.
{{{
# Uncomment the following line to see the connect speed.
# It will be logged to stderr or to the file specified with the -r chat option.
#REPORT CONNECT

ABORT BUSY
ABORT VOICE
ABORT "NO CARRIER"
ABORT "NO DIALTONE"
ABORT "NO DIAL TONE"
"" ATZ
OK AT&D0D\T
CONNECT ""
}}}
 * Creare il file per l'hangup (che come detto all'inizio, puo` non funzionare e dover essere modificato o commentato via dalla configurazione del PPP) con il nome {{{/etc/ppp/chatscripts/disconnect}}}
{{{
TIMEOUT 6
ABORT "NO CARRIER"
'' \d\d\d\d\c
'' +++\c
'OK' 'ATH'
}}}

 * Lanciare il ppp per prova con "pppd dial <nome dello script in /etc/ppp/peers>" e vedere se si connette.

==== Configurazioni varie accessorie ====
 * Impostare i DNS del provider in nvram
 * Modificare {{{/etc/init.d/S40network}}} per NON configurare l'interfaccia WAN, visto che questa non ci sara` di nessun aiuto. Anzi, tende a fare casino.
 * Inserire in {{{/etc/init.d}}} uno script se si vuole lanciare il ppp al boot.
 

Configurazione di un modem seriale sul WRT54GS

Usare un modem seriale sul WRT e` possibile, ma e` un bel casino perche` mancano le linee di controllo dalle seriali (DCD, CTS, RTS, DTR, DSR). Questo provoca alcuni problemi anche gravi, se volete provare e poi vi trovate una bolletta di trenta milioni, non date la colpa a me. La mancanza del DCD richiede che il modem risponda "CONNECT" al momento della connessione, e se per caso cade la linea per colpa del modem, il pppd non se ne rendera` conto, e sara` convinto di essere ancora collegato. Al contrario, la mancanza del DTR impedisce al pppd di usare questa linea di controllo per dire al modem di riattaccare, quindi il ppp potrebbe essere convinto di avere riattaccato mentre il modem resta connesso all'infinito. Per cercare di ovviare al problema si puo` usare uno script di disconnessione che esegua la sequenza +++ATH, la quale pero` non e` accettata da tutti i modem allo stesso modo. Il mio TA ISDN, per esempio, quando e` in modo "PPP" ignora QUALSIASI carattere, quindi non riesco a farlo tornare al modo comandi con "+++". Spesso quando il link PPP termina, e` il remoto che riattacca, il che fa riattaccare istantaneamente anche il modem locale, ma questa non e` una certezza molto solida sulla quale appoggiarsi per salvare la propria bolletta.

Allo stato attuale delle cose (White Russian RC2) inoltre il pppd non e` compilato con il supporto per libpcap e i filtri, quindi di fatto il dial on demand non e` utilizzabile, perche` il rumore di fondo di internet terrebbe la linea sempre connessa.

Pacchetti necessari

  • setserial
  • microcom (comodo ma non fondamentale)
  • chat (permette al ppp di dialogare con il modem)
  • pppstats (facoltativo)

Configurazione della seriale 1

Dal momento che tts/0 e` usata dalla console, noi userermo tts/1. Prima di tutto occorre usare setserial per assegnare un IRQ a tts/1, infatti di default questa ne e` priva. Inoltre, lo usiamo anche per dare la velocita` giusta alla seriale. Questa cosa va fatta al boot, per cui occorre inserire i comandi in /etc/init.d/Squalcosa. Abbiamo nel pacchetto di Setserial il comodo file /etc/init.d/S15serial, che va modificato per impostare velocita` e quant'altro. RTFM di seterial per i parametri.

/usr/sbin/setserial /dev/tts/1 irq 3 spd_hi

Configurazione dei moduli

Per usare il ppp, occorre caricare alcuni moduli. Modificare il file /etc/modules inserendo queste righe:

slhc
ppp_genric
ppp_deflate
ppp_async

Configurazione del kernel

Se si vuole usare il dial on demand, e si ha ip dinamico (come e` solitamente) occorre abilitare nel kernel la funzionalita` apposita, cosi`:

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

Oppure, piu` pulito, modificando /etc/sysctl.conf, aggiungendo una riga cosi`:

net.ipv4.ip_dynaddr=1

Configurazione del PPP

Per configurare il PPP, ho adottato una logica minimalista, mettendo tutti i dati necessari in un file unico, sotto /etc/ppp/peers, che verra` poi richiamato dal comando ppp dial <nomefile>.

  • Rimuovere o rinominare il file /etc/ppp/options

  • Creare un file /etc/ppp/peers/<nome del tuo provider>, con questo contenuto:

# username (in chap-secrets)
name kurgan
# server name (in chap-secrets)
remotename casa
# scripts per la connessione e la disconnessione
connect "/usr/sbin/chat -v -f /etc/ppp/chatscripts/dialup -T 19"
disconnect "/usr/sbin/chat -v -f /etc/ppp/chatscripts/disconnect"
# seriale
tts/1
# velocita`
115200
# non ho le linee di controllo
local
nocrtscts
nocdtrcts
# sono il default GW
defaultroute
replacedefaultroute
# debug, per loggare di piu`
debug
# se voglio il dial on demand, con relativo timeout di disconnessione
demand
idle 20
# il remoto non deve autenticarsi su di me, ma viceversa
noauth
# se il remoto non capisce la compressione, la disabilito in vario modo
noaccomp
nopcomp
nobsdcomp
nodeflate
noccp
  • Creare la directory /etc/ppp/chatscripts

  • Creare il file di chat per il dial con nome /etc/ppp/chatscripts/dialup. Notare il "&D0" per dire al modem di ignorare il DTR, che tanto non abbiamo.

# Uncomment the following line to see the connect speed.
# It will be logged to stderr or to the file specified with the -r chat option.
#REPORT         CONNECT

ABORT           BUSY
ABORT           VOICE
ABORT           "NO CARRIER"
ABORT           "NO DIALTONE"
ABORT           "NO DIAL TONE"
""              ATZ
OK              AT&D0D\T
CONNECT         ""
  • Creare il file per l'hangup (che come detto all'inizio, puo` non funzionare e dover essere modificato o commentato via dalla configurazione del PPP) con il nome /etc/ppp/chatscripts/disconnect

TIMEOUT 6
ABORT "NO CARRIER"
'' \d\d\d\d\c
'' +++\c
'OK' 'ATH'
  • Lanciare il ppp per prova con "pppd dial <nome dello script in /etc/ppp/peers>" e vedere se si connette.

Configurazioni varie accessorie

  • Impostare i DNS del provider in nvram
  • Modificare /etc/init.d/S40network per NON configurare l'interfaccia WAN, visto che questa non ci sara` di nessun aiuto. Anzi, tende a fare casino.

  • Inserire in /etc/init.d uno script se si vuole lanciare il ppp al boot.

OpenWrt/WhiteRussian/ModemSeriale (last edited 2009-04-12 17:33:24 by localhost)