Aller au contenu

Cours – Agent relais DHCP

BTS SIO SISR 1re année – Bloc 2 – S09 – à lire avant le TP

Ce que tu dois savoir déjà

  • Prérequis : S06 à S08.
  • Matériel : Simulateur réseau ou Packet Tracer, ou matériel réel (au choix de l'enseignant) ; VM Debian (DHCP, DNS).

À la fin de ce cours, tu sauras

  • Expliquer pourquoi les VLAN isolent le trafic et pourquoi il faut un routage inter-VLAN ;
  • Configurer un routeur sur un bras (sous-interfaces 802.1Q) ;
  • Configurer l'agent relais DHCP (ip helper-address) ;
  • Déployer une infrastructure complète : VLAN, routage, DHCP, DNS ;
  • Diagnostiquer méthodiquement une panne multi-services.

COURS : AGENT RELAIS DHCP

A. Le Problème : DHCP et VLANs

Rappel : Le protocole DHCP fonctionne grâce à des messages broadcast (255.255.255.255). Quand un PC démarre et cherche un serveur DHCP, il crie :

"Y a-t-il un serveur DHCP quelque part ? DISCOVER !"

Le problème : Les routeurs ne transmettent pas les broadcasts entre réseaux.

Dans une infrastructure avec VLANs :

VLAN 10 192.168.10.0/24 VLAN 30 192.168.30.0/24 PC-A Routeur Serveur DHCP 192.168.30.10 DHCP Discover (broadcast) Non transmis PC-A n'obtient jamais d'adresse

Le problème : Faut-il installer un serveur DHCP dans chaque VLAN ? Non — c'est coûteux et difficile à maintenir.


B. La Solution : L'Agent Relais DHCP (ip helper-address)

Principe : Le routeur intercepte les broadcasts DHCP dans chaque VLAN et les transmet en unicast vers le serveur DHCP centralisé.

VLAN 10 PC-A Routeur interface Fa0/0.10 ip helper-address 192.168.30.10 VLAN Serveurs Serveur DHCP 192.168.30.10 broadcast unicast Le routeur intercepte le broadcast DHCP et le transmet en unicast au serveur
Le routeur relaie les requêtes DHCP du VLAN 10 vers le serveur DHCP centralisé.

Fonctionnement détaillé :

PC-A (VLAN 10) Routeur (agent relais) Serveur DHCP (VLAN 30) 1. DHCP Discover (broadcast) reçu sur Fa0/0.10 2. ip helper-address configuré sur l'interface : OUI le broadcast devient un unicast vers 192.168.30.10 le routeur ajoute giaddr = 192.168.10.1 Discover relayé (unicast) giaddr = 192.168.10.1 3. giaddr = 192.168.10.1 : étendue du VLAN 10 réponse en unicast vers le routeur Offer (unicast vers giaddr) 4. Offer retransmis via le VLAN 10 5. PC-A obtient une adresse de 192.168.10.0/24

Le champ giaddr (Gateway IP Address) est la clé : il permet au serveur DHCP de savoir dans quel réseau se trouve le client et donc quelle étendue (subnet) utiliser pour lui attribuer une IP.


C. Configuration de l'Agent Relais

Côté Routeur Cisco

La commande ip helper-address se configure sur chaque interface (ou sous-interface) côté VLAN client :

! Sur la sous-interface du VLAN 10 (côté clients VLAN 10)
Router(config)# interface FastEthernet0/0.10
Router(config-if)# ip helper-address 192.168.30.10    ! IP du serveur DHCP Linux

! Sur la sous-interface du VLAN 20 (côté clients VLAN 20)
Router(config)# interface FastEthernet0/0.20
Router(config-if)# ip helper-address 192.168.30.10    ! Même serveur DHCP

Vérification :

Router# show running-config | section interface
! Vérifier que ip helper-address est bien sur les bonnes interfaces

Router# show ip helper-address           ! Sur certaines versions IOS

Côté Serveur DHCP Linux

Le serveur DHCP doit avoir une étendue (subnet) pour chaque VLAN qu'il sert :

# /etc/dhcp/dhcpd.conf

# Étendue pour le VLAN 10 (réseau Informatique)
subnet 192.168.10.0 netmask 255.255.255.0 {
    range 192.168.10.100 192.168.10.200;
    option routers 192.168.10.1;              # IP du routeur côté VLAN 10
    option domain-name-servers 192.168.30.10; # IP du serveur DNS
    default-lease-time 86400;
}

# Étendue pour le VLAN 20 (réseau Direction)
subnet 192.168.20.0 netmask 255.255.255.0 {
    range 192.168.20.100 192.168.20.200;
    option routers 192.168.20.1;              # IP du routeur côté VLAN 20
    option domain-name-servers 192.168.30.10;
    default-lease-time 86400;
}

# Déclaration du réseau serveur (obligatoire même si pas de range DHCP ici)
# Bind9 doit connaître ce réseau pour accepter les requêtes relayées
subnet 192.168.30.0 netmask 255.255.255.0 {
    # Pas de range : les serveurs ont des IPs fixes
}

Important : Le serveur DHCP Linux doit avoir une déclaration subnet pour tous les réseaux qu'il connaît, même ceux sans plage d'attribution. Sinon, il refuse de traiter les requêtes relayées.


D. Schéma Complet de l'Infrastructure

SW_ACCÈS (Cisco 2960) VLAN 10 : Fa0/1 à Fa0/10 VLAN 20 : Fa0/11 à Fa0/20 Trunk : Fa0/24 ROUTEUR R1 Fa0/0.10 : 192.168.10.1/24 ip helper-address 192.168.30.10 Fa0/0.20 : 192.168.20.1/24 ip helper-address 192.168.30.10 Fa0/0.30 : 192.168.30.1/24 trunk Fa0/0 Serveur Linux (VM Debian) 192.168.30.10 - VLAN 30 isc-dhcp-server : 2 étendues Bind9 : zone infra.local (A, PTR, CNAME)