Linux: specifiche della connessione
Dopo averlo riveduto e corretto alcuni punti,
mi appresto a rilasciare una nuova versione di questo
documento. Con l'occasione rinnovo l'invito a mandarmi
informazioni riguardati i vari provider di cui siete utenti o
comunque di cui conoscete l'esistenza per ingrandire la lista
un po' limitata dei provider supportati. Gradirei inoltre che
coloro che riescono a collegarsi con Linux, me lo faccia
sapere allegando alla propria email il risultato del syslog
(specialmente quelli di Video On Line) di modo da poter
risolvere i problemi di connessione paragonando tra loro i
syslog.
Provider Italiani HOWTO
* Versione : 1.1
* Rilasciata : 24/3/1996
INDICE
======
0. Introduzione
1. Il protocollo TCP/IP
1.1. Siti e indirizzi
1.2. Collegamenti seriali
1.3. Cosa serve per collegarsi
1.4. Configurazione generale del PPPD
1.5. Debug e Kdebug
1.6. IP statici e dinamici
1.7. I sistemi di autenticazione
2. Configurazione per i diversi provider
2.1. Video On Line
2.2. Italia On Line
2.3. Micronet
2.4. INET
2.5. Nettuno
2.6. Energy
3. Conclusione
4. Contributi
0. Introduzione
=================
Questo HOWTO si prefigge di aiutare gli utenti di Linux a
configurare il proprio sistema per connettersi ai provider
italiani spiegando esclusivamente quel minimo che serve del
protocollo TCP/IP, senza l'approfondimento di documenti quali
il Net-2-HOWTO o la Network Administration Guide a cui rimando
per chi fosse seriamente interessato all'argomento.
Il documento e' diviso in due parti.
* Una prima parte di introduzione al funzionamento del
protocollo TCP/IP nella quale si spiega come configurare
correttamente il proprio sistema.
* Una seconda parte nella quale si parla delle particolarita'
di ogni provider e delle ulteriori configurazioni che vanno
effettuate in funzione del provider.
Mentre la prima parte e' d'obbligo per tutti, della seconda
ognuno puo' leggersi unicamente il preambolo e il paragrafo
dedicato al proprio provider.
In futuro mi prefiggo di aggiungere una terza parte in cui
spiegare il funzionamento della posta e delle news e la
relativa configurazione in funzione del proprio provider. Per
chi non potesse farne a meno, Netscape 2.0 per Linux puo'
essere configurato alla stessa maniera di come e' configurato
per Win o MacOs, qualora i vostri provider vi forniscano
queste informazioni.
1. Il protocollo TCP/IP
=========================
1.1. Siti e indirizzi
---------------------
Tutti i siti Internet comunicano attraverso un protocollo
comune, il TCP/IP, che in realta', non e' un singolo
protocollo ma un insieme di protocolli. Per quel che ci
riguarda ci limiteremo ad analizzare i due protocolli
caratteristici del TCP/IP e cioe'... il TCP e l'IP. Ogni sito
e' identificato in modo univoco da una quaterna di numeri
(tipo 198.20.45.2) che vanno da 0 a 255 separati da un punto:
questo numero si chiama IP.
Quando, a collegamento tra PC e provider avvenuto, si contatta
un host tramite il suo nome alfabetico (tipo www.iol.it o
sunsite.unc.edu), nella realta' viene richiesto ad una
computer sulla rete (che si chiama nameserver) la traduzione
del nome alfabetico nel corrispettivo numerico e
automaticamente i pacchetti di dati vengono spedito verso il
sito destinatario identificato dal suo indirizzo in formato
numerico.
Attraverso un meccanismo che non stiamo qui a descrivere (perche'
non e' il luogo) i nodi di Internet instradano i pacchetti
attraverso la rete. Quello che interessa ora e' capire come un
computer da casa si collega alla rete tramite rete telefonica.
1.2. Collegamenti seriali
-------------------------
Esistono due tipi di protocolli che permettono a due siti TCP/IP
di collegarsi utilizzando un collegamento seriale tipo due
modem attraverso una linea telefonica, due modem attraverso
attraverso una linea ISDN o due computer collegati per mezzo
di un cavo dalle due porte seriali.
Questi protocolli si chiamano SLIP (Serial Link Internet
Protocol) e PPP (Point-to-Point Protocol). Storicamente il PPP
e' venuto dopo e si pone come un'evoluzione dello SLIP, in
quanto, oltre a fornire un collegamento come quello di SLIP,
comprime automaticamente i dati, puo' spedire pacchetti di
dati di protocolli diversi tra loro (TCP/IP di Unix e IPX/SPX
di Novell) oltre a molte altre feature di scarso interesse a
questo punto del documento.
Il kernel di Linux li supporta tutti e due ed esistono
svariati programmi che configurano Linux per questi due
collegamenti : i piu' conosciuti sono PPPD e DIP.
1.3. Cosa serve per collegarsi
------------------------------
Per collegarsi e' necessario aver compilato il kernel avendo
risposto si ai seguenti punti :
* Supporto della rete TCP/IP
* Protocollo SLIP
* Protocollo PPP
I protocolli SLIP o PPP possono essere anche compilati come
moduli e caricati solamente quando sono necessari. A riguardo,
ricordatevi che i moduli generati non sono solo ppp.o e slip.o,
ma sopratutto slhc.o che va caricato prima delgi altri due
moduli e scaricato dopo ! Oltre cio', servono i programmi di
connessione. I piu' conosciuti sono PPPD per il protocollo PPP
e DIP per il protocollo SLIP.
Questo documento, per ora, tratta solo la connessione PPP.
1.4. Configurazione generale del PPPD
-------------------------------------
Il PPPD e' un programma molto particolare. E' un demone,
ovvero uno di quei programmi che, una volta lanciati, si
mettono in "background" (per utilizzare una
terminologia Win) e funzionano senza che l'utente se ne
accorga. Il PPPD gestisce il traffico di pacchetti TCP/IP,
praticamente assolve il ruolo del Distinct o del Trumpet sotto
Windows. Le molteplici opzioni, che potete scorrere nel man di
PPPD, possono essere passata attraverso sia la linea di
comando sia raccolte in nel file /etc/ppp/options.
Le opzioni spiegate in questa prima parte, dato che riguardano
unicamente dalla configurazione di Linux e dall'hardware del
computer, sono da considerarsi universali a prescindere da
qualunque provider e conviene quindi raccoglierle nel file /etc/ppp/options.
Le opzioni spiegate nella seconda parte dipendono strettamente
dal provider a cui ci si collega e conviene quindi
raccoglierle come parametri di comando per il PPPD in uno
script apposito cosi' da lasciare la liberta' di poter
accedere a provider diversi. (Per chi non sapesse cos'e' uno
script : e' un piccolo programma scritto con i comandi della
shell. Praticamente un file .BAT per chi conoscesse solo DOS)
Il parametro fondamentale da inserire nel file /etc/ppp/option
e':
connect /etc/ppp/chat-script
Questo parametro dice a PPPD che vogliamo chiamare un punto
della rete Internet il quale a sua volta sta aspettando che
qualcuno si colleghi, ma che il collegamento PPP sara'
disponibile solo dopo aver compiuto una serie di operazioni
contenute nello script /etc/ppp/chat-script. Nella seconda
parte troverete questo script per ogni provider commentato
dettagliatamente. L'opposto di connect e' passive, ovvero si
dice PPPD di attendere che qualcuno chiami per effettuare una
connessione PPP con una certa porta seriale.
Ma come si fa a dire a PPPD che porta seriale deve utilizzare
? Questo e' il secondo parametro : la porta di comunicazione.
La scelta e' da farsi tra i device utilizzabili:
/dev/cua0 per la COM1:
/dev/cua1 per la COM2:
/dev/cua2 per la COM3: e via dicendo
oppure, se avere gia' spiegato a Linux a quale porta e'
collegato il vostro modem (per esempio tramite il setup della
Slackware) :
/dev/modem
Inoltre bisogna dire a che velocita' volete comunicare con la
seriale a cui e' collegato il modem, generalmente un numero
superiore alla velocita' di collegamento qualora abbiate un
modem che supporta la compressione, esempio :
115200
Non tutte le velocita' sono pero' lecite se si usa il PPPD
2.1.1 che e' la migliore se si utilizza un kernel della seria
1.2.x. In questo caso, infatti, la porta puo' funzionare al
massimo a 38400 baud. Come andare piu' forte quindi? Semplice
(o quasi). Basta dire al kernel di lavorare a velocita'
maggiori ogni qual volta si presenta 38400.
Per far cio' si usa il comando setserial (e' bene metterlo in
rc.local) con la seguente sintassi : setserial /dev/cua1
spd_vhi
Il parametro spd_vhi indica al kernel di lavorare a 115200
baud anche se l'applicazione richiede 38400 baud. Dato pero'
che ci sono programmi che comunicano con la seriale senza
impostarne la velocita' e' bene farlo sempre nell'rc.local con
il comando : stty 38400 < /dev/cua1
Dato che nella maggior parte delle volte non si utilizza un
collegamento seriale diretto, e' ottima cosa dire al PPPD che
state utilizzando un modem attraverso due opzioni :
modem
crtscts
Il tipo di pacchetti che deve passare attraverso il
collegamento seriale e regolato dal netmasking il cui valore
per questo tipo di collegamenti e':
netmask 255.255.255.0
Qualora notiate negli script di collegamento dei programmi per
Win valori di netmask diversi, sostituiteli e fatemi sapere.
Il PPPD 2.2.0 dovrebbe dedurre da solo il valore del netmask
dal tipo di IP che viene assegnato senza che l'utente indichi
alcunche'.
L'ultimo parametro globale e' :
defaultroute
il quale dice a Linux che il collegamento che state
effettuando e' quello per il resto del mondo : Internet.
1.5. Debug e Kdebug
-------------------
Per analizzare le fasi cruciali del collegamento, qualora
qualcosa non funzionasse, il PPPD mette a disposizione due
opzioni, debug e kdebug, che mostrano all'utente la fase di
negoziazione precedente al collegamento definitivo. Tramite
l'analisi di queste informazioni, per la verita' un po'
criptiche, si puo' capire se il collegamento non e' andato a
buon fine per un paramtro sbagliato o per una password
scorretta. Per poter vedere il risultato di queste opzioni non
viene direttamente a video, ma deve passare attraverso il
SYSLOGD. Il SYSLOGD e' un demone, come il PPPD (lo si deduce
dall'ultima lettera, una D), che si occupa di registrare tutti
i messaggi che il kernel scambia con le varie applicazioni. Il
settaggio di questo demone risiede in /etc/syslog.conf.
Per PPPD 2.1.2 bisogna aggiungere a questo file la seguente
linea : local2.* /dev/console
Per PPPD 2.2.0 invece la seguente :
daemon.* /dev/console
Mi raccomando due cose :
! tra * e /dev non ci vogliono spazi ma TAB
! per accettare nuove opzioni il syslog va killato e fatto
ripartire
con una procedura strana, a me sembra che convenga fare reboot
quando lo si modifica. Per chi volesse piu' informazioni su
questo potentissimo strumento di Linux puo' leggersi il man
ssyslog.conf o /usr/doc/sysklogd/README.linux.
In questo modo le informazioni sulla connessione vengono a
video. Si volesse salvare il contenuto per vederlo
successivamente e capire, basta sostituire /dev/console con il
path di un file dove si vuole finisca il contenuto. Potrebbe
essere il file che mi mandate assieme alla fatidica domanda :
perche' diavolo non riesco a collegarmi ?
L'opzione debug da solo informazioni generali, mentre kdebug
tira in ballo anche le comunicazioni con il kernel e ammette
una sub-opzione che dipende dalla versione del PPPD che
specifica quanto approfondite si vogliono le informazioni. Io
consiglio
debug
kdebug 1
1.6. IP statici e dinamici
--------------------------
Ad ogni provider, oltre al proprio, vengono assegnati un
numero finito di IP da assegnare a coloro che si collegano.
Generalmente la quantita' di IP dipende dai modem disponibili
al collegamento e quindi a quanti utenti si possono collegare
contemporaneamente di modo tale da assegnare ad ogni utente
che si collega un IP a caso tra quelli a disposizione non
ancora utilizzati. Prima di effettuare il collegamento SLIP,
l'utente deve essere a conoscenza dell'IP che gli e' stato
assegnato. Con il PPP no. Infatti il collegamento PPP, durante
la fase di negoziazione, puo' dedurre da solo quale IP sia
stato assegnato al computer che sta chiamando attraverso
l'opzione :
noipdefault
Qualora il vostro IP sia sempre quello si omettera'
noipdefault e si inseriranno i due IP separati da due punti
(:), ovvero il proprio IP e quello del provider al quale ci si
collega :
:
Questa opzione, pero', e' del tutto ridondante in quanto Linux
e' in grado da solo di dedurre queste informazioni se avete
compilato correttamente /etc/hosts ed /etc/resolv.conf come
spiegato piu' avanti.
1.7. I sistemi di autenticazione
--------------------------------
Il protocollo PPP supporta due diversi tipi di autenticazione,
ovvero di sistemi attraverso cui il provider verifica chi e'
dall'altra parte della linea : il PAP (Password Authentication
Protocol) ed il CHAP (Cryptographic Handshake Authentication
Protocol). Le differenze non sono sostanziali, a parte che il
CHAP e' piu' sicuro perche' cripta tutte le password che
scambia, mentre il piu' utilizzato sembra essere il PAP.
In funzione del metodo di autenticazione che utilizza il
provider, dovrete compilare opportunamente i file /etc/ppp/pap-secrets
o /etc/ppp/chap-secrets, due file che ammettono lo stesso
formato:
client server secret IP-address
L'ultimo parametro e' inutile per chi chiama. Gli altri tre
corrispondono, nell'ordine a :
login nome-del-server-che-risponde password
Nel secondo campo consiglio sempre di lasciare un *, dato che
non sempre, con i centralini a ricerca automatica, risponde
sempre lo stesso server.
Gli altri due campi dipendono dal provider, ma non sempre sono
la login e la password assegnati.
2. Configurazione per i diversi provider
==========================================
La configurazione in funzione dei vari provider passa
attraverso l'aggiornamento di due file e la creazione di uno
script di collegamento. Il primo dei due file da aggiornare e'
/etc/hosts dove vanno aggiunti il proprio IP assegnato qualora
fossimo sicuri che sia sempre quello (tipo Inet) oltre all'IP
numerico del proprio provider seguito dall'indirizzo
alfabetico.
Il secondo file da aggiornare e' /etc/resolv.conf che da
istruzioni a Linux circa la traduzione degli indirizzi
alfabetici in indirizzi numerici. Infatti oltre al campo che
contiene il dominio di appartenenza del proprio computer (ad
esempio : domain vol.it) va inserito anche l'indirizzo
numerico del nameserver a cui chiedere la conversione (ad
esempio : nameserver 198.23.21.1). Spesso l'indirizzo del
nameserver coincide con quello del provider inserito nel file
/etc/hosts. Qualora si utilizzi un provider non incluso in
questo documento, tentate di indicare il nameserver con la
tecnica indicata sopra.
Lo script da creare e' il sopracitato /etc/ppp/chat-script che
istruisce un piccolo programmino (chat) tramite una semplice
sintassi "aspetta-la-sequenza-di-caratteri" "manda-la-sequenza-di-caratteri"
a comporre il numero di telefono e compilare automaticamente
quelle richieste che talvolta precedono l'accesso al servizio
PPP o SLIP. Ricordatevi che /etc/ppp/chat-script e' un file
che va eseguito e quindi deve avere l'autorizzazione ad essere
eseguito. Per essere sicuri, digitate chmod 777 /etc/ppp/chat-script
dopo che lo avete creato.
2.1. Video On Line
------------------
Nel file /etc/hosts va inserito il seguente campo
194.20.32.1 vol.it
Nel file /etc/resolv.conf vanno inseriti i seguenti campi
domain vol.it
nameserver 194.20.32.1
Video On Line supporta l'IP dinamico e tutti i modem sono in
attesa per essere collegati direttamente al servizio PPP con
autenticazione PAP con la propria login come campo client e la
propria password come secret. Quindi nel file /etc/ppp/pap-secrets
dovrete inserire il seguente campo :
*
Lo script di connessione /etc/ppp/pap-secrets e' il seguente :
#! /bin/sh
chat -v -t60 "" "ATDP-numero-di-telefono"
"CONNECT"
2.2. Italia On Line
-------------------
Italia On Line NON SUPPORTA VOLONTARIAMENTE Linux. Infatti ha
scelto
di utilizzare le stesse chiavi di autenticazione PAP per TUTTI
gli utenti in quanto la dirigenza non si e' fidata a
consegnare nelle mani di Windows NT (il software che
utilizzano tutt'ora e che e' causa di gran parte dei problemi)
un database PAP di 30.000 utenti. Cosi' fino a poco tempo fa
tutto funzionava semplicemente inserendo nel file /etc/ppp/pap-secret
:
marco * marco
Stessa login e password per tutti (Marco e' il nome del
programmatore del client di IOL), mentre ora il controllo e'
affidato al server al quale si e' connessi il quale controlla
che sui sistemi connessi giri il client di IOL e verifica i
dati che sono stati inseriti nel client al momento della
connessione. Qualora il client non stia girando, dopo 5 minuti
la linea viene buttata giu'.
Cosi' per Linux non c'e' niente da fare, o meglio ci sarebbe
una soluzione in quanto esite un programmino commissionato da
Italia On Line che gira sotto tutti gli Unix e che emula la
presenza del client di IOL, ma che non e' stato ancora
distribuito malgrado sia pronto da prima dello SMAU '95.
Se volete che Italia On Line SUPPORTI LINUX, mandate un email
al signor Patrizio Colombo ptrz.clmb@iol.it, responsabile di
IOL per l'hot line. Lui è a conoscenza dell'esistenza del
software Linux, e, caldamente invitato delle nostre email,
potrebbe aiutarci a far attivare anche il supporto per Linux.
Sia ben chiaro, NON E' LUI IL RESPONSABILE DELL'OSTRACISMO DI
IOL VERSO LINUX, anzi, ma essendo IOL un provider su larga
scala, non può permettersi di lanciare il sasso e ritirare la
mano, ma, qualora intenda supportare Linux, deve farlo in modo
completo, organizzando software, help on line, etc. etc.,
ovvero muovere un organizzazione giustificabile solo da
determinati numeri di utenti.
Nel frattempo spiego i settaggi qualora qualcuno volesse anche
solo tentare la connessione per pochi minuti.
Nel file /etc/hosts va inserito il seguente campo
194.20.24.1 iol.it
Nel file /etc/resolv.conf vanno inseriti i seguenti campi
domain iol.it
nameserver 194.20.24.2
Lo script di connessione /etc/ppp/pap-secrets e' il seguente :
#! /bin/sh
chat -v -t60 "" "ATDP-numero-di-telefono"
"CONNECT"
2.3. Micronet
-------------
Micronet non supporta nessun sistema di autenticazione in
quanto prima di accedere alla connessione PPP bisogna aver
inserito login e password.
Nel file /etc/hosts va inserito il seguente campo
194.20.45.1 micronet.it
Nel file /etc/resolv.conf vanno inseriti i seguenti campi
domain micronet.it
nameserver 194.20.45.1
Lo script di connessione /etc/ppp/pap-secrets e' il seguente :
#! /bin/sh
chat -v -t60 "" "ATDP-numero-di-telefono"
"CONNECT" "" "rname:"
"proprio-user-name" "sword:" "propria-password"
"net.it>" "ppp"
Attenzione !
A collegamento avvenuto, qualora abbiate attive le opzioni di
debug, noterete che sistematicamente appaiono due informazioni
riguardanti l'LCP. Noterete che sono una 'recv REQ', una
richiesta da parte del server, seguita da una 'send REP'. Non
ho ancora capito se e' a causa di qualche settaggio che va
aggiunto o se e' una procedura normale. Ho comunque verificato
di persona che il collegamento non presenta nessun problema,
anche per ore di seguito.
2.4. Inet
---------
Inet assegna un IP ad ogni utente, quindi non bisogna mettere
l'opzione noipdefault nel file /etc/ppp/options. Non supporta
sistemi di autenticazione in quanto prima di accedere alla
connessione PPP si deve passare attraverso due login.
Nel file /etc/hosts vanno inseriti i seguenti campi
194.20.8.4 inet.it
.inet.it
Nel file /etc/resolv.conf vanno inseriti i seguenti campi
domain inet.it
nameserver 194.20.8.4
Lo script di connessione /etc/ppp/pap-secrets e' il seguente :
#! /bin/sh
chat -v -t60 "" "ATDP-numero-di-telefono"
"CONNECT" "" "rname:" "proprio-user-name"
"sword:" "prima-password"
"net.it>" "ppp" "tname:"
"proprio-user-name" "sword" "seconda-password"
"system"
2.5. Nettuno
------------
Nettuno assegna un IP ad ogni utente, quindi non bisogna
mettere l'opzione noipdefault nel file /etc/ppp/options. Non
supporta sistemi di autenticazione in quanto prima di accedere
alla connessione PPP si deve passare attraverso un login.
Nel file /etc/hosts vanno inseriti i seguenti campi
.mo.nettuno.it
Nel file /etc/resolv.conf vanno inseriti i seguenti campi
domain mo.nettuno.it
nameserver 193.43.2.1
nameserver 130.186.1.53
Lo script di connessione /etc/ppp/pap-secrets e' il seguente :
#! /bin/sh
chat -v -t60 "" "ATDP-numero-di-telefono"
"CONNECT" "" "rname:" "proprio-user-name"
"ssword" "propria-password"
">" "ppp" "ostname" "proprio-IP"
"word" "password-per-ppp"
2.6. Energy
-----------
Nel file /etc/resolv.conf vanno inseriti i seguenti campi
domain energy.it
nameserver 194.20.155.1
Lo script di connessione /etc/ppp/pap-secrets e' il seguente :
#! /bin/sh
chat -v -t60 "" "ATDP-numero-di-telefono"
"CONNECT" 3. Contributi
=============
Si ringrazia per la preziosa collaborazione :
* Riccardo Castello rcastel@micronet.it
* Paolo Dell'Aquila pdella@iol.it
* Marco 'Markino' Sacchi markino@energy.it
4. Conclusione
==============
Chiunque mi possa dare un mano, il mio indirizzo e' :
flash.egon@iol.it.
Aspetto informazioni sugli altri provider italiani per
aggiornare il documento, dati di ogni genere come script di
connessione per il Trumpet o per il Distinct assieme al file
socket.ini che riporta l'indirizzo del nameserver (mi
raccomando il nameserver !).
Aspetto anche conferme che le istruzioni che ho dato sono
corrette.
Non ho provato fisicamente tutti i provider. Presumo di aver
scritto anche qualche imprecisione, spero che siate clementi
nel correggermi.
Attendo anche eventuali domande in seguito alle quali
migliorero' l'HOWTO nelle sue parti piu' oscure e grazie alle
quali scrivero' anche una FAQ da allegare a questo HOWTO.
Grazie in anticipo a tutti per la collaborazione !!!
Alberto Menegazzi
flash.egon@iol.it
,,,
(0^0)
________________________oOO__( )__OOo__
Linux, the choice of the GNU generation
_______________________________________