# DHCP

Le DHCP distribue **automatiquement** aux clients une IP, un masque, une passerelle, un DNS, etc.

## Le processus DORA

| Étape | Message | De → vers | Type |
|---|---|---|---|
| **D**iscover | « Y a-t-il un serveur DHCP ? » | Client → tous | Broadcast (`255.255.255.255`, port UDP 67) |
| **O**ffer | « Je te propose 10.19.1.100 » | Serveur → client | (port UDP 68) |
| **R**equest | « J'accepte l'offre de SRV01 » | Client → tous | Broadcast (pour prévenir les autres serveurs) |
| **A**ck | « C'est confirmé, bail de 8 jours » | Serveur → client | |

- **Bail** : durée de validité de l'adresse. Le client tente de le **renouveler à 50 %** de sa durée, puis à 87,5 %.
- Pas de serveur qui répond → le client prend une adresse **APIPA** `169.254.x.x` : c'est le signe d'un problème DHCP.

## Vocabulaire

| Terme | Signification |
|---|---|
| **Étendue** (*scope*) | Plage d'adresses distribuables pour un réseau (ex. 10.19.1.100 → 10.19.1.200) |
| **Exclusion** | Adresses de la plage à **ne pas** distribuer (IP fixes des serveurs, imprimantes) |
| **Réservation** | Toujours la même IP pour une **adresse MAC** donnée |
| **Options** | Paramètres envoyés avec l'IP |
| **Autorisation** | Dans un domaine, un serveur DHCP doit être **autorisé dans AD**, sinon il ne distribue rien (protection contre les serveurs DHCP « pirates ») |

### Options importantes

| N° | Option | Labo |
|---|---|---|
| 003 | Routeur (passerelle) | `10.19.1.1` |
| 006 | Serveurs DNS | `10.19.1.254` |
| 015 | Nom de domaine DNS | `hp.lan` |
| 051 | Durée du bail | |

Les options peuvent être définies **au niveau du serveur** (pour toutes les étendues), **de l'étendue** ou **d'une réservation**. Le niveau le plus précis l'emporte.

## Installation et configuration (PowerShell)

```powershell
Install-WindowsFeature DHCP -IncludeManagementTools

# Crée les groupes de sécurité locaux DHCP (Administrateurs DHCP, Utilisateurs DHCP)
Add-DhcpServerSecurityGroup
Restart-Service DHCPServer

# Autoriser le serveur dans AD
Add-DhcpServerInDC -DnsName srv01.hp.lan -IPAddress 10.19.1.254

# Indiquer au Gestionnaire de serveur que la configuration post-installation est faite
Set-ItemProperty -Path HKLM:\SOFTWARE\Microsoft\ServerManager\Roles\12 -Name ConfigurationState -Value 2

# Étendue
Add-DhcpServerv4Scope -Name "LAN01" -StartRange 10.19.1.100 -EndRange 10.19.1.200 `
    -SubnetMask 255.255.255.0 -LeaseDuration 8.00:00:00 -State Active

# Options de l'étendue
Set-DhcpServerv4OptionValue -ScopeId 10.19.1.0 -Router 10.19.1.1 `
    -DnsServer 10.19.1.254 -DnsDomain "hp.lan"

# Exclusion
Add-DhcpServerv4ExclusionRange -ScopeId 10.19.1.0 -StartRange 10.19.1.100 -EndRange 10.19.1.109

# Réservation
Add-DhcpServerv4Reservation -ScopeId 10.19.1.0 -IPAddress 10.19.1.150 `
    -ClientId "00-15-5D-01-02-03" -Name "IMP01" -Description "Imprimante"

# Vérifier
Get-DhcpServerv4Scope
Get-DhcpServerv4Lease -ScopeId 10.19.1.0
Get-DhcpServerInDC
```

GUI : `dhcpmgmt.msc` → IPv4 → **Nouvelle étendue** (l'assistant demande la plage, les exclusions, la durée du bail et les options 003/006/015) → clic droit sur le serveur → **Autoriser**.

> 📝 Laisser les IP fixes (serveur .254, routeur .1) **en dehors** de la plage de l'étendue : c'est plus simple que de gérer des exclusions.

## Côté client

```cmd
ipconfig /release
ipconfig /renew
ipconfig /all        :: vérifier "Serveur DHCP", "Bail obtenu", "Bail expirant"
```

## Dépannage

| Symptôme | Piste |
|---|---|
| Client en `169.254.x.x` | Serveur non autorisé, étendue désactivée, client sur un autre réseau virtuel, ou pas de relais DHCP entre les deux |
| IP OK mais pas d'Internet | Option 003 (routeur) manquante ou fausse |
| IP OK mais pas de résolution de noms | Option 006 (DNS) manquante ou fausse |
| Icône rouge (flèche vers le bas) dans la console | Serveur non autorisé dans AD |

## Questions de révision

1. Cite les 4 étapes du DORA. Lesquelles sont en broadcast ?
2. Que signifie une adresse en 169.254.x.x sur un client ?
3. Quelle est la différence entre une exclusion et une réservation ?
4. Pourquoi faut-il « autoriser » un serveur DHCP dans Active Directory ?
5. Quelles options DHCP envoient la passerelle et le serveur DNS ?
6. Le serveur DHCP est sur un autre réseau que les clients : que faut-il ajouter ?