[Top] [Contents] [Index] [ ? ]

Le manuel de Laptop-net

Ceci est Le manuel de Laptop-net, édition 1.5, version originale du 28 Octobre 2002 (traduction française du 15 Octobre 2002). .

Introduction  
Le fichier de configuration générale  
Schèmes  
Profils  
Détection de porteuse  
Index  


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

Introduction

Le paquet laptop-net est un mécanisme de configuration pour les ordinateurs portables qui disposent d'une interface réseau intégrée. Il complète les outils d'administration de réseau standards GNU/Linux afin de faciliter le déplacement de l'ordinateur portable entre plusieurs environnements de réseau différents. De plus, pour les ordinateurs dont l'interface réseau est supportée, il détecte aussi automatiquement l'insertion et le débranchement du cable réseau.

Le paquet est construit autour de deux concepts de base, qui seront décrits plus loin de manière plus détaillée. Un premier fichier de configuration décrit comment le réseau doit être initialisé pour chaque environnement particulier. Cette information est organisée en une série de schèmes (NdT: schemes) désignés chacun par un nom, qui décrivent chacun la configuration du réseau pour un environnement particulier. Par exemple, une configuration réseau typique devrait spécifier une adresse IP, un masque de réseau associé, une passerelle, etc. Un second fichier de configuration précise des détails de plus haut niveau, comme une copie de `/etc/printcap' décrivant les imprimantes disponibles dans cet environnement particulier. Cette information de plus haut niveau est organisée en une série de profils (NdT: profiles), qui sont indexés d'après un motif (NdT: pattern) d'adresses IP. Ensemble, ces deux mécanismes fournissent un moyen flexible pour configurer l'environnement de réseau.

Le mécanisme des profils est basé sur un mécanisme similaire à celui du paquet boot-profiles écrit par Al Stone. Le mécanisme que voici est ma tentative pour intégrer cette fonctionalité directement dans le code d'administration du réseau. Le mécanisme des schèmes est basé sur le mécanisme de pcmcia-cs écrit par David Hinds.

Ce paquet at été conçu et testé sur les modèles 6000 et 500 d'OmniBook de Hewlett-Packard, qui ont été fournis par Hewlett-Packard pour supporter le développement de ce logiciel. Bien qu'il n'ait pas été testé sur d'autres machines, ce paquet a été conçu pour avoir une portée générale et devrait pouvoir être porté facilement.

Ce paquet a été testé uniquement sur des systèmes faisant tourner Debian GNU/Linux. Et malheureusement une partie du code est spécifique à Debian, ce qui veut dire que porter ce code pour un autre système GNU/Linux requiert quelque attention. Néanmoins, le code spécifique à Debian a été isolé autant que possible du reste du paquet.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

Le fichier de configuration générale

Le fichier de configuration donne quelques renseignements utiles au fonctionnement général du paquet et il est nommé `/etc/default/laptop-net'. C'est un script d'interpréteur de commande Bourne dont l'utilité est de définir quelques variables à l'interpréteur de commandes pour définir la manière dont doit être opérée la configuration du réseau.

MODULE_NAME
doit contenir le nom du module du noyau qui contient le pilote de l'interface réseau intégrée. Si cette variable n'est pas laissée vide, le paquet laptop-net chargera et déchargera le module lorsque ce sera nécessaire.

Il est à noter qu'il est nécessaire que le pilote soit compilé en tant que module et que la variable contienne son nom, pour les versions du noyau antérieures à 2.4. Cela est aussi nécessaire si le pilote du noyau 2.4 ne gère pas correctement l'économie d'énergie. Dans tous les cas cette méthode est considérée comme sûre, mais si le pilote et la puce supportent la gestion de l'économie d'énergie, il est préférable de ne pas renseigner MODULE_NAME.

Jusqu'ici cette procédure a été uniquement testée avec le module `MODULE_NAME="3c59x"'. Elle reste nécessaire sur les ordinateurs portables HP OmniBook 500 et 6000, parce que le code du pilote pour la gestion d'énergie du noyau 2.4 n'est pas complètement fonctionnel pour la puce qui se trouve dans ces machines.

MII_SUPPORTED
doit être positionnée à `"yes"' si le pilote de l'interface réseau supporte MII, et à `"no"' dans les autres cas. La détection du branchement du câble réseau n'est disponible que lorsque MII_SUPPORTED est positionnée à `"yes"'.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

Schèmes

Le paquet laptop-net organise les informations concernant la configuration du réseau en une série de schèmes désignés chacun par un nom. Chaque schème peut aussi spécifier l'utilisation du protocole DHCP (Dynamic Host Configuration Protocol) pour obtenir la configuration; un tel schème peut être utilisé pour configurer le réseau dans tout lieu qui propose le service DHCP.

À tout moment, il existe un schème sélectionné. Sur les systèmes Debian, le schème sélectionné peut être affiché en lançant la commande suivante:

 
/etc/init.d/laptop-net scheme

Le schème initial est appelé `default'. Un nouveau schème nom peut être sélectionné en lançant la commande:

 
/etc/init.d/laptop-net scheme nom

Il est aussi possible de sélectionner le schème automatiquement en spécifiant une ou plusieurs adresses IP qui sont associées à un schème particulier. Ensuite, lorsque l'ordinateur portable est connecté à un réseau, il cherche la présence de ces adresses dans le sous-réseau local et s'il trouve l'une d'elle, il sélectionne le schème qui lui est associé.

Fichier des schèmes  
Le fichier de la carte des IP  
Un exemple de schèmes  


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

Fichier des schèmes

Les schèmes sont définis en éditant un fichier de configuration appelé `/etc/laptop-net/schemes'. Ce fichier est un script d'interpréteur de commandes Bourne; il sert à déterminer certaines variables de l'interpréteur de commande, lesquelles définissent la configuration du réseau. Certaines de ces variables sont utilisées par le fichier de configuration lorsqu'il est exécuté. Le script utilise les variables suivantes pour déterminer ce qu'il faut faire:

SCHEME
le nom du schème sélectionné. Cela peut être par exemple: `default', `maison' ou `bureau'. C'est vous qui définissez les noms spécifiques qui seront utilisés lorsque vous éditez le fichier de configuration.
INTERFACE
est le nom de l'interface résau intégrée. C'est presque toujours `eth0'.

Les variables qui peuvent être définies dans le fichier de configuration sont nombreuses, mais on peut les diviser en groupes correspondant aux types de configuration de base. Il existe trois types de configuration différents, comme expliqué ci-dessous:

  1. Si aucune autre variable n'est définie, l'interface réseau est désactivée. Dans le fichier de configuration par défaut fourni avec ce paquet, le schème `offline' est configuré de cette manière.

  2. Si la variable DHCP est définie, alors l'interface réseau sera configurée en utilisant le protocole DHCP. Ce type de configuration est décrite ici sous le nom de configuration dynamique. C'est le type de configuration le plus apprécié, parce qu'il simplifie la configuration et améliore considérablement la portabilité du système.

  3. Si les variables ADDRESS et NETMASK sont définies, l'interface réseau doit être configurée manuellement. Ce type de configuration est décrite ici sous le nom de configuration statique.

Voici les variables spécifiques à la configuration dynamique:

DHCP
doit être positionnée à `yes' si vous voulez que l'interface réseau soit configurée en utilisant DHCP. Positionnez-la à `no' ou laissez-là non configurée si vous ne voulez pas utiliser DHCP.
Voici les variables spécifiques à la configuration statique:
ADDRESS
doit être définie comme une adresse IP. Par exemple: `ADDRESS=192.168.1.17'.

NETMASK
définit le masque de sous-réseau qui correspond à l'adresse IP définie dans ADDRESS. Par exemple: `NETMASK=255.255.255.0'.

GATEWAY
définit l'adresse de la passerelle pour le sous-réseau qui correspond à l'adresse IP définie dans ADDRESS. Par exemple: `GATEWAY=192.168.1.1'.

BROADCAST
definit l'adresse de diffusion qui peut être calculée à partir de ADDRESS et NETMASK. Normalement cette variable n'est pas nécessaire puisque l'adresse de diffusion du réseau peut être calculée à partir de ADDRESS et NETMASK. Par exemple: `BROADCAST=192.168.1.255'.

NETWORK
définit l'adresse de réseau du sous-réseau qui correspond à l'adresse IP de ADDRESS. Normalement cette variable n'est pas nécessaire puisque l'adresse du réseau peut être calculée à partir de ADDRESS et NETMASK. Par exemple: `NETWORK=192.168.1.0'.

Les variables suivantes sont nécessaires pour une configuration statique. (Seule l'une des variables DOMAIN et SEARCH ont besoin d'être définies.) Pour une configuration dynamique, elles sont optionnelles et ne sont généralement pas nécessaires.

DOMAIN
définit le nom de domaine local. Par exemple: `DOMAIN=ai.mit.edu'.

SEARCH
définit une liste de noms de domaines séparée par des espaces. Ces noms sont recherchés, dans l'ordre, lors d'une requête vers un nom de DNS qui ne contient aucun point. Il est à noter que vous devez entourer la partie droite de la variable de guillemets doubles; sinon les espaces vont poser problème à l'interpréteur de commandes. Par exemple: `SEARCH="ai.mit.edu mit.edu"'.

NAMESERVERS
définit une liste d'adresses IP de serveurs DNS, lesquelles doivent être séparées par des espaces. Il est à noter que vous devez entourer la partie droite de la variable de guillemets doubles; sinon les espaces vont poser problème à l'interpréteur de commandes. Par exemple: `NAMESERVERS="192.168.1.57 192.168.4.71"'.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

Le fichier de la carte des IP

Laptop-net a la capacité de choisir automatiquement le schème en testant le réseau. Cette opération est accomplie en associant une ou plusieurs adresses IP avec un ou plusieurs schèmes. Lorsque l'ordinateur est connecté à un réseau, il teste ce réseau pour voir les adresses IP présentes dans ce sous-réseau. Si l'une de ces adresses IP est trouvée, le schème associé est sélectionné.

L'association entre le nom du schème et les adresses IP est stockée dans un fichier de configuration nommé `/etc/laptop-net/ip-map'; ce fichier est appelé normalement la carte des IP. Cette carte des adressses IP consiste en une série d'entrées d'une ligne chacune. Chaque ligne commence avec le nom d'un schème dans la première colonne, et est suivie par une ou plusieurs adresses IP, séparées par des espaces ou des marques de tabulation. Les lignes vides sont autorisées, ainsi que les commentaires qui commencent par le caractère `#' et se terminent à la fin de la ligne.

Si le fichier de la carte des IP contient une ou plusieurs entrées, alors le réseau est testé en envoyant un paquet de requête ARP Address Resolution Protocol vers chaque adresse IP apparaissant dans la carte. Si un paquet de réponse ARP est reçu, son adresse IP source est recherchée dans la carte, et le schème est sélectionné. (La première réponse seulement est utilisée.) Si le schème sélectionné a été changé manuellement par l'utilisateur, alors il n'est pas changé. Par contre, si le schème a été sélectionné automatiquement par un test du réseau, alors le schème par défaut (`default') est sélectionné.

Si le fichier de la carte des IP ne contient aucune entrée, ou s'il n'existe pas, alors le réseau n'est pas testé et le schème sélectionné n'est pas changé automatiquement.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

Un exemple de schèmes

Voici un exemple complet pour vous donner une idée de la structure générale du fichier de schèmes:

 
case $SCHEME in
home)
    # À la maison on utilise une configuration statique.
    ADDRESS=192.168.1.6
    NETMASK=255.255.255.0
    GATEWAY=192.168.1.254
    SEARCH="ai.mit.edu mit.edu"
    NAMESERVERS="24.128.44.6 24.128.52.6 24.128.1.80"
    ;;
offline)
    # Le schème offline ne configure pas le réseau.
    ;;
*)
    # Tous les autres schèmes utilisent une configuration dynamique.
    DHCP=yes
    ;;
esac

Et voici un fichier de carte des adresses IP correspondant:

 
home 192.168.1.1 192.168.1.2
office 192.168.2.1 192.168.2.2 192.168.2.3


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

Profils

Le second niveau de la configuration est celui du profil (NdT: profile), qui adapte la configuration logicielle de l'ordinateur pour qu'elle corresponde à l'environnement du réseau. Par exemple, si vous avez des profils pour votre domicile personnel et pour votre bureau, vous aurez d'ordinaire besoin d'avoir une copie différente du fichier `/etc/printcap' pour chaque endroit, parce que les imprimantes y sont à chaque fois différentes.

Un profil consiste en une série de fichiers qui sont copiés dans le système de fichiers, ainsi qu'en une série de scripts d'interpréreur de commandes qui sont exécutés lorsque le profil est sélectionné ou déselectionné. À chaque profil correspond aussi une série de motifs (NdT: patterns) qui spécifient les adresses IP avec lesquelles il est associé. Toutes les fois que le réseau est reconfiguré, que ce soit lors de sa mise en route, de son arrêt ou lors d'un changement de l'adresse de réseau, laptop-net recherche les profils disponibles pour en trouver un qui corresponde. Si le nouveau profil est différent du profil courant, le profil courant est déselectionné et le nouveau est sélectionné à la place.

Le comportement des profils pourrait avoir été intégré dans la couche des schèmes. Mais les profils sont mis en application comme une couche séparée parce que cela rend leur utilisation plus flexible. En effet un schème appelé qui emploie la configuration dynamique peut avoir différentes adresses IP, et à chacune de ces adresses pourrait correspondre à un profil différent. Il peut aussi y avoir deux schèmes différents qui correspondent au même profil, par exemple lorsqu'un schème configuré statiquement et un schème configuré dynamiquement sont susceptibles d'être chacun employés dans le même réseau.

Le répertoire des profils  
La gestion des profils  
Gérer les services du système  
Utiliser les profils avec PCMCIA  
Un exemple de profils  


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

Le répertoire des profils

Les profils sont définis en créant des sous-répertoires dans le répertoire des profils, lequel est appelé `/etc/laptop-net/profiles'. Un profil est un sous-répertoire du répertoire des profils. Le premier caractère du nom du sous-répertoire doit être une lettre minuscule ou un chiffre; les autres sous-répertoires sont ignorés. Voici quelques exemples de sous-répertoires de profil:

 
/etc/laptop-net/profiles/home
/etc/laptop-net/profiles/office
/etc/laptop-net/profiles/default

Un sous-répertoire de profil lui-même contient d'autres fichiers et sous-répertoires, chacun ayant une fonction spécifique, comme suit:

`patterns'
Ce fichier contient les motifs (NdT: patterns) qui correspondent à des adresses IP, avec un motif sur chaque ligne. Ces motifs reprennent le principe des motifs de recherche par noms de fichiers (NdT: filemane-globbing) d'interpréteur de commande courant, où le caractère `*' correspond à n'importe quelle sous-chaîne de caractères et le caractère `?' correspond à n'importe quel caractère. Ainsi, par exemple, `18. *. *. *' correspond à n'importe quelle adresse IP commençant par `18.', alors que ` *.*.*.*' correspondra à n'importe quelle adresse IP. Voir ci-dessous pour de plus amples informations sur la façon dont les motifs sont employés pour choisir un profil.

`files.d/'
Ce sous-répertoire contient les fichiers qui doivent être copiés dans le système de fichiers quand le profil est choisi. Les fichiers de ce répertoire seront copiés directement dans le répertoire racine de la machine. Ainsi, par exemple, le fichier `files.d/etc/printcap' sera copié vers `/etc/printcap'.

Les fichiers sont copiés en utilisant la commande:

 
(cd files.d; /bin/cp -pr * /)

ce qui signifie que les droits sur tous les fichiers sont préservés et que le contenu des sous-répertoires est copié lui aussi. Cela signifie aussi que les fichiers commençant par le caractère `.' ne seront pas copiés.

`before-select'
Ce fichier est un programme à exécuter avant que le profil soit sélectionné. Il est invoqué avec deux arguments. Le premier argument est le nom de fichier du répertoire des profils, et le second est le nom du profil choisi. Par exemple.

 
before-select /etc/laptop-net/profiles home

`after-select'
Ce fichier est un programme à exécuter après que le profil ait été sélectionné. Comme `before-select', il est invoqué avec deux arguments, le nom de fichier du répertoire des profils, et le nom du profil choisi.

`before-deselect'
Ce fichier est un programme à exécuter avant que le profil soit déselectionné. Comme `before-select', il est invoqué avec deux arguments, le nom de fichier du répertoire des profils, et le nom du profil déselectionné.

`after-deselect'
Ce fichier est un programme à exécuter après que le profil ait été déselectionné. Comme `before-select', il est invoqué avec deux arguments, le nom de fichier du répertoire des profils, et le nom du profil déselectionné.

`rc.d/'
Ce sous-répertoire contient des liens symboliques vers des scripts de démarrage qui démarrent et arrêtent des services du système d'exploitation. Ces liens procurent une manière simple de contrôler ces services, bien que vous puissiez évidemment le faire en utilisant les programmes `after-select' et `after-deselect'. Voir plus loin pour plus de précisions sur le répertoire `rc.d/'.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

La gestion des profils

La gestion des profils est réalisée par deux processus. Le premier est le processus de détermination du profil, au cours duquel il est recherché un profil qui corresponde à l'adresse IP courante au sein de l'ensemble des profils disponibles. Le second est le processus de sélection du profil au cours duquel le profil courant est déselectionné et le nouveau profil sélectionné.

La détermination du profil suit une simple procédure de recherche. D'abord, l'adresse IP courante est détectée. Elle peut avoir l'une de ces trois valeurs:

  1. Une adresse IP valide consistant en quatre nombres décimaux séparés par des points. Par exemple `192.168.1.17'.

  2. Le mot `down', qui signifie que l'interface réseau est inactive et ne possède pas d'adresse IP valide.

  3. Le mot `unknown', signifiant qu'il était impossible de détecter l'état de l'interface réseau. (Par exemple, si le pilote de cette interface n'a pu être chargé).

Ensuite, les profils sont examinés, dans l'ordre alphabétique de leurs noms. Chaque profil est testé en examinant le contenu de son fichier de motifs, le fichier `patterns'. (Si le fichier n'existe pas ou ne peut être lu, le profil est ignoré.) Chaque motif du fichier est comparé à l'adresse IP courante, et si l'un de ces motifs correspond, alors il est considére que ce profil correspond à l'adresse.

Ce motif de recherche peut être utilisé pour créer un profil par défaut qui est utilisé quand rien d'autre ne correspond. Pour ce faire, créez un profil dont le nom sera toujours trié après les autres noms de profils (par exemple `zzz-défaut', et donnez lui le simple motif `*'.

Une fois que le profil a été déterminé par le processus de concordance, il doit être sélectionné. (Il est à noter, toutefois, que rien n'est fait si le nouveau profil est le même que le profil courant.) Le processus de sélection du profil se fait en deux phases. Premièrement, s'il existe un profil courant, les étapes suivantes sont accomplies pour le déselectionner.

  1. Si le programme `before-deselect' existe, il est exécuté.

  2. Si le répertoire `rc.d/' existe, tous les services spécifiés dans celui-ci sont stoppés. Voir plus loin pour plus de détails sur cette opération.

  3. Si le programme `after-deselect' existe, il est exécuté.

Ensuite, si un nouveau profil existe, les étapes suivantes sont accomplies afin de le sélectionner:

  1. Si le programme `before-select' existe, il est exécuté.

  2. Si le répertoire `files.d/' existe, tous les fichiers qu'il contient sont copiés dans le répertoire racine.

  3. Si le répertoire `rc.d/' existe, tous les services spécifiés dans celui-ci sont démarrés. Voir plus loin pour plus de détails sur cette opération.

  4. Si le fichier `after-select' existe, il est exécuté.

Il mérite d'être mentionné que le processus de sélection pourvoit aux situations où il n'existe aucun profil. Ainsi, lorsqu'il n'y a aucun profil courant, le nouveau profil reste sélectionné de manière correcte. De même, lorsqu'il y a un profil courant mais aucun profil de remplacement, le profil courant sera tout de même déselectionné.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

Gérer les services du système

La dernière complexité restante est le répertoire `rc.d/', qui requiert une petite explication. La plupart des systèmes GNU/Linux emploient un mécanisme appelé scripts d'initialisation SysV, dans lequel chaque service possède un script d'interpréteur de commandes qui est utilisé pour le démarrer et l'arrêter. Le détail précis du fonctionnement de ce mécanisme n'est pas important, mais en bref, le script est appelé avec l'argument `start' pour démarrer le service et `stop' pour l'arrêter. Sur les systèmes Debian, ces scripts sont normalement stockés dans le répertoire `/etc/init.d/', mais sur certains autres systèmes (par exemple Linux RedHat), ils sont stockés dans `/etc/rc.d/init.d/'.

Le répertoire `rc.d/' contient des liens symboliques vers ces scripts, avec des noms spéciaux qui contrôlent comment ils sont démarrés et arrêtés et dans quel ordre. Chaque nom est formé d'une lettre, soit `S', soit `K', suivie par deux chiffres décimaux, suivis apr le nom du script. Des exemples de ces noms pour le script `lpd' seraient `S20lpd' et `K20lpd'.

Les noms sont interprétés comme suit. Lorsqu'un profil est sélectionné, nous démarrons tous les services dans le répertoire `rc.d/'. Cela signifie que nous cherchons tous les liens commençant par `S' et que, dans l'ordre alphabétique standard, chacun d'eux est appelé avec l'argument `start'. Lorsque nous déselectionnons un profil, nous cherchons tous les liens commençant par `K' et nous les appelons dans l'ordre avec l'argument `stop'.

Il est à noter que le système d'exploitation a des liens similaires stockés dans des répertoires appelés `/etc/rcN.d/', où N est un chiffre. (Ces répertoires sont appelés `/etc/rc.d/rcN.d/' sur les systèmes RedHat.) Normalement vous devriez utiliser les mêmes noms de liens que ceux présents dans les répertoires du système d'exploitation, puisque les mainteneurs du système ont déjà déterminé les ordres appropriés pour démarrer et arrêter les services. En outre, pour un meilleur fonctionnement vous devriez effacer les liens du système d'exploitation, puisque ces services seront désormais contrôlés par laptop-net. (Sur les systèmes Debian, les liens sont gérés par le programme update-rc.d; voir la page man de ce programme pour des instructions sur la manière d'enlever les liens.)


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

Utiliser les profils avec PCMCIA

Le mécanisme des profils peut aussi utilisé avec des périphériques PCMCIA. Cependant, pour que cela fonctionne, il est nécessaire d'éditer les fichiers de configuration de pcmcia-cs. En particulier, le fichier `/etc/pcmcia/networks.opts' doit être édité, et les fonctions suivantes doivent être définies:

 
start_fn ()
{
    /usr/share/laptop-net/profile-change $DEVICE
}

stop_fn ()
{
    /usr/share/laptop-net/profile-change $DEVICE down
}

Si ces fonctions existent déjà, les appels à `profile-change' doivent y être ajoutés. Notez qu'il est important que `profile-change' soit appelé chaque fois que ce script est invoqué: sinon le mécanisme des profils risque d'être désynchronisé du réseau.

Un autre point est à prendre en considération lorsqu'il existe une interface réseau interne et une interface réseau PCMCIA qui sont toutes les deux actives en même temps. Au cas où une telle situation se présente, il faut s'assurer que les deux interfaces utilisent le même profil! Sinon le mécanisme des profils peut ne plus savoir que faire.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

Un exemple de profils

Le mécanisme des profils est quelque peu compliqué, alors jetons un oeil à un exemple complet pour voir comment il peut être utilisé. Premièrement, voici une liste des fichiers présents dans notre répertoire de profils exemple:

 
/etc/laptop-net/profiles:
total 20
drwxr-xr-x    2 root  4096 Jun 11 11:34 SHARED
drwxr-xr-x    5 root  4096 Jun  8 23:33 home
drwxr-xr-x    2 root  4096 Jun  8 23:34 offline
drwxr-xr-x    5 root  4096 Jun 11 11:36 work
drwxr-xr-x    3 root  4096 Jun  8 23:34 zzz-default

Il y a quatre sous-répertoires de profils, appelés `home', `offline', `work' et `zzz-default'. Le sous-répertoire appelé `SHARED' n'est pas un profil car il commence par une lettre majuscule. Nous verrons plus tard comment il est utilisé.

Le plus simple de ces profils est `offline':

 
/etc/laptop-net/profiles/offline:
total 4
-rw-r--r--    1 root    13 Jun  7 23:43 patterns

Voici le contenu du fichier `offline/patterns':

 
down
unknown

Ce profil correspond au cas où le réseau ne fonctionne pas. Il ne fait rien du tout dans ce cas. Il est à noter qu'il aurait été possible d'omettre ce profil et que le résultat final aurait été le même.

Ensuite, jetons un oeil à l'un des deux premiers profils, `home':

 
/etc/laptop-net/profiles/home:
total 24
drwxr-xr-x    2 root  4096 Jun 11 11:36 LOCAL
-rwxr-xr-x    2 root    80 Jun  8 15:25 after-select
-rwxr-xr-x    2 root   378 Jun  8 15:09 before-select
drwxr-xr-x    3 root  4096 Jun  8 23:30 files.d
-rw-r--r--    1 root    12 Jun  7 22:59 patterns
drwxr-xr-x    2 root  4096 Jun 11 11:39 rc.d

Ce profil utilise la plupart des fonctionalités du mécanisme des profils: les scripts `before-select' et `after-select', ainsi que les répertoires `files.d/' et `rc.d/'. Il possède de plus un répertoire `LOCAL' qui n'est pas directement utilisé par le mécanisme des profils, mais auquel fait référence l'un des scripts. Ce profil correspond au motif d'adresses IP suivant (fichier `patterns'):

 
192.168.1.*

Lorsque ce profil est sélectionné, le script `before-select' est exécuté. Ce script utilise des informations prises dans les répertoires `SHARED' et `LOCAL' pour créer un fichier `/etc/fstab'. Celui-ci est enregistré dans le répertoire `files.d/', en conséquence de quoi il sera ensuite copié dans le système de fichiers racine.

 
#!/bin/sh
PROFILE_DIR="$1"
PROFILE="$2"
FSTAB="$PROFILE_DIR/$PROFILE/files.d/etc/fstab"
FSTAB_SHARED="$PROFILE_DIR/SHARED/fstab"
FSTAB_LOCAL="$PROFILE_DIR/$PROFILE/LOCAL/fstab"
if [ ! -f "$FSTAB" ] \
        || [ "$FSTAB_SHARED" -nt "$FSTAB" ] \
        || [ "$FSTAB_LOCAL" -nt "$FSTAB" ]; then
    cat "$FSTAB_SHARED" "$FSTAB_LOCAL" > "$FSTAB"
fi

D'autres fichiers saut eux-aussi stockés dans le répertoire `files.d/':

 
/etc/laptop-net/profiles/home/files.d:
total 4
drwxr-xr-x    2 root  4096 Jun 11 11:35 etc

/etc/laptop-net/profiles/home/files.d/etc:
total 4
-rw-r--r--    1 root   951 Jun 22  1999 printcap

Certains services du système sont démarrés et arrêtés depuis le répertoire `rc.d':

 
/etc/laptop-net/profiles/home/rc.d:
total 0
lrwxrwxrwx  1 root    15 Jun 11 11:39 K20lpd -> /etc/init.d/lpd
lrwxrwxrwx  1 root    19 Jun 11 11:39 K22ntpdate -> /etc/init.d/ntpdate
lrwxrwxrwx  1 root    15 Jun 11 11:39 K23ntp -> /etc/init.d/ntp
lrwxrwxrwx  1 root    15 Jun 11 11:39 S20lpd -> /etc/init.d/lpd
lrwxrwxrwx  1 root    19 Jun 11 11:39 S22ntpdate -> /etc/init.d/ntpdate
lrwxrwxrwx  1 root    15 Jun 11 11:39 S23ntp -> /etc/init.d/ntp

Ensuite nous exécutons le script `after-select', qui change le "schème" pcmcia-cs de sorte qu'il corresponde au profil courant:

 
#!/bin/sh
PROFILE_DIR="$1"
PROFILE="$2"
/sbin/cardctl scheme "$PROFILE"

Et c'en est fini avec le profil `home'. Le profil `work' est à peu près identique, à part en ce qui concerne le contenu des fichiers du répertoire `files.d/' et bien entendu le fichier `patterns':

 
18.*.*.*
128.52.*.*

Pour terminer, nous avons le profil `zzz-default', qui est une sorte de profil passe-partout pour des endroits qui n'ont pas de profils spécifiques définis:

 
/etc/laptop-net/profiles/zzz-default:
total 8
-rw-r--r--    1 root     8 Jun  7 23:46 patterns
drwxr-xr-x    2 root  4096 Jun 11 11:39 rc.d

Le fichier `patterns' du profil `zzz-default' est un motif qui accepte toutes les adresses IP. Le nom du profil commence par `zzz' afin que le motif ne soit pas examiné avant que tous les autres profils aient été essayés.

 
*.*.*.*

Ce profil n'est spécialisé en aucune façons, excepté pour mettre en route le service `ntp' lorsqu'il est sélectionné:

 
/etc/laptop-net/profiles/zzz-default/rc.d:
total 0
lrwxrwxrwx  1 root    19 Jun 11 11:39 K22ntpdate -> /etc/init.d/ntpdate
lrwxrwxrwx  1 root    15 Jun 11 11:39 K23ntp -> /etc/init.d/ntp
lrwxrwxrwx  1 root    19 Jun 11 11:39 S22ntpdate -> /etc/init.d/ntpdate
lrwxrwxrwx  1 root    15 Jun 11 11:39 S23ntp -> /etc/init.d/ntp


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

Détection de porteuse

Une des autres fonctionalités majeures de ce paquet, c'est la détection automatique de la porteuse ethernet (NdT: link-beat). Cette porteuse, lorqu'elle est active, indique que la connection ethernet physique fonctionne correctement; en d'autres mots, que le cable réseau est branché à la fois à l'ordinateur et au hub, et que les deux interfaces, l'une comme l'autre, sont en fonctionnement. Débrancher le cable ou éteindre le hub stoppent la porteuse.

Sur les interfaces réseau qui supportent la détection de porteuse, laptop-net surveille la porteuse. Lorsqu'il détecte que la porteuse est arrêtée, il désactive l'interface réseau. Si la porteuse redémarre, laptop-net réactive l'interface réseau. Dans les deux cas, quand l'interface réseau est activée ou désactivée, laptop-net réinitialise le réseau et change potentiellement de profil.

Dans la pratique, la raison pour laquelle c'est utile, c'est que cela vous permet de déplacer l'ordinateur en débranchant le cable réseau, puis en installant l'ordinateur autre part et en rebranchant le cable. Le logiciel va détecter ces événements et gérer l'interface comme nécessaire. Encore mieux, si la machine utilise la configuration dynamique (et que les deux réseaux le supportent), lorsque la machine est branchée au second réseau, elle reçoit une nouvelle adresse IP et sélectionne automatiquement un nouveau profil. Ainsi, par exemple, vous pouvez débrancher l'ordinateur dans votre bureau, rentrer à la maison, rebrancher le cable réseau, et continuer à travailler sans aucune intervention manuelle pour indiquer à l'ordinateur où il est.

Le premier inconvénient de ce support, c'est que vous devez être relativement certain que chacun des services actuellement en train d'utiliser le réseau sont stoppés avant que vous débranchiez le cable réseau. Cela inclut toute connexion réseau ouverte ou tout volume NFS ouvert. Dans le cas contraire, vous vous retrouverz avec des connexions fantômes (NdT: dangling connections) sur les bras; et une fois que le câble est débranché il est difficile de les fermer proprement. (Une manière simple de détecter des connexions TCP ouvertes, c'est de lancer la commande `netstat -t' et de chercher les connexions dont l'état (`State') est `ESTABLISHED'.)

L'autre problème potentiel de la détection de porteuse, c'est qu'elle n'est pas supportée par tous les pilotes de cartes réseaux; elle dépend d'une fonctionalité appelée MII (Media Independent Interface, NdT: qu'on pourrait traduire par: interface indépendante du média). Quoi qu'il en soit, de manière générale, cette fonction est présente dans la plupart des cartes récentes, et des ordinateurs portables. (Les pilotes suivants du noyau Linux 2.4.5 supportent la MII, et devraient être capables de détecter la porteuse: 3c59x, 8139too, eepro100, epic100, fealnx, hamachi, ioc3-eth, natsemi, pcnet32, pegasus, sis900, starfire, sundance, tlan, tulip, via-rhine, winbond-840, et yellowfin.)

Pour les pilotes d'interfaces réseau qui ne supportent la MII, positionnez la variable MII_SUPPORTED à `"no"' et la détection de porteuse sera désactivée


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

Index

Jump to:   A   B   C   D   F   G   I   M   N   O   P   R   S  

Index Entry Section

A
ADDRESSFichier des schèmes
ADDRESSFichier des schèmes
after-deselectLe répertoire des profils
after-selectLe répertoire des profils

B
before-deselectLe répertoire des profils
before-selectLe répertoire des profils
BROADCASTFichier des schèmes
BROADCASTFichier des schèmes

C
configuration dynamiqueFichier des schèmes
configuration statiqueFichier des schèmes
connexions ouvertesDétection de porteuse

D
désélection du profilLa gestion des profils
détection de porteuseDétection de porteuse
détermination de l'adresse IPLa gestion des profils
détermination du profilLa gestion des profils
DHCPFichier des schèmes
DHCPFichier des schèmes
DOMAINFichier des schèmes
DOMAINFichier des schèmes
Dynamic Host Configuration ProtocolSchèmes
dynamique, configurationFichier des schèmes

F
fichier de configurationLe fichier de configuration générale
Fichier de la carte des IPLe fichier de la carte des IP
fichier schemesFichier des schèmes
files.dLe répertoire des profils

G
gérer les services du systèmeGérer les services du système
GATEWAYFichier des schèmes
GATEWAYFichier des schèmes
gestion des profilsLa gestion des profils

I
INTERFACEFichier des schèmes
INTERFACEFichier des schèmes

M
Media Independent InterfaceDétection de porteuse
MIIDétection de porteuse
MII_SUPPORTEDLe fichier de configuration générale
MII_SUPPORTEDLe fichier de configuration générale
MODULE_NAMELe fichier de configuration générale
MODULE_NAMELe fichier de configuration générale
motifsProfils

N
NAMESERVERSFichier des schèmes
NAMESERVERSFichier des schèmes
NETMASKFichier des schèmes
NETMASKFichier des schèmes
netstatDétection de porteuse
NETWORKFichier des schèmes
NETWORKFichier des schèmes
NFSDétection de porteuse

O
offlineFichier des schèmes

P
patternsLe répertoire des profils
porteuse, détectionDétection de porteuse
profil par défautLa gestion des profils
profil, déselection duLa gestion des profils
profil, reconnaissance duLa gestion des profils
profil, sélection duLa gestion des profils
profilsProfils
profils, gestion desLa gestion des profils

R
rc.dLe répertoire des profils
rc.d/Gérer les services du système

S
sélection du profilLa gestion des profils
schème selectionnéSchèmes
schèmesSchèmes
SCHEMEFichier des schèmes
SCHEMEFichier des schèmes
scripts de démarrageLe répertoire des profils
SEARCHFichier des schèmes
SEARCHFichier des schèmes
services du système, gérerGérer les services du système
statique, configurationFichier des schèmes

Jump to:   A   B   C   D   F   G   I   M   N   O   P   R   S  


[Top] [Contents] [Index] [ ? ]

Table of Contents

Introduction
Le fichier de configuration générale
Schèmes
Fichier des schèmes
Le fichier de la carte des IP
Un exemple de schèmes
Profils
Le répertoire des profils
La gestion des profils
Gérer les services du système
Utiliser les profils avec PCMCIA
Un exemple de profils
Détection de porteuse
Index

[Top] [Contents] [Index] [ ? ]

Short Table of Contents

Introduction
Le fichier de configuration générale
Schèmes
Profils
Détection de porteuse
Index

[Top] [Contents] [Index] [ ? ]

About this document

This document was generated by using texi2html

The buttons in the navigation panels have the following meaning:

Button Name Go to From 1.2.3 go to
[ < ] Back previous section in reading order 1.2.2
[ > ] Forward next section in reading order 1.2.4
[ << ] FastBack beginning of this chapter or previous chapter 1
[ Up ] Up up section 1.2
[ >> ] FastForward next chapter 2
[Top] Top cover (top) of document  
[Contents] Contents table of contents  
[Index] Index concept index  
[ ? ] About this page  

where the Example assumes that the current position is at Subsubsection One-Two-Three of a document of the following structure:



This document was generated by Build Daemon user on April, 14 2005 using texi2html