Installation d'un serveur DHCP sous Linux/ubuntu

Un serveur DHCP, en plus de fournir la configuration IP "de base" (Adresse et masque), peut aussi transmettre un nombre plus ou moins grand de paramètres supplémentaires

l'ip du poste le masque de sous réseau la passerelle les serveurs DNS et Wins

Tout d'abord il faut installer le service dhcp3 sur notre distribution préférée... sudo apt-get install dhcp3-server

Une fois installé , il faut éditer le fichiers /etc/dhcp3/dhcpd.conf:

voici mon fichiers avec mes configurations persos:

#Mon Serveur DHCP #Mon domaine option domain-name "appart.lan"; 
#Le serveur Wins option netbios-name-servers 192.168.1.101; #Les serveurs DNS option domain-name-servers 192.168.1.101, 212.27.53.252; #Mon routeur passerelle #option routers 192.168.1.254; #Le bail default-lease-time 21600; #Les sous réseaux #Le sous reseau 192.168.1.0 subnet 192.168.1.0 netmask 255.255.255.0 {  range 192.168.1.110 192.168.1.115; option subnet-mask 255.255.255.0; option broadcast-address 192.168.1.255; option routers 192.168.1.254; } #le sous reseau 192.168.2.0 subnet 192.168.2.0 netmask 255.255.255.0 {  range 192.168.2.110 192.168.2.115; option subnet-mask 255.255.255.0; option broadcast-address 192.168.2.255; option routers 192.168.2.100; } #Configuration des IP fixes #Mon PC B@rtounet host Bartounet  {  hardware ethernet 00:08:54:37:8b:3f;  fixed-address 192.168.1.100; } #Le portable host Laptop { hardware ethernet 00:11:95:48:87:7A; fixed-address 192.168.1.105; } #PC de Pasc host Pasc { hardware ethernet 00:e0:4d:0f:37:ef; fixed-address 192.168.1.102; } #PC de Salon host PCSALON { hardware ethernet 00:0f:ea:84:4a:c8; fixed-address 192.168.1.103;

Si le poste est un routeur avec deux interfaces réseaux, il faut prendre soin de configurer les interfaces qui seront à lécoute des requetes DHCP Pour cela il faut editer le fichier /etc/default/dhcp3-server

# Defaults for dhcp initscript # sourced by /etc/init.d/dhcp # installed at /etc/default/dhcp3-server by the maintainer scripts # # This is a POSIX shell fragment # # On what interfaces should the DHCP server (dhcpd) serve DHCP requests? #       Separate multiple interfaces with spaces, e.g. "eth0 eth1". INTERFACES="eth0 eth2"

après cela n'oubliez pas de redemarrer le daemon dhcp

sudo /etc/init.d/dhcp3-server restart

Installation d'une distribution Ubuntu/Debian sur un laptop sans Lecteur de CDROM

J'ai un petit laptop Dell avec lequel j'ai beaucoup galéré. Mon but était d'installer une distribution Gnu/Linux sur ce portable, mais j'ai vite été confronté au fait qu'il n'avais ni lecteur CD ni possibilité de booter en usb. Heureusement il est doté d'une carte réseau supportant nativement le boot par le réseau (pxe). Le but de ce billet est de me faire un petit aide mémoire pour ce type d'installation. Pour cela il nous faut installer un serveur PXE avec tout le toutim (pxe, tftp, dhcp-server etc ...) Après avoir réfléchi un peu, je me suis rappeler qu'un outil faisait cela très bien sans avoir besoin de se prendre la tête: le fameux System Rescue CD. je m'empresse donc de télécharger la dernière version de cet outil sur le site officiel : http://www.sysresccd.org/ Pour ma part je n'ai pas gracer un CD pour cela. j'ai simplement booter le sysrescuecd a partir d'un DomU Xen. mais vous pouvez très bien le faire en gravant le CD et en bootant sur une machine physique. ou même en utilisant l'outil de virtualisation de votre choix (vmware, virtualbox, qemu et j'en passe). Une fois le system rescue on vérifie que le serveur on active la carte réseau du serveur et on lui assigne une ip ( en fixe ou en DHCP)
root@sysresccd / % ifconfig eth0
pour ma part j'avais dejà mon serveur dhcp qui tournait.
root@sysresccd / % dhclient eth0
root@sysresccd / % ifconfig eth0 eth0 Link encap:Ethernet HWaddr 00:16:3a:11:11:01 inet addr:10.0.0.54 Bcast:10.0.0.255 Mask:255.255.255.0 inet6 addr: fe80::216:3aff:fe11:1101/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:52799 errors:0 dropped:0 overruns:0 frame:0 TX packets:68521 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:14016982 (13.3 MiB) TX bytes:99265410 (94.6 MiB) Interrupt:32 Base address:0x2000
Mon serveur à obtenu l'ip 10.0.0.54/24 On modifie maintenant les options su serveur pxe
root@sysresccd / % vi /etc/conf.d/pxebootsrv
# Copyright 2003-2007 Francois Dupoux - www.sysresccd.org # Distributed under the terms of the GNU General Public License v2 # Config file for /etc/init.d/pxebootsrv # Have a look at the PXE chapter in the official manual for more details: # http://www.sysresccd.org/Sysresccd-manual-en_PXE_network_booting # ------------------------- README ------------------------------------ # The pxebootsrv service allows to provide a PXE-boot-server for # SystemRescueCd out of the box. You just need to edit the following # options and run "/etc/init.d/pxebootsrv restart", and you can boot # any computer of your local network with PXE. # # You must configure these options if the current SystemRescueCd system # acts as DHCP-server and TFTP-server and HTTP-server. If you keep this # default behavior you just need to edit these options and start the # service with "/etc/init.d/pxebootsrv restart". # If you don't want the current system to be the DHCP server, you will have # to configure everything by hand and it will not be possible to use # the pxebootsrv service. # ------------------------ CONFIGURATION ------------------------------- # By default the current systems acts as DHCP and TFTP and HTTP server # If you want another machine of you network to act as one of those # you will have to turn the appropriate option yo "no" # Set to "yes" if you want this machine to act as a DHCP server PXEBOOTSRV_DODHCPD="yes" # Set to "yes" if you want this machine to act as a TFTP server PXEBOOTSRV_DOTFTPD="yes" # Set to "yes" if you want this machine to act as an HTTP server PXEBOOTSRV_DOHTTPD="yes" # Here is a typical PXE-Boot configuration --> update with your settings PXEBOOTSRV_SUBNET="10.0.0.0" # Used only if PXEBOOTSRV_DODHCPD="yes" PXEBOOTSRV_NETMASK="255.255.255.0" # Used only if PXEBOOTSRV_DODHCPD="yes" PXEBOOTSRV_DEFROUTE="10.0.0.253" # Used only if PXEBOOTSRV_DODHCPD="yes" PXEBOOTSRV_DNS="10.0.0.253" # Used only if PXEBOOTSRV_DODHCPD="yes" PXEBOOTSRV_DHCPRANGE="10.0.0.100 10.0.0.110" PXEBOOTSRV_LOCALIP="10.0.0.54" # Keep these values to $PXEBOOTSRV_LOCALIP if the current computer # acts as TFTP server and HTTP server as well as DHCP server PXEBOOTSRV_TFTPSERVER="$PXEBOOTSRV_LOCALIP" # IP address of the TFTP server if PXEBOOTSRV_DODHCPD="yes" PXEBOOTSRV_HTTPSERVER="http://$PXEBOOTSRV_LOCALIP/sysrcd.dat" # download URL
Comme on peut le voir, j'ai modifié le fichier pour coller avec ma config réseau. Et j'ai bien défini une plage dhcp pour mes clients pxe D'ailleurs Attention, pensez à stopper vos autres serveurs dhcp qui tourne sur votre réseau ( ou du moins sur votre vlan) sinon le client pxe risque d'obtenir un bail dhcp venant d'un autre serveur. A partir de là notre serveur PXE est prêt pour distribuer une image de SystemRescueCD aux clients PXE.
root@sysresccd / %/etc/init.d/pxebootsrv start
Vous pouvez dejà tester en lançant un client pxe il devrait booter directement sur system rescue CD. (pensez à régler le bios de votre client en conséquence). Bon c'est pas fini, ce que nous venons de faire peut être très pratique pour utiliser system rescue CD sur un pc sans lecteur CD, afin de faire de la maintenance ( partitionement, backup, deboggage etc...) Mais ce que je cherche à faire est d'installer une distribution Ubuntu sur mon laptop. pour cela il suffit simplement de modifier les fichiers du serveur TFTP de system rescue CD en les remplçant par les fichier de netboot de Ubuntu. Vous pouvez les récuperer sur le net, mais pour ma part j'avais télécharger le .iso de Ubuntu sur mon pc. J'ai donc pris les fichiers de netboot directement dessus. J'ai donc monter mon image iso pour en extraire les fichiers en questions.
opensuse:/ # mount -o loop /media/stock/xubuntu-9.04-alternate-i386.iso /mnt/
Sur le cd les fichiers en questions se trouve dans le repertoire /install/netboot
opensuse:/ # ls /mnt/install/netboot/ pxelinux.0 pxelinux.cfg ubuntu-installer version.info
Revenons sur le serveur PXE sysrescuecd Les fichiers necessaires au boot se situent dans /tftpboot J'ai donc simplement supprimer tout le contenu de /tftpboot
root@sysresccd / %rm -rf /tftpboot/*
et copié les fichier du netboot ubuntu dans ce dossier.
opensuse:/ #scp -r /mnt/install/netboot/* 10.0.0.54:/tftpboot/
et voilà
root@sysresccd /tftpboot % ls pxelinux.0 pxelinux.cfg ubuntu-installer version.info
Notre serveur pxe est prêt. il ne reste plus qu'a lancer le client lorsque vous booterez sur le serveur, une belle install d'ubuntu va apparaitre.

«précédente page 32 sur 32