Nmap, Wireshark, TCPdump, IPTraf, IPerf, Nast, Ettercap

 Charge moyenne sur 1mn : 0.13 Charge moyenne sur 5mn : 0.49 Charge moyenne sur 15mn : 0.51


Blocs utilisateurs du site : Infos du compte / droits utilisateurs / récapitulatif

Identifiez-vous

Authentifiez-vous avec votre compte ZW3B et profitez des services membres.

Identifiant :
Mot de passe :
  
  

TFTPD - PXE - DHCPD : Installer Debian par un boot réseau

Le boot réseau passe par PXE (pour Preboot eXecution Environment). La carte réseau possède une PROM qui contient les premières instructions qui vont permettre d'effectuer une requête DHCP (Dynamic Host Configuration Protocol) auprès du serveur afin d'obtenir une adresse IP sur le réseau et de charger ainsi le client PXE en RAM. Le client récupère ensuite le noyau *linux par TFTP (Trivial FTP) et peut donc booter sur ce noyau.

Informations

Dates
  • Publication : Jeudi 20 mai 2004
  • Modification : Jeudi 01 septembre 2011

Introduction

Ce document va décrire les étapes à suivre pour pouvoir lancer une installation de la distribution Debian sur un poste qui ne possède ni lecteur CD ni lecteur disquettes, mais une interface réseau et la prise en charge du boot réseau. Les ultraportables sont par exemple concernés !

Je tiens à dire qu'il s'agit d'une méthode, je ne dis pas que c'est la seule ni la plus simple, mais elle a le mérite de fonctionner et d'être assez générique. Ainsi en appliquant les translations habituelles de commandes entre les différentes distributions, il doit aussi être possible d'appliquer ce petit didacticiel aux autres distributions.

D'autre part, cet article ne prend pas du tout en compte les problèmes de sécurité liés à chacun des serveurs à mettre en place. Nous partons du principe qu'il suffit de les lancer occasionnellement, dans la mesure où l'installation d'une distribution Linux ne se fait que très rarement !

Fonctionnement général

Avant de me lancer dans des explications d'installation et de configuration, je vais expliquer en quelques mots comment fonctionne le boot réseau. (en tout cas, tel que je l'ai compris).

Le boot réseau passe par PXE (pour Preboot eXecution Environment), un protocole propriétaire d'Intel. La carte réseau possède une PROM sur laquelle la machine va booter. Cette PROM contient les premières instructions qui vont permettre d'effectuer une requête DHCP (Dynamic Host Configuration Protocol) auprès du serveur afin d'obtenir une adresse IP sur le réseau et de charger ainsi le client PXE en RAM. Le client récupère ensuite le noyau linux par TFTP (Trivial FTP) et peut donc booter sur ce noyau.

A la lecture de ce paragraphe succint, on s'aperçoit qu'il faut utiliser pas moins de 3 serveurs :

  • 1. TFTPD
  • 2. PXE
  • 3. DHCPD

Installation

Serveur TFTP

Ce serveur est une version ultra simplifiée de FTP, qui ne nécessite aucune authentification. Il ne propose pas non plus l'affichage du contenu des répertoires. Donc, lorsqu'on veut récupérer un fichier, il faut connaitre son nom.

Pour l'installer, tapez simplement :

apt-get install atftpd

Par défaut, son répertoire de base est /tftpboot. Pour le vérifier, éditez le fichier /etc/default/atftpd. S'il n'existe pas, créez-le.

USE_INETD=false
OPTIONS="--daemon --port 69 --retry-timeout 5 --mcast-port 1758 --mcast-addr 239.239.239.0-255 --mcast-ttl 1 --maxthread 100 --verbose=5  /tftpboot"

Ce serveur ne nécessite pas de configuration supplémentaire pour l'usage que nous en aurons.

Serveur PXE

Commencez par l'installer :

apt-get install pxe syslinux

Editez le fichier /etc/pxe.conf et adapter les valeurs réseau au votre, notamment quelle sera l'interface réseau sur lequel va se connecter le client, l'IP de celle-ci ainsi que le chemin de base /tftpboot.

Il faut maintenant définir le fichier de configuration de PXE lui indiquant quel est le noyau linux sur lequel le poste client va booter. Mais comme vous êtes d'heureux utilisateurs d'une Debian, ses développeurs ont pensé à vous (nous) et proposent sur certains miroirs des images et configurations toutes prêtes. Récupérez l'archive netboot.tar.gz présente à cette adresse : http://http.us.debian.org/debian/dists/stable/main/installer-i386/current/images/netboot/ Puis décompressez-la dans /tftpboot.

tar xvzf ./netboot.tar.gz

Si vous n'êtes pas intéressés par le détail de cette configuration, et que seul le boot vous intéresse, vous pouvez passer directement à l'installation de DHCP.

Comme nous l'expliquions en introduction, PXE dans sa configuration précise quel noyau linux vous allez utiliser pour booter sur le poste client. Le fichier de configuration ressemble étrangement à celui de lilo. Il doit se situer dans /tftpboot/pxelinux.cfg/ et s'appeler default.

En voici un exemple :

display debian-installer/i386/boot-screens/syslinux.txt
default linux

F1 debian-installer/i386/boot-screens/f1.txt
F2 debian-installer/i386/boot-screens/f2.txt
F3 debian-installer/i386/boot-screens/f3.txt
F4 debian-installer/i386/boot-screens/f4.txt
F5 debian-installer/i386/boot-screens/f5.txt
F6 debian-installer/i386/boot-screens/f6.txt
F7 debian-installer/i386/boot-screens/f7.txt
F8 debian-installer/i386/boot-screens/f8.txt
F9 debian-installer/i386/boot-screens/f9.txt
F0 debian-installer/i386/boot-screens/f10.txt

label linux
       kernel debian-installer/i386/linux
       append vga=normal initrd=debian-installer/i386/initrd.gz ramdisk_size=9424 root=/dev/rd/0 devfs=mount,dall rw  --
label expert
       kernel debian-installer/i386/linux
       append DEBCONF_PRIORITY=low vga=normal initrd=debian-installer/i386/initrd.gz ramdisk_size=9424 root=/dev/rd/0 devfs=mount,dall rw  --
label linux26
       kernel debian-installer/i386/2.6/linux
       append vga=normal initrd=debian-installer/i386/2.6/initrd.gz debian-installer/framebuffer=false ramdisk_size=10934 root=/dev/rd/0 devfs=mount,dall rw  --
label expert26
       kernel debian-installer/i386/2.6/linux
       append DEBCONF_PRIORITY=low vga=normal initrd=debian-installer/i386/2.6/initrd.gz ramdisk_size=10934 root=/dev/rd/0 devfs=mount,dall rw  -- 

prompt 1
timeout 0

Dans cette exemple j'ai ajouter l'option debian-installer/framebuffer=false pour le boot du noyau linux26 pour utiliser la fonction remote control offerte par le module de management d'un IBM Bladecenter. La syntaxe video=vga16 :off est également possible.

En voici un autre exemple (par default) :

# D-I config version 2.0
# search path for the c32 support libraries (libcom32, libutil etc.)
path debian-installer/i386/boot-screens/
include debian-installer/i386/boot-screens/menu.cfg
default debian-installer/i386/boot-screens/vesamenu.c32
prompt 0
timeout 0

Serveur DHCP

Sous Debian il existe plusieurs versions de ce serveur. Si vous êtes à l'aise avec leur configuration respective, votre version conviendra, sinon en respectant bêtement les instructions suivantes, vous ne devriez pas avoir de difficulté. Commencez par installer le serveur :

apt-get install dhcp

Le fichier de configuration de DHCP permet d'envisager une multitude de cas d'architectures réseaux. Nous allons considérer la plus simple. Le serveur est dans le réseau 10.200.0.0 avec le masque 255.255.255.0. Voici un bloc à rajouter dans /etc/dhcpd.conf afin que la machine cliente obtienne une adresse IP entre 10.200.0.2 et 10.200.0.253. Ces valeurs sont bien sur arbitraires, vous pouvez choisir vous même la plage.

subnet 10.200.0.0 netmask 255.255.255.0 {

   range 10.200.0.2 10.200.0.253;
   option broadcast-address 10.200.0.255;
   option routers 10.200.0.1; # votre routeur
   option domain-name-servers 10.200.0.1;
   filename "/tftpboot/pxelinux.0";

}

group {
   next-server 10.200.0.254; # votre server         
   host tftpclient {
      filename "pxelinux.0";
  }
}

Si vous disposez de plusieurs interfaces réseau, vous pouvez préciser sur laquelle (ou lesquelles) vous voulez que DHCP réponde aux requêtes. Pour cela, il vous suffit d'éditer le fichier /etc/default/dhcp.

Lancement de l'install

Maintenant que tout est installé et configuré, il faut lancer les 3 serveurs :

/etc/init.d/atftpd start
/etc/init.d/pxe start
/etc/init.d/dhcp start

Les 2 premiers ne devraient pas vous poser de problème. DHCP peut quant à lui vous afficher une ligne d'erreur. Pour savoir ce qui ne va pas, vous aurez probablement à inspecter syslog avec la commande :

cat /var/log/messages.

Dès qu'il n'y a plus d'erreur vous pouvez tester votre boot réseau. Branchez la machine cliente et assurez vous qu'elle est configurée pour booter sur le réseau en premier choix. Si tout va bien, vous devriez voir s'afficher au fur et à mesure de l'avancement du boot réseau, de multiples informations : l'adresse IP obtenue, le téléchargement par TFTP, etc ...

Et en quelques secondes, l'écran Debian va s'afficher vous proposant alors d'installer la distribution. Pour tout le reste, tout redevient habituel, mais il faut tout de même considérer que votre machine serveur doit partager sa connexion web si vous voulez installer des paquet.

Si le boot réseau est très long et que vous observez des timeout, cela peut venir soit d'une mauvaise configuration, soit de votre firewall qui bloque les ports des différents serveurs. Pour information, voici les numéros de ports UDP qu'utilisent ces derniers :

  • 1. PXE : 4011
  • 2. DHCPD : 67
  • 3. TFTPD : 69

Pour chacun d'entre eux, vous pouvez modifier le numéro de port associé dans les fichiers de configurations respectifs. Mais gardez en tête que la machine client utilisera très certainement les valeurs par défaut.





Autheur de la page

LAB3W.ORJ

LAB3W.ORJ

  • Prénom : Olivier Romain Luc
  • Nom : Jaillet-ramey
  • Arrivé le mardi 19 octobre 1976 (1976/10/19 00:00)
    43 ans d'activité !

Firefox Nighlty

Nos amis de Framasoft s'intéressent à Mozilla et leur ont posé des questions à propos de Nightly : Firefox Night-club, entrée libre !






Valid XHTML 1.0 Strict CSS Valide !

ipv6 ready