Hlavní navigace

Návod: Bind 9 jako DNS resolver pro domácí síť nebo testovací prostředí

1. 2. 2022
Doba čtení: 3 minuty

Sdílet

 Autor: Depositphotos
Chcete v domácím prostředí používat doménová jména počítačů? Třeba pro účely testování různých řešení ve virtuálních počítačích. Zde je nástin řešení použitelné i na pracovní stanici bez samostatného serveru.

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í.

Byl pro vás článek přínosný?

Autor článku

Od roku 2008 se zabývá Linuxem a open-source softwarem. Má zkušenost systémového administrátora Linuxu z příspěvkové organizace. Ve volném čase se kromě počítačů věnuje také fotografování a úpravě fotografií.