13 BIND 8

BIND je od verze 8 zcela přepracován. My se budeme podrobněji zabývat verzi 8.1. Nová verze BINDu již podporuje některé nové mechanismy DNS. Jedná se o tyto mechanismy: Nejprve v přehledu uveďme hlavní změny ve vlastní implementaci BINDu 8.1 oproti BINDu verze 4.x:

Typy DNS serverů a zón

Nový BIND používá nové termíny pro označování typů zón a serverů.

Obr. 13.1 Architektura master - slave
 
      Primary master
      Primary master server je hlavním zdrojem dat pro zónu. Primary master je uveden v větě typu SOA a může být uveden v NS větě. Primary master server je pro každou zónu pouze jeden.V předchozí verzi BINDu se používalo pro tento typ serveru označení primární server.
      Master
      Master server je autoritativní server pro zónu. Je uveden v NS větě. Master server je zdrojem dat o zóně pro slave servery. Mater serverů může existovat několik.
      Slave
      Slave server je autoritativní server. Je uveden v NS vetě. Slave server požívá zone transfer pro získání dat o zóně z master serveru. V předchozí verzi BINDu se používalo pro tento typ serveru označení sekundární server. Slave server může data získaná z master serveru ukládat je na disk do souboru. Jeden server může být pro tutéž zónu master i slave. Slave serverů pro danou zónu může existovat několik. V BINDu 4.x se také používal termín slave pro označení name serveru, význam však byl zcela jiný!. Slave server v BINDu 4.x bylo označení pro server, který pouze předával dotazy na jiné name servery a sám nic nepřekládal.

       

       

      Zóna udržovaná na slave serveru se někdy označuje jako slave zóna.

      Stub zóna
      Stub zona je v podstatě slave zóna, která však z master serveru přebírá pouze NS věty pro zónu, nikoli celou zónu.
      Hint zóna
      V hint zone je uveden seznam root name serverů (neautoritativní data načítaná do paměti při startu name serveru). V předchozí verzi BINDu se používalo pro tento typ zony označení cache.
      Stealth
      Stealth server je tajný server. Není uveden ve větě NS. Je autoritativní server. Získává data pro zónu pomocí zone transféru. Může být master server pro zónu. Je znám pouze serverům, které mají staticky uvedenu jeho IP adresu v konfiguraci.

Konfigurační soubor

      Konfigurační soubor BINDu verze 8.1 se zpravidla jemnuje /etc/named.conf. Tento soubor má zcela novou syntaxi.

      Konfigurační soubor pro BIND 8.1 je tvořen příkazy a komentáři. Příkazy jsou ukončeny středníkem (;).

      Konfigurační soubory používané v BIND 4.9.x je možné konvertovat do nového formátu pomocí perlovského skriptu named-bootconf.pl, který je součástí zdrojového kitu BIND 8.1.

      I když konfigurační soubor má ve verzi 8 zcela odlišnou syntaxi oproti konfiguračnímu souboru ve verzi 4, tak syntaxe databází DNS (věty typu SOA, A, PTR, NS atd.) zůstává nezměněna.
       

Příkazy konfiguračního souboru

        acl Definuje seznam IP adres, který se používá např. k řízení přístupu.
        include Vkládá soubor.
        key Definuje informace používané při autentizaci a autorizaci
        logging Definuje události, které se budou protokolovat a kde se protokolované informace uloží.
        options Definuje celkovou konfiguraci serveru.
        server Nastavuje některé vlastnosti pro vzdálené servery.
        zone Definuje zonu.
        Příkazy logging a option se mohou vyskytnout v konfiguračním souboru pouze jednou.

        Na začátek uveďme pro představu jednoduchý příklad konfiguračního souboru pro BIND 8.1:
         
        #
        # prvni named.conf 8.1.1
        #
        
        options {
               directory "/etc/master";
        };
        logging {
          channel protokol {
              file "log/protokol.txt" versions 5 ;
              severity debug;
          }; 
          channel vyst {
              file "log/vy";
          };
          category default {
             protokol; 
          };
          category ncache {
            vyst;
          };
          category db {
            vyst;
          };
        };
        zone "0.0.127.in-addr.arpa" in {
              type master;
              file "127.0.0";
        };
        zone "." in {
              type hint;
              file "named.cache";  
        };
        zone "abcde.cz" in {
              type master;
              notify yes;
              file "abcde.cz.zone";
        };
        zone "pvtnet.cz" in {
              type slave;
              masters {194.149.105.18;};
              file "pvtnet.cz.zone";
        };
        zone "pvt.net" in {
              type stub;
              masters {194.149.105.18;};
              file "pvt.net.zone";
        };

Komentáře

         
        Komentáře v konfiguračním souboru mohou být uvedeny ve třech tvarech:
        /* ve tvaru stejném jako v C */
        // ve tvaru stejném jako v C++
        # ve tvaru stejném jako v perlu
        Komentář ve stylu C (*/) může označovat komentářový text na části řádky nebo naopak několikařádkový text. Komentář ve stylu C++ nebo perlu naopak znamená vždy jednořádkový komentář, přesněji řečeno, za komentář se považuje text od znaku // nebo # do konce řádky.

        POZOR! nepoužívejte jako komentářový znak středník, který má zde význam konce příkazu.

        Příklad:

        /* Víceřádkový komentář ve stylu C
           je uzavřen do závorek tvořených znaky
           hvězdička a lomítko */
        
        // Víceřádkový komentář ve stylu C++ musí na každé
        // řádce začínat znaky dvě lomítka
           tato řádka není komentářem a tedy způsobí chybu
        //
        
        # Komentář ve stylu perlu 
        # další řádka komentáře
         

Příkaz acl

Syntaxe:

acl jmeno {
   seznam IP adres
};

Popis:

Příkaz acl vytváří a pojmenovává seznam IP adres použitích pro kontrolu přístupu. Tento seznam musí být definován dříve, než bude kdekoli použit.
Předdefinované jsou následující seznamy acl:
  • any - povoluje všechny uzly
  • none - zakazuje všechny uzly
  • localhost - povoluje IP adresu všech inteface na systému
  • localnets - povoluje všechny uzly na sítích, do kterých má systém interface
  • Seznam IP adres

    Syntaxe:
    Seznam_IP_adres = 1*prvek_seznamu
    Seznam_IP_adres = ["!"] (ip_adresa|ip_prefix|acl_jmeno|seznam_IP_adres)
    Popis:

    Seznam IP adres je seznam prvků. Prvkem může být:

  • IP adresa (dekadická čísla oddělená tečkou)
  • IP prefix (v "/" notaci)
  • jméno dříve definovaného seznamu IP adres
  • seznam IP adres
  • Prvky mohou být negovány použitím znaku "!" před prvkem.
    Při porovnávání je seznam IP adres procházen zleva. Při nalezení prvního výskytu vhodného prvku se s porovnáváním končí. Kladná porovnání povolují přístup, porovnání na negaci zakazují přístup. Pokud se IP v seznamu nenajde má počítač přistupující z dané IP-adresy přístup zakázán.

    Takto definovaný seznam IP je možné použít parametrech allow-query, allow-transfer, allow-update a listen-on ostatních příkazů.

    Příklad:

    1.2.3/24; ! 1.2.3.13; # 1.2.3.13 je zcela zbytečné
    ! 1.2.3.13; 1.2.3/24; # správně, pouze IP 1.2.3.13 má povolen přístup, ostatní z 1.2.3.* mají přístup zakázán.

    Příkaz include
           
        Syntaxe:

        include cesta;

        Popis:

        Příkaz include vloží specifikovaný soubor na místo, kde je uveden příkaz include. Příkaz include není možné použít uvnitř jiného příkazu. Příklad chybného použití:

        acl int_host { "include int_host.acl"};

        Příklad:

        include "/etc/security/keys.bind";
        include "/etc/acls.bind";
           

    Příkaz key

        Syntaxe:
        key key_id {
          algorithm algorithm_id;
          secret secret_string;
        };
        Popis:

        Příkaz key definuje šifrovací klíče. Tyto klíče se používají k definici autentizační metody při přístupu k jiným name serverům v příkazu server. Příkazem key musí být šifrovací klíče definovány dříve než budou použity v příkazu server. Tj. příkaz key musí být v konfiguračním souboru uveden dříve než příkaz server.

        Algorithm_id je řetězec, který specifikuje autentizační algoritmus.
        Secret_string je heslo použité algoritmem.

        Tento příkaz zatím není implementován, kontroluje se pouze jeho syntaxe.

    Příkaz zone

          Syntaxe:


      Příkaz zone používá tři typy syntaxe:

      zone domain_name  [ ( in | hs | hesiod | chaos ) ] { 
        type master;
        file path_name;
        [ check-names ( warn | fail | ignore ); ]
        [ allow-update { address_match_list }; ]
        [ allow-query { address_match_list }; ]
        [ allow-transfer { address_match_list }; ]
        [ notify yes_or_no; ]
        [ also-notify { ip_addr; [ ip_addr; ... ] };
      };
      
      
      zone domain_name [ ( in | hs | hesiod | chaos ) ] { 
        type ( slave | stub );
        [ file path_name; ]
        masters { ip_addr; [ ip_addr; ... ] };
        [ check-names ( warn | fail | ignore ); ]
        [ allow-update { address_match_list }; ]
        [ allow-query { address_match_list }; ]
        [ allow-transfer { address_match_list }; ]
        [ max-transfer-time-in number; ]
        [ notify yes_or_no; ]
        [ also-notify { ip_addr; [ ip_addr; ... ] };
      };
      
      
      zone . [ ( in | hs | hesiod | chaos ) ] { 
        type hint;
        file path_name;
        [ check-names ( warn | fail | ignore ); ]
      };
      Popis:

      Příkaz zone definuje jednotlivé zóny.

      Type - Typ zony:

        master
        Hlavní zdroj dat pro zónu. (V předchozí verzi BINDu šlo o primární zónu)
        slave
        Slave zone je kopie master zóny. (V předchozí verzi BINDu šlo o sekundární zónu). Seznam masters specifikuje jednu nebo více IP adres, které slave kontaktuje při aktualizovaní zony. Pokud je uveden parametr file, pak se zapíše kopie do souboru. Použití file je doporučeno.
        stub
        Stub zone je vlastně slave zóna, která však z master serveru přebírá pouze NS věty pro zónu, nikoli celou zónu.
        hint
        V hint zone je uveden seznam root nameserverů. Při startu serveru, použije name server hint zonu k vyhledání root serverů.
        Jméno zony může být následovné třídou. Pokud třída není uvedena použije se in (Internet).
         
        Parametry:
        check-names

        Server může kontrolovat doménová jména podle kontextu, např. doménové jméno použité jako jméno uzlu může být kontrolováno na platná jména uzlů, tj. aby jméno neobsahovalo např. znaky podtržítko, hvězdička atd. Použitelné jsou tři metody:
        ignore - neprovádí se žádná kontrola,
        warn - jméno je kontrolováno, chybná jména jsou zaznamenána, ale zpracování pokračuje dále,
        fail - jména jsou kontrolována, chybná jména jsou zaznamenána, avšak zpracování je ukončeno.
        allow-query

        Definuje, které uzly mohou položit běžný dotaz. Pokud není uvedeno, je implicitně položení běžného dotazu povoleno pro všechny uzly. allow-query může být uvedeno také v příkazu option, pak má jeho uvedení v příkazu zone přednost před nastavením v příkazu option
        allow-update

        Definuje uzly, které mají povoleno provést dynamický update serveru. Implicitně je dynamický update zakázán ze všech uzlů.
        allow-transfer

        Definuje které uzly mají povolen zone transfer ze serveru. Pokud není uvedeno, je implicitně zone transfer povolen ze všech uzlů. allow-transfer může být uvedeno také v příkazu option, pak má jeho uvedení v příkazu zone přednost před nastavením v příkazu option.
        max-transfer-time-in

        Počet minut po který může trvat zone transfer. Pokud trvá déle bude ukončen. Implicitní hodnota je 120 minut.
        notify

        Je-li nastaveno na yes, pak je při změně zóny, pro kterou je server autoritou, vysílána serverem zpráva notify. Implicitní hodnota je yes. Slave server, který obdrží zprávu notify a zprávě rozumí, bude kontaktovat master server pro danou zónu a pokud zjistí, že je potřeba zone transfer, okamžitě jej provede. Použití NOTIFY urychluje konvergenci mezi master serverem a slave servery. Volba může být též uvedena v příkazu zone, pak má přednost před nastavením v příkazu option.
        also-notify

        Má význam pouze pokud je aktivní notify pro zonu. Uzly které obdrží DNS NOTIFY pro tuto zonu jsou všechny slave name servery pro zonu a dále IP specifikované v also-notify. Also-notify nemá význam pro stub zony. Implicitní je prázdný seznam.

    Příkaz server

          Syntaxe:
        server ip_addr {
          [ bogus yes_or_no; ]
          [ transfers number; ]
          [ transfer-format ( one-answer | many-answers ); ]
          [ keys { key_id [key_id ... ] }; ]
        };
          Popis:
          Příkaz server definuje charakteristiky spojené se vzdáleným name serverem.
          bogus

          Pokud zjistíte, že server poskytuje chybná data označte ho jako bogus. Tím zabráníte dalším dotazům na tento server. Implicitní hodnota bogus je no.
          transfer-format

          Server podporuje dvě metody zone transferu:
          one-answer - Jedna DNS zpráva pro přenos jedné věty.
          many-answers - Do jedné DNS zprávy zabalí tolik vět, kolik je možné. Metoda many-answers je efektivnější, je však podporovaná pouze BINDem 8.1 a pomocí patchů ošetřenou verzí 4.9.5. Implicitní hodnota je one-answer.
          Parametry transfers a keys jsou rezervované pro budoucí použití, kontroluje se pouze syntaxe.

           

    Příkaz logging

    Syntaxe:
    logging {
      [ channel channel_name {
        ( file path_name
           [ versions ( number | unlimited ) ]
           [ size size_spec ]
         | syslog ( kern | user | mail | daemon | auth | syslog | lpr |
                    news | uucp | cron | authpriv | ftp |
                    local0 | local1 | local2 | local3 |
                    local4 | local5 | local6 | local7 )
         | null );
    
        [ severity ( critical | error | warning | notice |
                     info  | debug [ level ] | dynamic ); ]
        [ print-category yes_or_no; ]
        [ print-severity yes_or_no; ]
        [ print-time yes_or_no; ]
      }; ]
    
      [ category category_name {
        channel_name; [ channel_name; ... ]
      }; ]
      ...
    };
    Popis:

    Příkaz logging konfiguruje logování. definuje jaké typy událostí se budou zaznamenávat, v jakém formátu a kam se budou zaznamenávat. Uplatní se pouze první příkaz logging.

    Příkaz logging používá dva pojmy:

  • channel - kanál (kam se bude zapisovat)
  • category - kategorie (co se bude zapisovat)

  • Jeden logging příkaz může definovat libovolné množství kanálů a kategorií. Pokud není logging příkaz uveden, použije se implicitní nastavení.

    channel
    Každý kanál je označen jménem. Kanál je definován třemi prvky:
  • Kam budou zprávy zapisovány - do souboru (file), do systémového logu (syslog), nikam (null).

  • null - zprávy se nikam nezapisují
    file - zprávy se zapisují do souboru. Je možné definovat maximální velikost log souboru (size), počet verzí, které se mají udržovat (versions).
    size pokud soubor dosáhne definované velikosti, named již další zprávy nezapisuje, dokud nebude soubor znovu otevřený. Přesažení velikosti nezpůsobí automatické znovuotevření souboru. Implicitně není velikost souboru omezena.
    version Počet udržovaných verzí. Nejnovější je verze 0. Implicitně se verzování neuplatní. Unlimited = 99 verzí.
    syslog Logování bude předáváno systému syslog, který používá konfigurační soubor syslog.conf (blíže viz. příslušný manuál systému).
  • Závažnost chyby - implicitní je závažnost info.

  • severity Zprávy s nižší závažností než severity nebudou tímto kanálem akceptovány. Při použití syslogu pak hodnota severity je vyhodnocována dle konfigurace v souboru syslog.conf, má-li se událost zaznamenat.
  • Zapisování/nezapisování dodatečných informací - time stamp, jméno kategorie, závažnost chyby. Implicitně se tyto informace nezapisují.

  • print-time pokud je on, zapisuje se datum a čas do logu.
    print-category zapisuje se kategorie zprávy.
    print-severity zapisuje se závažnost zprávy. Print volby je možné použít v libovolné kombinaci.
    Jsou předdefinovány 4 kanály:
       channel default_syslog { # Zprávy se zapisují do systémového logu 
         severity info;         # Zapisují se zprávy o závažnosti info a vyšší 
         syslog daemon;         # Syslog zaznamenává jaká část systému
                                # generuje událost (Kernet,mail,...).
                                # Tento kanál bude zaznamenávat události
                                # jakoby je generovali demoni.       
        };
    
        channel default_debug {
            file "named.run";      # Zprávy se zapisují do souboru named.run 
    
                                   # v pracovním adresáři
            severity dynamic;   # Zapisují se zprávy podle aktuálně 
    
                                # nastavené úrovně debug
        };
    
        channel default_stderr {  # Zprávy se zapisují na stderr
            file "<stderr>";      # jde pouze o ilustraci                        
            severity info;        
        };
    
        channel null {            
            null;                 # Všechny zrávy poslané na tento 
    
                                  # kanál se zahodí
        };
    Vedle těchto čtyř předdefinovaných kanálů si může správce DNS serveru definovat kanály další. Jakmile je kanál definován, není možné jej předefinovat. Nelze tedy možné změnit definici kanálu přímo, ale můžete modifikovat implicitní log tak, že změníte kategorie (na stejné kanály můžete posílat jiné zprávy.)
    category
    Všechny zprávy generované programem named jsou rozděleny podle typu do několika skupin - kategorií. Každá kategorie je označena jménem.
    Použitelné kategorie:

    default - všechny zprávy i ty, které nejsou rozděleny do dalších kategorií. Pokud nespecifikujete pro některou y dále uvedených kategorií kanál, posílají se zprávy daného typu se na stejný kanál jako zprávy kategorie default
    config - Závažné chyby v konfiguračním souboru.
    parser - Chyby nižší úrovně v konfiguračním souboru.
    gueries - Krátká zpráva pro každý obdržený dotaz
    lame-servers - Zprávy typu Lame server on ..
    statistics - Statistiky
    panic - Named nemůže dále běžet z důvodu interního problému.
    update - Dynamický update
    ncache - Negativní caching
    xfer-in - Příchozí zone transféry.
    xfer-out - Odchozí zone transféry
    db - Všechny databázové operace
    eventlib - Debuging informace od event systému category eventlib { default_debug; };. Může být uveden pouze jeden kanál a musí to být soubor.
    packet - dump příchozích i odchozích paketů. Může být uveden pouze jeden kanál a musí to být soubor. Pokud ji nedefinujete použije se tato: category packet { default_debug; };
    notify - Notify protokol
    cname - Zprávy typu ... points to a CNAME
    security - Povolený/nepovolený dotaz
    os - Problémy OS
    insist- Chyby při kontrole interní konsistence
    maintenance -Periodická údržba
    load - Zprávy o natažení zony
    response-checks- Zprávy z kontroly odpovědí. zprávy typu "invalid RR type...", "unrelated additional info..." atd.
    Jednotlivé kategotie zpráv je možné posílat na různé kanály. Pokud nespecifikujete seznam kanálu pro kategorii, pak jsou zprávy z dané kategorie posílány na stejný kanál jako zprávy kategorie default. Pokud nespecifikujete default kategorii, použije se tato definice:
    category default { default_syslog; default_debug; };
    Implicitně jsou tedy všechny zprávy generované programem named posílány na kanály: default_syslog; default_debug;, tzn do systémového logu a do souboru named.run v pracovním adresáři.
    Příklad:
    Definuji speciální kanál pro logování zpráv závažnosti info a vyšší kategorie security
        channel my_security_channel {
            file "my_security_file";
            severity info;
        };
        category security { my_security_channel; default_syslog; default_debug; };
    Chcete - li zprávy zahazovat použijte kanál null:
        category lame-servers { null; };
        category cname { null; };

    Příkaz option

        Syntaxe:
        options {
          [ directory path_name; ]
          [ named-xfer path_name; ]
          [ dump-file path_name; ]
          [ pid-file path_name; ]
          [ statistics-file path_name; ]
          [ auth-nxdomain yes_or_no; ]
          [ fake-iquery yes_or_no; ]
          [ fetch-glue yes_or_no; ]
          [ multiple-cnames yes_or_no; ]
          [ notify yes_or_no; ]
          [ recursion yes_or_no; ]
          [ forward ( only | first ); ]
          [ forwarders { [ in_addr ; [ in_addr ; ... ] ] }; ]
          [ check-names ( master | slave | response ) ( warn | fail | ignore); ]
          [ allow-query { address_match_list }; ]
          [ allow-transfer { address_match_list }; ]
          [ listen-on [ port ip_port ] { address_match_list }; ]
          [ query-source [ address ( ip_addr | * ) ] [ port ( ip_port | * ) ] ; ]
          [ max-transfer-time-in number; ]
          [ transfer-format ( one-answer | many-answers ); ]
          [ transfers-in  number; ]
          [ transfers-out number; ]
          [ transfers-per-ns number; ]
          [ coresize size_spec ; ]
          [ datasize size_spec ; ]
          [ files size_spec ; ]
          [ stacksize size_spec ; ]
          [ clean-interval number; ]
          [ interface-interval number; ]
          [ statistics-interval number; ]
          [ topology { address_match_list }; ]
        };
        Popis:

        Příkaz option nastavuje globální volby pro program named. Příkaz může být v konfiguračním souboru uveden pouze jednou. Pokud není uveden, použijí se default nastavení.

    Parametry

        Specifikace souborů

            directory
            Pracovní adresář serveru. Adresář musí být uveden ve tvaru absolutní cesty. Každá relativní adresářová cesta uvedená v konfiguračním souboru je vyhodnocována vzhledem k pracovnímu adresáři serveru. V tomto adresáři je implicitně umísťována většina výstupních souborů serveru. Pokud adresář není uveden, pak je za implicitní považován adresář, ze kterého byl server startován.
            named-xfer
            Cesta k programu named-xfer, který server používá pro příchozí zone transfer. Pokud není cesta uvedena, je dána systémem.
            dump-file
            Cesta k souboru, kam server zapíše dump, pokud obdrží signál SIGINT. Pokud není uvedena je implicitní "named_dump.db".
            pid-file
            Cesta k souboru, kam server zapisuje své ID procesu Pokud není uvedeno pak to obvykle bývá /var/run/named.pid nebo /etc/named.pid.
            statistics-file
            Cesta k souboru, do kterého server zapisuje statistiky po obdržení signálu SIGILL. Pokud není uvedena je implicitně použito named.stats.

            Parametry typu boolean

            auth-nxdomain
            Je-li nastaveno na hodnotu yes, pak je AA bit vždy nastaven v odpovědi NXDOMAIN (negativní odpovědi), i když server není autoritou. Implicitní hodnota je yes.
            fake-iquery
            Je-li nastaveno na hodnotu yes, pak server simuluje DNS dotaz typu IQUERY. Implicitní hodnota je no.
            fetch-glue
            Implicitní hodnota je yes. Pokud je yes, server přidává přilepené (glue) věty. Nastavení no je možné použít ve spojení s recursion no.
            multiple-cnames
            Je-li nastaveno na yes, pak je povoleno více CNAME vět pro doménové jméno. Implicitní hodnota je no. Povolení více vět CNAME je proti standardu a není doporučováno. Předchozí BIND umožňoval více CNAME.
            notify
            Je-li nastaveno na yes, pak je při změně zóny, pro kterou je server autoritou, vysílána serverem notify zpráva. Implicitní hodnota je yes. Slave server, který obdrží notify zprávu a zprávě rozumí, bude kontaktovat master server pro danou zonu a pokud zjistí, že je potřeba zone transfer, okamžitě jej provede. Použití NOTIFY urychluje konvergenci mezi master serverem a slave servery. Volba může být též uvedena v příkazu zone, pak má přednost před nastavením v příkazu option.
            recursion
            Je-li nastaveno na yes a DNS dotaz vyžaduje rekurzi, pak se bude server snažit tento dotaz vyřešit. Pokud je nastaveno na no a server nezná odpověď, vrátí klientovi pouze odkaz. Implicitní hodnota je yes.
            Forwarding
            Forwarding je možné výhodně využít k naplnění a využívání velké paměti cache na několika serverech. Tím se snižuje provoz na linkách k externím name serverům. Forwarding nastane pouze pokud pro dotaz není server autoritou a nemá odpověď v paměti.
            forward
            Tento parametr má smysl pouze pokud není seznam forwarderů prázdný. Implicitní hodnota je first. Hodnota first znamená, že nejprve server kontaktuje k vyřešení dotazu forwarder server a teprve pokud se nepodaří forwarderovi dotaz vyřešit, pokouší se o to server sám. Hodnota only znamená, že server k vyřešení dotazu kontaktuje forwardera a sám se nesnaží dotaz řešit.
            forwarders
            Uvádí IP adresy serverů pro forwarding. Implicitně je seznam prázdný (neprovádí se forwarding).

        Kontrola jmen

            check-names

            Server může kontrolovat doménová jména podle kontextu, např: doménové jméno použité jako jméno uzlu může být kontrolováno na RFC definující platná jména uzlů.
            Použitelné jsou tři metody:

            ignore - neprovádí se žádná kontrola,
            warn - jméno je kontrolováno, chybná jména jsou logována, ale zpracování pokračuje dále,
            fail - jména jsou kontrolována, chybná jména jsou logována a chybná data jsou zahozena.
            Server může kontrolovat jména ve třech oblastech: v souborech master zony, v souborech slave zony a v odpovědi na dotaz, který položil. Pokud je použito check-names response fail a server by jako odpověď měl klintovi odeslat chybné jméno, pošle REFUSED odpověď. Implicitní hodnoty jsou:
            check-names master fail;
            check-names slave warn;
            check-named response ignore;
            check-names může být uvedeno také v příkazu zone, pak má přednost před nastavením v příkazu option a neuvádí se oblast.
            Access Control
            Přístup k serveru je možné omezit na jisté IP adresy.
            allow-query
            Definuje, které uzly mohou položit běžný dotaz. Pokud není uvedeno, je implicitně položení běžného dotazu povoleno pro všechny uzly. allow-query může být uvedeno také v příkazu zone, pak má přednost před nastavením v příkazu option
            allow-transfer
            Definuje které uzly mají povolen zone transfer ze serveru. Pokud není uvedeno, je implicitně zone transfer povolen ze všech uzlů. allow-transfer může být uvedeno také v příkazu zone, pak má přednost před nastavením v příkazu option.

        Síťová rozhraní

            listen-on
            V parametru je možné uvést interface a porty, ze kterých bude server akceptovat a zodpovídat dotazy. Parametr je možno uvést vícekrát. Pokud není parametr listen-on uveden, pak server poslouchá na portu 53 na všech interfejsech.

            Př.
            listen-on { 194.149.100.33; };
            listen-on port 2323 { !195.47.127.44; 195.47/16 };

            Dotazy

            query-source
            Pokud server neumí vyřešit dotaz, požádá další name servery. Parametr query-source definuje adresy a porty pro tyto dotazy. Pokud je address vynechána nebo je * bude použita libovolná IP adresa (INADDR_ANY). Pokud je vynechán port nebo je * bude použit náhodný neprivilegovaný port. Implicitní hodnota je:
            query-source address * port *;
            query-source se uplatní pouze u UDP dotazů, TCP dotazy vždy používají libovolnou IP a libovolný neprivilegovaný port.

            Zone Transfer

            max-transfer-time-in
            Počet minut, po který může trvat zone transfer. Pokud trvá déle bude ukončen. Implicitní hodnota je 120 minut. 
            transfer-format
            Server podporuje dvě metody zone transferu:

            one-answer - Jedna DNS zpráva pro přenos jedné RR věty.
            many-answers - Do jedné DNS zprávy zabalí tolik RR vět, kolik je možné. Metoda many-answers je efektivnější, je však podporovaná pouze BINDem 8.1 a pomocí pat chů ošetřenou verzí 4.9.5. Implicitní hodnota je one-answer.
            transfers-in
            Maximální počet současně probíhajících příchozích zone transférů. Implicitní hodnota je 10.
            transfers-out
            Tento parametr bude použit v budoucnu pro omezení počtu současně probíhajících odchozích zone transferů. Pouze se kontroluje syntaxe.
            transfers-per-ns
            Maximální počet příchozích zone transférů, které mohou být současně prováděny z daného vzdáleného name serveru. Implicitní hodnota je 2.
            Resource limits
            Je možné omezit množství serverem používaných systémových zdrojů. Některé OS nepodporují některá omezení. Hodnoty mohou být např: 1G, unlimited (neomezeno), default (limit platný při startu serveru).
            coresize
            Maximální velikost dump souboru. Implicitní hodnota je default.
            datasize
            Maximální velikost paměti, kterou server může používat.Implicitní hodnota je default .
            files
            Maximální počet souborů, které má server současně otevřeny. Implicitní hodnota je unlimited.
            stacksize
            Maximální množství zásobníkové paměti, kterou server může použít. Implicitní hodnota je default.

            Časové intervaly

    clean-interval
    Počet minut n. Server bude odstraňovat neplatné věty z cache každých n minut. Implicitní hodnota je 60 munit. Pokud je nastaveno na 0, nikdy se neplatné věty neodstraňují.
    interface-interval
    Počet minut n. Server bude prohlížet síťové interface každých n minut. Pokud je nastaveno na 0 skanování interfaců se provádí pouze při natahování konfigurace. Po provedení scanování startuje naslouchač na nových interface.
    statistics-interval
    Počet minut n. Statistiky o name serveru budou zaznamenány každých n minut. Implicitní hodnota je 60 min. Pokud je nastavena hodnota 0, statistiky se nazaznamenávají.