Ceci est une ancienne révision du document !
DokuWiki
Version edgy
Rédigé par benje.
!!! REDACTION EN COURS !!!
DHCP3-SERVER : installer un serveur DHCP
Cet article a pour but de vous présenter comment installer et configurer un serveur DHCP en utilisant l'application DHCP3-SERVER. Je supposerai que vous disposez d'un réseau local en état de marche et que vous connaissez les bases de TCP/IP (adressage, sous-réseaux,…).
Dans cet article, je vais vous présenter un cas concret de configuration d'un DHCP, à vous de l'adapter à vos besoins.
Introduction
Sur les réseaux, toutes les machines sont identifiées (et identifiables) par une adresse IP. Ceci est nécessaire afin de les faire communiquer ensembles.
Donc, lorsque vous vous connectez sur n importe quel reseau, y compris sur internet, il vous est attribué une adresse ip
Il existe plusieurs manières de configurer ces adresses :
-soit de manière statique, lorsque vous déterminez vous même l adresse ip sur la machine.
-soit de manière dynamique, grâce à un server dhcp tel que dhcp3-server qui va attribuer les adresses en fonction du fichier de configuration.
L'acronyme DHCP signifie Dynamic Host Configuration Protocol; en français, Protocole de configuration dynamique des hotes.
Ne pas confondre fixe et statique le serveur dhcp peux attribuer des adresses ip fixe (toujours la même) en fonction de l'adresse MAC ( Medium Access Control; en français,adresse de controle d accès du moyen) reçue.
Il existe plusieurs classes d'adresses ip, ici nous utiliseront les ip dites privées de classe C.
Lorsque la carte reseau est activée en mode dhcp, elle envoie, sur le réseau, une demande d information (une requete dhcp). Le serveur dhcp à l'écoute sur le réseau commence alors la procédure d identification et lui attribue une adresse en fonction de celle-ci.
Voilà, comment fonctionne le protocole DHCP sans entrer dans les détails. Pour plus d'informations concernant le DHCP je vous renvoie vers Google et Wikipedia.
Pour installer un serveur DHCP, nous allons utiliser une application bien connue des administrateurs réseaux : DHCP3-SERVER.
Installation de DHCP3-SERVER
Pour installer DHCP3-SERVER sur Ubuntu, il n'y a rien de plus simple. Tapez la commande suivante si vous avez installé votre machine en mode server
:
sudo apt-get install dhcp3-server
Ou utilisez Synaptic pour installer les paquets dhcp3-server
.
Configuration de DHCP3-SERVER
Considérons les aspects suivants :
- Il existe 3 réseaux
- Le reseau internet ( que nous ne configurons pas l interface connecter dessus obtient automatiquement son ip par le serveur dhcp du fai )
- Le réseau local
192.168.0.*
réservé aux serveurs (web ftp mail…) - Le réseau local
192.168.1.*
réservé aux clients (reseau local partagé) - Il y a 4 autres machines sur les réseaux :
192.168.0.2
(nomméeftp
),192.168.0.3
(nomméeweb
) et192.168.0.4
(nomméemail
) et192.168.1.2
(nomméeportable
). - Aucune machines inconnue ne se vera attibuer une adresse
- Toutes les machines des réseaux peuvent démarrer par PXE
- La machine serveur DHCP est aussi le routeur/par-feu/nat (tels que décrit dans configurer_son_reseau_local mais sans le dnsmasq ) connecté au modem. Il fait aussi office de serveur DNS du domaine mon_domaine.qqc
- les interfaces sur lesquels le serveur démarre doivent avoir une adresse quand le service dhcp demarre. On leurs attribura les adresses 192.168.1.1 et 192.168.2.1.
Voyons comment configurer le serveur DHCP3 avec ce réseau.
Configuration de base du serveur
Le fichier de configuration générale
Toute la configuration de DHCP3-SERVER se fait dans le fichier /etc/dhcp3/dhcpd.conf
.
Dans ce fichier, on définit l'ensemble des options de manière globale ou par réseau. voici une configuration detaillée :
##### Option generale par defaut ##### ### RESEAU ### ## Nom du serveur dhcp server-name "dns.mon_domaine.qqc"; ## Mode autoritaire (autoritaire) authoritative; ## Masque de sous-réseau option subnet-mask 255.255.255.0; #_________________________________________________________________________ ### DOMAINE ### ## Nom du domaine option domain-name "mon_domaine.qqc"; ## Adresse IP du serveur DNS # a remplacer par l ip de votre serveur dns ou par celle de votre fai option domain-name-servers XXX.XXX.XXX.XXX; ## type de mise a jour du dns (aucune) ddns-update-style none; #_________________________________________________________________________ ### Temps de renouvellement des adresses ### ## par defaut en s (1h) default-lease-time 3600; ## maximum (2h) max-lease-time 7200; #_________________________________________________________________________ ### Securité ### ## refus(deny)/autorise(allow) les client inconnu (refuse client inconnu) deny unknown-clients; ## Use this to send dhcp log messages to a different log file (you also ## have to hack syslog.conf to complete the redirection). log-facility local7; #_________________________________________________________________________ ### PXE ### ## Permet le boot reseau pour tftp allow bootp; #_________________________________________________________________________ ##### RESEAUX ##### ## declaration sous reseau 192.168.0.* subnet 192.168.0.0 netmask 255.255.255.0 { # si vous voulais specifier un domaine different de celui par defaut option domain-name "mon_domaine.qqc"; ## Adresse de diffusion option broadcast-address 192.168.0.255; ## routeur par defaut option routers 192.168.0.1; ## plage d'attribution d'adresse # ici debute à 0.6, 0.1 à 0.4 etant deja prise # la plage ne contient 1 adresse ce qui empeche l attribution sauf au client dont celle-ci est fixée range 192.168.0.6 192.168.0.7; ## Option pxe nom du fichier servit. # elilo.efi pour ia64; pxelinux.0 pour x86 # à placer à la racine du serveur tftp # le fichier peux être specifier dans la section host il deviendra alors prioritaire sur celui-ci filename "pxelinux.0"; # evalue si l adresse est deja attribuée ping-check = 1; } ## declaration sous reseau 192.168.1.* subnet 192.168.1.0 netmask 255.255.255.0 { option domain-name "mon_domaine.qqc"; option broadcast-address 192.168.1.255; option routers 192.168.1.1; range 192.168.1.2 192.168.1.3; ping-check = 1; filename "pxelinux.0"; } #### Configuration des hôtes avec ip fixée #### # hôte FTP host ftp { # adresse mac de la carte réseau !!! A REMPLACER PAR CELLE DE LA MACHINE!!! hardware ethernet 00:0f:75:af:eb:44; # adresse attribué fixed-address 192.168.0.2; ### pxe ### # fichier specifique à une machine # filename "debian-installer/ia64/elilo.efi"; } # hôte WEB host web { # !!! A REMPLACER PAR CELLE DE LA MACHINE !!! hardware ethernet 00:02:0d:31:d1:cc; fixed-address 192.168.0.3; } # hôte mail host mail { # !!! A REMPLACER PAR CELLE DE LA MACHINE !!! hardware ethernet 00:02:55:d2:d1:cc; fixed-address 192.168.0.4; } # hôte PORTABLE host portable { # !!! A REMPLACER PAR CELLE DE LA MACHINE !!! hardware ethernet 00:0e:af:31:d1:cc; fixed-address 192.168.1.2; }
Nous pouvons maintenant demander à notre serveur de prendre en compte nos modifications via la commande suivante :
sudo /etc/init.d/dhcp3-server reload
Nous pouvons maintenant passer à la phase de vérification.
Vérification de la configuration
Pour vérifier la configuration de notre serveur DNS, nous allons lui adresser des requêtes directement via l'utilitaire nslookup
, pour l'utiliser, il suffit de taper nslookup
dans un terminal.
On doit lui indiquer le serveur DNS à vérifier via le mot clé server 127.0.0.1
et ensuite, on lui donne un nom d'hôte et il doit nous répondre l'adresse IP.
Voici la petite session de test que j'ai fait chez moi :
ols@mail2:/$ nslookup > server 127.0.0.1 Default server: 127.0.0.1 Address: 127.0.0.1#53 > mail2.bureau.lan Server: 127.0.0.1 Address: 127.0.0.1#53 Name: mail2.bureau.lan Address: 192.168.251.202 > 192.168.251.201 Server: 127.0.0.1 Address: 127.0.0.1#53 201.251.168.192.in-addr.arpa name = twin2.bureau.lan. > set q=mx > bureau.lan Server: 127.0.0.1 Address: 127.0.0.1#53 bureau.lan mail exchanger = 10 mail2.bureau.lan. > exit
Si tout se déroule normalement, vous pouvez configurer vos clients et utiliser votre serveur DNS.
Configuration avancée
Configuration d'un serveur DNS secondaire
Dans cette section, nous allons envisager la configuration d'un serveur DNS secondaire qui se synchronise avec le serveur DNS principal que nous avons défini ci-dessus.
Le serveur DNS secondaire proprement dit
Pour configurer le serveur secondaire, nous devons simplement indiquer à BIND les zones qu'il doit traiter en mode esclave. Sur base de la configuration ci-dessus, nous configurons le fichier /etc/bind/named.conf
de serveur DNS secondaire de la manière suivante :
zone "bureau.lan" { type slave; masters {192.168.251.202;} ; file "/etc/bind/db.bureau.lan"; }; zone "251.168.192.in-addr.arpa" { type slave; masters {192.168.251.202;} ; file "/etc/bind/db.192.168.251"; };
En faisant cela, il est inutile d'indiquer les fichiers zones (fichier db.
) sur le serveur DNS secondaire. Les fichiers proviendront d'une synchronisation avec le DNS primaire.
Remarque : L'utilisateur faisant fonctionner le serveur DNS doit avoir les droits d'écriture sur les fichiers zones renseignés dans la configuration ci-dessus.
Modification de la configuration du serveur DNS primaire
Nous devons renseigner dans les fichiers zones le deuxième serveur DNS, et pour se faire, on ajoute la ligne suivante au fichier /etc/bind/db.bureau.lan
:
@ IN NS ns2.bureau.lan.
et nous devons également renseigner l'adresse IP de ns2.bureau.lan
(n'oubliez pas de mettre à jour le fichier de zone pour le sous-réseau IP également avec le mot clé PTR
!) :
ns2 IN A 192.168.251.250
250 IN PTR ns2.bureau.lan.
Après avoir modifié les zones et de ce fait, dévoilé ns2
, nous pouvons maintenant indiquer au serveur DNS maître que le serveur DNS secondaire peut accéder aux données de zones.
Pour ce faire, les informations concernant les zones qui nous intéressent (dans le fichier /etc/bind/named.conf
du serveur maître) deviennent ceci :
zone "bureau.lan" { type master; notify yes; allow-transfer {192.168.251.250;} ; file "/etc/bind/db.bureau.lan"; }; zone "251.168.192.in-addr.arpa" { type master; notify yes; allow-transfer {192.168.251.250;} ; file "/etc/bind/db.192.168.251"; };
Après toutes ces modifications, demandez au service BIND de recharger la configuration :
sudo /etc/init.d/bind9 reload
Et surtout, n'hésitez pas à re-tester votre configuration (sur les deux serveurs).
Configuration des clients
Configuration des clients Linux
La configuration de la résolution de nom pour les machines Linux se fait dans le fichier /etc/resolv.conf
. Dans ce fichier, vous pouvez ajouter le domaine de recherche via la ligne suivante (en premier dans le fichier) :
search bureau.lan
Et ensuite, les adresses de vos serveurs de noms (primaire interne, autres internes, puis ceux de votre fournisseur d'accès par exemple) de la manière suivante :
nameserver 192.168.251.202
L'ordre dans lequel vous indiquez les lignes est important. Voici le fichier tel qu'il est chez moi :
search bureau.lan nameserver 192.168.251.202 nameserver 192.168.251.212 nameserver 193.121.171.135 nameserver 193.74.208.65
Linux va essayer de résoudre un nom de la manière suivante (si une étape ne fonctionne pas, il essaye la suivante) :
- recherche du serveur de nom de
bureau.lan
et interrogation de ce serveur. - interrogation du serveur DNS
192.168.251.202
qui est mon serveur DNS primaire (interne). - interrogation du serveur DNS
192.168.251.212
qui est mon serveur DNS secondaire (interne). - interrogation du serveur DNS
193.121.171.135
qui est le serveur DNS primaire de mon provider. - interrogation du serveur DNS
193.74.208.65
qui est le serveur DNS secondaire de mon provider.
Configuration des clients Windows
Sans entrer dans les détails (ce n'est pas le but du site), il vous suffit d'introduire l'adresse IP de vos serveurs DNS primaire et secondaire dans les propriétés du protocole TCP/IP (accessible dans les connexions réseaux du panneau de configuration).