[Racine] | [Table des matières] | [Index] | [ ? ] |
Introduction | ||
Le fichier de configuration générale | ||
Schèmes | ||
Profils | ||
Détection de porteuse | ||
Index |
[ < ] | [ > ] | [ << ] | [Plus haut] | [ >> ] | [Racine] | [Table des matières] | [Index] | [ ? ] |
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.
[ < ] | [ > ] | [ << ] | [Plus haut] | [ >> ] | [Racine] | [Table des matières] | [Index] | [ ? ] |
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"’.
[ < ] | [ > ] | [ << ] | [Plus haut] | [ >> ] | [Racine] | [Table des matières] | [Index] | [ ? ] |
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 |
[ < ] | [ > ] | [ << ] | [Plus haut] | [ >> ] | [Racine] | [Table des matières] | [Index] | [ ? ] |
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:
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.
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"’.
[ < ] | [ > ] | [ << ] | [Plus haut] | [ >> ] | [Racine] | [Table des matières] | [Index] | [ ? ] |
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.
[ < ] | [ > ] | [ << ] | [Plus haut] | [ >> ] | [Racine] | [Table des matières] | [Index] | [ ? ] |
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 |
[ < ] | [ > ] | [ << ] | [Plus haut] | [ >> ] | [Racine] | [Table des matières] | [Index] | [ ? ] |
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 |
[ < ] | [ > ] | [ << ] | [Plus haut] | [ >> ] | [Racine] | [Table des matières] | [Index] | [ ? ] |
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:
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.
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.
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 |
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.
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é.
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é.
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/’.
[ < ] | [ > ] | [ << ] | [Plus haut] | [ >> ] | [Racine] | [Table des matières] | [Index] | [ ? ] |
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:
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.
Ensuite, si un nouveau profil existe, les étapes suivantes sont accomplies afin de le sélectionner:
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é.
[ < ] | [ > ] | [ << ] | [Plus haut] | [ >> ] | [Racine] | [Table des matières] | [Index] | [ ? ] |
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.)
[ < ] | [ > ] | [ << ] | [Plus haut] | [ >> ] | [Racine] | [Table des matières] | [Index] | [ ? ] |
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.
[ < ] | [ > ] | [ << ] | [Plus haut] | [ >> ] | [Racine] | [Table des matières] | [Index] | [ ? ] |
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 |
[ < ] | [ > ] | [ << ] | [Plus haut] | [ >> ] | [Racine] | [Table des matières] | [Index] | [ ? ] |
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
[ < ] | [ > ] | [ << ] | [Plus haut] | [ >> ] | [Racine] | [Table des matières] | [Index] | [ ? ] |
Aller à: | A B C D F G I M N O P R S |
---|
Aller à: | A B C D F G I M N O P R S |
---|
[Racine] | [Table des matières] | [Index] | [ ? ] |
[Racine] | [Table des matières] | [Index] | [ ? ] |
Ce document a été généré le le 17 février 2010 par Julien BLACHE en utilisant texi2html 1.82.
Les boutons de navigation ont la signification suivante :
Bouton | Nom | Aller à | Depuis 1.2.3 aller à |
---|---|---|---|
[ < ] | Retour | Section précédente dans l’ordre de lecture | 1.2.2 |
[ > ] | Avant | Section suivante dans l’ordre de lecture | 1.2.4 |
[ << ] | RetourRapide | Début de ce chapitre ou chapitre précédent | 1 |
[Plus haut] | Monter | Section supérieure | 1.2 |
[ >> ] | AvanceRapide | Chapitre suivant | 2 |
[Racine] | Racine | Couverture (top) du document | |
[Table des matières] | Table des matières | Table des matières | |
[Index] | Index | Index | |
[ ? ] | A propos | A propos (page d’aide) |
Dans cet exemple on est à Sous sous section un-deux-trois dans un document dont la structure est :
Ce document a été généré le le 17 février 2010 par Julien BLACHE en utilisant texi2html 1.82.