Leased_Line_mini_HOWTO
Rob Van der putten,
[email protected]
v1.2 , Mars 1998
Ce document traite de la configuration de modem et de pppd dans le cas
d'une liaison composee de deux paires torsadees .
11.. IInnttrroodduuccttiioonn
11..11..
CCee ddooccuummeenntt ......
Le terme "leased line" est ici traduit par "ligne specialisee". C'est
ce qui me semblait le plus aproprie. Cette traduction etant loin
d'etre parfaite , n'hesitez pas a m'envoyer vos remarques a :
[email protected] .
Ce document explique comment configurer votre modem et pppd pour
utiliser une liaison specialisee composee de deux paires torsadees .
Il ne traite ni de SLIP , ni de comment se procurer et/ou installer
pppd , ni de communication synchrone , ou de bandes courte distance.
11..22..
QQuu''eesstt ccee qquu''uunnee "" lleeaasseedd lliinnee ""??
Toute liaison de communication , permanente ,point a point , louee par
une compagnie de telecom ou une organisation similaire. La liaison
specialisee peut utiliser des cables , tel que des paires torsadees ,
et toute sorte de materiels , tels que bobines , transformateurs ,
amplificateurs , et regenerateurs.
11..33.. PPrreerreeqquuiiss
Vous devez deja avoir pppd tournant sur votre systeme , ainsi que
minicom ( ou un programme similaire ) pour configurer vos modems .
22..
lleess mmooddeemmss
Une liaison specialisee n'est pas connectee a un central telephonique
et ne fournit donc , ni alimentation CC , ni tonalite, ni signal
occupe, ni sonnerie . Cela signifie que vos modems sont livres a eux
meme , et doivent etre capables de gerer cette situation.
Vous devez avoir deux modems externes identiques , supportant aussi
bien une ligne specialisee que le "dumb mode" . Verifiez que vos
modems en sont capables et assurez vous qu'ils sont correctement
documentes.
Vous aurez aussi besoin de :
+o 2 cables RS232 blindes . Le blindage doit etre connecte a
l'enveloppe de la prise (pas a la broche 1) de chaque cote .
+o Une prise RS232 utile pour les tests.
+o 2 cordon RJ11 , un pour chaque extremite de la ligne specialisee.
+o comprendre les commandes 'AT' de base
22..11..
CCoonnffiigguurraattiioonn
Configurez les modems a leur plus grande vitesse possible : 57600 bps
pour un 14400 , et 115000 bps a partir d'un 28800 . Une fois le modem
configure en "dumb mode" , il utilisera la vitesse a laquelle il a ete
configure. Configurez le modem , et son logiciel (Minicom) pour
utiliser les parametres suivant.
+o taux de transfert fixe (en baud , pas d'auto baud)
+o Controle du flot materiel bidirectionnel RTS-CTS
+o 8 bits, sans parite , 1 bitstop
+o Le modem doit produire le VRAI DCD statuts
+o le modem NE DOIT PAS ignorer le DCD statuts(&D2 ou &D3)
Verifiez le avec AT &V ou AT &Ix (voir la documentation du modem)
Trouver comment mettre votre modem en "dumb mode" , et , plus
important , comment l'en sortir , car le modem ne peut etre
reconfigure que si il n'est pas en "dumb mode" .
Maintenant, configurez le comme suit :
+o reset sur le commutateur DTR (&D3 , c'est parfois un registre S)
+o "leased line mode"(&Lx , voir documentation)
+o le modem distant "auto answer"(S0 =1) , le modem local "originate"
(S0 = 0)
+o Desactiver les codes de resultat (Q1) , parfois le dumb le fait
pour vous .
+o Dumb mode (c'est parfois un jumper) Dans ce mode, les commandes AT
sont ignorees. Parfois , vous devrez desactiver le caractere esc
aussi.
Ecrivez la configuration dans la memoire volatile (&W).
22..22..
TTeesstt
Maintenant , connectez les modems a 2 ordinateurs en utilisant les
cables RS232 , et connectez les modems entre eux grace aux cordons
RJ11 . Utilisez un programme tel que minicom (Linux), procom ou Telix
(DOS) sur chacun des ordinateur pour tester les modems . Vous devez
etre capable de taper un texte d'un ordinateur vers l'autre et vice et
versa . Si vous avez des dechets a l'ecran, verifiez la vitesse du
port COM et les autres parametres . Maintenant deconnectez , et
reconnectez le cable RJ11 . Attendez que la connexion s ' etablisse
d'elle meme . Deconnectez et reconnectez les cables RS232 , allumez ,
eteignez les modems, arretez et relancer minicom. Les modems doivent
toujours se reconnecter a la vitesse la plus haute possible (certains
modems ayant une LED pour indiquer la vitesse). Verifier bien qu'ils
ignorent le caractere ESC (+++) . Il faudra le desactiver si
necessaire .
Si tout marche , vous voudrez peut etre reconfigurer vos modems ;
supprimer le son du modem distant (M0) , mettez celui du local au
volume le plus bas (L1).
Exemples :
Hi-Tech
Originate (local):
ATL1 &C1 &D3 &L2%D1 &W &W1
Answer (remote):
ATM0 &C1 &D3 &L2%D1S0=1 &W &W1
Tron DF
Le caractere ESC peut etre desactive en fixant S2 > 127;
Originate:
ATL1 &L1Q1 &C1 &D3S2=171\D1 &W
Answer:
ATM0 &L2Q1 &C1 &D3S0=1S2=171\D1 &W
22..33..
PPppppdd
Vous aurez besoin d'un pppd (point to point protocol deamon , un demon
qui gere le protocole point a point) , et d'une bonne connaissance de
son fonctionnement . Consulter le RFC le concernant , ou le Linux pppd
HOWTO <
http://www.freenix.org/linux/HOWTO/> si necessaire .
Puisque vous n'allez pas utiliser une procedure de login , vous
n'utiliserez pas (m)getty , et n'aurez pas besoin d'un utilisateur
associe au pppd qui controle la liaison . Vous n'allez pas dialoguer ,
vous n'aurez donc pas non plus besoin d'un script pour le chat . En
fait , le circuit et la configuration que vous venez juste de
construire , ressemble assez a un cable null modem .
Pour une connexion fiable , votre setup doit remplir les criteres
suivant :
+o Peut apres avoir booter votre systeme , pppd doit envoyer le signal
DTR sur le port RS232 , attendre que le DCD arrive , et negocier la
connexion .
+o Si le systeme distant est mort , pppd doit attendre jusqu'a ce
qu'il fonctionne a nouveau .
+o Si la connexion s'etablit et s'interrompt ensuite, pppd doit
reinitialiser le modem (en mettant DTR au niveau bas , puis haut)
puis essayer de se reconnecter .
+o Si la qualite de la connexion se deteriore trop , pppd doit
reinitialiser le modem , et re-etablir la connexion.
+o Si le processus controlant la connexion , ici pppd , meurt , un
watchdog doit le relancer.
33.. CCoonnffiigguurraattiioonn
33..11.. EExxeemmppllee
On suppose que le modem est connecte au port COM2 , l'adresse locale
est 'Loc_Ip' , et l'adresse Ip distante est 'Rem_Ip' . Nous voulons
utiliser 576 pour notre MTU . Le script /etc/ppp/options.ttyS1
devrait maintenant ressembler a :
crtscts
mru 576
mtu 576
passive
Loc_Ip:Rem_Ip
-chap
modem
-pap
persist
Donc , si le systeme local est 192.168.1.1 , et le systeme distant est
10.1.1.1, alors /etc/ppp/options.ttyS1 devrait etre sur le systeme
local :
crtscts
mru 576
mtu 576
passive
192.168.1.1:10.1.1.1
-chap
modem
-pap
persist
et sur le systeme distant ...
crtscts
mru 576
mtu 576
passive
10.1.1.1:192.168.1.1
-chap
modem
-pap
persist
Si vous utiliser beaucoup telnet pendant un transfert de fichier (par
FTP ou par Web ) ,vous pouvez avoir envie d'utiliser un plus petit MRU
et MTU , tel que 296 . Cela ameliorera le temps de reponse du systeme
distant.
Si cela vous importe peut , vous pouvez les mettre a la valeur 1500.
L'option "passive" limite le nombre de tentatives de (re)connexion.
l'option "persist" maintiendra pppd en cas de deconnexion ou lorsqu'il
ne peut se connecter en premier lieu .
33..22..
SSccrriippttss
Le script /usr/local/sbin/test-Rem _Host-ppp est appele par le script
qui configure votre carte reseau ( /etc/init.d/network sur une Debian
, test-Rem _Host-ppp est a remplacer par le nom des hotes distants ) .
Ce script verifie l'existence de l'interface distante , et essayera de
lancer pppd dans la negative . Il commence avec un sleep , verifiez
bien que le processus de boot configure bien les ports COM en premier
.
#!/bin/bash
/usr/bin/sleep 30
while true
do
if ! ( /sbin/ifconfig | grep Rem_Ip > /dev/null )
then
# PPP gone
logger "Rem_Host PPP gone ; restarted"
/usr/local/sbin/PRem_Host.sh & fi
sleep 300
done
Vous pouvez bien sur enlever le 'sleep 300' , et la boucle do-done et
lancer le tout avec cron plutot . Certaines personnes lancent pppd de
/etc/inittab , mais je n'ai jamais essaye.
La route par defaut peut etre initialisee avec l'option defaultroute
ou avec le script /etc/ppp/ip-up .
#!/bin/bash
case $2 in
/dev/ttyS1)
/sbin/route add -net 0.0.0.0 gw Rem_Ip netmask 0.0.0.0
;;
esac
Ip-up peut aussi etre utilise pour synchroniser votre horloge a l'aide
de netdate .
Bien sur , la route definit dans Ip-up n'est pas necessairement la
route par defaut . Votre Ip-up definit la route vers le reseau distant
alors que script ip-up sur le systeme distant specifie la route vers
votre reseau . Si votre reseau est 198.168.1.0 , et votre interface
pppd 192.168.1.1 , le script ip-up sur la machine distante ressemble a
ca :
#!/bin/bash
case $2 in
/dev/ttyS1)
/sbin/route add -net 192.168.1.0 gw 192.168.1.1 netmask 255.255.255.0
;;
esac
Les bits 'case $2' et '/dev/ttyS1)' sont la au cas ou vous
utiliseriez plus d'une liaison ppp . Ip-up sera lance a chaque fois
qu'une connexion apparaitra , mais seulement la partie entre
'/dev/ttySx)' et ';;' sera execute , definissant la bonne route pour
le bon ttyS. Vous trouverez plus d'information sur le routage dans le
NET-3-HOWTO <
http://www.freenix.org/linux/HOWTO/> , dans la section
qui y est consacre.
Bien que l'option 'persist ' puisse le rendre superflue , le demon
pppd peut aussi etre relance en utilisant ip-down;
#!/bin/bash
case $s in
/dev/ttyS1)
/usr/bin/sleep 30
/usr/local/sbin/PRem_Host.sh &
;;
esac
Le pppd est lance grace au script /usr/local/sbin/PRem_Host.sh :
#!/bin/bash
( /usr/sbin/pppd /dev/ttyS1 115200 crtscts Loc_Ip:Rem_Ip persist ) &
Je suppose que certaines options des lignes de commandes rendent
certaines des options ennoncees superflues. Mais il vaut mieux etre
prudent ,alors desole.
33..33.. TTeesstt
Testez le tout de la meme maniere qu'avec les modems . Si ca marche ,
prenez votre velo et allez brancher votre modem distant a la partie
distante de votre liaison.