R\303\251seau/DHCP.md
... ...
@@ -13,14 +13,22 @@ Lors de la connexion d'une machine utilisateur sur le réseau, le réseau s'auth
13 13
14 14
La station et le serveur DHCP échangent principalement 4 types de messages : DHCPDISCOVER, DHCPOFFER, DHCPREQUEST, DHCPACK.
15 15
16
+Schéma des requêtes d'une adresse IP dynamique
17
+
16 18
{{{{{{
17
-note left of Machine: Demande d'adresse IP, configuration dynamique
18 19
Machine utilisateur->Serveur DHCP: DHCPDISCOVER
19 20
Serveur DHCP->Machine utilisateur: DHCPOFFER
20 21
Machine utilisateur->Serveur DHCP: DHCPREQUEST
21 22
Serveur DHCP->Machine utilisateur: DHCPACK
22 23
}}}}}}
23 24
25
+Schéma des requêtes d'une adresse IP statique
26
+
27
+{{{{{{
28
+Machine utilisateur->Serveur DHCP: DHCPREQUEST
29
+Serveur DHCP->Machine utilisateur: DHCPACK
30
+}}}}}}
31
+
24 32
- DHCPDISCOVER - Pour une machines configurée en attribution d'ip dynamique, celle-ci broadcaste une le fait qu'elle recherche une adresse IP. Dans ce message, la machine indique notament son adresse MAC.
25 33
- DHCPOFFER - Le DHCP regarde sa configuration, les leases (liste des adresses déjà attribuées par le serveur DHCP) et les informations du DHCPDISCOVER. Il détermine une adresse IP et broadcaste sa proposition d'adresse pour l'adresse mac de la machine demandeuse.
26 34
- DHCPREQUEST - La machine demande l'attribution d'une adresse IP. Cela vient soit après une DHCPOFFER, soit directement la machine est configurée en attribution d'adresse IP statique.
... ...
@@ -43,7 +51,7 @@ Pour les IP non fixées dans la configuration (rien à voir avec le principe d'a
43 51
En fonctionnement anormal, ie quand l'un des deux serveurs tombe, le serveur toujours en marche prend le relais pour gérer toutes les requêtes DHCP envoyées sur le réseau.
44 52
45 53
## Stack de tests
46
-Il est conseillé (*obligatoire*) de tester une nouvelle configuration DHCP sur la stack de test avant de la déployer. Pour cela, il y a actuellement 3 machines virtuelles sur kyube :
54
+Il est conseillé (*obligatoire*) de tester une nouvelle configuration DHCP sur la stack de test avant de la déployer. Pour cela, il y a actuellement 3 machines virtuelles sur kyubey :
47 55
- Bao le dhcp primaire
48 56
- Oba le dhcp secondaire
49 57
- Altair la machine de test
... ...
@@ -51,10 +59,120 @@ Il est conseillé (*obligatoire*) de tester une nouvelle configuration DHCP sur
51 59
52 60
# Utilisation
53 61
62
+
54 63
# Configuration
64
+## Coté client/utilisateur
65
+En tant qu'utilisateur, il suffit de configurer l'interface réseau de la machine pour choisir on souhaite avoir une adresse IP dynamique ou statique.
66
+Sur les distribution Linux basées sur Debian, la configuration se trouve dans le fichier `/etc/network/interfaces`.
67
+
68
+Pour une configuration statique de l'interface `eth0`
69
+```
70
+auto eth0 # interface powered up with `ifup -a`, e.g. system boot scripts
71
+allow-hotplug eth0 # another identifier of interfaces, brought up autmomatically by subsystems, using`ifup allow=hotplug`
72
+iface eth0 inet static # definition of interface and its configuration
73
+ address 172.22.203.111 # address of the interface in the network
74
+ netmask 255.255.254.0
75
+ network 172.22.199.0 # non mandatory, the network to be used
76
+ broadcast 172.22.223.255 # non mandatory, the broadcast address
77
+ gateway 172.22.223.254 # non mandatory
78
+```
79
+
80
+Pour une configuration dynamique de l'interface `eth0`
81
+```
82
+auto eth0
83
+allow-hotplug eth0
84
+ iface eth0 inet dhcp
85
+```
86
+
87
+## Coté serveur
88
+
89
+Actuellement, on utilise le logiciel `isc-dhcp-server` pour gérer les requêtes DHCP.
90
+La configuration se trouve par défaut dans le fichier `/etc/dhcp/dhcpd.conf`. Sinon, il faut regarder son adresse dans `/etc/default/isc-dhcp-server`.
91
+
92
+### Modification de `/etc/default/isc-dhcp-server`
93
+Dans le fichier `/etc/default/isc-dhcp-server`, il faut préciser les interfaces réseaux du serveur sur laquelle il doit répondre aux requêtes DHCP. Exemple ici sur les interfaces `eth1` et `eth3`.
94
+```
95
+DHCPDARGS = "eth1 eth3"
96
+```
97
+Cette ligne remplace `INTERFACES =""` qui est la déclaration utilisée dans les distribution CentOS.
98
+
99
+### Modification de `/etc/dhcp/dhcpd.conf` au ResEl
100
+[La configuration est versionnée sur git](https://git.resel.fr/confs/dhcp-brest)
101
+La configuration minimale n'est pas connue, mais il faut au moins préciser un certain nombre d'options, dont les subnets et les adresses IP à distribuer.
102
+Les options que l'on utilise au ResEl sont
103
+```
104
+authoritative;
105
+one-lease-per-client on;
106
+always-broadcast on;
107
+ping-check on;
108
+log-facility local7;
109
+
110
+option netbios-node-type 2;
111
+option netbios-name-servers 172.22.199.1;
112
+option netbios-dd-server 172.22.199.1;
113
+option ntp-servers 172.22.199.1;
114
+option pop-server 172.22.42.105;
115
+option nntp-server 172.22.42.105;
116
+option www-server 172.22.42.80;
117
+option irc-server 172.22.199.31;
118
+next-server 172.22.42.3;
119
+
120
+filename "pxelinux.0";
121
+
122
+if substring (option vendor-class-identifier, 0, 17) = "NetBSD:i386:libsa"
123
+{
124
+ if filename = "boot.cfg"
125
+ {
126
+ filename "tftp:bsd/netbsd-boot.cfg";
127
+ } else if filename = "netbsd" {
128
+ filename "tftp:bsd/netbsd-INSTALL.gz";
129
+ }
130
+}
131
+
132
+option domain-name "resel.fr";
133
+shared-network "resel-999" {
134
+
135
+ # Subnet inscription-999 (inscription over ethernet)
136
+ subnet 172.22.226.0 netmask 255.255.254.0 {
137
+ authoritative;
138
+ range 172.22.226.3 172.22.227.250;
139
+ default-lease-time 120;
140
+ max-lease-time 300;
141
+ option domain-name-servers 172.22.227.253;
142
+ option routers 172.22.227.254;
143
+ option broadcast-address 172.22.227.255;
144
+ option subnet-mask 255.255.254.0;
145
+ }
146
+ # Subnet utilisateurs
147
+ subnet 172.22.192.0 netmask 255.255.224.0 {
148
+ option domain-name-servers 172.22.199.229, 172.22.42.1, 172.23.42.229;
149
+ option routers 172.22.199.1;
150
+ option subnet-mask 255.255.224.0;
151
+ #range 172.22.200.000 172.22.223.254;
152
+ }
153
+
154
+ group {
155
+ use-host-decl-names off;
156
+ option domain-name-servers 172.22.199.229, 172.22.199.11;
157
+ option routers 172.22.199.1;
158
+ option broadcast-address 172.22.223.255;
159
+ default-lease-time 86400;
160
+ min-lease-time 86400;
161
+ # insérer quelques hosts ici
162
+ }
163
+
164
+```
165
+
166
+
55 167
56 168
# Liens utiles
57 169
170
+Sur la configuration d'une interface réseau
171
+* [man interfaces](http://www.unix.com/man-page/Linux/5/interfaces/)
172
+* https://wiki.debian.org/NetworkConfiguration
173
+Sur la configuration de isc-dhcp-server
174
+* [man isc-dhcp-server](https://manpages.debian.org/jessie/isc-dhcp-server/dhcpd.8.en.html) et tout le reste de famille
175
+
58 176
# TODO
59 177
- Finir de compléter les parties
60 178
- Migrer les infos pour l'installation dans le repo dhcp-brest
... ...
\ No newline at end of file