Serwery DHCP

Konfiguracja Serwerów DHCP

DHCP (Dynamic Host Configuration Protocol) to protokół sieciowy działający w warstwie L3 modelu OSI, którego celem jest automatyczne przydzielanie parametrów sieciowych hostom, takich jak:

  • adres IP,
  • maska podsieci,
  • adres bramy (gateway),
  • serwery DNS,
  • domena wyszukiwania,
  • czas dzierżawy adresu (lease time).

Architektura serwera DHCP w projekcie iac-mikrotik

Konfiguracja DHCP składa się z kilku warstw logicznych:

  1. Interfejs L3, na którym działa DHCP (np. BRIDGE-PROXMOX lub interfejs VLAN)

  2. Sieć DHCP (dhcp_network) definiuje:

    • adresację,
    • bramę,
    • serwery DNS,
    • domenę.
  3. Pula adresowa (address_pools) zakresy IP do automatycznego przydziału.

  4. Serwer DHCP (dhcp-server) instancja działająca na wybranym interfejsie.

  5. Leases (dhcp_leases) statyczne rezerwacje IP na podstawie MAC.


Struktura plików

Konfiguracja DHCP znajduje się w katalogu:

router.rachuna-net.pl/dhcp-servers/*.tf

Każdy serwer DHCP powinien być definiowany w osobnym pliku.

Zalety:

  • wersjonowanie każdej podsieci,
  • audyt zmian,
  • możliwość rollback,
  • czysta i modularna struktura projektu.

Przykład konfiguracji serwera DHCP

Poniżej pełen przykład wdrożenia serwera DHCP dla sieci Proxmox:

module "dhcp-proxmox" {
  source = "git@gitlab.rachuna-net.pl:pl.rachuna-net/infrastructure/opentofu/modules/routeros-dhcp-server.git?ref=v1.0.0"

  name         = "DHCP-PROXMOX"
  comment      = "DHCP server for PROXMOX"
  address_pool = "PROXMOX-POOLS"
  interface    = "BRIDGE-PROXMOX"
  lease_time   = "12h"

  dhcp_network = {
    address    = "10.3.0.0/24"
    gateway    = "10.3.0.1"
    dns_server = ["10.3.0.1"]
    domain     = "rachuna-net.pl"
    comment    = "proxmox network"
  }

  address_pools = {
    "PROXMOX-POOLS" = {
      ranges  = ["10.3.0.11-10.3.0.14"]
      comment = "proxmox pool"
    }
  }

  dhcp_leases = {
    "10.3.0.11" = {
      hostname    = "pve-s1.rachuna-net.pl"
      comment     = "pve-s1.rachuna-net.pl"
      mac_address = "38:05:25:33:B8:49"
      server      = "DHCP-PROXMOX"
      disabled    = false
    }
    "10.3.0.12" = {
      hostname    = "pve-s2.rachuna-net.pl"
      comment     = "pve-s2.rachuna-net.pl"
      mac_address = "D8:5E:D3:6B:3F:0C"
      server      = "DHCP-PROXMOX"
      disabled    = false
    }
    "10.3.0.13" = {
      hostname    = "pve-s3.rachuna-net.pl"
      comment     = "pve-s3.rachuna-net.pl"
      mac_address = "18:C0:4D:8C:4F:5E"
      server      = "DHCP-PROXMOX"
      disabled    = false
    }
  }
}

Omówienie parametrów technicznych

5.1. Parametry serwera DHCP

Parametr Znaczenie
name Nazwa instancji serwera DHCP
comment Opis techniczny
address_pool Nazwa puli adresowej używanej przez serwer
interface Interfejs, na którym działa DHCP (bridge lub VLAN)
lease_time Czas ważności wydawanej dzierżawy IP

5.2. Sieć DHCP

Sekcja dhcp_network jest kluczowa – definiuje parametry, które klient otrzyma w komunikacie DHCP OFFER:

Parametr Opis
address Zakres sieci (subnet)
gateway Brama (router)
dns_server Lista serwerów DNS
domain Domena dla FQDN
comment Opis

5.3. Pula adresowa (dynamiczne przydzielanie IP)

Parametr Opis
ranges Zakresy IP do automatycznego przydzielania
comment Opis techniczny puli

Każda pula posiada nazwę klucza — np.:

"PROXMOX-POOLS"

5.4. Leases (statyczne przypisania)

Zalecane w serwerowniach, hypervisorach, NAS, firewallach.

Parametr Opis
hostname Nazwa klienta
mac_address Adres MAC urządzenia
server Instancja DHCP, która będzie zarządzać lease
disabled Włączenie/wyłączenie rezerwacji

Zasady projektowe i dobre praktyki

1. Ogólne zasady

  • Każda podsieć = osobny moduł DHCP
  • DHCP musi działać tylko na interfejsach L3
  • Nigdy nie mieszaj DHCP z adresacją statyczną w tej samej puli
  • Węzły Proxmox, Routery, Nas’y – zawsze na statycznych lease

2. Bezpieczeństwo

  • DHCP powinien działać tylko w zaufanych segmentach sieci.

  • Zalecane filtrowanie:

    • DHCP snooping na switchach,
    • blokada rogue DHCP serwerów.

3. Integracja z DNS

W RouterOS serwer DHCP może dynamicznie rejestrować hosty w DNS. Pole hostname w lease jest automatycznie używane do:

  • zapisu rekordów A,
  • aktualizacji rekordów PTR.

Typowe błędy i jak ich unikać

Problem Przyczyna Rozwiązanie
Klient nie dostaje IP DHCP działa na złym interfejsie Upewnij się, że interfejs posiada IP i jest L3
IP spoza zakresu Nakładanie się pul Rozdziel pule dynamiczne i statyczne
Błędne DNS Nieprawidłowe wpisy dns_server Zastosuj lokalny DNS routera lub upstream
Lease się nie odświeża Zbyt krótki lease_time Zwiększ do 12–24h

Podsumowanie

Serwer DHCP w iac-mikrotik zapewnia:

  • deklaratywne, w pełni automatyczne zarządzanie adresacją,
  • wersjonowanie zmian w Git,
  • spójność konfiguracji RouterOS,
  • łatwe wdrażanie i modyfikowanie pul IP,
  • centralne rezerwacje dla serwerów i hostów krytycznych.
Last modified December 19, 2025: docs: Update (72bba37)