R\303\251seau/DHCP.md
... ...
@@ -0,0 +1,146 @@
1
+Dynamic Host Configuration Protocol (DHCP)
2
+======================================
3
+
4
+-> [Voir la configuration DHCP de Rennes](Rennes/Réseau/DHCP)
5
+
6
+## Généralités
7
+
8
+Le serveur DHCP est hébergé sur la VM [saymyname](Serveurs/saymyname)
9
+
10
+Le serveur DHCP utilisé est isc-dhcp
11
+
12
+## Utilisation
13
+
14
+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)
15
+
16
+## Configuration
17
+-> La configuration se trouve : https://git.resel.fr/confs/dhcp-brest
18
+
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.
20
+
21
+### Configuration préliminaire du DHCP
22
+
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
24
+
25
+Avant d'ajouter toutes les IP des machines au DHCP, il faut configurer les options par défaut :
26
+
27
+```
28
+authoritative;
29
+one-lease-per-client on;
30
+always-broadcast on;
31
+ping-check on;
32
+log-facility local 7;
33
+
34
+option netbios-node-type 2;
35
+option netbios-name-servers 172.22.199.1;
36
+option netbios-dd-server 172.22.199.1;
37
+option ntp-servers 172.22.199.1;
38
+option pop-server 172.22.42.105;
39
+option nntp-server 172.22.42.105;
40
+option www-server 172.22.42.80;
41
+option irc-server 172.22.199.31;
42
+next-server 172.22.42.3;
43
+```
44
+
45
+À noter que le authoritative permet de dire au DHCP de refuser toute demande illégale d'un client DHCP.
46
+
47
+Ensuite, on configure le PXE :
48
+
49
+```
50
+filename "pxelinux.0";
51
+
52
+if substring (option vendor-class-identifier, 0, 17) = "NetBSD:i386:libsa"
53
+{
54
+ if filename = "boot.cfg"
55
+ {
56
+ filename "tftp:bsd/netbsd-boot.cfg";
57
+ } else if filename = "netbsd" {
58
+ filename "tftp:bsd/netbsd-INSTALL.gz";
59
+ }
60
+}
61
+```
62
+
63
+Voila la partie intéressante :
64
+
65
+```
66
+option domain-name "resel.fr";
67
+
68
+shared-network "resel-995" {
69
+
70
+ # Subnet inscription
71
+ subnet 172.22.224.0 netmask 255.255.254.0 {
72
+ authoritative;
73
+ range 172.22.224.3 172.22.225.250;
74
+ default-lease-time 120;
75
+ max-lease-time 300;
76
+ option domain-name-servers 172.22.225.253;
77
+ option routers 172.22.225.254;
78
+ option broadcast-address 172.22.225.255;
79
+ option subnet-mask 255.255.254.0;
80
+ }
81
+}
82
+
83
+shared-network "resel-999" {
84
+
85
+ # Subnet inscription-999 (inscription over ethernet)
86
+ subnet 172.22.226.0 netmask 255.255.254.0 {
87
+ authoritative;
88
+ range 172.22.226.3 172.22.227.250;
89
+ default-lease-time 120;
90
+ max-lease-time 300;
91
+ option domain-name-servers 172.22.227.253;
92
+ option routers 172.22.227.254;
93
+ option broadcast-address 172.22.227.255;
94
+ option subnet-mask 255.255.254.0;
95
+ }
96
+ # Subnet utilisateurs
97
+ subnet 172.22.192.0 netmask 255.255.224.0 {
98
+ option domain-name-servers 172.22.199.229, 172.22.42.1, 172.23.42.229;
99
+ option routers 172.22.199.1;
100
+ option subnet-mask 255.255.224.0;
101
+ #range 172.22.200.000 172.22.223.254;
102
+ }
103
+
104
+ group {
105
+ use-host-decl-names off;
106
+ option domain-name-servers 172.22.199.229, 172.22.199.11;
107
+ option routers 172.22.199.1;
108
+ option broadcast-address 172.22.223.255;
109
+ default-lease-time 86400;
110
+ min-lease-time 86400;
111
+```
112
+
113
+### Configuration du daemon
114
+
115
+Par ailleurs, le fichier `/etc/default/isc-dhcp-server` contient la configuration du lancement du daemon.
116
+La ligne intéressante est celle précisant les interfaces :
117
+
118
+```
119
+DHCPDARGS = "eth1 eth3"
120
+```
121
+
122
+#### Génération et redémarrage
123
+
124
+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
+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
+
127
+Pour regénérer le DHCP, le script `/srv/reloader/scripts/dhcp/ldap2dhcp.py` va questionner le ldap et récupérer toutes les ips et macs de machines inscrites,
128
+puis il va générer un host dans la conf du dhcp suivant la syntaxe
129
+
130
+```
131
+host <son nom>
132
+{
133
+ fixed-address <son ip>;
134
+ hardware ethernet <sa mac>;
135
+ option host-name <son hostname>;
136
+}
137
+```
138
+
139
+## Ressources utiles
140
+* https://wiki.debian.org/DHCP_Server
141
+
142
+## Articles liés
143
+* [Saymyname](Serveurs/saymyname)
144
+
145
+## TODO (pour le rédacteur)
146
+* Ajouter quelques ressources de plus
... ...
\ No newline at end of file