<HTML> <HEAD> <TITLE>Une fois que la connexion fonctionne - le script <CODE>/etc/ppp/ip-up</CODE></TITLE> </HEAD> <BODY> <A NAME="ip-up"></A> <H1>23. <A NAME="s23"></A>Une fois que la connexion fonctionne - le script <CODE>/etc/ppp/ip-up</CODE></H1> <P> <A HREF="PPP-HOWTO.html#toc23">Contenu de cette section</A></P> <P>Une fois que la connexion est établie, <CODE>pppd</CODE> cherche un <CODE>/etc/ppp/ip-up</CODE>. Si ce script existe et est exécutable, le daemon PPP le lance. Cela permet d'automatiser des commandes de routages spéciales qui peuvent être nécessaires et toutes les autres actions que vous souhaitez lancer une fois que la liaison PPP est activée.</P> <P></P> <P>C'est un simple script shell qui fait uniquement ce qu'un script shell peut faire (en fait quasiment tout ce que vous voulez).</P> <P></P> <P>Par exemple, vous pouvez demander à sendmail d'envoyer les messages en attentes.</P> <P></P> <P>Il y a quelques restrictions avec <CODE>/etc/ppp/ip-up</CODE>:</P> <P> <UL> <LI>Il fonctionne délibéremment dans un environnement réduit pour augmenter la sécurité. Cela signifie que vous devez donner le chemin complet des exécutables.</LI> <LI>Techniquement, <CODE>/etc/ppp/ip-up</CODE> est un <EM>programme</EM> et non un script. Cela signifie qu'il ne peut pas être exécuté directement - même si il a besoin du (<CODE>#!/bin/bash</CODE>) magique au début de la première ligne et qu'il doit être lisible est exécutable par root.</LI> </UL> </P> <P></P> <P></P> <H2>23.1 <A NAME="ss23.1"></A> Routages spéciaux</H2> <P>Si vous reliez deux réseaux locaux, vous devez configurer des routes spécifiques vers le réseau 'étranger'. Le script <CODE>/etc/ppp/ip-up</CODE> peut le faire facilement. La seule difficulté est lorsque votre machine supporte plusieurs liaisons PPP.</P> <P></P> <P><CODE>/etc/ppp/ip-up</CODE> est utilisé à chaque lancement de ppp, vous devez donc être extrêmement vigilant d'exécuter les commandes de routage correctes pour la liaison qui démarre - et non lorsque n'importe quelle liaison démarre !</P> <P></P> <H2>23.2 <A NAME="ss23.2"></A> Support du courrier électronique en attente</H2> <P>Lorsqu'une liaison entre deux réseaux locaux démarre, vous voudriez vous assurez que le courrier en attente de chaque coté de la liaison est bien envoyé à son destinataire. Cela est possible en ajoutant un appel correct à <CODE>sendmail</CODE>.</P> <P></P> <P>Utiliser la commande case du bash sur le bon paramètre que passe pppd au script permet cela. Par exemple, voici un script <CODE>/etc/ppp/ip-up</CODE> que j'utilise pour mes liaisons entre l'entreprise et chez mon réseau Ethernet (également connecté au même serveur ppp).</P> <P></P> <H2>23.3 <A NAME="ss23.3"></A> Un exemple de script <CODE>/etc/ppp/ip-up</CODE></H2> <P>Le script suivant permet de nombreuses utilisations.</P> <P> <HR> <PRE> #!/bin/bash # # Script permettant de supporter les possiblites de routages necessaires a pppd # Seule la liaison vers Newman necessite ce support. # # Quand la liaison ppp demarre, ce script est appele avec les parmetres # suivants # $1 le nom de l'interface utilisee par pppd (c.-a-d. ppp3) # $2 le nom du peripherique tty # $3 la vitesse du peripherique tty # $4 l'adresse IP locale de l'interface # $5 l'adresse IP distante # $6 le parametre specifie par l'option 'ipparam' a pppd # case "$5" in # Supporte le routage vers le serveur du Newman Campus 202.12.126.1) /sbin/route add -net 202.12.126.0 gw 202.12.126.1 # et envoie les courriers en attente la-bas ! /usr/sbin/sendmail -q & ;; 139.130.177.2) # Notre liaison Internet # Lorsque notre liaison est lancee, demarre le serveur de temps et # se synchronise avec le monde si il n'a pas encore bouge. if [ ! -f /var/lock/subsys/xntpd ]; then /etc/rc.d/init.d/xntpd.init start & fi # Demarre le serveur de news (si il ne marche pas encore) if [ ! -f /var/lock/subsys/news ]; then /etc/rc.d/init.d/news start & fi ;; 203.18.8.104) # Recupere le courrier electronique sur ma machine tant que la liaison # fonctionne. Aucun routage n'est necessaire tant que mon reseau local # Ethernet supporte IP masquerade et le routages proxyarp. /usr/sbin/sendmail -q & ;; *) esac exit 0 </PRE> <HR> </P> <P></P> <P>Le résultat du lancement de la liaison PPP vers notre campus Newman et le démarrage de ce script, détermine les entrées de la table de routage (cette machine est aussi notre serveur PPP général ET supporte nos liaisons Internet). J'ai ajouté des commentaires sur la sortie pour expliquer a quoi correspond chaque entrée) :</P> <P> <HR> <PRE> [root@kepler /root]# route -n Kernel routing table Destination Gateway Genmask Flags MSS Window Use Iface # la route de l'HOTE de notre gateway internet 139.130.177.2 * 255.255.255.255 UH 1500 0 134 ppp4 # la route de l'HOTE vers le serveur Newman campus 202.12.126.1 * 255.255.255.255 UH 1500 0 82 ppp5 # la route de l'HOTE de mon r&eacute;seau local ethernet 203.18.8.104 * 255.255.255.255 UH 1500 0 74 ppp3 # deux des lignes g&eacute;n&eacute;rales PPP 203.18.8.64 * 255.255.255.255 UH 552 0 0 ppp2 203.18.8.62 * 255.255.255.255 UH 552 0 1 ppp1 # la route r&eacute;seau specifique vers le r&eacute;seau Newman campus 202.12.126.0 202.12.126.1 255.255.255.0 UG 1500 0 0 ppp5 # la route de notre r&eacute;seau local Ethernet (super-netting two adjacent C classes) 203.18.8.0 * 255.255.254.0 U 1500 0 1683 eth0 # la route vers le p&eacute;riph&eacute;rique loop back 127.0.0.0 * 255.0.0.0 U 3584 0 483 lo # la route par d&eacute;faut vers Internet default 139.130.177.2 * UG 1500 0 3633 ppp4 </PRE> <HR> </P> <P></P> <H2>23.4 <A NAME="ss23.4"></A> Support du courrier électronique</H2> <P>La section précédente montrait comment supporter le mail sortant - en envoyant simplement le courrier lorsque la liaison démarrait.</P> <P></P> <P>Si vous utilisez une liaison pour un réseau large, vous pouvez vous arranger avec l'administrateur réseau du site distant pour qu'il fasse exactement la même chose. Par exemple, à l'autre bout de la liaison au Newman Campus, le script <CODE>/etc/ppp/ip-up</CODE> ressemble à :</P> <P> <HR> <PRE> #!/bin/bash # # Script permettant de supporter les possiblites de routages necessaires a pppd # Seule la liaison vers Hedland necessite ce support. # # Quand la liaison ppp demarre, ce script est appele avec les parmetres # suivants # $1 le nom de l'interface utilisee par pppd (c.-a-d. ppp3) # $2 le nom du peripherique tty # $3 la vitesse du peripherique tty # $4 l'adresse IP locale de l'interface # $5 l'adresse IP distante # $6 le parametre specifie par l'option 'ipparam' a pppd # case "$5" in 203.18.8.4) /usr/sbin/sendmail -q ;; *) esac exit 0 </PRE> <HR> </P> <P></P> <P>Si toutefois, vous n'avez qu'une adresse IP dynamique chez votre FAI, vous devrez recevoir votre courrier sur le compte de votre fournisseur d'accès. Cela est généralement possible en utilisant POP (Post Office Protocol). Ce processus peut être supporté avec le programme 'popclient" - le script ip-up peut automatiser le processus pour vous !</P> <P></P> <P>Créez simplement un script <CODE>/etc/ppp/ip-up</CODE> qui contient un appel correct à popclient. Pour mon portable avec la RedHat Linux (que je prends lorsque je voyage), j'ai </P> <P> <HR> <PRE> popclient -3 -c -u hartr -p <password> kepler.hedland.edu.au |formail -s procmail </PRE> <HR> </P> <P></P> <P>Vous pouvez aussi utiliser slurp en quelque chose d'autre d'identique pour les news, et d'autres trucs. Souvenez vous que le script ip-up est un script bash standard et qui peut servir à automatiser TOUTES les fonctions que vous devez accomplir chaque fois qu'une liaison PPP correspondante démarre.</P> <P></P> <HR> <P> Chapitre <A HREF="PPP-HOWTO-24.html">suivant</A>, Chapitre <A HREF="PPP-HOWTO-22.html">Précédent</A> <P> Table des matières de <A HREF="PPP-HOWTO.html#toc23">ce chapitre</A>, <A HREF="PPP-HOWTO.html#toc">Table des matières</A> générale</P> <P> <A HREF="PPP-HOWTO.html">Début</A> du document, <A HREF="#0"> Début de ce chapitre</A></P> </BODY> </HTML>