Celé řešení je postaveno pro domácí privátní síť, kde vznikla potřeba doménových jmen z důvodu testování řešení ve virtuálních strojích. Provoz směrem ven je řešen přeposíláním požadavků na DNS server poskytovatele internetu. Pro tento účel můžeme vynechat sekundární DNS server a tím zjednodušíme celé prostředí.
Není problém, aby Bind 9 běžel přímo na vaší pracovní stanici. Každopádně základem je konfigurace počítače s pevnou IP adresou, na kterou budou směřovat požadavky klientů. Na pracovní stanici tohle většinou nastavujeme v grafickém nástroji pracovního prostředí a s touto metodou není problém.
Konfigurace síťového rozhraní
Pokud provozujeme server, používá se většinou nastavení pomocí netplanu. Pro ukázku dodávám výpis možného nastavení. Konfigurační soubor se nachází v tomto umístění /etc/netplan/...
network: ethernets: enp0s3: addresses: - 192.168.0.45/24 gateway4: 192.168.0.1 nameservers: addresses: - 192.168.0.45 search: - domov.doma version: 2
Pokud chcete pro konfiguraci serveru použít Network manager, je možné použít nástroj nmtui
bez grafického rozhraní pro intuitivní konfiguraci síťových rozhraní.
Instalace Bind 9
Přípravné práce máme za sebou a můžeme přejít na instalaci. Bodem jedna je instalace Bind 9 a pomocných balíčků.
# sudo apt install bind9 bind9utils bind9-doc
Ted se pustíme do základní konfigurace Bindu. Začneme souborem /etc/bind/named.conf.options
options { directory "/var/cache/bind"; listen-on { 192.168.0.45; 127.0.0.1; }; dnssec-enable yes; dnssec-validation yes; listen-on-v6 { any; }; edns-udp-size 1220; max-udp-size 1220; forward first; forwarders { 192.168.0.1; 8.8.8.8; }; };
Zde je nutno především nastavit, na kterém rozsahu bude Bind poslouchat a adresy serverů, kam požadavky přeposlat. Pro bezproblémovou komunikaci s okolními DNS servery je též důležité nastavit UDP-SIZE. Je to potřeba kvůli dodržení standardů EDNS.
Zónové soubory
Dále budeme nastavovat naše lokální zóny. Soubor /etc/bind/named.conf.doma
Zde si upravte cesty podle svých souborů.
zone "domov.doma" { type master; file "/etc/bind/zones/db.domov.doma"; # cesta k souboru zone "0.168.192.in-addr.arpa" { type master; file "/etc/bind/zones/db.192.168.0"; # 192.168.0.0/24 subnet };
Dalším krokem bude se podívat přímo na zónové soubory. Nejdříve zónu s dopřednými záznamy. Tento soubor si sami vytvoříme v umístění podle nastavení v souboru named.conf.doma
. V našem případě bude jméno souboru a umístění vypadat takhle /etc/bind/zones/db.domov.doma
.
; ; Database file domov.doma.dns for Default zone scope in zone domov.doma. ; Zone version: 2 ; @ IN SOA bind.domov.doma. hostmaster.domov.doma. ( 2 ; serial number 900 ; refresh to ss 600 ; retry to ss 86400 ; expire records in ss 3600 ) ; default TTL ; ; Zone NS records ; @ NS bind.domov.doma. ; ; Zone records ; bind A 192.168.0.45 web A 192.168.0.170 domena20 A 192.168.0.190
Teď si to trochu rozebereme:
- IN SOA – Definuje základní SOA záznam (Start of Authority) – základní informace o doméně – povinná informace.
- bind.domov.doma. hostmaster.domov.doma. – Specifikace SOA záznamu na primární DNS server, email správce domény(nepoužívá se zavináč).
- 2 ; serial number – Sériové číslo domény – potřeba zvýšit se při každé změně zónového souboru.
- 900 ; refresh to ss – Udává dobu updatu sekundárního DNS serveru – pokud je použit.
- 600 ; retry to ss – Opakování updatu sekundární serveru – pokud byl neúspěšný.
- 86400 ; expire records in ss – Vypršení údajů ze sekundárního serveru, pokud není update z primárního úspěšný.
- 3600) ; default TTL – Doba uchování chybového záznamu záznam neexistuje u kešovacích serverů.
- NS bind.domov.doma. – Autoritativní server pro danou zónu, pokud je použit sekundární server je potřeba ho zde uvést.
- A – Dále již DNS záznamy typu A, CNAME, MX.
Další přijde na řadu zóna reverzních záznamů. Opět musíme soubor vytvořit podle pravidel popsaných výše. V našem případě takto /etc/bind/zones/db.192.168.0.
.
; ; Database file 0.168.192.in-addr.arpa.dns for Default zone scope in zone 0.168.192.in-addr.arpa. ; Zone version: 2 ; @ IN SOA bind.domov.doma. hostmaster.domov.doma. ( 2 ; serial number 900 ; refresh to ss 600 ; retry to ss 86400 ; expire records in ss 3600 ) ; default TTL ; ; Zone NS records ; @ NS bind.domov.doma. ; ; Zone records ; 20 PTR web.domov.doma. 20 PTR domena20.domov.doma.
Jak se můžeme přesvědčit, soubor je skoro stejný jako jeho předchůdce. Až poslední sekce obsahuje reverzní PTR záznamy pro jednotlivá zařízení.
Odbočka k Ubuntu
Potom je nutné vyřešit jeden problém u Ubuntu: soubor /etc/resolv.conf
je špatně nasměrován a Bind s tímhle neumí pracovat. Je potřeba přepnout přesměrování odkazu ze stub-resolv.conf
na resolv.conf
. Vyřadíme tím systemd-resolver a přepneme ho do role správce resolv.conf
.
unlink /etc/resolv.conf ln -s /run/systemd/resolve/resolv.conf /etc/resolv.conf
První zkouška
Rovnou můžeme vyzkoušet funkčnost:
# dig A www.root.cz@192.168.0.45
Bind máme nakonfigurován v roli rekurzoru pro svou síť a připraven k použití.