informatique:logiciels:dhcpd
                Differences
This shows you the differences between two versions of the page.
| Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
| informatique:logiciels:dhcpd [2016/10/11 14:18] – Diagnostique pteu | informatique:logiciels:dhcpd [2019/12/02 09:23] (current) – [Boot BIOS vs UEFI] pteu | ||
|---|---|---|---|
| Line 1: | Line 1: | ||
| - | Installation | + | |
| + | =====Installation===== | ||
| <code bash> | <code bash> | ||
| aptitude install isc-dhcp-server | aptitude install isc-dhcp-server | ||
| Line 9: | Line 11: | ||
| * ''/ | * ''/ | ||
| - | Exemple de configuration simple (''/ | + | |
| + | =====Configuration simple===== | ||
| + | |||
| + | Exemple de configuration simple (''/ | ||
| <code bash> | <code bash> | ||
| # option globales s' | # option globales s' | ||
| Line 19: | Line 24: | ||
| max-lease-time 86400; | max-lease-time 86400; | ||
| log-facility local7; | log-facility local7; | ||
| - |  | + | |
| + | # eth0 | ||
| subnet 10.0.0.0 netmask 255.255.255.0 { | subnet 10.0.0.0 netmask 255.255.255.0 { | ||
| - | range 10.0.0.1 10.0.0.10; | + | range 10.0.0.1 10.0.0.10; | 
| range 10.0.0.20 10.0.0.29; | range 10.0.0.20 10.0.0.29; | ||
|  |  | ||
| } | } | ||
| - | # ce réseau est découper | + | # eth1 ; ce réseau est découpé | 
| subnet 10.1.0.0 netmask 255.255.255.0 { | subnet 10.1.0.0 netmask 255.255.255.0 { | ||
| # pool default | # pool default | ||
| - | range 10.1.0.1 10.1.0.100; | + | pool { | 
| + |  | ||
| + | # on interdit les PC dont l' | ||
| + | deny unknown-clients; | ||
| + | } | ||
| # pool masterisation de PCs | # pool masterisation de PCs | ||
| - | range dynamic-bootp 10.1.0.101 10.1.0.150; | + | pool { | 
| + |  | ||
| + | allow unknown-clients; | ||
| + | max-lease-time 7200; # 2h | ||
| + | } | ||
|  |  | ||
| Line 40: | Line 54: | ||
| } | } | ||
| + | # eth2 | ||
| subnet 10.2.0.0 netmask 255.255.255.0 { | subnet 10.2.0.0 netmask 255.255.255.0 { | ||
| option domain-name " | option domain-name " | ||
| Line 47: | Line 62: | ||
| </ | </ | ||
| - | Pour réserver une IP à un PC, on l' | + | Pour réserver une IP à un PC (on parle d' | 
| <code bash> | <code bash> | ||
| # liste des réservations d'IPs | # liste des réservations d'IPs | ||
| Line 53: | Line 68: | ||
|  |  | ||
|  |  | ||
| + |  | ||
| } | } | ||
| - | host pc-grouillot { | + | # on utilise un group pour mutualiser les options | 
| - |  | + | group { | 
| - |  | + | # permet d' | 
| - | } | + | # ce qui nous évite de les préciser en double pour chaque host ! | 
| + |  | ||
| + | |||
| + | host pc-grouillot1 { hardware ethernet 00: | ||
| + | host pc-grouillot2 { hardware ethernet 00: | ||
| + |  | ||
| </ | </ | ||
| Line 75: | Line 96: | ||
| include "/ | include "/ | ||
| </ | </ | ||
| + | |||
| + | |||
| + | =====Diverses options===== | ||
| + | |||
| + | |||
| + | =====DHCP relay===== | ||
| + | |||
| + | Pour desservir des réseaux qui ne sont pas directement connectés au serveur DHCP, on utilisera le DHCP Relay. Cela fonctionne ainsi : | ||
| + | * quelque part un client broadcaste un DHCPDISCOVER | ||
| + | * une bonne âme (un routeur par exemple) branchée sur ce réseau, est configurée pour relayer cette requête vers notre serveur : c'est un "DHCP relay", | ||
| + | * le serveur DHCP reçoit le DHCPDISCOVER " | ||
| + | |||
| + | Exemple de cas pratique : | ||
| + | < | ||
| + | client < | ||
| + | </ | ||
| + | Le routeur devra être configuré pour relayer les requêtes DHCP reçues sur le réseau 10.0.0.0/24 à destination du serveur DHCP 192.168.0.2. | ||
| + | |||
| + | Exemple de configuration du serveur DHCP : | ||
| + | <code bash> | ||
| + | [..] | ||
| + | # eth0 | ||
| + | # ici, le serveur n' | ||
| + | # qui ne sert que de transit pour recevoir les requêtes relayées | ||
| + | shared-network { | ||
| + |  | ||
| + | } | ||
| + |  | ||
| + | option subnet-mask 255.255.255.0; | ||
| + | option broadcast-address 10.0.0.255; | ||
| + | option routers 10.0.0.1; | ||
| + | option domain-name " | ||
| + | range 10.0.0.2 10.0.0.100; | ||
| + | } | ||
| + | } | ||
| + | </ | ||
| + | |||
| + | |||
| + | =====DHCP Forticlient===== | ||
| + | |||
| + | Ce que je veux faire : | ||
| + | * un concentrateur VPN sur un firewall Fortigate | ||
| + | * des clients qui établisse des VPN IPSec " | ||
| + | * ces derniers reçoivent leurs IP en DHCP depuis le serveur DHCP centralisé | ||
| + | * seuls les clients connus = déclarés sur le serveur DHCP reçoivent leurs propres IPs (réservées = adressage DHCP statique) | ||
| + | |||
| + | Pour avoir passé un peu de temps à comprendre //pourquoi ça ne marche pas//, il faut savoir que le type de hardware envoyé dans la requête DHCP relayée n'est pas " | ||
| + | <code bash> | ||
| + | subnet forticlient [...] { | ||
| + | # interdire les clients inconnus | ||
| + | deny unknown-clients; | ||
| + | } | ||
| + | |||
| + | # pas bien : (vos clients seront traités comme " | ||
| + | # voir même "no free leases" | ||
| + | host toto { hardware ethernet 00: | ||
| + | # bien : | ||
| + | host toto { hardware unknown-31 00: | ||
| + | </ | ||
| + | |||
| + | Pour s' | ||
| + | |||
| + | |||
| + | =====Failover===== | ||
| Exemple de configuration failover : | Exemple de configuration failover : | ||
| Line 115: | Line 200: | ||
| </ | </ | ||
| + | =====Boot BIOS vs UEFI===== | ||
| - | =====Diagnostique==== | + | Pour prendre en compte le PXE avec des machines UEFI : on doit utiliser des fichiers différents en fonction de l' | 
| + | <code bash> | ||
| + | # Definition of PXE-specific options | ||
| + | # Code 1: Multicast IP address of bootfile | ||
| + | # Code 2: UDP port that client should monitor for MTFTP responses | ||
| + | # Code 3: UDP port that MTFTP servers are using to listen for MTFTP requests | ||
| + | # Code 4: Number of secondes a client must listen for activity before trying | ||
| + | # to start a new MTFTP transfer | ||
| + | # Code 5: Number of secondes a client must listen before trying to restart | ||
| + | # a MTFTP transfer | ||
| + | option space PXE; | ||
| + |  | ||
| + |  | ||
| + |  | ||
| + |  | ||
| + |  | ||
| + | option arch code 93 = unsigned integer 16; # RFC4578 | ||
| + | # | ||
| + | # [..] | ||
| + | class " | ||
| + | match if substring(option vendor-class-identifier, | ||
| + |  | ||
| + | # 6 EFI IA32 | ||
| + | #< | ||
| + | if option arch = 00:06 { | ||
| + | filename " | ||
| + | # 7 EFI BC (EFI Byte Code) | ||
| + | } else if option arch = 00:07 { | ||
| + | filename " | ||
| + | # Défaut (cas des machines avec BIOS classiques) | ||
| + | } else { | ||
| + | filename " | ||
| + | } | ||
| + | } | ||
| + | </ | ||
| + | ======Diagnostic===== | ||
| <code bash> | <code bash> | ||
| Line 125: | Line 246: | ||
| dhcpd -t -cf / | dhcpd -t -cf / | ||
| </ | </ | ||
| + | |||
| + | ====Client désobéissant==== | ||
| + | |||
| + | Dans le cas d'une transaction comme celle-ci (vu dans le fichier de log du serveur DHCP) : | ||
| + | <code bash> | ||
| + | Feb 20 16:06:11 srv1 dhcpd: DHCPDISCOVER from 90: | ||
| + | Feb 20 16:06:11 srv1 dhcpd: DHCPOFFER on 10.40.2.173 to 90: | ||
| + | Feb 20 16:06:11 srv1 dhcpd: DHCPREQUEST for 10.40.22.67 (10.40.0.79) from 90: | ||
| + | Feb 20 16:06:11 srv1 dhcpd: DHCPNAK on 10.40.22.67 to 90: | ||
| + | Feb 20 16:06:14 srv1 dhcpd: DHCPACK to 10.40.22.67 (90: | ||
| + | </ | ||
| + | On voit que le client demande une IP, le serveur lui en propose une (10.40.2.173), | ||
| + | |||
| + | ====Client poli==== | ||
| + | |||
| + | Si un client choisi bien une offre mais fini par la décliner ('' | ||
| + | <code bash> | ||
| + | Oct 4 14:50:59 monserveur dhcpd: DHCPDECLINE of 10.40.0.12 from 10: | ||
| + | </ | ||
| + | .. cela peut être dû à une autre machine qui utilise déjà cette adresse sur le réseau. En effet, avant d' | ||
| + | |||
informatique/logiciels/dhcpd.1476195484.txt.gz · Last modified: 2016/10/11 14:18 by pteu
                
                