18.6. Configuration manuelle d'une connexion réseau

La configuration manuelle des logiciels réseau doit toujours être la dernière alternative. Il est recommandé d'utiliser YaST. Toutefois, ces informations générales sur la configuration réseau peuvent également vous aider à utiliser YaST.

Toutes les cartes réseau intégrées et les cartes réseau à chaud (PCMCIA, USB, certaines cartes PCI) sont détectées et configurées via la fonctionnalité d'enfichage à chaud. Le système considère la carte réseau de deux manières : tout d'abord comme un périphérique physique et en second lieu, comme une interface. L'insertion ou la détection d'un périphérique déclenche un événement d'enfichage à chaud. Cet événement déclenche l'initialisation du périphérique avec le script hwup. Lorsque la carte réseau est initialisée en tant que nouvelle interface réseau, le kernel génère un autre événement d'enfichage à chaud qui déclenche la configuration de l'interface avec ifup.

Le kernel numérote les noms d'interface en fonction de leur date d'enregistrement. L'ordre d'initialisation est déterminant pour l'attribution des noms. Si l'une des cartes réseau est défaillante, la numérotation de toutes les cartes initialisées par la suite est modifiée. Pour les cartes réellement enfichables à chaud, il faut tenir compte de l'ordre de connexion des périphériques.

Pour obtenir une configuration flexible, la configuration des périphériques (matériel) et des interfaces a été séparée, et l'association des configurations à leurs périphériques et interfaces ne dépend plus du nom des interfaces. La configuration des périphériques est située dans /etc/sysconfig/hardware/hwcfg-*. La configuration des interfaces se trouve dans /etc/sysconfig/network/ifcfg-*. Le nom des fichiers de configuration est attribué de façon à décrire leurs périphériques et interfaces respectifs. L'association précédente entre pilotes et noms d'interface nécessitait des noms d'interface statiques. Cette association ne peut donc plus avoir lieu dans /etc/modprobe.conf. Avec le nouveau concept, des déclarations d'alias dans ce fichier provoqueraient des effets secondaires indésirables.

Les noms des configurations (tout ce qui suit hwcfg- ou ifcfg-) peuvent décrire les périphériques à l'aide du connecteur, d'un identifiant propre au périphérique ou du nom de l'interface. Par exemple, le nom de configuration d'une carte PCI pourrait être bus-pci-0000:02:01.0 (connecteur PCI) ou vpid-0x8086-0x1014-0x0549 (ID fabricant et ID produit). Le nom de l'interface associée pourrait être bus-pci-0000:02:01.0 ou wlan-id-00:05:4e:42:31:7a (adresse MAC).

Pour assigner une configuration réseau à une carte d'un type donné (dont une seule peut être insérée à la fois) plutôt qu'à une carte donnée, sélectionnez des noms de configuration moins spécifiques. Par exemple, bus-pcmcia peut être utilisé pour toutes les cartes PCMCIA. D'autre part, les noms peuvent être limités par l'utilisation du type d'interface. Par exemple, wlan-bus-usb pourrait désigner les cartes WLAN connectées à un port USB.

Le système utilise toujours la configuration qui décrit le mieux une interface ou le périphérique qui fournit l'interface. La commande getcfg permet de rechercher la meilleure configuration possible. Le résultat de getcfg fournit toutes les informations utiles pour décrire un périphérique. Les détails sur les noms de configuration sont disponibles à la page de manuel qui porte sur getcfg.

La méthode décrite permet de configurer correctement une interface réseau même si les périphériques réseau ne sont pas toujours initialisés dans le même ordre. Toutefois, le nom de l'interface dépend toujours de l'ordre d'initialisation. Il existe deux manière de garantir un accès fiable à l'interface d'une carte réseau donnée :

La commande ifup exige une interface existante puisqu'elle n'initialise pas le matériel. La commande hwup (exécutée par hotplug ou coldplug) gère l'initialisation du matériel. Lorsqu'un périphérique est initialisé, hotplug exécute automatiquement la commande ifup pour la nouvelle interface qui est configurée si le mode de démarrage est onboot, hotplug ou auto et si le service network a été démarré. Auparavant, la commande ifup nom d'interface déclenchait l'initialisation du matériel. Désormais, la procédure est inversée. Un composant matériel est d'abord initialisé, puis toutes les autres actions suivent. Vous pouvez ainsi configurer un nombre variable de périphériques de manière optimale avec un ensemble de configurations existant.

Le Tableau 18.5, « Scripts de configuration réseau manuelle » récapitule les principaux scripts impliqués dans la configuration réseau. Dans la mesure du possible, la distinction a été faite entre matériel et interface.

Tableau 18.5. Scripts de configuration réseau manuelle

Étape de configuration

Commande

Fonction

Matériel

hw{up,down,status}

Les scripts hw* sont exécutés par le sous-système d'enfichage à chaud pour initialiser un périphérique, annuler son initialisation ou demander l'état d'un périphérique. Pour plus d'informations, reportez-vous à la page de manuel qui porte sur hwup.

Interface

getcfg

Vous pouvez utiliser la commande getcfg pour demander le nom d'interface associé au nom d'une configuration ou à la description d'un matériel. Pour plus d'informations, reportez-vous à la page de manuel qui porte sur getcfg.

Interface

if{up,down,status}

Les scripts if* démarrent les interfaces réseau existantes ou retournent l'état de l'interface spécifiée. Pour plus d'informations, reportez-vous à la page de manuel qui porte sur ifup.

Pour plus d'informations sur le système d'enfichage à chaud et les noms de périphérique persistants, reportez-vous au Chapitre 12, Gestion dynamique du périphérique  du kernel avec udev.

18.6.1. Fichiers de configuration

Cette section présente les fichiers de configuration réseau, et explique leur fonction et le format utilisé.

18.6.1.1. /etc/syconfig/hardware/hwcfg-*

Ces fichiers contiennent les configurations matérielles des cartes réseau et d'autres périphériques. Ils contiennent les paramètres nécessaires, tels que le module de kernel, le mode de démarrage et les associations de scripts. Pour plus d'informations, reportez-vous à la page de manuel qui porte sur hwup. Quel que soit le matériel existant, les configurations hwcfg-static-* sont appliquées lors du démarrage de coldplug.

18.6.1.2. /etc/sysconfig/network/ifcfg-*

Ces fichiers contiennent les configurations de l'interface réseau. Ils incluent notamment des informations telles que le mode de démarrage et l'adresse IP. Les paramètres possibles sont décrits dans la page de manuel qui porte sur ifup. En outre, vous pouvez utiliser toutes les variables des fichiers dhcp, wireless et config dans les fichiers ifcfg-* si un paramétrage général doit être utilisé pour une seule interface.

18.6.1.3. /etc/sysconfig/network/config, dhcp, wireless

Le fichier config contient les paramètres généraux relatifs au comportement des commandes ifup, ifdown et ifstatus. Le fichier dhcp contient les paramètres relatifs à DHCP et le fichier wireless, les paramètres concernant les cartes LAN sans fil. Les variables des trois fichiers de configuration sont commentées et vous pouvez également les utiliser dans les fichiers ifcfg-*, où elles sont prioritaires.

18.6.1.4. /etc/sysconfig/network/routes,ifroute-*

Le routage statique des paquets TCP/IP est déterminé ici. Vous pouvez saisir toutes les routes statiques requises par les différentes tâches système dans le fichier /etc/sysconfig/network/routes : routes vers un hôte, routes vers un hôte via une passerelle et routes vers un réseau. Définissez un fichier de configuration supplémentaire pour chaque interface nécessitant un routage individuel : /etc/sysconfig/network/ifroute-*. Remplacez * par le nom de l'interface. Les déclarations des fichiers de configuration du routage ont l'aspect suivant :

# Destination     Fictif/Passerelle     Masque réseau            Périphérique 
# 
127.0.0.0         0.0.0.0           255.255.255.0      lo 
204.127.235.0     0.0.0.0           255.255.255.0      eth0 
par défaut        204.127.235.41    0.0.0.0            eth0 
207.68.156.51     207.68.145.45     255.255.255.255    eth1 
192.168.0.0       207.68.156.51     255.255.0.0        eth1 

La destination de la route apparaît dans la première colonne. Celle-ci peut contenir l'adresse IP d'un réseau ou d'un hôte ou, en cas de serveurs de noms accessibles, le réseau ou le nom d'hôte complet.

La deuxième colonne contient la passerelle par défaut ou une passerelle permettant d'accéder à un hôte ou à un réseau. La troisième colonne contient le masque réseau pour les réseaux ou les hôtes placés derrière une passerelle. Par exemple, le masque est 255.255.255.255 pour un hôte placé derrière une passerelle.

La quatrième colonne n'est utile que pour les réseaux connectés à l'hôte local, tels que la boucle, Ethernet, RNIS, PPP et le périphérique factice. Vous devez saisir le nom du périphérique ici.

Vous pouvez utiliser une cinquième colonne (facultative) pour indiquer le type de route. Les colonnes qui ne sont pas nécessaires doivent comporter un signe moins (-) pour s'assurer que l'analyseur interprète correctement la commande. Pour plus d'informations, reportez-vous à la page de manuel qui porte sur routes(5).

18.6.1.5. /etc/resolv.conf

Ce fichier indique le domaine auquel appartient l'hôte (mot-clé search). L'état de l'adresse du serveur de noms auquel vous devez accéder y figure également (mot-clé nameserver). Vous pouvez spécifier plusieurs noms de domaine. En cas de résolution d'un nom qui n'est pas complet, le système tente d'en générer un en reliant les différents éléments search. Pour utiliser plusieurs serveurs de noms, saisissez plusieurs lignes, chacune débutant par nameserver. Faites précéder les commentaires du caractère #. YaST entre le serveur de noms spécifié dans ce fichier. L'Exemple 18.5, « /etc/resolv.conf » illustre à quoi /etc/resolv.conf peut ressembler.

Exemple 18.5. /etc/resolv.conf


# Our domain
search example.com
#
# We use sun (192.168.0.20) as nameserver
nameserver 192.168.0.20

Certains services, tels que pppd (wvdial), ipppd (isdn), dhcp (dhcpcd et dhclient), pcmcia et hotplug, modifient le fichier /etc/resolv.conf à l'aide du script modify_resolvconf. Si le fichier /etc/resolv.conf a été temporairement modifié par ce script, il contient un commentaire prédéfini qui fournit des informations sur le service qui l'a modifié, l'endroit où le fichier d'origine a été sauvegardé et le moyen de désactiver le mécanisme de modification automatique. Si /etc/resolv.conf est modifié plusieurs fois, le fichier inclut les modifications successives. Vous pouvez revenir sur ces modifications si l'annulation a lieu dans un ordre différent de celui dans lequel les modifications ont été introduites. Parmi les services susceptibles d'avoir besoin de cette flexibilité figurent isdn, pcmcia et hotplug.

Si un service n'a pas été arrêté comme il se doit, vous pouvez utiliser le fichier modify_resolvconf pour restaurer le fichier d'origine. En outre, à l'amorçage du système, un contrôle permet de vérifier s'il existe un fichier resolv.conf modifié ou non nettoyé, par exemple à la suite d'un crash système, auquel cas le fichier resolv.conf d'origine (non modifié) est restauré.

YaST utilise la commande modify_resolvconf check pour savoir si le fichier resolv.conf a été modifié. Il avertit ensuite l'utilisateur que ses modifications seront perdues après la restauration du fichier. À l'exclusion de cet aspect, YaST n'a pas recours au fichier modify_resolvconf. Par conséquent, la modification de resolv.conf via YaST a le même impact que n'importe quelle modification manuelle. Dans les deux cas, l'effet des modifications est permanent. Les modifications demandées par les services mentionnés ne sont que temporaires.

18.6.1.6.  /etc/hosts

Dans ce fichier, illustré dans l'Exemple 18.6, « /etc/hosts », les adresses IP sont assignées aux noms d'hôte. Si aucun serveur de noms n'est implémenté, tous les hôtes vers lesquels une connexion IP doit être configurée doivent être listés ici. Pour chaque hôte, saisissez une ligne composée de l'adresse IP, du nom d'hôte complet et du nom d'hôte dans le fichier. L'adresse IP doit être placée en début de ligne et les éléments doivent être séparés par des espaces et des tabulations. Les commentaires sont toujours précédés du caractère #.

Exemple 18.6. /etc/hosts


127.0.0.1 localhost
192.168.0.20 sun.example.com sun
192.168.0.0 earth.example.com earth

18.6.1.7. /etc/networks

Ici, les noms de réseau sont convertis en adresses réseau. Leur format est similaire à celui du fichier hosts, si ce n'est que les noms de réseau précèdent les adresses. Reportez-vous à l'Exemple 18.7, « /etc/networks ».

Exemple 18.7. /etc/networks


loopback     127.0.0.0
localnet     192.168.0.0

18.6.1.8. /etc/host.conf

Ce fichier contrôle la résolution de noms (conversion des noms d'hôte et de réseau via la bibliothèque du résolveur). Il est exclusivement utilisé pour les programmes liés aux bibliothèques libc4 ou libc5. Pour les programmes glibc actuels, reportez-vous aux paramètres de /etc/nsswitch.conf. Un paramètre doit toujours être seul dans sa propre ligne. Les commentaires sont précédés du caractère #. Le Tableau 18.6, « Paramètres de /etc/host.conf » indique les paramètres disponibles. Un exemple de fichier /etc/host.conf est présenté dans l'Exemple 18.8, «  /etc/host.conf  ».

Tableau 18.6. Paramètres de /etc/host.conf

order hosts, bind

Indique l'ordre d'accès aux services pour la résolution du nom. Les arguments disponibles sont les suivants (séparés par des espaces ou des virgules) :

hosts : lance la recherche dans le fichier /etc/hosts

bind : accède à un serveur de noms

nis : utilise NIS

multi on/off

Détermine si un hôte saisi dans /etc/hosts peut avoir plusieurs adresses IP.

nospoof on spoofalert on/off

Ces paramètres ont un impact sur la prévention de la simulation du serveur de noms, mais n'ont pas d'autre effet sur la configuration réseau.

trim nom de domaine

Le nom de domaine spécifié est séparé du nom d'hôte après la résolution de ce dernier (tant que le nom d'hôte inclut le nom de domaine). Cette option est utile si le fichier /etc/hosts contient uniquement des noms issus du domaine local, mais qui doivent malgré tout être reconnus avec les noms de domaine associés.

Exemple 18.8.  /etc/host.conf


# We have named running
order hosts bind
# Allow multiple addrs
multi on

18.6.1.9. /etc/nsswitch.conf

La bibliothèque C version 2.0 de GNU a introduit le NSS (Name Service Switch – Commutation de service de noms). Pour plus d'informations, reportez-vous à la page de manuel qui porte sur nsswitch.conf(5) et au manuel The GNU C Library Reference Manual.

L'ordre des requêtes est déterminé dans le fichier /etc/nsswitch.conf. Un exemple de fichier nsswitch.conf est présenté dans l'Exemple 18.9, « /etc/nsswitch.conf ». Les commentaires sont précédés du caractère #. Dans cet exemple, l'élément situé sous la base de données hosts signifie qu'une requête est envoyée à /etc/hosts (files) via DNS (reportez-vous au Chapitre 20, Le système de noms de domaine).

Exemple 18.9. /etc/nsswitch.conf


passwd:     compat
group:      compat

hosts:      files dns
networks:   files dns

services:   db files
protocols:  db files

netgroup:   files
automount:  files nis

Les « bases de données » disponibles sur NSS sont listées dans le Tableau 18.7, « Bases de données disponibles via /etc/nsswitch.conf ». De plus, automount, bootparams, netmasks et publickey sont prévus dans un futur proche. Les options de configuration des bases de données NSS sont listées dans le Tableau 18.8, « Possibilités de configuration des « bases de données » NSS ».

Tableau 18.7. Bases de données disponibles via /etc/nsswitch.conf

aliases

Alias de messagerie implémentés par sendmail ; reportez-vous à la page de manuel man 5 aliases.

ethers

Adresses Ethernet.

groupe

Pour les groupes d'utilisateurs ; utilisée par getgrent. Reportez-vous également à la page de manuel qui porte sur group.

hosts

Pour les noms d'hôte et les adresses IP ; utilisée par gethostbyname et les fonctions similaires.

netgroup

Listes des utilisateurs et hôtes valides sur le réseau, dans le but de contrôler les autorisations d'accès. Reportez-vous à la page de manuel qui porte sur netgroup(5).

réseaux

Adresses et noms des réseaux ; utilisée par getnetent.

passwd

Mots de passe utilisateur ; utilisée par getpwent ; reportez-vous à la page de manuel qui porte sur passwd(5).

protocols

Protocoles réseau ; utilisée par getprotoent ; reportez-vous à la page de manuel qui porte sur protocols(5).

rpc

Noms et adresses d'appels de procédure distants ; utilisée par getrpcbyname et les fonctions similaires.

services

Services réseau ; utilisée par getservent.

shadow

Mots de passe shadow des utilisateurs ; utilisée par getspnam ; reportez-vous à la page de manuel qui porte sur shadow(5).

Tableau 18.8. Possibilités de configuration des « bases de données » NSS

files

accès direct aux fichiers (par exemple, /etc/aliases)

db

accès via une base de données

nis, nisplus

NIS ; reportez-vous également au Chapitre 21, Utilisation de NIS

dns

uniquement utilisée en tant qu'extension de hosts et networks

compat

uniquement utilisée en tant qu'extension de passwd, shadow et group

18.6.1.10. /etc/nscd.conf

Ce fichier permet de configurer nscd (name service cache daemon - démon cache de service de noms). Reportez-vous aux pages de manuel qui portent sur nscd(8) et nscd.conf(5). Par défaut, les entrées système de passwd et groups sont mises en cache par nscd. Cela est important pour les performances des services Annuaire, tels que NIS et LDAP puisque, sinon, la connexion réseau doit être utilisée pour chaque accès aux noms ou aux groupes. hosts n'est pas mis en cache par défaut puisque le mécanisme de nscd qui permet de mettre les hôtes en cache rend le système local incapable de se fier aux recherches directes et inverses. Configurez un serveur de cache DNS au lieu de demander à nscd de mettre les noms en mémoire cache.

Si la mise en cache de passwd est activée, la reconnaissance d'un nouvel utilisateur local prend environ 15 secondes. Pour réduire ce temps d'attente, redémarrez nscd à l'aide de la commande rcnscd restart.

18.6.1.11. /etc/HOSTNAME

Il contient le nom d'hôte sans le nom de domaine associé. Ce fichier est lu par plusieurs scripts lors du démarrage de la machine. Il peut contenir uniquement une ligne dans laquelle le nom d'hôte est défini.

18.6.2. Scripts de démarrage

En plus des fichiers de configuration décrits précédemment, il existe différents scripts qui chargent les programmes réseau lors du démarrage de la machine. Ces programmes démarrent dès que le système passe à l'un des niveaux d'exécution multi-utilisateurs. Certains de ces scripts sont décrits dans le Tableau 18.9, « Quelques scripts de démarrage des programmes réseau ».

Tableau 18.9. Quelques scripts de démarrage des programmes réseau

/etc/init.d/network

Ce script gère la configuration des interfaces réseau. Le matériel doit déjà avoir été initialisé par /etc/init.d/coldplug (via hotplug). Si le service network n'a pas été démarré, aucune interface réseau n'est implémentée lors de son ajout via hotplug.

/etc/init.d/inetd

Démarre le service xinetd, qui permet de rendre les services de serveur disponibles sur le système. Par exemple, il peut démarrer vsftpd dès l'établissement d'une connexion FTP.

/etc/init.d/portmap

Démarre portmapper dont le serveur RPC a besoin (un serveur NFS, par exemple).

/etc/init.d/nfsserver

Démarre le serveur NFS.

/etc/init.d/sendmail

Contrôle le processus sendmail.

/etc/init.d/ypserv

Démarre le serveur NIS.

/etc/init.d/ypbind

Démarre le client NIS.