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 :
getcfg-interface retourne le nom de l'interface réseau associée. Par conséquent, le nom de configuration, tel que pare-feu, dhcpd, routage ou différentes interfaces réseau virtuelles (tunnels), peut être saisi dans certains fichiers de configuration à la place du nom d'interface, qui n'est pas persistant.
nom de la configuration
Il est possible d'assigner automatiquement des noms d'interface persistants à chaque interface. Vous pouvez ensuite les modifier en fonction de vos besoins. Lorsque vous créez des noms d'interface, respectez la procédure stipulée dans le fichier /etc/udev/rules.d/30-net_persistent_names.rules. Toutefois, le nom persistant pname ne doit pas être identique au nom automatiquement attribué par le kernel. Par conséquent, eth*, tr*, wlan*, etc., ne sont pas autorisés. Utilisez plutôt net* ou des noms descriptifs comme externe, interne ou dmz. Vérifiez qu'un même nom d'interface n'existe pas en double. Les noms d'interface sont limités aux caractères autorisés suivants : [a-z] [A-Z] [0-9]. Vous ne pouvez assigner un nom persistant à une interface qu'immédiatement après son enregistrement, ce qui impose de recharger le pilote de la carte réseau ou d'exécuter hwup . La commande rcnetwork description du périphériquerestart ne suffit pas pour remplir cette fonction.
![]() | utilisation de noms d'interface persistants |
|---|---|
L'utilisation de noms d'interface persistants n'a pas été testée dans tous les domaines. Par conséquent, certaines applications risquent de ne pas être en mesure de gérer les noms d'interface librement choisis. | |
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 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.
nom d'interface
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 |
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 |
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.
Cette section présente les fichiers de configuration réseau, et explique leur fonction et le format utilisé.
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.
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.
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.
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).
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.
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 #.
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 ».
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 | |
bind : accède à un serveur de noms | |
nis : utilise NIS | |
multi on/off | Détermine si un hôte saisi dans |
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 |
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
|
Alias de messagerie implémentés par |
| Adresses Ethernet. |
|
Pour les groupes d'utilisateurs ; utilisée par |
|
Pour les noms d'hôte et les adresses IP ; utilisée par |
|
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 |
|
Adresses et noms des réseaux ; utilisée par |
|
Mots de passe utilisateur ; utilisée par |
|
Protocoles réseau ; utilisée par |
|
Noms et adresses d'appels de procédure distants ; utilisée par |
|
Services réseau ; utilisée par |
|
Mots de passe shadow des utilisateurs ; utilisée par |
Tableau 18.8. Possibilités de configuration des « bases de données » NSS
|
accès direct aux fichiers (par exemple, |
| accès via une base de données |
| NIS ; reportez-vous également au Chapitre 21, Utilisation de NIS |
|
uniquement utilisée en tant qu'extension de |
|
uniquement utilisée en tant qu'extension de |
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.
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
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. | |
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. | |
Démarre portmapper dont le serveur RPC a besoin (un serveur NFS, par exemple). | |
Démarre le serveur NFS. | |
Contrôle le processus sendmail. | |
Démarre le serveur NIS. | |
Démarre le client NIS. |