Au démarrage, le terminal X va chercher ses fichiers (y compris le
serveur X) sur une machine du réseau. Une fois démarré, le serveur X
contrôlera les entrées (clavier, souris), l'affichage, les clients
locaux et la communication par le protocole X. Le serveur X s'exécute
sur le terminal X, et n'a donc besoin d'aucune compatibilité
logicielle avec la machine hôte.
Les protocoles TFTP (Trivial File Transfer Protocol,
protocole élémentaire de transfert de fichiers) et BootP (boot
protocol, protocole d'amorçage) sont utilisés ensemble sur la
machine hôte pour permettre au terminal X de récupérer le serveur X
et les fichiers de configuration à travers le réseau. Ces deux services
sont habituellement démarrés par inetd (Internet Daemon).
Lorsque le terminal X est mis sous tension, si il est configuré pour
un démarrage par le réseau, il émet un appel général
(broadcast) sur le réseau en utilisant le protocole BootP
(protocole d'amorçage TCP/IP). Ce message d'appel contient l'adresse matérielle
(Ethernet) du terminal X, adresse qui sera utilisée par la machine hôte pour répondre à la "demande de boot".
Lorsque la machine hôte reçoit une demande de boot, inetd
(qui surveille un port désigné dans /etc/services) démarre le
démon BootP spécifié dans /etc/inetd.conf.
Dans le fichier inetd.conf, ajoutez ou dé-commentez les lignes qui
concernent TFTP ou BootP. Dans l'exemple qui suit, le dernier
paramètre de la ligne de TFTP indique le répertoire qui contient
les fichiers pour le terminal X. Bien que les noms de répertoires ne soient
pas obligatoires, pour des raisons de sécurité il faut toujours les mettre,
de façon à restreindre l'accès TFTP à ces seuls répertoires.
Exemple de fichier /etc/inetd.conf (extrait) :
# Le service TFTP sert principalement au boot. La plupart des sites
# ne font tourner ceci que sur les machines qui sont des "serveurs de boot".
tftp dgram udp wait root /usr/sbin/tcpd /usr/sbin/in.tftpd /usr/X11/lib/X11/ncd/
bootps dgram udp wait root /usr/sbin/tcpd /usr/sbin/in.bootpd
Lors de son activation, le démon du serveur BootP lit son fichier de données
/etc/bootptab. Une description de ce terminal X doit s'y trouver.
Chaque description contient un ensemble d'éléments séparés par des deux-points
":". Le premier élément est le nom du terminal.
Éléments utiles du fichier bootptab :
- hd
(home directory) Répertoire contenant
le fichier de boot du terminal X (ici /usr/X11/lib/X11/ncd/).
- ip
Addresse IP du terminal X (dans notre exemple 10.0.0.1).
- sm(subnet mask)
masque de sous-réseau
(ici 255.0.0.0). Pour comprendre l'usage des masques de
sous-réseau et autres principes des réseaux IP, consultez le Linux
NET-3 HOWTO.
- gw(gateway)
adresse IP de la passerelle
(ici 10.0.0.1).
- ht(hardware type)
Type de
matériel. C'est ethernet dans cet exemple.
- ha(hardware address)
Adresse matérielle du terminal X (adresse Ethernet sur 6 octets).
D'après la page bootptab du manuel UNIX, l'élément
"ht" doit précéder le "ha". L'adresse Ethernet
s'affiche à la mise sous tension du terminal X, sous forme d'une série
de 6 nombres à deux chiffres hexadécimaux, séparés par des
deux-points. Par exemple
00:00:A7:12:26:19
- tc(table continuation)
Suite d'une autre description du fichier bootptab. Voir l'exemple ci-dessous.
- ds(domain name server)
Adresse IP du serveur de
noms (par exemple 10.0.0.3). Inutile si la résolution d'adresse
n'utilise pas de serveur de noms (DNS).
- bf(boot file)
Nom du fichier contenant le serveur du
terminal X (d'habitude le nom du fichier est celui du modèle du
terminal X, ici Xncd19r).
Ce qui suit est un exemple de fichier /etc/bootptab.
Le caractère "\" sert à neutraliser les fins de ligne.
# Ceci est une description, appelée ici ``default'', avec
# des informations communes à tous les clients BootP
default:hd=/usr/X11/lib/X11/ncd/:\
ds=10.0.0.3:\
sm=255.0.0.0:\
gw=10.0.0.1:
# Le terminal X s'appelle ``myxterm''. Remarquez l'élément
# ``tc'' qui fait référence à la description ``default''.
myxterm:ht=ethernet:\
ha=0x0000a7122619:\
ip=10.0.0.2:\
tc=default:\
bf=Xncd19r:
Lorsque le démon bootpd trouve (dans le fichier bootptab) une
description qui correspond à l'adresse matérielle contenue dans une requête
de boot, il envoie une réponse à l'adresse IP correspondante. Le transfert
de fichiers peut alors se faire par TFTP au dessus de IP.
On attribue un nom au terminal X en ajoutant une description dans le
fichier /etc/hosts de la machine hôte. Ce fichier sert à
établir une correspondance entre noms de machines et adresses IP.
Dans l'exemple ci-dessous, le terminal X (d'adresse 10.0.0.2)
est nommé "myxterm" :
10.0.0.1 linuxhost # La machine hôte (serveur de boot)
10.0.0.2 myxterm # terminal X
|