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 composée de deux paires torsadées ._ _________________________________________________________________ 1. Introduction 1.1 Ce document ... Le terme "leased line" est ici traduit par "ligne spécialisée". C'est ce qui me semblait le plus aproprié. Cette traduction étant loin d'être parfaite , n'hésitez pas à m'envoyer vos remarques à : cappeau@dil.univ-mrs.fr . Ce document explique comment configurer votre modem et pppd pour utiliser une liaison spécialisée composée de deux paires torsadées . Il ne traite ni de SLIP , ni de comment se procurer et/ou installer pppd , ni de communication synchrone , ou de bandes courte distance. 1.2 Qu'est ce qu'une " leased line "? Toute liaison de communication , permanente ,point à point , louée par une compagnie de télécom ou une organisation similaire. La liaison spécialisée peut utiliser des câbles , tel que des paires torsadées , et toute sorte de matériels , tels que bobines , transformateurs , amplificateurs , et régénérateurs. 1.3 Prerequis Vous devez déjà avoir pppd tournant sur votre système , ainsi que minicom ( ou un programme similaire ) pour configurer vos modems . 2. les modems Une liaison spécialisée n'est pas connectée à un central téléphonique et ne fournit donc , ni alimentation CC , ni tonalité, ni signal occupé, ni sonnerie . Cela signifie que vos modems sont livrés à eux même , et doivent être capables de gérer cette situation. Vous devez avoir deux modems externes identiques , supportant aussi bien une ligne spécialisée que le "dumb mode" . Vérifiez que vos modems en sont capables et assurez vous qu'ils sont correctement documentés. Vous aurez aussi besoin de : * 2 câbles RS232 blindés . Le blindage doit être connecté à l'enveloppe de la prise (pas à la broche 1) de chaque coté . * Une prise RS232 utile pour les tests. * 2 cordon RJ11 , un pour chaque extrémité de la ligne spécialisée. * comprendre les commandes 'AT' de base 2.1 Configuration Configurez les modems à leur plus grande vitesse possible : 57600 bps pour un 14400 , et 115000 bps à partir d'un 28800 . Une fois le modem configuré en "dumb mode" , il utilisera la vitesse a laquelle il a été configuré. Configurez le modem , et son logiciel (Minicom) pour utiliser les paramètres suivant. * taux de transfert fixe (en baud , pas d'auto baud) * Controle du flot matériel bidirectionnel RTS-CTS * 8 bits, sans parité , 1 bitstop * Le modem doit produire le VRAI DCD statuts * le modem NE DOIT PAS ignorer le DCD statuts(&D2 ou &D3) Vérifiez 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 être reconfiguré que si il n'est pas en "dumb mode" . Maintenant, configurez le comme suit : * reset sur le commutateur DTR (&D3 , c'est parfois un registre S) * "leased line mode"(&Lx , voir documentation) * le modem distant "auto answer"(S0 =1) , le modem local "originate" (S0 = 0) * Desactiver les codes de résultat (Q1) , parfois le dumb le fait pour vous . * Dumb mode (c'est parfois un jumper) Dans ce mode, les commandes AT sont ignorées. Parfois , vous devrez désactiver le caractère esc aussi. Ecrivez la configuration dans la mémoire volatile (&W). 2.2 Test Maintenant , connectez les modems à 2 ordinateurs en utilisant les câbles 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 être capable de taper un texte d'un ordinateur vers l'autre et vice et versa . Si vous avez des déchets à l'écran, vérifiez la vitesse du port COM et les autres paramètres . Maintenant déconnectez , et reconnectez le câble RJ11 . Attendez que la connexion s ' établisse d'elle même . Déconnectez et reconnectez les câbles RS232 , allumez , éteignez les modems, arrêtez et relancer minicom. Les modems doivent toujours se reconnecter à la vitesse la plus haute possible (certains modems ayant une LED pour indiquer la vitesse). Vérifier bien qu'ils ignorent le caractère ESC (+++) . Il faudra le désactiver si nécessaire . Si tout marche , vous voudrez peut être 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 caractère ESC peut être désactivé en fixant S2 > 127; Originate: ATL1 &L1Q1 &C1 &D3S2=171\D1 &W Answer: ATM0 &L2Q1 &C1 &D3S0=1S2=171\D1 &W 2.3 Pppd Vous aurez besoin d'un pppd (point to point protocol deamon , un démon qui gère le protocole point à point) , et d'une bonne connaissance de son fonctionnement . Consulter le RFC le concernant , ou le Linux pppd HOWTO si nécessaire . Puisque vous n'allez pas utiliser une procédure de login , vous n'utiliserez pas (m)getty , et n'aurez pas besoin d'un utilisateur associé au pppd qui contrôle 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 câble null modem . Pour une connexion fiable , votre setup doit remplir les critères suivant : * Peut après avoir booter votre système , pppd doit envoyer le signal DTR sur le port RS232 , attendre que le DCD arrive , et négocier la connexion . * Si le système distant est mort , pppd doit attendre jusqu'à ce qu'il fonctionne à nouveau . * Si la connexion s'établit et s'interrompt ensuite, pppd doit réinitialiser le modem (en mettant DTR au niveau bas , puis haut) puis essayer de se reconnecter . * Si la qualité de la connexion se détériore trop , pppd doit réinitialiser le modem , et ré-etablir la connexion. * Si le processus contrôlant la connexion , ici pppd , meurt , un watchdog doit le relancer. 3. Configuration 3.1 Exemple On suppose que le modem est connecté 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 à : crtscts mru 576 mtu 576 passive Loc_Ip:Rem_Ip -chap modem -pap persist Donc , si le système local est 192.168.1.1 , et le système distant est 10.1.1.1, alors /etc/ppp/options.ttyS1 devrait être sur le système local : crtscts mru 576 mtu 576 passive 192.168.1.1:10.1.1.1 -chap modem -pap persist et sur le système 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 améliorera le temps de reponse du systéme distant. Si cela vous importe peut , vous pouvez les mettre à la valeur 1500. L'option "passive" limite le nombre de tentatives de (re)connexion. l'option "persist" maintiendra pppd en cas de déconnexion ou lorsqu'il ne peut se connecter en premier lieu . 3.2 Scripts Le script /usr/local/sbin/test-Rem _Host-ppp est appelé par le script qui configure votre carte réseau ( /etc/init.d/network sur une Debian , test-Rem _Host-ppp est à remplacer par le nom des hôtes distants ) . Ce script vérifie l'existence de l'interface distante , et essayera de lancer pppd dans la négative . Il commence avec un sleep , vérifiez 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 sûr enlever le 'sleep 300' , et la boucle do-done et lancer le tout avec cron plutôt . Certaines personnes lancent pppd de /etc/inittab , mais je n'ai jamais essayé. La route par défaut peut être initialisée 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 être utilisé pour synchroniser votre horloge à l'aide de netdate . Bien sur , la route définit dans Ip-up n'est pas nécessairement la route par défaut . Votre Ip-up définit la route vers le réseau distant alors que script ip-up sur le système distant spécifie la route vers votre réseau . Si votre réseau 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 là au cas ou vous utiliseriez plus d'une liaison ppp . Ip-up sera lancé à chaque fois qu'une connexion apparaitra , mais seulement la partie entre '/dev/ttySx)' et ';;' sera exécuté , définissant 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 consacré. Bien que l'option 'persist ' puisse le rendre superflue , le démon pppd peut aussi être relancé 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 lancé grâce 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 énnoncées superflues. Mais il vaut mieux être prudent ,alors desolé. 3.3 Test Testez le tout de la même maniére qu'avec les modems . Si ca marche , prenez votre vélo et allez brancher votre modem distant à la partie distante de votre liaison.