Page suivante Page précédente Table des matières

9. ISDN

J'inclus cela alors que cela n'a rien à voir avec qmail ou MH. Mais sans une connexion PPP vers un FAI, il n'y a pas de courrier électronique du tout. J'ai eu quelques problèmes pour faire fonctionner ma connexion ISDN. La distribution S.u.S.E propose une configuration pour ISDN, mais je voulais quelque chose de plus simple. Ce qui est présenté ici a été adapté des scripts de Bernhard Hailer (Merci, vraiment, merci !)

Le fichier rc.config suivant charge les modules nécessaires pendant l'initialisation :


#!/bin/bash
# Ceci est adapté du vieux script de Bernhard Hailer

LOCAL_NUMBER="91311234"        # numéro de téléphone local. 091311234
REMOTE_NUMBER="0911123456"     # numéro de téléphone du FAI
LOCAL_IP="192.168.0.99"        # J'ai une adresse IP dynamique alors ce
REMOTE_IP="195.112.123.11"     # sera la passerelle de votre FAI
DEVICE="ippp0"

SYSPATH="/sbin"
ISDNCTRL="$SYSPATH/isdnctrl"

case "$1" in
start)
        # turn on isdn
        insmod /lib/modules/2.0.33/net/slhc.o
        insmod /lib/modules/2.0.33/misc/isdn.o
        sleep 1
        # load the hisax module
        insmod /lib/modules/2.0.33/misc/hisax.o 
                                   id=Tel0 type=5 protocol=2 irq=10 io=0x300 
        echo "starting isdn4linux"
        # global
        $ISDNCTRL verbose 0

        $ISDNCTRL addif $DEVICE         # crée une nouvelle interface
        $ISDNCTRL addphone $DEVICE in $REMOTE_NUMBER
        $ISDNCTRL addphone $DEVICE out $REMOTE_NUMBER
        $ISDNCTRL eaz $DEVICE $LOCAL_NUMBER
        $ISDNCTRL l2_prot $DEVICE hdlc
        $ISDNCTRL l3_prot $DEVICE trans
        $ISDNCTRL encap $DEVICE syncppp
        $ISDNCTRL huptimeout $DEVICE 300 
        $ISDNCTRL chargehup  $DEVICE off
        $ISDNCTRL secure $DEVICE on

        $SYSPATH/ifconfig $DEVICE $LOCAL_IP pointopoint $REMOTE_IP metric 1
        $SYSPATH/route add default $DEVICE
        $SYSPATH/ipppd /dev/ippp0 file /etc/ppp/options.ipppd &
        $SYSPATH/route del default
        
        ;;
stop)
        #turn off isdn
        rmmod hisax.o  
        sleep 1
        rmmod isdn.o
        rmmod slhc.o
        echo "Shutting down isdn4linux"
        $ISDNCTRL delif ippp0
        ;;
*)
        echo "Usage: $0 (start|stop)"
        exit 1
        ;;
esac

J'utilise le script suivant pour appeler l'extérieur, il est nommé tout simplement isdn on|off.



#!/bin/bash
# Ceci est adapté du vieux script de Bernhard Hailer

IP_ADDRESS="195.112.123.11"

case "$1" in
on)
        
        
        echo "Calling ippp0"
        /sbin/isdnctrl dial ippp0
# la pause est importante car cela donne à PPP le temps de s'installer
        echo "Sleep for 8s for PPP handshake"
        sleep 8s
        /sbin/route add default ippp0
        echo "line open - checking...."
      
# vérifie si la négociation PPP est réussie :
        set `ping -qc3 -i1 $IP_ADDRESS 2>/dev/null | grep transmitted`
        if [ $4 -gt 0 ];
        then
                echo "succeeded."
                echo "Starting fetchmail daemon"
                /usr/bin/fetchmail -d 600 -k -v -a -L /var/log/fetchmail
                echo "Flushing mail queue...."
                /usr/local/bin/serialmail/maildir2smtp 
                            ~alias/pppdir alias-ppp- mail.server.ip.no `hostname`
        else
                echo "failed!"
                /sbin/isdnctrl hangup ippp0
        fi
        
;;

off)
                echo -n "Shutting down fetchmail daemon"
                /usr/bin/fetchmail --quit
                
                /sbin/isdnctrl hangup ippp0
                /sbin/route del default         # and delete route
                echo "You're off line"
;;

*)
        echo -e "\aUsage:"
        echo "isdn on"
        echo "isdn off"
;;

esac

La portion suivante est le fichier d'options du démon ipppd, /etc/ppp/options.ipppd :

# Basé sur :
# Klaus Franken, kfr@suse.de
# Version: 27.08.97 (5.1)
# 
# Ce fichier est une copie par YaST du fichier /etc/ppp/ioptions.YaST 
# vers le fichier options.<device>

user "myuserid"

# le nom de mon système (only for CHAP !)
# name my_system_name

# accepte les adresses IP transmises par son homologue
# utilisé avec les adresses IP dynamiques
ipcp-accept-local
ipcp-accept-remote
noipdefault

# essaie d'obtenir l'adresse IP de l'interface
# option spécifique à ipppd (contrairement à pppd)
# utilisé seulement avec des adresses IP statiques
#useifip

# désactive toutes les compressions d'en-têtes
-vj
-vjccomp
-ac
-pc
-bsdcomp

# parfois, vous pouvez en avoir besoin
#noccp

# unité de réception maximale (mru, max receive unit)
mru 1524
# unité de transmission maximale (mtu, max transmit unit)
mtu 1500

# Si la machine est un serveur, forcez l'authentification en décommentant
# l'une des lignes suivantes. Toutefois, si la machine est un client, faire
# cela empêche la réussite de la connexion (message "peer refused to authenticate").
# Alors décommentez SEULEMENT sur un serveur.
# "+pap" / "+chap" NUR AKTIVIEREN, WENN DIES EIN SERVER IST!!!
#+pap
#+chap

# Si vous avez des problèmes avec la liaison (pas de réponse du premier
# paquet-lcp), essayez de diminuer le délai de ré-essai (retry-cycle). 
# Fixé par défaut à 3 secondes, essayez par exemple 2 secondes
# lcp-restart 2


Page suivante Page précédente Table des matières