Différences
Ci-dessous, les différences entre deux révisions de la page.
| Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente | ||
| 090_applicatifs:165dhcp:20-serveur_dhcp [le 22/03/2025 à 13:20] – [Offer] prof | 090_applicatifs:165dhcp:20-serveur_dhcp [le 05/04/2025 à 16:40] (Version actuelle) – ↷ Liens modifiés en raison d'un déplacement. prof | ||
|---|---|---|---|
| Ligne 1: | Ligne 1: | ||
| ====== Un serveur DHCP ====== | ====== Un serveur DHCP ====== | ||
| - | Nous avons déjà vu [[050_profondeurs: | + | Nous avons déjà vu [[050-manips-ipv4: |
| {{ : | {{ : | ||
| Sur le LAN vert, tous les nœuds devront être configués via DHCP.L' | Sur le LAN vert, tous les nœuds devront être configués via DHCP.L' | ||
| Ligne 109: | Ligne 109: | ||
| Whireshark est à l' | Whireshark est à l' | ||
| - | < | + | <html>< |
| - | No. Time | + | <b>No. Time |
| | | ||
| | | ||
| Ligne 117: | Ligne 117: | ||
| | | ||
| | | ||
| - | </code> | + | </pre></ |
| Jusque là, c'est comme dans les livres. Regardons le détail du DHCP Discover: | Jusque là, c'est comme dans les livres. Regardons le détail du DHCP Discover: | ||
| Ligne 123: | Ligne 123: | ||
| < | < | ||
| - | Dynamic Host Configuration Protocol (Discover) | + | <b>Dynamic Host Configuration Protocol (Discover)</b> |
| <span class=" | <span class=" | ||
| Hardware type: Ethernet (0x01) | Hardware type: Ethernet (0x01) | ||
| Ligne 194: | Ligne 194: | ||
| ==== Offer ==== | ==== Offer ==== | ||
| < | < | ||
| - | Dynamic Host Configuration Protocol (Offer) | + | <b>Dynamic Host Configuration Protocol (Offer)</b> |
| <span class=" | <span class=" | ||
| Hardware type: Ethernet (0x01) | Hardware type: Ethernet (0x01) | ||
| Ligne 264: | Ligne 264: | ||
| Le serveur confirme le CID proposé par le client. Il n'a normalement pas à le modifier en quoi que ce soit. Le client va probablement accepter (a-t-il vraiment le choix ?) | Le serveur confirme le CID proposé par le client. Il n'a normalement pas à le modifier en quoi que ce soit. Le client va probablement accepter (a-t-il vraiment le choix ?) | ||
| ==== Request ==== | ==== Request ==== | ||
| + | < | ||
| + | < | ||
| + | Message type: Boot Request (1) | ||
| + | Hardware type: Ethernet (0x01) | ||
| + | Hardware address length: 6 | ||
| + | Hops: 0 | ||
| + | Transaction ID: 0x175f7d6c | ||
| + | Seconds elapsed: 0 | ||
| + | Bootp flags: 0x0000 (Unicast) | ||
| + | 0... .... .... .... = Broadcast flag: Unicast | ||
| + | .000 0000 0000 0000 = Reserved flags: 0x0000 | ||
| + | Client IP address: 0.0.0.0 | ||
| + | Your (client) IP address: 0.0.0.0 | ||
| + | Next server IP address: 0.0.0.0 | ||
| + | Relay agent IP address: 0.0.0.0 | ||
| + | Client MAC address: RealtekU_d2: | ||
| + | Client hardware address padding: 00000000000000000000 | ||
| + | Server host name not given | ||
| + | Boot file name not given | ||
| + | Magic cookie: DHCP | ||
| + | <span class=" | ||
| + | Length: 1 | ||
| + | DHCP: Request (3) | ||
| + | Option: (54) DHCP Server Identifier (192.168.61.1) | ||
| + | Length: 4 | ||
| + | < | ||
| + | Option: (50) Requested IP Address (192.168.61.2) | ||
| + | Length: 4 | ||
| + | < | ||
| + | Option: (12) Host Name | ||
| + | Length: 3 | ||
| + | Host Name: nas | ||
| + | Option: (55) Parameter Request List | ||
| + | Length: 13 | ||
| + | Parameter Request List Item: (1) Subnet Mask | ||
| + | Parameter Request List Item: (28) Broadcast Address | ||
| + | Parameter Request List Item: (2) Time Offset | ||
| + | Parameter Request List Item: (3) Router | ||
| + | Parameter Request List Item: (15) Domain Name | ||
| + | Parameter Request List Item: (6) Domain Name Server | ||
| + | Parameter Request List Item: (119) Domain Search | ||
| + | Parameter Request List Item: (12) Host Name | ||
| + | Parameter Request List Item: (44) NetBIOS over TCP/IP Name Server | ||
| + | Parameter Request List Item: (47) NetBIOS over TCP/IP Scope | ||
| + | Parameter Request List Item: (26) Interface MTU | ||
| + | Parameter Request List Item: (121) Classless Static Route | ||
| + | Parameter Request List Item: (42) Network Time Protocol Servers</ | ||
| + | Option: (61) Client identifier | ||
| + | Length: 19 | ||
| + | IAID: 00d29a0e | ||
| + | DUID Type: link-layer address plus time (1) | ||
| + | Hardware type: Ethernet (1) | ||
| + | Time: 795954794 | ||
| + | Link layer address: 52: | ||
| + | Option: (255) End | ||
| + | Option End: 255 | ||
| + | </ | ||
| + | Dans cette requête, il accepte bien l' | ||
| + | ==== Ack ==== | ||
| + | < | ||
| + | < | ||
| + | ... | ||
| + | Your (client) IP address: 192.168.61.2 | ||
| + | Next server IP address: 0.0.0.0 | ||
| + | Relay agent IP address: 0.0.0.0 | ||
| + | ... | ||
| + | Option: (53) DHCP Message Type (ACK) | ||
| + | Length: 1 | ||
| + | DHCP: ACK (5) | ||
| + | Option: (1) Subnet Mask (255.255.255.0) | ||
| + | Length: 4 | ||
| + | Subnet Mask: 255.255.255.0 | ||
| + | Option: (3) Router | ||
| + | Length: 4 | ||
| + | Router: 192.168.61.1 | ||
| + | Option: (6) Domain Name Server | ||
| + | Length: 4 | ||
| + | Domain Name Server: 192.168.61.1 | ||
| + | Option: (12) Host Name | ||
| + | Length: 3 | ||
| + | Host Name: nas | ||
| + | Option: (51) IP Address Lease Time | ||
| + | Length: 4 | ||
| + | IP Address Lease Time: (3600s) 1 hour | ||
| + | Option: (54) DHCP Server Identifier (192.168.61.1) | ||
| + | Length: 4 | ||
| + | DHCP Server Identifier: 192.168.61.1 | ||
| + | Option: (58) Renewal Time Value | ||
| + | Length: 4 | ||
| + | Renewal Time Value: (1800s) 30 minutes | ||
| + | Option: (59) Rebinding Time Value | ||
| + | Length: 4 | ||
| + | Rebinding Time Value: (2700s) 45 minutes | ||
| + | Option: (61) Client identifier | ||
| + | Length: 19 | ||
| + | IAID: 00d29a0e | ||
| + | DUID Type: link-layer address plus time (1) | ||
| + | Hardware type: Ethernet (1) | ||
| + | Time: 795954794 | ||
| + | Link layer address: 52: | ||
| + | Option: (119) Domain Search | ||
| + | Length: 17 | ||
| + | FQDN: home.nain-t.net | ||
| + | Option: (255) End | ||
| + | Option End: 255 | ||
| + | </ | ||
| + | Et le client devra s'en satisfaire, surtout que les paramètres indispensables sont tous fournis pour une connectivité opérationnelle. | ||
| + | ===== Fin de l' | ||
| + | Simulons une panne de DHCP un peu avant que le client demande un renouvellement... | ||
| + | < | ||
| + | < | ||
| + | <span class=" | ||
| + | 2 7.560894138 | ||
| + | <span class=" | ||
| + | 4 1041.126556541 192.168.61.2 | ||
| + | ... | ||
| + | 64 1902.788046683 192.168.61.2 | ||
| + | 65 1922.817322968 192.168.61.2 | ||
| + | <span class=" | ||
| + | 67 1937.765165131 0.0.0.0 | ||
| + | ...</ | ||
| + | </ | ||
| + | - Au début, confient, le client demande le renouvellement de son bail à 192.168.61.1 (trames 1 et 2), | ||
| + | - à la 1031< | ||
| + | - à la 1930< | ||
| + | Ne sortez pas vos mouchoirs, l' | ||
| + | ===== Les entrailles du serveur ===== | ||
| + | Kea a été configuré pour gérer ses données internes dans un fichier CSV(({{ : | ||
| + | |||
| + | < | ||
| + | < | ||
| + | <span class=" | ||
| + | 192.168.61.2, | ||
| + | 192.168.61.2, | ||
| + | <span class=" | ||
| + | <span class=" | ||
| + | </ | ||
| + | Nous retrouvons bien «nas», «democlient2» et «democlient2» Il y a toutefois quelque chose de curieux sur «democlient1»: | ||
| + | ===== Pour aller plus loin ===== | ||
| + | Kea dhcp server peut utiliser de vraies bases de données relationnelles (MariaDB, PostgreSQL) plutôt qu'un simple fichier CSV. De même, ISC propose un outil de surveillance de plusieurs serveurs: [[https:// | ||
Un serveur DHCP: Dernière modification le: 22/03/2025 à 13:20 par prof