R\303\251seau/DHCP.md
... ...
@@ -1,35 +1,45 @@
1 1
Dynamic Host Configuration Protocol (DHCP)
2 2
======================================
3 3
4
--> [Voir la configuration DHCP de Rennes](Rennes/Réseau/DHCP)
4
+Version du 25/01/2017.
5
+
6
+Cette page est un guide sur comment configurer un serveur DHCP, en particulier celui de Brest.
7
+C'est la deuxième étape du guide [Monter le service DHCP](Guides/Monter-le-service-DHCP) du ResEL
8
+* [Installer un serveur DHCP](Guides/DHCP/Installer-un-serveur-DHCP)
9
+* Configurer le DHCP
10
+* [Configurer un DHCP de secours](Guides/DHCP/Configurer-un-DHCP-de-secours)
11
+
12
+Vous pouvez [Voir la configuration DHCP de Rennes](Rennes/Réseau/DHCP) pour avoir un guide expliquant les différences de configuration à Rennes.
13
+
5 14
6 15
## Généralités
7 16
8
-Le serveur DHCP est hébergé sur la VM [saymyname](Serveurs/saymyname)
17
+Le serveur DHCP est hébergé sur la VM [saymyname](Serveurs/saymyname). La VM [braum](Serveurs/braum) avec le serveur DHCP de secours a une configuration similaire.
18
+
19
+Le serveur DHCP utilisé est `isc-dhcp`, c'est à dire le package `isc-dhcp-server`.
9 20
10
-Le serveur DHCP utilisé est isc-dhcp
11 21
12 22
## Utilisation
13 23
14 24
Pour relancer le service lors d'une modification (mise à jour du ldap ou de la configuration dhcp) le plus simple est d'utiliser le lien qui se trouve sur le [site admin](https://admin.resel.fr)
25
+Ce lien lance l'exécution du script de reload (voir Configuration).
15 26
16 27
## Configuration
17 28
-> La configuration se trouve : https://git.resel.fr/confs/dhcp-brest
18 29
19
-Le fichier de conf dhcpd.conf est généré en créant un fichier contenant d'abord le fichier /etc/dhcp/header.conf qui contient la conf préliminaire du dhcp. Puis le script python ajoute la description statique de chacun des machines inscrites, son ip et son adresse mac.
30
+Le fichier de conf dhcpd.conf est généré en créant un fichier contenant d'abord le fichier `/etc/dhcp/header.conf` qui contient la conf préliminaire du dhcp. Ensuite, le script python `ldap2dhcp.py` (voir plus bas) ajoute la description statique de chacun des machines inscrites, son ip et son adresse mac à la conf. La conf finale est inscrite dans le fichier `/etc/dhcp/dhcp.conf`.
20 31
21 32
### Configuration préliminaire du DHCP
22 33
23
-Détaillons le fichier header que vous pouvez trouver dans sa dernière version à : https://git.resel.fr/confs/dhcp-brest/blob/master/header.conf
34
+Détaillons le fichier `header.conf` (situé dans `/etc/dhcp/`) que vous pouvez trouver dans sa dernière version à : https://git.resel.fr/confs/dhcp-brest/blob/master/header.conf
24 35
25 36
Avant d'ajouter toutes les IP des machines au DHCP, il faut configurer les options par défaut :
26
-
27 37
```
28 38
authoritative;
29 39
one-lease-per-client on;
30 40
always-broadcast on;
31 41
ping-check on;
32
-log-facility local 7;
42
+log-facility local7;
33 43
34 44
option netbios-node-type 2;
35 45
option netbios-name-servers 172.22.199.1;
... ...
@@ -41,8 +51,8 @@ option www-server 172.22.42.80;
41 51
option irc-server 172.22.199.31;
42 52
next-server 172.22.42.3;
43 53
```
44
-
45
-À noter que le authoritative permet de dire au DHCP de refuser toute demande illégale d'un client DHCP.
54
+À noter que le `authoritative;` permet de dire au DHCP de refuser toute demande illégale d'un client DHCP.
55
+De plus, il n'y a pas d'espace entre  `local` et `7;` dans la ligne `log-facility local7;` contrairement à ce qu'il est possible de voir sur internet. On a testé et de mémoire c'est mieux.
46 56
47 57
Ensuite, on configure le PXE :
48 58
... ...
@@ -65,8 +75,8 @@ Voila la partie intéressante :
65 75
```
66 76
option domain-name "resel.fr";
67 77
68
-shared-network "resel-995" {
69
-
78
+shared-network "resel-995"
79
+{
70 80
# Subnet inscription
71 81
subnet 172.22.224.0 netmask 255.255.254.0 {
72 82
authoritative;
... ...
@@ -109,6 +119,7 @@ shared-network "resel-999" {
109 119
default-lease-time 86400;
110 120
min-lease-time 86400;
111 121
```
122
+Vous pouvez noter ici l'absence de la bracket `}` finale pour permettre au reloader de concaténer la description statiques des machines inscrites.
112 123
113 124
### Configuration du daemon
114 125
... ...
@@ -118,9 +129,18 @@ La ligne intéressante est celle précisant les interfaces :
118 129
```
119 130
DHCPDARGS = "eth1 eth3"
120 131
```
132
+L'interface `eth1` permet sert pour le VLAN utilisateur et l'interface eth3 pour le VLAN inscription. TODO : vérifier cette info.
133
+A noter que la ligne précédente remplace la ligne suivante dans la configuration par défaut de `isc-dhcp-server` :
134
+```
135
+INTERFACES=""
136
+```
121 137
122
-#### Génération et redémarrage
138
+#### Génération
139
+Pour la première mise en route du service, le plus simple est de lancer le script `ldap2dhcp.py`. Voir l'article suivant pour plus d'info.
123 140
141
+#### Redémarrage du service
142
+##### Avec le script (méthode conseillée)
143
+Pour appliquer la mise à jour du LDAP, ou de la configuration DHCP, il faut redémarrer le service isc-dhcp-server.
124 144
Pour redémarrer le DHCP, de préférence il faut utiliser l'interface admin : section relance DHCP et DNS cliquer sur le bouton DHCP.
125 145
Cela va lancer une connexion ssh sur [saymyname](Serveurs/saymyname) avec le compte reloader dont la seule action va être de relancer le DHCP.
126 146
... ...
@@ -135,12 +155,45 @@ host <son nom>
135 155
option host-name <son hostname>;
136 156
}
137 157
```
158
+Le script écrase le contenu de `dhcp.conf` à chaque exécution. Il faut donc faire attention à ne pas casser la configuration préliminaire `header.conf` pour garantir la relance du service dhcp.
159
+
160
+##### Rédemarrage manuel (pour ceux qui aime tout casser)
161
+Pour effectuer un redémarrage manuel, il est possible de stopper et relancer le service à partir de l'invite de commande. Cette méthode ne prend pas en compte les modifications du LDAP, ni de la conf DHC. Je vous conseille vivement d'utiliser le script de reload. Néanmoins, les commandes à lancer sont :
162
+```
163
+systemctl stop isc-dhcp-server
164
+```
165
+Puis
166
+```
167
+systemctl start isc-dhcp-server
168
+```
169
+
170
+### Vérifier que les scripts sont bien lancés et fonctionnent
171
+Deux commandes permettent de vérifier que le service DHCP s'est lancé sans erreurs :
172
+```
173
+tails -f /var/log/syslog
174
+```
175
+et
176
+```
177
+journalctl -xn 100
178
+```
179
+A noter que le `100` sert à faire apparaitre 100 lignes du journal (au lieu des 10 par défaut).
138 180
139 181
## Ressources utiles
182
+### Git ResEl
183
+* https://git.resel.fr/confs/dhcp-brest
184
+* https://git.resel.fr/confs/dhcp-rennes
185
+* https://git.resel.fr/resel/scripts/tree/master/dhcp pour le script `ldap2dhcp.py`.
186
+
187
+### Externes
140 188
* https://wiki.debian.org/DHCP_Server
141 189
190
+
142 191
## Articles liés
143 192
* [Saymyname](Serveurs/saymyname)
193
+* [Installer un serveur DHCP](Guides/DHCP/Installer-un-serveur-DHCP) (Article précédent)
194
+* [Configurer un DHCP de secours](Guides/DHCP/Configurer-un-DHCP-de-secours) (Article suivant)
144 195
145 196
## TODO (pour le rédacteur)
146
-* Ajouter quelques ressources de plus
... ...
\ No newline at end of file
0
+* Ajouter quelques ressources de plus
1
+* Vérifier la correspondance interfes-VLAN affirmée dans #configuration-du-daemon
2
+* Déplacer cette page vers [Configurer un serveur DHCP](Guides/DHCP/Configurer-un-serveur-DHCP)
... ...
\ No newline at end of file