informatique:logiciels:dhcpd
                Differences
This shows you the differences between two versions of the page.
| Next revision | Previous revision | ||
| informatique:logiciels:dhcpd [2016/10/07 08:00] – créée 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 6: | Line 8: | ||
| Fichiers : | Fichiers : | ||
| * ''/ | * ''/ | ||
| - | * ''/ | + | * ''/ | 
| * ''/ | * ''/ | ||
| - | 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; | ||
|  |  | ||
| } | } | ||
| - | # 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 | ||
| pool { | pool { | ||
| range 10.1.0.1 10.1.0.100; | range 10.1.0.1 10.1.0.100; | ||
| + | # on interdit les PC dont l' | ||
| + | deny unknown-clients; | ||
| } | } | ||
| + | |||
| # pool masterisation de PCs | # pool masterisation de PCs | ||
| pool { | pool { | ||
| range dynamic-bootp 10.1.0.101 10.1.0.150; | range dynamic-bootp 10.1.0.101 10.1.0.150; | ||
| + | allow unknown-clients; | ||
| + | max-lease-time 7200; # 2h | ||
| } | } | ||
| + | |||
|  |  | ||
| + |  | ||
| + |  | ||
|  |  | ||
| } | } | ||
| + | # 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 46: | 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 | ||
| host pc-patron { | host pc-patron { | ||
|  |  | ||
| - |  | + |  | 
| + |  | ||
| } | } | ||
| - | 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 | ||
| + | host pc-grouillot2 { hardware ethernet 00: | ||
| + | } | ||
| + | </ | ||
| + | |||
| + | Pour les clients bootp, il faut en plus spécifier au moins le fichier de boot : | ||
| + | <code bash> | ||
| + | host pc-techos { | ||
| + |  | ||
| + |  | ||
| + |  | ||
| + |  | ||
| } | } | ||
| </ | </ | ||
| Line 64: | 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 92: | Line 188: | ||
| load balance max seconds 3; | load balance max seconds 3; | ||
| } | } | ||
| - | </ | ||
| - | # pour chaque | + | |
| + | # Pour chaque | ||
| + | # et ajouter une référence au failover | ||
| [..] | [..] | ||
| pool { | pool { | ||
|  |  | ||
| + | range 10.2.0.1 10.2.0.200; | ||
| [..] | [..] | ||
| } | } | ||
| </ | </ | ||
| + | |||
| + | =====Boot BIOS vs UEFI===== | ||
| + | |||
| + | 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> | ||
| + | # tester le fichier de configuration par défaut (/ | ||
| + | dhcpd -t | ||
| + | |||
| + | # tester le fichier de configuration spécifié : | ||
| + | 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.1475827254.txt.gz · Last modified: 2016/10/07 08:00 by pteu
                
                