Démarrage en réseau avec Linux – PXE

Cet article ici est quelque peu lié à notre précédent, dans la mesure où il traite du sujet du démarrage et de l’installation de Linux en utilisant le réseau, qu’il soit local ou non. Cette fois-ci, nous traiterons de l’installation de Linux sans support optique, disquette ou autre support amovible, en utilisant simplement le réseau local. Vous devez avoir au moins deux ordinateurs dans votre réseau, et le client aura besoin d’une carte réseau et d’un BIOS capable d’utiliser PXE. Nous vous guiderons du début à la fin, mais quelques connaissances de base sur les réseaux et la configuration de Linux, ainsi que l’utilisation d’un éditeur de votre choix sont nécessaires. Vous apprendrez ce qu’est PXE, comment configurer un serveur DHCP, comment configurer un serveur TFTP pour que le client puisse avoir accès aux fichiers, plus beaucoup de choses intéressantes, comme d’habitude.

PXE

PXE (prononcé « pixie ») signifie Preboot eXecution Environment et a été introduit par Intel et Systemsoft en 1999. En bref, il s’agit d’une capacité dont disposent la plupart des cartes réseau et des BIOS modernes et qui permet au système de démarrer à partir du réseau local, tout comme il le ferait à partir du disque dur ou du CD-ROM. Le support PXE doit être présent dans le firmware de la carte réseau qui, s’il est configuré en conséquence dans le BIOS, obtiendra une adresse IP du serveur PXE et téléchargera les images de démarrage nécessaires. Pour qu’une adresse IP soit disponible, le serveur doit proposer le DHCP. Une fois l’adresse IP louée, le serveur TFTP (qui peut être la même boîte que le serveur DHCP) transmet les fichiers nécessaires au client, afin qu’il puisse les amorcer après le chargement. C’est toute l’idée, alors assez parlé, mettons-nous au travail, d’accord ?

Installation des outils nécessaires et mise en place

Avant de commencer, il est important de comprendre comment est disposée la configuration du réseau sur lequel nous avons testé ceci. Le serveur est une machine Debian avec deux cartes réseau, et la distribution que nous allons installer est également Debian, à savoir Squeeze, amd64. Vous pouvez utiliser n’importe quelle autre distribution, mais certains emplacements de fichiers de configuration seront probablement différents. Cet article ne traite pas de la manière dont vous allez configurer les sources des logiciels pour l’installation proprement dite. Nous vous conduirons seulement à un installateur Debian fonctionnel et c’est tout. Vous trouverez de nombreux tutoriels sur la façon de mettre en place un dépôt Debian local ou de configurer une passerelle sous Linux.

Donc, la check-list : nous aurons besoin d’un serveur DHCP, d’un serveur TFTP et de l’initrd et de l’image du noyau à transférer au client. Nous avons choisi une approche plutôt inhabituelle dans notre configuration, et vous allez voir pourquoi.

 Outside world ------> Router ------> Switch ------>(eth0) Server(eth1) ------> Client

Donc, le routeur donne des adresses DHCP (petit routeur domestique) sous la forme 192.168.0.x . Le serveur, qui distribuera également des adresses DHCP, a sa connexion extérieure via eth0 et la connexion intérieure pour le client via eth1. Le client dispose de la seule connexion Ethernet directement vers le serveur PXE, mais cela ne signifie pas que vous ne pouvez pas configurer le serveur comme une passerelle pour netinstall ou ajouter une autre carte réseau au client pour un accès extérieur. Il y a beaucoup de possibilités, le point important est le démarrage via PXE. Commençons par installer le serveur TFTP.

SUBSCRIBE NEWSLETTER & RSS
S’abonner à RSS et NEWSLETTER et recevoir les dernières nouvelles de Linux, les emplois, les conseils de carrière et les tutoriels.

TFTP

TFTP est l’abréviation de Trivial File Transfer Protocol et c’est le « langage » de fait quand il s’agit de transférer des fichiers à utiliser avec PXE. Sur Debian, nous l’installons ainsi :

 # aptitude install tftpd-hpa

Maintenant nous devons le configurer correctement. Avant toute chose, dans notre exemple, nous allons exécuter tftpd de manière autonome, ce qui signifie que nous n’allons pas utiliser xinetd. La configuration sera différente si vous prévoyez d’utiliser xinetd, et nous ne le recommandons pas. Maintenant, tout ce que nous avons à faire est d’éditer /etc/default/tftpd-hpa :

#make sure these lines are presentRUN_DAEMON=yesTFTP_OPTIONS="-l -s /var/lib/tftpboot"

Vérifions que le répertoire ci-dessus existe et démarrons le démon :

 # mkdir -p /var/lib/tftpboot # /etc/init.d/tftpboot-hpa start

DHCP

Nous devons offrir au client une adresse avant de commencer l’installation via le réseau, et cela se fait en utilisant le protocole de configuration dynamique des hôtes. Le serveur DHCP dispose d’un pool d’adresses à partir duquel il offre des IP lorsqu’elles sont demandées. On installe la partie serveur avec

 # aptitude install dhcp3-server

Maintenant nous devons définir les informations réseau de eth1, trouvées dans /etc/network/interfaces :

allow-hotplug eth1iface eth1 inet staticaddress 192.168.1.2netmask 255.255.255.0

Redémarrer le réseau et nous avons presque terminé :

 # ifdown eth1 # ifup eth1

Configuration de PXE

Nous devons maintenant configurer le fichier que le client va demander, un fichier dans lequel nous lui indiquerons comment trouver ce dont il a besoin. Donc, créons le répertoire pxelinux.cfg :

 # mkdir /var/lib/tftpboot/pxelinux.cfg 

et créons un fichier nommé ‘default’ qui aura le contenu suivant :

Vous voyez une référence au fichier boot.txt , donc créez-le dans /var/lib/tftpboot et ajoutez-y la ligne « squeeze_amd64_install ».

Maintenant, pour copier les fichiers nécessaires quelque part pour qu’ils soient trouvés par le client :

Maintenant, en espérant que tout va bien, vous pouvez juste démarrer votre client et modifier ses’ paramètres BIOS pour le démarrage réseau. Avant de terminer, nous vous devons une explication pour cette configuration réseau que nous avons choisie. Nous aurions probablement pu faire plus simple, comme utiliser directement la connexion de notre FAI, et être capable d’accéder au réseau (Internet) également. L’idée est que le serveur PXE dans notre scénario ne peut pas obtenir son adresse IP (eth0) à partir de DHCP car cette configuration ne fonctionnera pas : si vous n’utilisez pas le scénario à deux NIC sur le serveur, comme nous l’avons fait, vous avez besoin d’une sorte d’adresse IP fixe. Donc, les possibilités sont les suivantes : ISP connecté directement, configurer le routeur pour qu’il ne donne que des IP statiques, faire du serveur PXE/DHCP/TFTP également une passerelle ou créer un référentiel local. Nous avons choisi cette dernière solution parce qu’elle convient le mieux à notre topologie et à nos objectifs, et qu’elle n’implique que la mise en place d’un serveur web sur le réseau local. Si nous avions expliqué tous vos choix, y compris iptables pour une passerelle ou apache pour un serveur HTTP, cet article aurait été énorme. Au lieu de cela, nous avons préféré nous en tenir au titre et vous donner exactement cela : Le démarrage en réseau avec Linux.

N’oubliez pas que ce n’est qu’un exemple : comme avec NetbootCD, vous pouvez ajouter autant de distributions que vous le souhaitez, à condition d’avoir l’espace nécessaire sur le serveur.

Pensées finales

.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée.