Les logiciels réseau ne devraient être configurés manuellement qu'en second recours. Nous recommandons d'utiliser YaST. Toutefois, connaître les mécanismes sous-jacents de la configuration réseau facilitera votre travail avec YaST.
Toutes les cartes réseau — qu'elles soient intégrées ou qu'il s'agisse d'un périphérique branché à chaud (PCMCIA, USB et certaines cartes PCI) — seront reconnues et installées par le biais de hotplug. Une carte réseau est vue par le système de deux manières. Elle est d'une part considérée comme un périphérique physique et d'autre part comme une interface. Le branchement ou la détection du périphérique entraîne un événement de branchement à chaud (hotplug event). Cet événement entraîne alors l'initialisation du périphérique par le biais du script /sbin/hwup. Lorsque une carte réseau est initialisée en tant que nouvelle interface réseau, le noyau déclenche un événement supplémentaire. Cela entraîne l'installation de l'interface par le biais de /sbin/ifup.
Le noyau associe les noms d'interfaces suivant l'ordre de leur enregistrement. L'ordre d'initialisation est déterminant pour l'attribution des noms. Si, en présence de plusieurs cartes réseau, l'une d'elles tombe en panne, la numérotation de toutes celles qui sont initialisées ensuite est décalée. Pour les cartes qui peuvent réellement être branchées à chaud, le plus important est l'ordre dans lequel les périphériques sont associés.
Pour obtenir une configuration flexible, la configuration des périphériques
(matériel) et celle des interfaces sont séparées et l'association des
configurations à leurs périphériques et interfaces respectifs ne dépend
plus des noms des interfaces. La configuration des périphériques se trouve
dans /etc/sysconfig/hardware/hwcfg-* tandis que la
configuration des interfaces se trouve dans
/etc/sysconfig/network/ifcfg-*. Les noms des fichiers de
configuration sont choisis de manière à ce qu'ils décrivent leurs
périphériques et interfaces respectifs. Comme l'association précédente
entre les pilotes et les noms d'interface supposait que les noms d'interface
soient statiques, cette association ne peut plus avoir lieu dans
/etc/modprobe.conf. Avec le nouveau principe de
fonctionnement, les déclarations d'alias dans ce fichier pourraient provoquer
des effets secondaires indésirables.
Les noms des configurations — c'est à dire tout ce qui suit
hwcfg- ou ifcfg — peuvent décrire
les périphériques au moyen de l'emplacement dans lequel il est monté, d'un
identifiant propre au périphérique ou du nom de l'interface. Par exemple,
pour une carte PCI il pourrait s'agir de
bus-pci-0000:02:01.0 (emplacement PCI) ou de
vpid-0x8086-0x1014-0x0549 (identifiant du fabricant et du
produit). Le nom de l'interface correspondante pourrait être également
bus-pci-0000:02:01.0 ou encore
wlan-id-00:05:4e:42:31:7a (adresse MAC).
Si on ne veut pas associer une configuration à une carte donnée mais plutôt
à une carte d'un type donné (une seule carte de ce type étant branchée à
la fois), on choisit un nom de configuration moins particulier. On utilise
alors par exemple bus-pcmcia pour toutes les cartes PCMCIA.
D'autre part, les noms peuvent aussi être limités par l'utilisation du type
d'interface. Ainsi, wlan-bus-usb concernera toutes les
cartes WLAN branchées à un port USB.
La configuration utilisée est toujours celle qui décrit le mieux l'interface ou le périphérique qui fournit l'interface. La meilleure configuration sera recherchée par /sbin/getcfg. getcfg fournit toutes les informations que l'on peut utiliser pour décrire un périphérique. Les détails concernant les noms de configuration se trouvent dans la page de manuel de getcfg.
Avec la méthode décrite, une interface réseau est configurée avec la configuration correcte, même lorsque le périphérique réseau n'est pas toujours initialisé dans le même ordre. Cependant, le nom de l'interface dépend encore de l'ordre d'initiialisation. Il y a deux manières d'assurer un accès fiable à l'interface d'une carte réseau donnée :
/sbin/getcfg-interface
retourne le nom de l'interface réseau correspondante. C'est pourquoi il est également
possible d'indiquer le nom de configuration, tel que pare-feu, dhcpd, routage et diverses
interfaces réseau virtuelles (tunnels), à la place du nom de l'interface (qui n'est pas
persistant) dans certains fichiers de configuration, mais pas encore dans tous.
nom-de-la-configuration
On peut affecter un nom d'interface persistant à toute interface dont le
fichier de configuration ne porte pas le nom de l'interface. Ce but est
atteint par le biais de déclarations
PERSISTENT_NAME=<nomp> dans un fichier de
configuration d'interface (ifcfg-*). Le nom persistant
pname ne peut en revanche pas être le même que
le noyau donnerait automatiquement. Par conséquent,
eth*, tr*, wlan*,
qeth*, iucv*, etc. ne sont pas
autorisés. Utilisez à la place net* ou des noms
descriptifs tels que externe, interne
ou dmz. Un nom persistant ne peut être attribué à une
interface qu'immédiatement après son enregistrement, ce qui impose de
recharger les pilotes des cartes réseau ou d'exécuter
hwup <description-du-périphérique>).
La commande rcnetwork restart ne
suffit pas.
![]() | Utiliser des noms d'interfaces persistants |
|---|---|
L'utilisation des noms d'interface persistants n'a pas encore été testée dans tous les domaines. Par conséquent, iI se peut que certaines applications ne puissent pas gérer les noms d'interfaces librement choisis. Si vous êtes confronté à un problème de ce genre, veuillez nous en informer à l'aide de http://www.suse.de/feedback. | |
ifup exige une interface existante, du fait qu'il
n'initialise pas le matériel. L'initialisation du matériel est gérée par
la commande hwup (exécutée par hotplug
ou coldplug). Quand un périphérique est initialisé,
hotplug exécute automatiquement ifup
pour la nouvelle interface et cette dernière est mise en service si le mode
de démarrage est onboot, hotplug ou
auto et si le service network a été
démarré. Auparavant, il était d'usage que la commande
ifup <nom-de-l-interface> lance
l'initialisation du matériel. La procédure est maintenant inversée. Un
composant matériel est d'abord initialisé, puis toutes les autres actions
suivent. Ainsi, il est possible de configurer un nombre variable de
périphériques de manière optimale avec un ensemble de configurations
existantes.
Tableau 22.5, « Scripts pour la configuration manuelle du réseau » résume les principaux scripts impliqués dans la configuration réseau. Dans la mesure du possible, une distinction a été faite entre interface et matériel.
Tableau 22.5. Scripts pour la configuration manuelle du réseau
|
Étape de configuration |
Commande |
Fonction |
|---|---|---|
|
Matériel |
hw{up,down,status} |
Les scripts |
|
Interface |
getcfg |
getcfg vous permet d'obtenir à partir du nom d'une
configuration ou d'une description matérielle le nom de l'interface
correspondante. De plus amples informations sont disponibles dans
man |
|
Interface |
if{up,down,status} |
Les scripts |
Vous trouverez plus d'informations à propos des noms de périphériques persistants dans Chapitre 18, Le système Hotplug et Chapitre 19, Nœuds de périphériques dynamiques avec udev.
Cette section donne un aperçu des fichiers de configuration réseau et explique leur fonction ainsi que le format utilisé.
Ces fichiers contiennent les configuration matérielles des cartes réseau
et des autres périphériques. Ils contiennent les paramètres nécessaires,
comme le module du noyau, le mode de démarrage et les associations de
scripts. Pour les détails, reportez-vous à la page de manuel de
hwup. Les configurations de
hwcfg-static-* sont appliquées lorsque coldplug
démarre, indépendamment du matériel existant.
Ces fichiers contiennent les configurations de l'interface réseau. Ils
contiennent 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 de
ifup. Il est également possible d'utiliser toutes les
variables des fichiers dhcp,
wireless et config dans les
fichiers ifcfg-* si un réglage général ne doit être
utilisé que pour une seule interface.
Le fichier config contient les réglages généraux
concernant le comportement de ifup,
ifdown et ifstatus.
dhcp contient des réglages concernant DHCP et
wireless des réglages liés aux cartes réseau sans
fil. Les variables de ces trois fichiers sont commentées et peuvent
également être utilisées dans les fichiers ifcfg-*
où elles sont prioritaires.
Le routage statique des paquets TCP/IP est fixé ici. Toutes les routes
statiques exigées par les diverses tâches du système peuvent être
indiquées dans le fichier
/etc/sysconfig/network/routes : les routes vers un
hôte, les routes vers un hôte via une passerelle et les routes vers un
réseau. Pour chaque interface nécessitant un routage individuel,
définissez un fichier de configuration supplémantaire :
/etc/sysconfig/network/ifroute-*. Remplacez
* par le nom de l'interface. Voici à quoi ressemblent
les déclarations des fichiers de configuration du routage :
DESTINATION
PASSERELLE MASQUE INTERFACE [ TYPE ] [ OPTIONS ] DESTINATION
PASSERELLE LG_PREFIXE INTERFACE [ TYPE ] [ OPTIONS ] DESTINATION/LG_PREFIXE
PASSERELLE - INTERFACE [ TYPE ] [ OPTIONS ]
Pour ne pas indiquer PASSERELLE, MASQUE, LG_PREFIXE ou INTERFACE, écrivez
- à la place. Les déclarations TYPE et OPTIONS peuvent
simplement être omises.
La destination de la route est dans la première colonne. Cette colonne peut contenir l'adresse IP d'un réseau, d'un hôte ou, dans le cas de serveurs de noms accessibles, le réseau ou le nom d'hôte pleinement qualifié.
La deuxième colonne contient la passerelle par défaut ou une passerelle
par laquelle il est possible d'accéder à un hôte ou un réseau. La
troisième colonne contient le masque réseau pour des réseaux ou des
hôtes derrière une passerelle. Par exemple, le masque est
255.255.255.255 pour un hôte
derrière une passerelle.
La dernière colonne n'est pertinente que pour les réseaux connectés à l'hôte local, comme la boucle locale, Ethernet, RNIS, PPP et le périphérique factice. Le nom du périphérique doit être saisi ici.
Ce fichier indique à quel domaine l'hôte appartient (mot-clé
search). Y figure également l'état de l'adresse
du serveur de noms auquel accéder (mot-clé
nameserver). Plusieurs noms de domaine peuvent
être spécifiés. Lors de la résolution d'un nom qui n'est pas pleinement
qualifié, une tentative est effectuée pour en générer un en accolant les
différents éléments search. Utilisez plusieurs
serveurs de noms en saisissant plusieurs lignes commençant chacune par
nameserver. Faites précéder les commentaires par
des caractères #. YaST enregistre le serveur de noms
spécifié dans ce fichier. Exemple 22.5, « /etc/resolv.conf
»
montre à quoi /etc/resolv.conf pourrait ressembler.
Exemple 22.5. /etc/resolv.conf
# Notre domaine search exemple.com
# Nous utilisons soleil (192.168.0.20) comme serveur de noms nameserver 192.168.0.20
Certains services, comme pppd
(wvdial), ipppd
(isdn), dhcp(dhcpcd
et dhclient), pcmcia et
hotplug, modifient le fichier
/etc/resolv.conf au moyen 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 comment on peut revenir sur le mécanisme de modification
automatique. Si l'on modifie plusieurs fois
/etc/resolv.conf, le fichier imbrique les modifications
successives. Vous pouvez revenir sur celles-ci proprement si cette
annulation a lieu dans un ordre différent de celui dans lequel les
modifications ont été introduites. Les services susceptibles d'exiger
cette flexibilité comprennent isdn,
pcmcia et hotplug.
Lorsqu'on n'a pas mis fin à un service de façon normale et propre, il est
possible de restaurer le fichier original à l'aide de
modify_resolvconf. De plus, lors de l'amorçage du
système, un contrôle est effectué pour vérifier s'il ne reste pas un
resolv.conf non nettoyé, modifié, par exemple après une
panne du système, auquel cas le resolv.conf original
(non modifié) est restauré.
YaST utilise la commande modify_resolvconf
check pour savoir si resolv.conf a
été modifié et avertit ensuite l'utilisateur que ses modifications seront
perdues après la restauration du fichier. En dehors de cela, YaST ne
compte pas sur modify_resolvconf, ce qui signifie que
l'impact du changement de resolv.conf par le biais de
YaST équivaut à une modification manuelle. Dans les deux cas, les
changements ont un effet permanent. Les modifications demandées par les
services mentionnés ne sont que temporaires.
Dans ce fichier représenté dans
Exemple 22.6, « /etc/hosts
»), les adresses IP sont affectées
à des noms d'hôtes. Si aucun serveur de noms n'est mis en œuvre, il faut
lister ici tous les hôtes avec lesquels une connexion IP doit être
configurée. Pour chaque hôte, saisissez une ligne composée de l'adresse
IP, du nom d'hôte pleinement qualifié et du nom d'hôte dans le fichier.
L'adresse IP doit être placée au début de la ligne et les autres
éléments séparés par des blancs et des tabulations. Les commentaires
sont toujours précédés d'un caractère #.
C'est ici que 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. Consultez
Exemple 22.7, « /etc/networks
»).
La résolution de noms — la traduction de noms d'hôtes et de noms de
réseaux via la bibliothèque resolver — est
contrôlée par ce fichier. On ne l'utilise que pour les programmes liés à
la libc4 ou la libc5. Pour les programmes glibc actuels, reportez-vous aux
réglages contenus dans le fichier /etc/nsswitch.conf.
Un paramètre doit toujours se trouver seul dans sa propre ligne. Les
commentaires sont précédés d'un caractère #. Un
exemple de /etc/host.conf est présenté dans
Tableau 22.6, « Paramètres de /etc/host.conf ».
Tableau 22.6. Paramètres de /etc/host.conf
|
Il s'agit d'établir l'ordre de consultation des services de résolution d'un nom. Les arguments possibles sont (séparés l'un de l'autre par des espaces ou des virgules) : | |
|
hosts : chercher dans le fichier
| |
|
bind : accéder à un serveur de noms | |
|
nis utiliser NIS | |
|
Détermine si un ordinateur donné peut avoir plusieurs adresses IP
dans | |
|
Ces paramètres agissent sur la prévention d'usurpation (spoofing) du serveur de noms, mais n'ont pas d'autre impact sur la configuration réseau. | |
|
Le nom de domaine indiqué est séparé du nom d'hôte après la
résolution du nom d'hôte (si du moins le nom d'hôte comprend le nom
de domaine). Cette option est utile si le fichier
|
La version 2.0 de la bibliothèque C de GNU a introduit le
Name Service Switch (NSS). Reportez-vous à la page de
manuel man 5 nsswitch.conf et au
The GNU C Library Reference Manual pour les détails.
L'ordre des requêtes est défini dans le fichier
/etc/nsswitch.conf. Un exemple de
nsswitch.conf est présenté dans
Exemple 22.9, « /etc/nsswitch.conf
». Les commentaires sont
introduits par des caractères #. Dans cet exemple,
l'élément placé sous la base de données hosts
signifie qu'une requête est envoyée à /etc/hosts
(files) via DNS (reportez-vous à la
section Chapitre 24, La résolution de noms).
Exemple 22.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 répertoriées
dans le tableau Tableau 22.7, « Bases de données disponibles dans /etc/nsswitch.conf ». De plus,
automount, bootparams,
netmasks et publickey sont attendus
dans un futur proche.
Les options de configuration pour les bases de données NSS sont
répertoriées dans le
tableau Tableau 22.8, « Possibilités de configuration des bases de données NSS ».
Tableau 22.7. Bases de données disponibles dans /etc/nsswitch.conf
|
|
Alias de courrier utilisés par |
|
|
Adresses Ethernet. |
|
|
Pour les groupes d'utilisateurs, utilisés par
|
|
|
Pour les noms d'hôtes et les adresses IP, utilisés par
|
|
|
Il s'agit de la liste en vigueur sur le réseau des hôtes et des
utilisateurs pour le contrôle des droits d'accès ; reportez-vous
à man |
|
|
Noms et adresses des réseaux utilisés par
|
|
|
Mots de passe utilisateur utilisés par
|
|
|
Protocoles réseau utilisés par
|
|
|
Noms et adresses d'appels de procédure distants (Remote
Procedure Call) utilisés par
|
|
|
Services réseau utilisés par |
|
|
Mots de passe shadow des utilisateurs utilisés
par |
Tableau 22.8. Possibilités de configuration des bases de données NSS
|
|
accès direct à des fichiers, par exemple à
|
|
|
accès à une base de données. |
|
|
NIS, reportez-vous à Chapitre 25, Utiliser NIS |
|
|
peut seulement être utilisé comme extension de |
|
|
peut seulement être utilisé comme extension de
|
Ce fichier permet de configurer nscd (name service cache daemon).
Reportez-vous à man 8 nscd et
man 5 nscd.conf). Par défaut, les
éléments système provenant de passwd et
groups sont mis en cache par nscd. C'est important pour les
performances des services de répertoires comme NIS et LDAP, car sinon il
faut utiliser la connexion réseau pour chaque accès aux noms ou aux
groupes. hosts n'est normalement pas mis en cache par
défaut, parce que le mécanisme contenu dans nscd pour mettre en cache les
hôtes rend le système incapable de se fier aux contrôles de recherches
directes ou inverses. Au lieu de demander à nscd de mettre des noms en
cache, configurez un serveur de cache DNS.
Si la mise en cache de passwd est activée, il faut environ
15 secondes jusqu'à ce qu'un utilisateur local récemment ajouté soit
reconnu. Réduisez ce temps d'attente en redémarrant nscd avec la commande
rcnscd restart.
En dehors des fichiers de configuration décrits précédemment, il y a également différents scripts qui chargent les programmes réseau pendant que la machine amorce. Ceux-ci sont démarrés dès que le système passe à un des niveaux d'exécution multi-utilisateurs. Certains de ces scripts sont décrits dans le tableau Tableau 22.9, « Quelques scripts de démarrage des programmes réseau »).
Tableau 22.9. Quelques scripts de démarrage des programmes réseau
|
Ce script gère la configuration des interfaces réseau. Le matériel doit déjà avoir été initialisé par /etc/init.d/coldplug (par le biais de hotplug). Si le service network n'a pas été démarré, aucune interface réseau n'est mise en œuvre quand elle est ajoutée au moyen de hotplug. | |
|
Démarre xinetd. xinetd peut servir à mettre à disposition des services de serveur sur le système. Par exemple, il peut démarrer vsftpd chaque fois qu'une connexion FTP est initiée. | |
|
Démarre portmapper, lequel est requis pour pouvoir utiliser un serveur RPC, comme par exemple un serveur NFS. | |
|
Démarre le serveur NFS. | |
|
Contrôle le processus sendmail. | |
|
Démarre le serveur NIS. | |
|
Démarre le client NIS. |