Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente | ||
dhcp3-server [Le 01/01/2011, 18:29] 62.201.142.29 |
— (Version actuelle) | ||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
- | {{tag>Dapper Feisty Gutsy Hardy réseau serveur}} | ||
- | ---- | ||
- | |||
- | |||
- | ====== Serveur DHCP : dhcp3-server ====== | ||
- | |||
- | 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, etc.). | ||
- | |||
- | Dans cet article, un cas concret de configuration d'un DHCP vous sera présenté, à 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. | ||
- | Lorsque vous vous connectez sur n'importe quel réseau, y compris sur internet, il vous est donc 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 serveur DHCP tel que « dhcp3-server » qui va attribuer les adresses en fonction du fichier de configuration. | ||
- | |||
- | L'acronyme [[wpfr>Dynamic_Host_Configuration_Protocol|DHCP]] signifie //Dynamic Host Configuration Protocol// soit en français « Protocole de configuration dynamique des hôtes ». | ||
- | |||
- | Ne pas confondre **fixe** et **statique** : le serveur DHCP peut attribuer des adresses IP fixes (toujours la même) en fonction de l'[[wpfr>Adresse_MAC|adresse MAC]] (//Media Access Control//, Adresse de contrôle d'accès au média) reçue. | ||
- | |||
- | Il existe plusieurs classes d'adresses IP. Ici, nous utiliserons les IP dites privées de classe C. | ||
- | |||
- | |||
- | ==== Mode de fonctionnement sommaire ==== | ||
- | |||
- | Lorsque la carte réseau est activée en mode DHCP, elle envoie sur le réseau une demande d'information (une requête 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. | ||
- | |||
- | Pour plus d'informations concernant le DHCP, vous pouvez consulter l'[[wpfr>DHCP|article sur Wikipedia]]. | ||
- | |||
- | Pour installer un serveur DHCP, nous allons utiliser une application bien connue des administrateurs réseaux : **dhcp3-server**. | ||
- | |||
- | |||
- | |||
- | ===== Installation ===== | ||
- | |||
- | Il n'y a rien de plus simple : [[:tutoriel:comment_installer_un_paquet|installez le paquet]] **dhcp3-server** ([[apt://dhcp3-server|en 2 clics]]). | ||
- | ===== Configuration ===== | ||
- | |||
- | Considérons les aspects suivants : | ||
- | |||
- | * Il existe 3 réseaux. | ||
- | * Le réseau internet (que nous ne configurons pas, l'interface connectée dessus obtient automatiquement son IP, par le serveur DHCP du FAI((Fournisseur d'accès à Internet)) ; ceci dit vous pouvez adapter la configuration afin d'intégrer le serveur DHCP sur un réseau local). | ||
- | * Le réseau local ''192.168.1.*'' réservé aux serveurs (web, FTP, messagerie, etc.). | ||
- | * Le réseau local ''192.168.2.*'' réservé aux clients (réseau local partagé). | ||
- | * Il y a 4 autres machines sur les réseaux : ''192.168.1.2'' (nommée ''ftp''), ''192.168.1.3'' (nommée ''web''), ''192.168.1.4'' (nommée ''mail'') et ''192.168.2.2'' (nommée ''portable''). | ||
- | * Aucune machine inconnue ne se verra attribuer une adresse IP par DHCP (voir fichier de configuration //« option deny unknow client »//). | ||
- | * Toutes les machines des réseaux ont la possibilité de démarrer par [[:netboot|PXE]]. | ||
- | * La machine serveur DHCP est aussi le routeur/par-feu/NAT (tels que décrits dans la page « [[:tutoriel:comment_configurer_son_reseau_local]] » mais sans le //dnsmasq//) connecté au modem. Il fait aussi office de serveur DNS du domaine //mon_domaine.qqc// (tel que décrit dans la page « [[:bind9]] »). | ||
- | * les interfaces sur lesquelles le serveur démarre doivent avoir une adresse quand le service dhcp démarre. On leurs attribuera les adresses 192.168.1.1 et 192.168.2.1. (volontairement le réseau 192.168.0.0 n'est pas utilisé : il est souvent pris par le modem/routeur de votre FAI). | ||
- | |||
- | La liste des adresses MAC est disponible, après HWaddr grâce à la commande : | ||
- | |||
- | sudo ifconfig | grep HWaddr | ||
- | |||
- | Voyons comment configurer le serveur DHCP3 avec ce réseau. | ||
- | |||
- | |||
- | |||
- | |||
- | ==== Configuration des interfaces du serveur DHCP ==== | ||
- | |||
- | Il faut attribuer des adresses statiques aux interfaces du serveur DHCP. | ||
- | Pour cela, il faut [[:tutoriel:comment_editer_un_fichier|éditer le fichier]] | ||
- | **/etc/network/interfaces**. | ||
- | |||
- | gksudo gedit /etc/network/interfaces | ||
- | |||
- | <file> | ||
- | # This file describes the network interfaces available on your system | ||
- | # and how to activate them. For more information, see interfaces(5). | ||
- | |||
- | # Interface de boucle locale. | ||
- | auto lo | ||
- | iface lo inet loopback | ||
- | |||
- | # Interface ETHERNET primaire. | ||
- | # Ceci est l'interface connectée à Internet. L'IP est attribuée par DHCP. | ||
- | auto eth0 | ||
- | iface eth0 inet dhcp | ||
- | #name Carte Ethernet | ||
- | |||
- | # Interface ETHERNET secondaire. | ||
- | # C'est l'interface de connexion du réseau des machines SERVEURS. | ||
- | auto eth1 | ||
- | iface eth1 inet static | ||
- | #name Carte Ethernet | ||
- | address 192.168.1.1 | ||
- | netmask 255.255.255.0 | ||
- | broadcast 192.168.1.255 | ||
- | network 192.168.1.0 | ||
- | # passerelle il faut mettre l'adresse IP de l'interface de connexion à Internet. | ||
- | gateway XXX.XXX.XXX.XXX | ||
- | |||
- | # Interface ETHERNET tertiaire. | ||
- | # C'est l'interface de connexion du réseau des machines CLIENTS. | ||
- | auto eth2 | ||
- | iface eth2 inet static | ||
- | #name Carte Ethernet | ||
- | address 192.168.2.1 | ||
- | netmask 255.255.255.0 | ||
- | broadcast 192.168.2.255 | ||
- | network 192.168.2.0 | ||
- | # passerelle il faut mettre l'adresse IP de l'interface de connexion à Internet. | ||
- | gateway XXX.XXX.XXX.XXX | ||
- | </file> | ||
- | |||
- | Une fois que vous avez modifié votre fichier « /etc/network/interfaces », vous pouvez redémarrer les interfaces réseau : | ||
- | |||
- | sudo /etc/init.d/networking restart | ||
- | |||
- | Pour simplement tester une interface au lieu de toutes les redémarrer : | ||
- | |||
- | sudo ifdown ethX | ||
- | sudo ifup ethX | ||
- | |||
- | |||
- | |||
- | |||
- | |||
- | ==== Configuration ==== | ||
- | |||
- | === Configuration des interfaces d'écoute === | ||
- | |||
- | Si vous voulez que le serveur écoute sur certaines interfaces vous devez les spécifier dans **/etc/default/dhcp3-server** à : | ||
- | |||
- | <file> | ||
- | INTERFACES="eth1 eth2" | ||
- | </file> | ||
- | |||
- | Dans ce cas l'écoute se fait sur eth1 et eth2. | ||
- | |||
- | === Configuration du serveur === | ||
- | |||
- | 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 détaillée : | ||
- | |||
- | <file> | ||
- | ##### Option générale par défaut ##### | ||
- | |||
- | ### RÉSEAU ### | ||
- | |||
- | ## 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 à jour du DNS (aucune) | ||
- | ddns-update-style none; | ||
- | |||
- | |||
- | ### TEMPS DE RENOUVÈLEMENT DES ADRESSES ### | ||
- | |||
- | ## par défaut en s (1 h) | ||
- | default-lease-time 3600; | ||
- | |||
- | ## maximum (2 h) | ||
- | max-lease-time 7200; | ||
- | |||
- | |||
- | ### Sécurité ### | ||
- | |||
- | ## refus(deny)/autorise(allow) les clients inconnus (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 réseau pour TFTP | ||
- | allow bootp; | ||
- | allow booting; | ||
- | |||
- | |||
- | ##### RÉSEAUX ##### | ||
- | ## déclaration sous réseau 192.168.1.* | ||
- | subnet 192.168.1.0 netmask 255.255.255.0 { | ||
- | # Si vous voulez spécifier un domaine différent de celui par défaut : | ||
- | option domain-name "mon_domaine.qqc"; | ||
- | ## Adresse de diffusion | ||
- | option broadcast-address 192.168.1.255; | ||
- | ## routeur par défaut | ||
- | option routers 192.168.1.1; | ||
- | ## Plage d'attribution d'adresse | ||
- | # Ici débute à 1.6, 1.1 à 1.4 étant déjà prises. | ||
- | # La plage ne contient qu'1 adresse ce qui empêche l'attribution sauf au client dont celle-ci est fixée. | ||
- | range 192.168.1.6 192.168.1.7; | ||
- | ## Option pxe nom du fichier servit. | ||
- | # elilo.efi pour ia64; pxelinux.0 pour x86 | ||
- | # À placer à la racine du serveur TFTP. | ||
- | # Le fichier peut être spécifié dans la section « host », il deviendra alors prioritaire sur celui-ci | ||
- | filename "pxelinux.0"; | ||
- | # définit le serveur qui servira le fichier « pxelinux.0 » | ||
- | next-server 192.168.2.1; | ||
- | # évalue si l'adresse est déjà attribuée | ||
- | ping-check = 1; | ||
- | } | ||
- | |||
- | ## Déclaration sous réseau 192.168.2.* | ||
- | subnet 192.168.2.0 netmask 255.255.255.0 { | ||
- | option domain-name "mon_domaine.qqc"; | ||
- | option broadcast-address 192.168.2.255; | ||
- | option routers 192.168.2.1; | ||
- | range 192.168.2.2 192.168.2.3; | ||
- | ping-check = 1; | ||
- | filename "pxelinux.0"; | ||
- | next-server 192.168.2.1; | ||
- | } | ||
- | |||
- | #### Configuration des hôtes avec IP fixée #### | ||
- | # hôte « FTP » | ||
- | host ftp { | ||
- | # adresse mac de la carte réseau ! | ||
- | # !!! À REMPLACER PAR CELLE DE LA MACHINE !!! | ||
- | hardware ethernet 00:0f:75:af:eb:44; | ||
- | # adresse attribué | ||
- | fixed-address 192.168.1.2; | ||
- | ### PXE ### | ||
- | # fichier spécifique à une machine | ||
- | # filename "debian-installer/ia64/elilo.efi"; | ||
- | # definit le serveur qui servira le fichier pxelinux.0 | ||
- | # next-server 192.168.2.1; | ||
- | } | ||
- | # hôte « WEB » | ||
- | host web { | ||
- | # !!! À REMPLACER PAR CELLE DE LA MACHINE !!! | ||
- | hardware ethernet 00:02:0d:31:d1:cc; | ||
- | fixed-address 192.168.1.3; | ||
- | } | ||
- | # hôte « mail » | ||
- | host mail { | ||
- | # !!! À REMPLACER PAR CELLE DE LA MACHINE !!! | ||
- | hardware ethernet 00:02:55:d2:d1:cc; | ||
- | fixed-address 192.168.1.4; | ||
- | } | ||
- | # hôte « PORTABLE » | ||
- | host portable { | ||
- | # !!! À REMPLACER PAR CELLE DE LA MACHINE !!! | ||
- | hardware ethernet 00:0e:af:31:d1:cc; | ||
- | fixed-address 192.168.2.2; | ||
- | } | ||
- | </file> | ||
- | |||
- | L'adresse MAC d'un client se trouve avec la commande __ifconfig__, sous l'intitule __HWaddr__. | ||
- | |||
- | Nous pouvons maintenant demander à notre serveur de prendre en compte nos modifications : | ||
- | |||
- | sudo /etc/init.d/dhcp3-server restart | ||
- | |||
- | Nous pouvons maintenant passer à la phase de vérification. | ||
- | |||
- | Si il y a des messages d'erreurs, regardez le fichier suivant : | ||
- | |||
- | tail /var/log/syslog | ||
- | ==== Logs ==== | ||
- | |||
- | Les logs partent par défaut dans /var/log/syslog. Pour qu'ils partent également dans un fichier de log dédié, par exemple /var/log/dhcpd.log : | ||
- | |||
- | * Dans le fichier de conf dhcpd.conf mettre comme indiqué par la documentation plus haut : | ||
- | |||
- | log-facility local7; | ||
- | |||
- | * Créer le fichier /var/log/dhcpd.log avec comme propriétaire syslog (droits rw) et comme groupe adm (droits r). | ||
- | |||
- | sudo touch /var/log/dhcpd.log | ||
- | sudo chown syslog:adm /var/log/dhcpd.log | ||
- | sudo chmod 0640 /var/log/dhcpd.log | ||
- | |||
- | * Puis ajouter ceci dans le fichier /etc/rsyslog.d/50-default.conf : | ||
- | |||
- | local7.* /var/log/dhcpd.log | ||
- | |||
- | * et relancer le daemon syslog | ||
- | |||
- | sudo /etc/init.d/rsyslog restart | ||
- | |||
- | |||
- | |||
- | ===== Voir aussi ===== | ||
- | |||
- | |||
- | ---- | ||
- | |||
- | //Contributeur : [[utilisateurs:benje]].// |