Blog ENI : Toute la veille numérique !
🐠 -25€ dès 75€ 
+ 7 jours d'accès à la Bibliothèque Numérique ENI. Cliquez ici
Accès illimité 24h/24 à tous nos livres & vidéos ! 
Découvrez la Bibliothèque Numérique ENI. Cliquez ici
  1. Livres et vidéos
  2. Debian GNU/Linux - Services réseau
  3. Services réseau
Extrait - Debian GNU/Linux - Services réseau (DHCP, DNS, Apache, CUPS, NFS, Samba, Puppet, Nagios...) (Nouvelle édition)
Extraits du livre
Debian GNU/Linux - Services réseau (DHCP, DNS, Apache, CUPS, NFS, Samba, Puppet, Nagios...) (Nouvelle édition) Revenir à la page d'achat du livre

Services réseau indispensables

Distribuer des adresses IP avec un serveur DHCP

1. Rôle d’un service DHCP

Le rôle du service DHCP (Dynamic Host Configuration Protocol) est de distribuer des adresses IP pour une durée déterminée, par l’intermédiaire d’un bail DHCP.

Au lieu de renseigner manuellement chaque ordinateur avec une adresse IP fixe, ainsi que tous les paramètres comme le serveur de noms DNS, l’adresse de broadcast ou la passerelle par défaut, le service DHCP alloue un bail d’accès au réseau à un client, selon les paramètres configurés sur le serveur DHCP.

Toutes les machines critiques du réseau comme les serveurs, ou les imprimantes possèdent généralement une adresse IP statique afin de les administrer plus facilement.

Le service DHCP est aussi mis en œuvre quand votre box Internet se connecte chez votre fournisseur d’accès Internet. Le fournisseur d’accès vous délivre une adresse IP sur son réseau le temps de votre connexion. Cette adresse est libérée quand vous éteignez votre box. Certains fournisseurs proposent en option d’obtenir une adresse IP fixe.

a. Pourquoi utiliser le service DHCP ?

L’affectation et la mise à jour des adresses IP fixes peuvent vite représenter un casse-tête. Afin de faciliter et de simplifier l’affectation des adresses IP, le protocole DHCP permet de diffuser une configuration dynamique des adresses IP, en plus des informations du réseau, comme le serveur de temps, ou le serveur de noms.

Il est rare aujourd’hui qu’un réseau ne possède pas de service DHCP, car ce protocole est devenu essentiel pour la bonne administration d’un parc informatique, ne serait-ce qu’à petite échelle.

En voici les principales raisons :

  • Le protocole DHCP permet de rationaliser les adresses IP afin d’attribuer des adresses IP seulement aux périphériques connectés.

  • Le protocole DHCP assure une configuration de réseau TCP/IP fiable et simple, empêche les conflits d’adresses et permet de contrôler l’utilisation des adresses IP de façon centralisée. Ainsi, si un paramètre change au niveau du réseau, comme, par exemple, l’adresse de la passerelle par défaut...

Présentation du DNS

La résolution des noms dans un réseau informatique est devenue indispensable pour exploiter correctement les ressources qu’il constitue. Cela peut se réaliser grâce au fichier local /etc/hosts ou avec le service DNS (Domain Name System).

Le service DNS permet de résoudre un nom par une adresse IP et inversement. Il a été développé pour retenir plus facilement la définition des machines, car les noms permettent d’utiliser des moyens mnémotechniques, quand les chiffres ne le peuvent pas.

On mémorise en effet plus facilement isc.org que 149.20.64.69.

Ainsi, un hôte possède un nom plutôt qu’une suite de chiffres.

Ce mécanisme peut se réaliser sans serveur DNS, en utilisant le fichier /etc/hosts présent sur chaque machine du réseau, ce qui implique de le mettre à jour sur toutes les machines à chaque changement.

L’intérêt du serveur DNS est, premièrement, d’offrir une base centralisée que chaque machine du réseau consulte, ce qui permet d’être à jour en temps réel, et deuxièmement, qu’il offre d’autres types d’enregistrement que les noms de machines, tandis que le fichier /etc/hosts s’y limite.

L’architecture DNS est une arborescence hiérarchisée permettant d’identifier...

Les enregistrements DNS

Il existe plusieurs types d’enregistrements permettant de structurer la hiérarchie DNS. Ils permettent de définir des rôles bien précis.

1. Enregistrement de ressources

Ils permettent de faire l’enregistrement des hôtes, il y en a trois principaux :

1. Le type A record permet d’adresser une adresse IPv4 à un hôte, ou à un nom de domaine.

Exemple :


www.isc.org.     IN A             149.20.64.69
 

2. Le type AAAA record fait correspondre une adresse IPv6 à un nom d’hôte.


isc.org.         IN AAAA          2001:4f8:0:2::69
 

3. Le type CNAME permet, quant à lui, de créer des alias sur les noms.


mail.isc.org.    IN CNAME         mx.ams1.isc.org
 

2. Enregistrement de délégation

Ce sont les enregistrements qui définissent le lien hiérarchique dans l’architecture DNS.

a. L’enregistrement SOA

Le SOA (Start Of Authority Record) permet de diffuser les informations du domaine géré, comme les serveurs de noms DNS, serveur de messagerie, le TTL (Time To Live) du domaine, courriel de contact, le numéro de série…

b. L’enregistrement NS

Ce sont les enregistrements des serveurs de noms DNS du domaine.

Ils permettent de créer les délégations.

c. L’enregistrement...

Installation de Bind9

Sous GNU/Linux, l’implémentation standard du service DNS est celle supportée par l’ISC (Internet Software Consortium) à travers le logiciel bind9 (Berkley Internet Name Domain) qui est largement le plus utilisé sur Internet.

Il est composé de 4 composants essentiels :

La partie client

Installé nativement avec Debian, le paquet bind9-host donne accès à la commande host qui permettra aux clients d’effectuer les requêtes vers le serveur DNS.

La partie serveur

Fourni par le paquet Debian bind9, il installera également bind9utils, libirs141 et net-tools, qui sont des dépendances du paquet.

Ce paquet va créer un utilisateur ’bind’ en le rajoutant au group bind déjà existant dans le système.

Il vérifie que le répertoire /var/cache/bind existe bien, car il permettra au démon named de fonctionner, puis créera une clé rndc qui permet de réaliser des transactions sécurisées.

Enfin, il crée une routine de démarrage avec systemd pour démarrer et arrêter correctement le serveur lors d’un démarrage de Debian.

Cette simple commande permet de faire l’installation :


#apt-get install bind9 -y 
 

Le binaire est installé ici :


/usr/sbin/named
 

Les fichiers d’exécution sont dans ce répertoire :


/var/cache/bind
 

Finalement...

Les différentes architectures DNS

1. Architecture internet

Si vous souhaitez que votre domaine soit compatible avec la hiérarchie DNS d’Internet, il sera nécessaire de respecter les conventions définies par l’état de l’art.

Ce cas est rare, car votre serveur DNS vient faire partie intégrante de l’architecture DNS d’Internet et devient nécessaire dans cette architecture pour la zone qu’il couvre.

Vous aurez absolument besoin dans ce cas de créer une délégation.

Cela se fait avec votre fournisseur de domaine.

Dans la gestion de votre domaine chez votre fournisseur de domaine, vous devez créer des enregistrements NS (Name Server) qui correspondent à votre domaine, ou sous-domaine que vous voulez gérer.

Puis, sur vos serveurs de nom DNS, il faudra enregistrer des glue records ainsi que des enregistrements NS de votre fournisseur de domaine.

2. Architecture locale

Cette architecture est beaucoup plus simple, puisqu’elle se limite au réseau local. C’est le cas le plus fréquent. Vous gérez vous-même la racine et le premier niveau de domaine. Il n’est donc pas nécessaire de créer de délégation.

3. Type de serveur DNS

Pour améliorer les performances, tous les types de serveurs DNS fonctionnent avec un principe de mémoire de cache.

a. Serveur maître (master)

Ce type...

Configuration d’un serveur de cache

Ce type de serveur ne répond pas aux requêtes directement, il va utiliser les serveurs DNS faisant autorité, donc le fournisseur d’accès à Internet, ou alors votre fournisseur de nom de domaine.

Ainsi, le but est de transmettre toutes les requêtes à ces serveurs, puis le serveur de cache va mettre en mémoire cache la réponse afin de ne pas effectuer toujours les mêmes requêtes.

Il mémorise au fur et à mesure les requêtes qui lui sont soumises. Une fois en cache, il répond très rapidement, cependant les données sont vite obsolètes en cas de changement sur les serveurs faisant autorité. C’est pour cela qu’ils ne font pas autorité sur les zones.

C’est aussi la configuration la plus simple à mettre en place. Il suffit de renseigner les deux serveurs de votre fournisseur Internet, puis de redémarrer le service DNS.

On présuppose ici que votre machine contient le système Debian et a accès à Internet.

1. Exemple de configuration

 Éditez le fichier /etc/bind/named.conf.options à l’aide de l’utilitaire vi en remplaçant les valeurs 8.8.8.8 et 4.4.4.4 par les serveurs de votre fournisseur d’accès à Internet :


options { 
    directory "/var/cache/bind"; 
 ...

Configuration d’un serveur maître

Nous allons voir comment configurer un serveur maître dans une architecture locale, ce qui est le plus fréquent pour un réseau d’entreprise, qui possédera donc un domaine local que l’on nommera pour l’exemple mondomaine.local. et qui sera installé sur une machine qui se nomme monserveur ayant pour adresse IP 192.168.2.10.

Il fera donc autorité sur cette zone, comme nous l’avons vu auparavant, ainsi que la gestion du domaine de premier niveau (local.).

Notre domaine pour le réseau d’entreprise s’appellera mondomaine.

On présuppose aussi ici que Debian est installé et que la machine a un accès à Internet.

1. Configurer le fichier de configuration du serveur

Nous allons ajouter une nouvelle zone pour gérer notre domaine d’entreprise.

C’est ici que l’on va utiliser le fichier de configuration pour le domaine local.

Ainsi, éditez le fichier suivant :


#vi /etc/bind/named.conf.local
 

Afin d’ajouter les lignes suivantes :


// Resolution pour la zone mondomaine.local 
zone "mondomaine.local" IN { 
           type master; 
           file "/etc/bind/db.mondomaine.local"; 
           }; 
// Resolution inverse pour la zone mondomaine.local 
zone "2.168.192.in-addr.arpa" { 
           type master; 
           file "/etc/bind/db.192.168.2"; 
           };
 

 Gardez également les fowarders définis comme dans la configuration du serveur de cache.

 Vérifiez que vous avez donc bien ces lignes dans le fichier suivant :


#cat /etc/bind/named.conf.options 
 


forwarders { 
             8.8.8.8; 
             8.8.8.8; 
};
 

L’adresse IP 8.8.8.8 est un serveur DNS publique de l’entreprise Google qui permettra de faire les redirections DNS jusqu’aux serveurs racine.

2. Configurer le fichier de zone

 Nous allons ensuite créer notre fichier de zone mondomaine.local, en partant d’une zone existante :


#cp /etc/bind/db.local /etc/bind/db.mondomaine.local
 

 Puis, éditez ce nouveau fichier :


#vi /etc/bind/db.mondomaine.local...

Configuration d’un serveur esclave

Un serveur esclave (slave) va permettre deux choses :

  • Assurer la disponibilité du service si jamais le serveur maître venait à avoir un problème.

  • Permettre une répartition de la charge des requêtes DNS, ce qui est très utile quand le réseau d’entreprise devient conséquent.

Ce type de serveur va aller chercher les zones depuis le serveur maître (master) pour créer une copie des zones, puis sera en écoute avec le serveur maître si jamais il y a des changements sur cette zone pour être constamment à jour.

Pour l’exemple, on utilisera un serveur qui a pour adresse IP 192.168.2.50 et avec pour nom DNS monserveur2. On présuppose que Debian est installé avec le paquet bind9 sans configuration particulière.

1. Changer la configuration du serveur maître pour autoriser le serveur esclave

Pour autoriser le transfert de zone, nous allons utiliser la directive allow-transfer.

Puis pour notifier des changements, et recharger la zone, on utilisera la directive notify.

 Positionnez-vous sur le serveur maître (192.168.2.10) pour autoriser le serveur esclave, et éditez le fichier suivant pour ajouter les deux directives dans la zone et la zone inversée :


#vi /etc/bind/named.conf.local
 


// Resolution pour la zone mondomaine.local 
zone "mondomaine.local" IN { 
            type master; 
            file "/etc/bind/db.mondomaine.local";  
            notify yes; 
            allow-transfer...

Côté client

Nous avons mis en place un service DNS sur notre réseau local.

Voyons maintenant comment cela s’implémente sur les machines clientes.

Si votre machine récupère son adresse IP depuis un serveur DHCP, ce dernier renseigne les serveurs DNS du réseau local.

Sous Debian, il ira écrire le code dans le fichier /etc/resolv.conf :


#cat /etc/resolv.conf 
search mondomaine.local 
nameserver 192.168.2.10 
nameserver 192.168.2.50
 

La méthode à utiliser par ordre de priorité afin de faire correspondance entre un nom et une adresse IP se trouve dans le fichier /etc/nsswitch.conf.


# /etc/nsswitch.conf 
# 
# Example configuration of GNU Name Service Switch functionality. 
# If you have the `glibc-doc-reference' and `info' packages installed, try: 
# `info libc "Name Service Switch"' for information about this file. 
 
passwd:     compat 
group:      compat 
shadow:     compat 
gshadow:    files 
 
hosts:      files dns 
networks:   files 
 
protocols:  db files 
services:   db files 
ethers:     db files 
rpc:        db files 
 
netgroup:   nis
 

Ce qui nous intéresse, c’est la ligne :


hosts:      files dns
 

Elle signifie que la machine...

Quiz : Connaissez-vous les fondamentaux du service DHCP et du DNS ?

  • Que signifie le point à la fin de l’URL www.isc.org. ?

  • La fin du nom de domaine

  • La racine DNS

  • C’est une erreur

  • Que représentent les enregistrements de type ’CNAME’ ?

  • Un alias pointant sur un enregistrement de type ’A

  • Un alias pointant sur un enregistrement de type ’PTR

  • Un alias de messagerie

  • Quel est l’outil permettant d’obtenir une adresse IP DHCP ?

  • dhcpclient

  • dhclient

  • ip addr

  • Doit-on installer le paquet dnsutils sur le serveur DNS  ?

  • Il est nécessaire au bon fonctionnement de bind9

  • Il permet d’autoriser les requêtes clientes

  • Il regroupe les outils de diagnostic

  • À quoi sert le round robin ?

  • Redémarrer le serveur DNS en cas de problème

  • Analyser les logs DNS

  • Faire de la répartition de charge sur les requêtes clientes

  • Peut-on ajouter des enregistrements sur un serveur de cache ?

  • Il possède sa propre base qui permet d’accueillir les nouveaux enregistrements

  • C’est un serveur relais qui ne peut pas recevoir des enregistrements

  • C’est un serveur autonome qui permet tout type d’enregistrement

  • À quoi sert un serveur DHCP relais ?

  • Permet de faire un serveur DHCP esclave

  • Permettre aux requêtes DHCP de traverser les sous-réseaux

  • Centraliser la configuration du serveur DHCP

  • Comment s’appelle le binaire...