d41e17903f67bed9aeb7b0d597772eb372115951
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 |