dhcpd advanced setup

pxe tftpd dhcpd advanced client identifier http

DHCPD setup for PXE/BIOS – see client classification for details

authoritative;
allow bootp;
allow booting;
ddns-update-style none;
allow unknown-clients;
ignore-client-uids on;

subnet 172.17.0.0 netmask 255.255.0.0 {
}

subnet x.x.x.0 netmask 255.255.255.0 {
    range dynamic-bootp x.x.x.100 x.x.x.199;
    option routers x.x.x.254;
    option domain-name-servers x.x.x.252;

    next-server x.x.x.x;

    # BIOS vs. EFI64
    if substring (option vendor-class-identifier, 15, 5) = "00007" { #EFI BC (EFI Byte Code)
        filename "efi64/syslinux.efi";
    } elsif substring (option vendor-class-identifier, 15, 5) = "00009" { #EFI x86-64
        filename "efi64/syslinux.efi";
    } else { # (option vendor-class-identifier, 0, 32) = "PXEClient:Arch:00000:UNDI:002001"
        filename "pxelinux.0";
    }

    # pxeboot_ia32.bin got chain-loaded
    # enforcing TFTP instead of NFS and offering a nice path for the default kernel
    if substring (option vendor-class-identifier, 0, 17) = "NetBSD:i386:libsa" {
        if filename = "netbsd" {
            filename "tftp:netbsd9/binary/kernel/netbsd-INSTALL.gz";
        }

    # pxeboot got chain-loaded
    } elsif substring (option vendor-class-identifier, 0, 9) = "PXEClient" {
        if substring (option user-class, 1, 7) = "FreeBSD" {
            # diskless for fbsd
            option root-path "x.x.x.x:/tftpboot/fbsd";
        } else { # TODO 255 End
            # diskless for dfly
            option root-path "x.x.x.x:/tftpboot/dfly";
        }

    # TODO slackware live
    } else {
        # diskless for slackware
        option root-path "/tftpboot/slackware-live";
    }
}

#allow booting;
#option option-128 code 128 = string;
#option option-129 code 129 = text;

note ignore client-identifiers (since v4.2.0) breaks the specification, but prevents sysrescuecd from changing IPs.

resources

client-identifier

ISC DHCP 4.1 Manual Pages - dhcpd.conf https://kb.isc.org/docs/isc-dhcp-41-manual-pages-dhcpdconf

ISC DHCP 4.1 Manual Pages - dhcpd.leases https://kb.isc.org/docs/isc-dhcp-41-manual-pages-dhcpdleases

Dhcp with known and unknown hosts http://www.macfreek.nl/memory/Dhcp_with_known_and_unknown_hosts

How to reserve dhcp for mac address in another file? https://askubuntu.com/questions/1015658/how-to-reserve-dhcp-for-mac-address-in-another-file

dhcpd.conf - dhcpd configuration file https://manpages.debian.org/unstable/isc-dhcp-server/dhcpd.conf.5.en.html

How do i keep ISC-DHCPD from offering different IPs when there is two requests from the same MAC https://serverfault.com/questions/694351/how-do-i-keep-isc-dhcpd-from-offering-different-ips-when-there-is-two-requests-f


HOME | GUIDES | LECTURES | LAB | SMTP HEALTH | HTML5 | CONTACT
Copyright © 2024 Pierre-Philipp Braun