DHCPd Configuration role

Clone this repo:

Branches

  1. 7ae0170 Ignore duplicate dhcp client UIDs by Zack Williams · 1 year, 5 months ago master
  2. 5101b5f Add OS variant configuration by Zack Williams · 1 year, 11 months ago
  3. 7f58df0 Change format of dhcp_subnets to be a dict by Zack Williams · 2 years, 7 months ago
  4. 98725e2 Improve/fix RFC3442 entries and add tests by Zack Williams · 3 years, 1 month ago
  5. 65ee5d0 Multiple routers and better rfc3442 implementation by Zack Williams · 3 years, 4 months ago

dhcpd

Installs/configure a DHCP server and TFTP server

A few assumptions are made by this role:

  • If routers is not set in the subnet dictionary (within dhcpd_subnets), then the first usable address is set as the router.

  • If routers is set and has a list of IP addresses as a part of the rfc3442routes key, RFC3442 classless static routes (option 121) will be added in addition to the standard routers (option 3)

Supports using PXE to load both traditional BIOS and EFI payloads, tested primarily with iPXE.

Configuration docs

dhcpd - ISC's docs:

tftpd - Documentation is scarce. Upstream source repo:

Also supports OpenBSD dhcpd (fork of ISC) and tftpd (BSD), which has some difference in configuration/behavior - missing conditionals, additional option definitions, etc.

Reference docs

DHCP:

TFTP:

iPXE Chainloading

Requirements

Minimum ansible version: 2.9.5

Example Playbook

- hosts: all
  vars:
    dhcpd_interfaces:
      - eth0
    dhcpd_subnets:
      "192.168.0.1/24":
        range: "192.168.0.128/25"
        dns_servers:
          - "192.168.0.1"
          - "192.168.0.2"
        dns_search:
          - "example.com"
        tftpd_server: "192.168.0.1"
        hosts:
          - name: "dns"
            ip_addr: "192.168.0.2"
            mac_addr: "a1:b2:c3:d4:e5:f6"
        routers:
          - ip: "192.168.0.1"
  roles:
    - dhcpd

ToDo

Add classless static route support for OpenBSD - see dhcp-options(5) on that system.

License and Author

© 2020 Open Networking Foundation support@opennetworking.org

License: Apache-2.0