Pierre Gambarotto wrote:

> J'ai un portable sous potato, que je trimballe de la maison au boulot
> (admirez la rime, c'est involontaire :-)
> 
> Forcement, les config reseau sont differentes d'un lieu a l'autre.
> Comment peut-on gerer cela ? Y'a-t-il un outil adequat ?
> Je precise que mon interface reseau est de type pcmcia (donc fichier
> de config dans /etc/pcmcia/network.opts).
> 
> Je suppose que je ne suis pas le premier a avoir ce genre de
> problemes, aussi n'hesitez pas a envoyer des pointeurs, je sais lire
> :-)

Tout d'abord d�sol� pour la r�ponse tardive, d�m�nagement, travaux et
bras cass� ne font pas bon m�nage.  Du haut de ma main gauche je me suis
repench� sur ce probl�me que j'exposais d�ja fin janvier.  Aujourd'hui, je
pense avoir atteint le Nirvana de la gestion ``multi-contexte r�seau''
sur la m�me machine _sans_ reboot.  Mon probl�me est l�g�rement
diff�rent du tiens cas j'ai une config PCMCIA et une config PPP mais il
n'y a pas de probl�me � g�rer plusieurs config PCMCIA via le SCHEME
cargctl(8) et plusieurs config PPP via l'option ipparam dans ton fichier
provider.

Voici le squelette d'un network.opt avec plusieurs schemes:

    start_fn () { run-part /etc/pcmcia/ip-up.d }
    stop_fn () { run-part /etc/pcmcia/ip-down.d }

    case "$ADDRESS" in
    Home,*,*,*) ...  ;;
    Office,*,*,*) ... ;;
    esac


Voici mes r�sultats:

0. Pr�requis pour la package PCMCIA

Pour fonctionner avec PPP, de nombreux packages (exim, dnrd, masqmail,
wwwoffle) ajoutent un script de d�marrage dans /etc/ppp/ip-up.d et un
script d'arr�t dans /etc/ppp/ip-down.d.  Je me suis inspir� de ce
m�canisme pour PCMCIA et j'ai cr�� les r�pertoires /etc/pcmcia/ip-up.d
et /etc/pcmcia/ip-down.d.  J'ai alors configur� start_fn() et stop_fn()
dans network.opts de la mani�re suivante:

    start_fn () { run-part /etc/pcmcia/ip-up.d }
    stop_fn () { run-part /etc/pcmcia/ip-down.d }

Je suis en discution avec le maintainer de PCMCIA et nous allons
demander une modification de la Debian Policy pour avoir les r�pertoires
/etc/ip-up.d et /etc/ip-down.d commun pour tous les services � d�marrer
ou arr�ter lorsque le r�seau est up ou down.  Mais c'est une autre histoire...


1. La R�solution des noms (DNS)

Tu dois savoir que le ou les serveurs DNS sont configur�s dans le
fichier /etc/resolv.conf, le module PCMCIA ajoute les lignes qui vont
bien suivant le $SCHEME (cardctl scheme foo) que tu as choisi.  Mais que
ce passe-t-il pour les d�mons lanc�s _avant_ les changements ?  Rien car
la libc cache ces informations d�s la premi�re lecture du fichier.  Pour
contourner ce probl�me, il faut faire tourner un DNS local.  Ton fichier
/etc/resolv.conf peu alors se r�duire � la seule ligne

    nameserver 127.0.0.1

Je te conseils alors dnrd comme serveur DNS.  Il n'est peut-�tre que
dans unstable mais il se compile tr�s bien sur ma slink.  J'y ai ajout�
deux scripts /etc/pcmcia/ip-up.d/0dnrd et /etc/pcmcia/ip-down.d/9dnrd
(ils sont d�ja envoy� au maintainer du package).

Pour une configuration PPP, il faut que tu ajoutes l'option `usepeerdns'
dans /etc/ppp/options.  Attention, cette option n'est disponible qu'�
partir de ppp-3.2.7.

Voici mes scripts ip-up.d et ip-down.d, ils fonctionnent � la fois pour
PPP et pour PCMCIA.

ip-up.d:
    #!/bin/sh

    # Exit if package was removed but not purged.
    test -x /usr/sbin/dnrd || exit 0

    if [ -n "$PPP_IFACE" ]; then
            DEVICE="$PPP_IFACE"

            # Comment the following lines if you does no want to use 
automatically
            # assigned DNS servers.
            # Note: You have to run the ppp/ippp daemon with the option
            # "ms-get-dns" in order to use this feature.
            # Since version 2.3.7 of ppp daemon, option "usepeername"
            # set environment variables $DNS1 and $DNS2
            dns_list="$DNS1 $DNS2 $MS_DNS1 $MS_DNS2"
    else
            dns_list="$DNSSRVS $DNS_1 $DNS_2 $DNS_3"
    fi

    case "$DEVICE" in
            #ippp0)     dnrd -s 123.45.67.89 ;;

            *)
                    DNS=
                    for ns in $dns_list ; do
                            DNS="$DNS -s $ns"
                    done

                    if [ -n "$DNS" ]; then
                            /usr/sbin/dnrd $DNS
                    fi
                    ;;
    esac

ip-down.d:
    #!/bin/sh

    # Exit if package was removed but not purged.
    test -x /usr/sbin/dnrd || exit 0

    /usr/sbin/dnrd


2. La Messagerie

Pour la messagerie, j'utilise MasqMail-0.1.1 (� ma connaissance, tu as
dans unstable le package masqmail-0.0.12-2) auquel j'ai aussi ajout� les
scripts ip-up.d et ip-down.d pour pcmcia.  C'est un MTA tr�s facile �
configurer et qui sait r��crire les lignes `From:' et `MAIL FROM:'
suivant la configuration online utilis�e.  Pour ma part, je ne laisse
changer que le return-path pour �tre averti des erreurs.  Depuis la
version 0.1.0, tu peux �galement r�cup�rer tes mails d'un ou plusieurs
serveurs POP de mani�re automatique.


3. Le WEB

Pour surfer offline, tu dois connaitre wwwoffle.  J'y ai ajout� un
changement dynamique de la configuration Proxy (et les script ip-up.d et
ip-down.d pour pcmcia).  C'est tout frais, je n'ai pas encore fait de
diff :-)


4. les NEWS

J'utilise tr�s peu les news, je n'ai donc pas encore de solution � ce
sujet :-(


Je vais faire �voluer mon site web d'ici la fin de la semaine, j'y
mettrais les packages pour slink et les diffs qui vont bien.

Voil�, voil�.  J'esp�re que �a t'aide.
-- 
Edouard G. Parmelan
http://egp.free.fr


Répondre à