Vlastní DNS server znamená plnou kontrolu nad resolverem. Eliminujete závislost na externích DNS providerech, získáte interní service discovery a možnost split-horizon DNS, kde stejná doména vrací různé IP adresy podle toho, zda se ptáte z interní sítě nebo z internetu. Pro firmy s vlastní infrastrukturou je to základ síťové architektury.
BIND¶
# /etc/bind/zones/db.example.local
$TTL 3600
@ IN SOA ns1.example.local. admin.example.local. (
2024010101 3600 900 604800 86400)
@ IN NS ns1.example.local.
ns1 IN A 10.0.1.1
web IN A 10.0.1.10
db IN A 10.0.1.20
BIND je nejrozšířenější autoritativní DNS server s podporou DNSSEC, dynamic updates a views pro split-horizon. Konfigurace je deklarativní v textových zónových souborech. Pro vysokou dostupnost nasaďte primární a sekundární server se zónovými transfery (AXFR/IXFR).
CoreDNS¶
.:53 {
forward . 8.8.8.8 8.8.4.4
cache 30
log
}
example.local:53 {
file /etc/coredns/db.example.local
}
CoreDNS je výchozí DNS server v Kubernetes. Plugin architektura umožňuje sestavit přesně tu funkcionalitu, kterou potřebujete — od jednoduchého forwarding přes caching až po service discovery z Kubernetes API. Corefile konfigurace je čistší a jednodušší než BIND. Pro Kubernetes clustery CoreDNS automaticky vytváří DNS záznamy pro služby a pody.
Kdy co¶
- BIND — enterprise, autoritativní DNS, DNSSEC, zónové transfery
- CoreDNS — Kubernetes, mikroslužby, plugin architektura
- dnsmasq — malé sítě, DHCP + DNS v jednom, domácí/kancelářské LAN
Diagnostika¶
Pro troubleshooting DNS problémů použijte dig (detailní odpovědi), nslookup (rychlá kontrola) nebo drill (DNSSEC validace). Příkaz dig +trace example.com ukáže kompletní cestu dotazu přes root servery.
DNS server = kontrola¶
Vlastní DNS server umožňuje interní resolver, service discovery, split-horizon DNS a DNSSEC. Pro malé prostředí stačí dnsmasq, pro Kubernetes CoreDNS, pro enterprise BIND.