User Tools

Site Tools


informatique:logiciels:dhcpd

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
informatique:logiciels:dhcpd [2018/01/26 14:30] – [DHCP relay] pteuinformatique:logiciels:dhcpd [2019/12/02 09:23] (current) – [Boot BIOS vs UEFI] pteu
Line 200: Line 200:
 </code> </code>
  
 +=====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'architecture (ia32 et x64) :
 +<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 PXE.mtftp-ip    code 1 = ip-address;
 + option PXE.mtftp-cport code 2 = unsigned integer 16;
 + option PXE.mtftp-sport code 3 = unsigned integer 16;
 + option PXE.mtftp-tmout code 4 = unsigned integer 8;
 + option PXE.mtftp-delay code 5 = unsigned integer 8;
 +option arch code 93 = unsigned integer 16; # RFC4578
 +#
 +# [..]
 +class "pxeclients" {
 +   match if substring(option vendor-class-identifier, 0, 9) = "PXEClient";
 +   next-server 10.1.0.2;
 +   # 6    EFI IA32
 +   #<-> match if substring(option vendor-class-identifier, 0, 20) = "PXEClient:Arch:00006";
 +   if option arch = 00:06 {
 +      filename "uefi/bootia32.efi";
 +   # 7    EFI BC (EFI Byte Code)
 +   } else if option arch = 00:07 {
 +      filename "uefi/bootx64.efi";
 +   # Défaut (cas des machines avec BIOS classiques)
 +   } else {
 +      filename "pxelinux.0";
 +   }
 +}
 +</code>
 ======Diagnostic===== ======Diagnostic=====
  
Line 210: Line 246:
 dhcpd -t -cf /etc/dhcpd/dhcpd-perso.conf dhcpd -t -cf /etc/dhcpd/dhcpd-perso.conf
 </code> </code>
 +
 +====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:b1:1c:00:00:01 via eth0
 +Feb 20 16:06:11 srv1 dhcpd: DHCPOFFER on 10.40.2.173 to 90:b1:1c:00:00:01 via eth0
 +Feb 20 16:06:11 srv1 dhcpd: DHCPREQUEST for 10.40.22.67 (10.40.0.79) from 90:b1:1c:00:00:01 via eth0: lease 10.40.22.67 unavailable.
 +Feb 20 16:06:11 srv1 dhcpd: DHCPNAK on 10.40.22.67 to 90:b1:1c:00:00:01 via eth0
 +Feb 20 16:06:14 srv1 dhcpd: DHCPACK to 10.40.22.67 (90:b1:1c:00:00:01) via eth0
 +</code>
 +On voit que le client demande une IP, le serveur lui en propose une (10.40.2.173), mais le client "désobéit" et continue d'utiliser 10.40.22.67 alors qu'on le lui a interdit (DHCPNAK). C'est le cas typique d'un autre serveur DHCP (rogue DHCPd) sur le réseau qui, lui, valide cette IP-là.
 +
 +====Client poli====
 +
 +Si un client choisi bien une offre mais fini par la décliner (''DHCPDISCOVER-DHCPOFFER-DHCPREQUEST-DHCPACK'' puis ''DHCPDECLINE'') :
 +<code bash>
 +Oct 4 14:50:59 monserveur dhcpd: DHCPDECLINE of 10.40.0.12 from 10:65:30:00:11:22 via eth0: not found
 +</code>
 +.. cela peut être dû à une autre machine qui utilise déjà cette adresse sur le réseau. En effet, avant d'utiliser l'IP demandée au serveur, la plupart des clients DHCP pinguent cette adresse pour vérifier si elle n'est pas déjà utilisée. Si tel est le cas, ce dernier déclinera au final la proposition.
 +
informatique/logiciels/dhcpd.1516977045.txt.gz · Last modified: 2018/01/26 14:30 by pteu