PCSpeaker Copertina Filtri

Articoli


RedHat e il PPP

Linux RedHat 4.0
Kernel 2.0.18
netcfg 2.12

Il collegamento alla rete è in genere desiderio elettivo degli utenti di questo S.O.,ho ritenuto utile dunque scrivere ancuni appunti che riguardano una delle distribuzioni piu valide di Linux.

L' intenzione è quella di descrivere le varie fasi della configurazione in parte automatizzata dal programma " netcfg " , mostrando parallelamente come e dove questa si rifletta nei files di sistema.

Nel corso di questa descrizione , accennerò inoltre al significato delle opzioni più frequentemente impiegate per pppd affinchè il neofita possa avvicinarsi in maniera un po più consapevole al setup sperando per questo di non risultare dispersivo.

Sebbene la configurazione sia resa abbastanza semplice dal programma " netcfg " ( che può essere lanciato in X da " Pannello di Controllo =-> Network Configuration " o semplicemente da una finestra " xterm " ) spesso la conoscenza dei files interessati non è altrettanto immediata.

Evitando di approfondire la prima parte della configurazione, poichè comune a molte distribuzioni , diremo semplicemente che all' avvio " netcfg " visualizza i dati corrispontenti al bottone "Names".

Quì inseriremo su "Hostname:" il nome del notro sistema, su Domain il dominio del nostro provider ( Es: oasi.net ) e su " Nameservers: " il DNS (Es. 151.99.215.130).

Questi dati aggiorneranno:

    /etc/HOSTNAME,
    /etc/resolv.conf
    /etc/sysconfig/network

Cliccando sul bottone " HOSTS " e poi su " Add ", abbiamo la possibilità di inserire l' IP del provider ed il suo dominio, dati che aggiorneranno " /etc/hosts ".

Sin qui dunque tutto è abbastanza standard, ciò che invece caratterizza questa ditribuzione è un insieme di files raggruppati in:

          /etc/sysconfig/network-scripts
e che possono essere customizzati attraverso la pressione sul bottone " interfacies ".

Dal sottomenu " Add " possiamo scegliere il tipo di interfaccia, PPP, SLIP PLIP, Ethernet, Etc...

Occupiamoci di PPP , anche quì abbiamo un sottomenu sul quale inserire Numero Di Telefono, nostra login e nostra password.

Questa fase può essere un po delicata e vediamo perchè:

I dati introdotti vanno in :

     /etc/sysconfig/network-scripts/chat-ppp0

Esempio:

'ABORT' 'BUSY'
'ABORT' 'ERROR'
'ABORT' 'NO CARRIER'
'ABORT' 'NO DIALTONE'
'ABORT' 'Invalid Login'
'ABORT' 'Login incorrect'
'' 'ATZ'
'OK' 'ATDP403175'
'CONNECT' ''
'' ''

Nel caso di una connessione ad NT Server usando il PAP, login e password come vedremo vanno in /etc/ppp/secrets , tuttavia se editate manualmente chat-ppp0 non cancellate quei due doppi apici sotto CONNECT (a meno che non abbiate appurato che realmente diano fastidio alla vostra connessione) perchè "netcfg" non riuscirà più a editare la configurazione per future variazioni.

Nel caso indicato , lo script non richiede appunto ID e Password ma per per evitare di cancellare gli apicetti inseriteli lo stesso cliccate prima su "Custom" e poi "Communication" per passare alla fase successiva che consentirà fra l' altro di rimuovere questi ultimi due dati conservando appunto gli apici e di settare la stringa di inizializzazione del modem.

Nel caso invece di una connessione che richieda una chat con ID e Password dovete aggiungere in "Append" il prompt del server a cui vi collegate nel la sezione "Expect" e la stringa "ppp" in quella "Send".

La Domanda che può sorgere spontanea a questo punto è , come faccio a conoscere il prompt del provider ? , niente di più semplice, usate Seyon e quando appare la finestra di terminale date un ATDT[NumeroTel], così basta prendere nota di ciò che avviene dopo la connessione.

Il file chat-ppp0 potrebbe dunque diventare:

'ABORT' 'BUSY'
'ABORT' 'ERROR'
'ABORT' 'NO CARRIER'
'ABORT' 'NO DIALTONE'
'ABORT' 'Invalid Login'
'ABORT' 'Login incorrect'
'' 'ATZ'
'OK' 'ATDP403175'
'CONNECT' ''
'ername:' 'vostra_login'
'assword:' 'vostra_password'
'R-AGRIGENTO.PANDORA.IT>' 'ppp'

L' ultima fase, ma non per questo meno delicata , riguarda la scelta delle opzioni da passare al pppd.

Portandoci a " Network " dalla mascherina precedente possiamo dare in ordi ne le seguenti risposte:

 ------------------------------------------------------------
 [ ] Activate interface at boot time
 [X] Set default route when making connection ( defaultroute )
 [X] Restart PPP when connection fails
 ____________________________________________________________
 
 MRU ( 296-1500 ) : 1500
 ------------------------------------------------------------
 Infrequently-used options:
 -------------------------
 Local IP address  : 0.0.0.0
 Remote IP address : xxx.xxx.xxx.xxx  # IP che vi è stato assegnato.
 _____________________________________________________________

Queste informazioni finiscono in /etc/sysconfig/network-scripts/ifcfg-ppp0 ma vediamole in dettaglio:

 [ ] Activate ....      : Se la risposta è Si, il NR.Tel verrà composto au
                          tomaticamente all'avvio.

 [X] Defaultroute       : Un calcolatore che non fa parte della nostra  rete
                          è detto " gateway ",  defaultroute  specifica che
                          a collegamento avvenuto il computer chiamato sarà
                          il nostro gateway, ovvero una macchina che  si tro
                          va su due reti e le fa dialogare.

 [X] Restart ....       : Se la chiamata fallisce ci riprova

 MRU ( Maximum Receive Unit ) : il default è 1500.

Le ultime due domande sono opzionali perchè PPP può ricavare da solo solo questi dati ma ...... " abundat non viziat ".

ecco un esempio di ifcfg-ppp0:

  
PHONENUM=403175
PERSIST=yes
DEFROUTE=yes
ONBOOT=no
DIALCMD=ATDP
INITSTRING=ATZ
MODEMPORT=/dev/modem
LINESPEED=115200
ESCAPECHARS=yes
DEFABORT=yes
HARDFLOWCTL=yes
DEVICE=ppp0
REMIP=151.99.215.130
IPADDR=0.0.0.0
BOOTP=no
MRU=1500

altre opzioni sono settate in " ifup-ppp " , vengono ascritte alla variabi le " opts " ed assieme alle precedenti vengono utilizzate per lanciare pppd dallo stesso file.

Facciamone un breve riassunto :


opts="lock"                      
opts="$opts modem crtscts"       # Vero se    HARDFLOWCTL=yes
opts="$opts asyncmap 00000000"   # Vero se    ESCAPECHARS=yes
opts="$opts mru ${MRU}"          # Vero se    Il valore è definito.
opts="$opts ${IPADDR}:${REMIP}"  # Vero se    Il valore è definito.

 lock     : Blocca  /dev/modem quando in uso

 modem    : Specifica che la connessione avviene attrverso il modem causando
            l' " hangup " a fine collegamento cioè pppd manderà un segnale
            pari all' abbassamento della cornetta.

 crtscts  : Definisce il tipo di controllo sui dati che passano attraverso la
            seriale

Ecco come ifup-ppp lancia il pppd:

     /usr/sbin/pppd -detach $opts $MODEMPORT $LINESPEED \
     connect  "/usr/sbin/chat -f /etc/sysconfig/network-scripts/chat-$DEVICE"

Per avere più informazioni circa la connessione aggiungete le opzioni " debug e kdebug 1 " al pppd e " -v " alla chat :

     /usr/sbin/pppd -detach debug kdebug 1 $opts $MODEMPORT $LINESPEED \
     connect "/usr/sbin/chat -v -f /etc/sysconfig/network-scripts/chat-$DEVICE"

Altre Opzioni:

 -detach     : Evita che il pppd vada in background disconnettendosi dal ter
               minale che lo ha lanciato.

 connect     : Specifica che l'argomento seguente, verrà imiegato per esegui
               re la telefonata, l'argomento è chat.
               chat a sua volta, usa l' opzione " -v "  per evidenziare il ri
               sultato della chiamata e  " -f " per prendere l'input dal file
               specificato.

 netmask     : E' un insieme di bit , aventi una forma analoga all' IP ( Quat
               tro gruppi di cifre separate da un punto ) e  che quando vengo
               gono sovrapposti ad un indirizzo della propria rete consentono
               di stabilire su quale sottorete si trova.
               Io non sono un esperto di reti, tuttavia un valore di 255.255.
               255.0 dovrebbe stare a significare che non voglio porre alcuna
               limitazione al numero di IP da considerare nella mia configura
               zione.

 noipdefault : Dice a pppd di non  aspettarsi sempre lo  stesso IP , cioè la
               connessione userà un IP dinamico.

 user        : Usa il nome dell' utente  dato come argomento per autenticarlo
               con il PAP.

Già a questo punto una parte del debug può essere letto in " /var/log/mes sages ", tuttavia per avere informazioni ancora più dettagliate circa le va rie fasi della connessione , converrà editare " /etc/syslog.conf " aprendo questa linea:

     daemon.* 					/var/log/log.conn

Ricordatevi di creare il file in oggetto poichè in caso contrario non verra scritto:

Esempio:

     >/var/log/log.conf

A questo punto bisognerà killare syslogd e rilanciarlo oppure , riavviare il sistema.

NT supporta diversi sistemi di autenticazione ma il PAP è uno di quelli piu frequentemente impiegati, le opzioni definite in precedenza non dovrebbero es sere sufficienti a realizzare la connessione tuttavia quando altre ne aggiun geremo in " /etc/ppp/options " terremo conto di quelle già stabilite.

Ecco un esempio di "/etc/ppp/options" :

     netmask 255.255.255.0
     noipdefault
     user [miouser]

L' atto conclusivo della configurazione usando PAP ( password Authentica tion Protocol ) è la compilazione di /etc/ppp/pap-secrets:

# Secrets for authentication using PAP
# client	server	secret			IP addresses
miouser    	*	miapassword

tra un campo e l'altro usate "Tab".

Per avviare la connessione, lanciate "netcfg" andate su " Interfaces " selezio nate " ppp0 " e poi il tasto " Activate ", se tutto va bene sarete in rete in pochi attimi.

Rintracciare Gli Errori:

Spesso si pensa al PPP come un protocollo univoco ma in realtà esso è un " Contenitore di protocolli " il più comune dei quali è l'IP.

In una stretta schematizzazione della connessione, assumeremo che

  
  LCP = Link Control Protocol
        Si assicura che le due macchine parlino la stessa lingua ovvero  stabi
        lisce la dimensione dei pacchetti in transito, il formato di incapsula
        mento e le modalità di conn/disconnessione e di fine collegamento.

  IPCP = Internet Protocol Control Protocol.
         Su PPP è anche detto IP (Internet Protocol ) è utilizzato per  tras
         mettere dati su linea telefonica commutata.

  CCP  = Compression Control Protocol.


						Ok--[ IPCP ]----+
                  Ok -->[ LCP ]------|		|
modem --> modem ->|				NO	     [ CCP ]
  ^               No <-------[ LCP ]<-----------'		|
  |		  |		|				|
  `---------------'		+_______________________________'

L' approfondimento di tali concetti va oltre le finalità di questi ap punti ma la dinamica di connessione che impiega i protocolli di cui sopra può essere seguita nel file " /var/log/log.conn " appena creato , anche senza essere degli esperti.

Questo conterrà infatti dei messaggi il cui significato è inequivocabile. Vediamone alcuni:

Viene lanciato il pppd e realizzata la connessione:

bng pppd[430]: pppd 2.2.0 started by root, uid 0
bng pppd[430]: Serial connection established.
bng pppd[430]: Using interface ppp0
bng pppd[430]: Connect: ppp0 <--> /dev/modem

LCP Prepara tutta la fase di definizione della dimensione dei  pacchetti e 
    dell' autenticazione attraverso una serie di richieste ( sent )  e  di 
    risposte ( rcvd ).

bng pppd[430]: sent [LCP ConfReq id=0x1     ]
bng pppd[430]: rcvd [LCP ConfAck id=0x1     ]

Richiesta di Authenticazione PAP.

bng pppd[430]: sent [PAP AuthReq id=0x1 user="MIOUSER" password="MIAPASSWD"]
bng pppd[430]: rcvd [PAP AuthAck id=0x1msg=""]

DOPO il riconoscimento comincia lo scambio dei pacchetti IP e l' attivazione del "CCP".

bng pppd[430]: sent [IPCP ConfReq id=0x1  ]
bng pppd[430]: rcvd [CCP ConfReq id=0x2 < 12 06 00 00 00 01>]
bng pppd[430]: sent [CCP ConfReq id=0x1]
bng pppd[430]: sent [CCP ConfRej id=0x2 < 12 06 00 00 00 01>]
bng pppd[430]: rcvd [IPCP ConfReq id=0x3  ]

Sarebbe opportuno concludere con una casistica degli errori più frequenti ma sfortunatamente non ne sono in possesso, tuttavia ritengo che quanto espo sto possa aiutare ad isolare un errore nel caso in cui si verifichi.

Mi pare utile infine segnalare che le nuove libc e libxpm litigano con alcu ne versioni di Netscape che incontrando un applet java si volatilizzano las ciadoci sbigottiti.

Il problema può essere risolto scaricando il file " nets.tar.gz " che si trova in http://www.clare.com/ftp/Netscape_fix/ il quale contiene le vecchie librerie e la shell " nets " che lancierà Netscape javato.

di Paolo Bongiorno


PCSpeaker Copertina Filtri