Serwery DHCP
3 minute read
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:
-
Interfejs L3, na którym działa DHCP (np.
BRIDGE-PROXMOXlub interfejs VLAN) -
Sieć DHCP (dhcp_network) definiuje:
- adresację,
- bramę,
- serwery DNS,
- domenę.
-
Pula adresowa (address_pools) zakresy IP do automatycznego przydziału.
-
Serwer DHCP (dhcp-server) instancja działająca na wybranym interfejsie.
-
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.