dhcpd.conf.j2 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. # {{ ansible_managed }}
  2. #
  3. # DHCP Server Configuration file.
  4. # see /usr/share/doc/dhcp*/dhcpd.conf.example
  5. # see dhcpd.conf(5) man page
  6. #
  7. authoritative;
  8. default-lease-time 43200; # 12 hours
  9. max-lease-time 86400; # 24 hours
  10. subnet {{ dhcp_cidr|ansible.utils.ipaddr('network') }} netmask {{ dhcp_cidr|ansible.utils.ipaddr('netmask') }} {
  11. option routers {{ dhcp_gw_default }};
  12. option domain-name-servers {{ dhcp_gw_secured }}, {{ dns_primary }}, {{ dns_secondary }};
  13. option domain-name "{{ dhcp_domain }}";
  14. # Dynamic IPs
  15. range {{ dhcp_range_start }} {{ dhcp_range_end }};
  16. class "secured" {
  17. option routers {{ dhcp_gw_secured }};
  18. match hardware;
  19. }
  20. class "cloudflare" {
  21. option domain-name-servers 1.1.1.3, 1.0.0.3; # cloudflare block malware + porn
  22. match hardware;
  23. }
  24. class "betagate" {
  25. option domain-name-servers 1.1.1.3, 1.0.0.3; # cloudflare block malware + porn
  26. option routers {{ dhcp_gw_betagate }};
  27. match hardware;
  28. }
  29. class "devnull" {
  30. option domain-name-servers 127.0.0.1;
  31. match hardware;
  32. }
  33. # nothing in here (yet)
  34. class "default" {
  35. match hardware;
  36. }
  37. {% for node in reservations %}
  38. subclass "{{ node.type }}" 1:{{ node.mac }}; # {{ node.name }}
  39. {% endfor %}
  40. {% for node in reservations %}
  41. host {{ node.name }}
  42. {
  43. hardware ethernet {{ node.mac }};
  44. fixed-address {{ node.ip }};
  45. }
  46. {% endfor %}
  47. }