Cette page n'a pas encore d'étiquettes.
Apportez votre aide…

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.

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.

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.

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ée ftp), 192.168.0.3 (nommée web) et 192.168.0.4 (nommée mail) et 192.168.1.2 (nommée portable).
  • Toute les machines des réseau peuvent démarrer par PXE
  • La machine serveur DHCP est aussi le routeur/par-feu/nat (tels que decrit 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

Toutes 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 global 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 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).

  • serveur/dhcp3.1164118448.txt.gz
  • Dernière modification: Le 18/04/2011, 14:55
  • (modification externe)