|
|
Graphics
By Gimp |
|
||||||
Home |
Software | Gchemist' s |
Gtklin |
Farmacia |
Porting |
Links |
Howto |
Creare una connessione ppp
con RedHat Linux ( Old document 09/1997 ) |
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. I l 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. |