Leased_Line_mini_HOWTO Rob Van der putten, rob@sput.dsl.nl 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 : cappeau@dil.univ-mrs.fr . 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 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 , 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. .