[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: plusieurs config reseau



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



Reply to: