%
% bind9.tex
% Last Update: $Id$
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Kapitel Bind9 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\chapter{Der Nameserver BIND 9}
\index{Bind9}

\section{Allgemeines}

    Mit dem BIND (Berkeley Internet Name Daemon) Service werden Namen des
    DNS in IP-Adressen und umgekehrt, umgesetzt. Er kann gleichzeitig
    mehrere Dom"anen - auch als Zonen bezeichnet - im Master- oder Slavemodus
    verwalten. "Uber Forward- und Root- Eintr"age werden nicht beantwortbare
    Namensanfragen weitergeleitet.

    Die Arbeitsverzeichnisse liegen in einem Bereich, der BIND eine eigene
    Umgebung (chroot) bietet.

    BIND9 kann, mit dem DHCPD Paket zusammen, Hostnamen dynamisch
    registrieren und aufl"osen.

\section{Installation}

    Das Installationsskript erkennt automatisch, ob bereits ein DNS oder BIND9
    Server installiert ist. Vorhandene DNS Einstellungen werden also komplett
    "ubernommen. Dennoch sollte die Konfiguration auf eventuelle Fehler
    "uberpr"uft werden.

    Eine Ausnahme bildet der NS-Eintrag, der durchaus auf eine fremde Dom"ane
    verweisen kann und deshalb aus Hostname und der kompletten Dom"anenkennung
    bestehen muss.



    \section{Das Men"u im Setup-Programm}

    Das Men"u im Setup-Programm ist wie folgt aufgebaut:

    \mbox{}

    \begin{tabular}{llll}
    & 1. &  Service administration \\
    \end{tabular}
\eline
    \begin{tabular}{p{1cm}llll}
    & x. &  Name server BIND 9 \\
    \end{tabular}
\eline
    \begin{tabular}{p{2cm}llll}
    & 1. & View documentation \\
    & 2. & Edit configuration \\
    & 3. & Advanced configuration file handling \\
    & 4. & Show status \\
    & 5. & Start service \\
    & 6. & Stop service \\
    & 7. & Modules configuration \\
    \end{tabular}
\eline
    \begin{tabular}{p{3cm}llll}
    & x. & \jump{BIND9ADSERVER}{Bind9 adserver administration (optional)} \\
    & x. & \jump{BIND9GEOIP}{Bind9 GeoIP administration (optional)} \\
    \end{tabular}

    \mbox{}


\section{Die Konfigurationsdatei}

    In der Konfigurationsdatei, die "uber das Men"u zug"anglich ist, sind
    folgende Parameter vorhanden; wer sie von Hand editieren will findet
    sie unter \\
    \texttt{/etc/config.d/bind9}


\section{Die Parameter}


\begin{description}

\config{START\_BIND9}
{START\_BIND9}
{STARTBIND9}
{
    Legt fest, ob der BIND Server automatisch gestartet wird.

    G"ultige Werte: yes, no

    Standardeinstellung: \texttt{START\_BINdD9='no'}
}


\config{BIND9\_ALLOW\_QUERY}
{BIND9\_ALLOW\_QUERY}
{BIND9ALLOWQUERY}
{
    Legt fest, welche Clients Informationen "uber diese Zone anfordern d"urfen.

    G"ultige Werte: \\
    \begin{tabular}{llll}
    &  any       & = & alle Anfragen sind zul"assig \\
    &  localnets & = & alle Anfragen aus allen auf dem Server \\
    &            &   & definierten Netzen sind zul"assig \\
    &  localhost & = & nur interne Abfragen sind zul"assig \\
    \end{tabular}

    Standardeinstellung: \texttt{BIND9\_ALLOW\_QUERY='any'}
}


\config{BIND9\_FORWARDER\_N}
{BIND9\_FORWARDER\_N}
{BIND9FORWARDERN}
{
    Anzahl externer Nameserver welche alle Namensanfragen beantworten,
    die nicht in den eigenen Zonen definiert sind. Hier sollten nach
    M"oglichkeit immer mindestens zwei Eintr"age vorhanden sein.

    G"ultige Werte: Zahl (1, 2, 3)

    Standardeinstellung: \texttt{BIND9\_FORWARDER\_N='2'}
}


\config{BIND9\_FORWARDER\_x\_NAME}
{BIND9\_FORWARDER\_x\_NAME}
{BIND9FORWARDERxNAME}
{
    Hier kann ein Name oder eine Bezeichnung f"ur diesen Forwarder
    eingegeben werden. Er wird nicht ausgewertet.

    G"ultige Werte: keine Einschr"ankung

    Standardeinstellung: \texttt{BIND9\_FORWARDER\_x\_NAME='{}'}
}


\config{BIND9\_FORWARDER\_x\_ACTIVE}
{BIND9\_FORWARDER\_x\_ACTIVE}
{BIND9FORWARDERxACTIVE}
{
    Hier kann ein Forwarder deaktiviert werden. Dabei bleiben die
    Einstellungen f"ur eine eventuelle Reaktivierung erhalten,
    sie werden aber nicht in die Konfiguration geschrieben.

    G"ultige Werte: yes, no

    Standardeinstellung: \texttt{BIND9\_FORWARDER\_x\_ACTIVE='no'}
}


\config{BIND9\_FORWARDER\_x\_IP}
{BIND9\_FORWARDER\_x\_IP}
{BIND9FORWARDERxIP}
{
    Die hier eingetragene IP-Adresse eines DNS-Servers sollte in gewissen
    Abst"anden auf Erreichbarkeit "uberpr"uft werden, da in der Vergangenheit
    schon "ofter Adressen von DNS-Server ver"andert wurden. \\
    F"ur den Totalausfall aller Forwarder verf"ugt BIND 9 allerdings auch
    noch "uber M"oglichkeit zur Namensaufl"osung "uber die sogenannten
    Root-Server. Das erh"oht die Wartezeit f"ur eine Antwort allerdings sehr.

    G"ultige Werte: IP Adresse

    Standardeinstellung: \texttt{BIND9\_FORWARDER\_x\_IP='8.8.8.8'}
}


\config{BIND9\_FORWARDER\_x\_EDNS}
{BIND9\_FORWARDER\_x\_EDNS}
{BIND9FORWARDERxEDNS}
{
    Optionaler Parameter \\
    Wird hier ein 'no' gesetzt, erfolgt die Abfrage nicht mehr mit RFC-
    Konformen EDNS.  Der Eintrag sollte nur dann auf 'no' gesetzt werden,
    wenn die Kommunikation z.B. mit einem MS-Windows DNS-Server fehlschl"agt.

    G"ultige Werte: yes, no

    Standardeinstellung: \texttt{BIND9\_FORWARDER\_x\_EDNS='yes'}
}


\config{BIND9\_N}
{BIND9\_N}
{BIND9N}
{
    Bind verf"ugt "uber die M"oglichkeit, mehrere unterschiedliche
    Namensbereiche (Zonen) zu verwalten. \\
    Die Gesamtanzahl wird hier eingetragen.

    G"ultige Werte: Zahl

    Standardeinstellung: \texttt{BIND9\_N='2'}
}


\config{BIND9\_x\_NAME}
{BIND9\_x\_NAME}
{BIND9xNAME}
{
    Hier steht der Name der zu verwaltenden Zone. Bei internen Namen
    sollte man zur Sicherheit keine existierenden Internet Kennungen
    verwenden. Also am besten statt einer '.de' Endung verwendet man
    eine '.local' Endung.

    Beispiel: foo.local

    G"ultige Werte: Domain Name

    Standardeinstellung: \texttt{BIND9\_BIND9\_x\_NAME='foo.local'}
}


\config{BIND9\_x\_MASTER}
{BIND9\_x\_MASTER}
{BIND9xMASTER}
{
    Die aktuelle Zone wird auf diesem Computer verwaltet. (Master-Zone)

    G"ultige Werte: yes, no

    Standardeinstellung: \texttt{BIND9\_x\_MASTER='yes'}
}


\config{BIND9\_x\_NETWORK}
{BIND9\_x\_NETWORK}
{BIND9xNETWORK}
{
    Netzwerk-Adresse der aktuellen Zone.

    G"ultige Werte: IP Adresse

    Standardeinstellung: \texttt{BIND9\_x\_NETWORK='192.168.6.0'}
}


\config{BIND9\_x\_NETMASK}
{BIND9\_x\_NETMASK}
{BIND9xNETMASK}
{
    Netzwerk-Maske der aktuellen Zone.

    Beispiel: 255.255.255.0

    G"ultige Werte: NetzMaske

    Standardeinstellung: \texttt{BIND9\_x\_NETMASK='255.255.255.0'}
}


\config{BIND9\_x\_MASTER\_IP}
{BIND9\_x\_MASTER\_IP}
{BIND9xMASTERIP}
{
    IP-Adresse des Masters, welche die Autorisierungsrechte der Zone
    besitzt. Wenn \jumplabel{BIND9\_x\_MASTER='no'}{BIND9xMASTER}
    dann steht hier die IP-Adresse des DNS-Masters von dem die Daten
    geladen werden.

    G"ultige Werte: IP Adresse

    Standardeinstellung: \texttt{BIND9\_x\_MASTER\_IP='192.168.6.1'}
}


\config{BIND9\_x\_MASTER\_NS}
{BIND9\_x\_MASTER\_NS}
{BIND9xMASTERNS}
{
    Optional kompletter Name des DNS Servers. So k"onnen mehrere
    DNS-Zonen mit einem Nameserver registriert werden.

    Beispiel: mx.domain.local

    G"ultige Werte: Host Name

    Standardeinstellung: \texttt{BIND9\_x\_MASTER\_NS='{}'}
}


\config{BIND9\_x\_ALLOW\_TRANSFER}
{BIND9\_x\_ALLOW\_TRANSFER}
{BIND9xALLOWTRANSFER}
{
    Beschr"ankt den Kreis m"oglicher Slave-Nameserver. Hierdurch wird auch
    das Abfragen aller Zoneneintr"age mit dem Befehl: nslookup ls -d <zone>
    eingeschr"ankt.

    G"ultige Werte: \\
    \begin{tabular}{llll}
    & any       & = & Jeder beliebige Server kann Slave werden \\
    & localnets & = & Nur Server im gleichen Netz k"onnen Slave werden \\
    & nslist    & = & Nur ein unter \jump{BIND9xNSxIP}{BIND9\_x\_NS\_x\_IP} \\
    &           &   & eingetragener Server kann Slave werden \\
    & none      & = & Kein Zonen Transfer zugelassen \\
    \end{tabular}

    Standardeinstellung: \texttt{BIND9\_x\_ALLOW\_TRANSFER='any'}
}


\end{description}


\subsection{Zonen Konfiguration}
    Folgende Eintr"age sind nur f"ur Master-Zonen
    \jumplabel{BIND9\_x\_MASTER='yes'}{BIND9xMASTER} definierbar:


\begin{description}


\config{BIND9\_x\_NS\_N}
{BIND9\_x\_NS\_N}
{BIND9xNSN}
{
    Anzahl weiterer Name-Server, die Daten dieser Zone als Slave verwalten.

    G"ultige Werte: Zahl

    Standardeinstellung: \texttt{BIND9\_x\_NS\_N='0'}
}


\config{BIND9\_x\_NS\_x\_NAME}
{BIND9\_x\_NS\_x\_NAME}
{BIND9xNSxNAME}
{
    Komplette Bezeichnung des Slave-Nameserver, inklusive Dom"ane.

    Beispiel: dns2.foo.local

    G"ultige Werte: Domain Name

    Standardeinstellung: \texttt{BIND9\_x\_NS\_x\_NAME='{}'}
}


\config{BIND9\_x\_NS\_x\_IP}
{BIND9\_x\_NS\_x\_IP}
{BIND9xNSxIP}
{
    IP Adresse des Slave-Nameserver. \\
    Wird nur ben"otigt, wenn die Option \jump{BIND9xALLOWTRANSFER}
    {BIND9\_x\_ALLOW\_TRANSFER}='nslist' gesetzt ist

    G"ultige Werte: IP Adresse

    Standardeinstellung: \texttt{BIND9\_x\_NS\_x\_IP='{}'}
}


\config{BIND9\_x\_MX\_N}
{BIND9\_x\_MX\_N}
{BIND9xMXN}
{
    Anzahl der zur Zone geh"orenden E-Mail Server.

    G"ultige Werte: Zahl

    Standardeinstellung: \texttt{BIND9\_x\_MX\_N='1'}
}


\config{BIND9\_x\_MX\_x\_NAME}
{BIND9\_x\_MX\_x\_NAME}
{BIND9xMXxNAME}
{
    Kompletter Name des E-Mail Servers. Das kann auch ein Backup E-Mail
    Server au"serhalb der Dom"ane sein.

    Beispiel: mail.foo.local

    G"ultige Werte: Domain Name

    Standardeinstellung: \texttt{BIND9\_x\_MX\_x\_NAME='{}'}
}


\config{BIND9\_x\_MX\_x\_PRIORITY}
{BIND9\_x\_MX\_x\_PRIORITY}
{BIND9xMXxPRIORITY}
{
    Empfangspriorit"at des E-Mail Server. Der Server mit dem niedrigsten
    Wert wird zuerst angesprochen. Ist dieser nicht erreichbar, dann wird
    der Server mit der n"achst gr"o"seren Zahl verwendet.

    G"ultige Werte: Zahl

    Standardeinstellung: \texttt{BIND9\_x\_MX\_x\_PRIORITY='10'}
}


\config{BIND9\_x\_HOST\_N}
{BIND9\_x\_HOST\_N}
{BIND9xHOSTN}
{
    Anzahl der f"ur diese Zone eingetragenen Hosts.

    G"ultige Werte: Zahl der Hosts

    Standardeinstellung: \texttt{BIND9\_x\_HOST\_N='2'}
}


\config{BIND9\_x\_HOST\_x\_NAME}
{BIND9\_x\_HOST\_x\_NAME}
{BIND9xHOSTxNAME}
{
    Hostname, der zur Namensaufl"osung der IP-Adresse verwendet wird.
    Hier kann auch ein Platzhalter ''*'' verwendet werden. Alle DNS
    Anfragen nach beliebigen Hostnamen, werden dann mit der zugeh"origen
    \jump{BIND9xHOSTxIP}{BIND9\_x\_HOST\_x\_IP} beantwortet. \\
    Ein leerer Eintrag erm"oglicht das Aufl"osen von domain.tld, also
    ohne Angabe eines Hostnamens.

    G"ultige Werte: jeder Hostname

    Standardeinstellung: \texttt{BIND9\_x\_HOST\_x\_NAME='mail'}
}


\config{BIND9\_x\_HOST\_x\_ACTIVE}
{BIND9\_x\_HOST\_x\_ACTIVE}
{BIND9HOSTxACTIVE}
{
    Wird dieser Parameter auf den Wert 'yes' gesetzt, so wird der
    zugeh"orige Datensatz aktiviert, 'no' deaktiviert ihn.

    G"ultige Werte: yes, no

    Standardeinstellung: \texttt{BIND9\_x\_HOST\_x\_ACTIVE='no'}
}


\config{BIND9\_x\_HOST\_x\_IP}
{BIND9\_x\_HOST\_x\_IP}
{BIND9xHOSTxIP}
{
    IP-Adresse f"ur den Host.

    G"ultige Werte: IP Adresse

    Standardeinstellung: \texttt{BIND9\_x\_HOST\_x\_IP='192.168.6.10'}
}


\config{BIND9\_x\_HOST\_x\_ALIAS}
{BIND9\_x\_HOST\_x\_ALIAS}
{BIND9xHOSTxALIAS}
{
    Durch Leerzeichen getrennte Liste weiterer Hostnamen der IP-Adresse.
    BIND erweitert die Namen bei Abfragen automatisch, mit dem unter
    BIND9\_x\_NAME eingetragenem Wert.

    Beispiel: 'www ftp'

    G"ultige Werte: Hostaliasnamen

    Standardeinstellung: \texttt{BIND9\_x\_HOST\_x\_ALIAS='{}'}
}


\end{description}


\subsection{Spezielle Konfiguration}
    Die folgenden Parameter sollten nur bei Bedarf ver"andert werden.


\begin{description}


\config{BIND9\_PORT\_53\_ONLY}
{BIND9\_PORT\_53\_ONLY}
{BIND9PORT53ONLY}
{
    Wenn der Zugriff auf den BIND Server durch eine Firewall gesichert
    wird, so wird hiermit die gesamte Kommunikation auf den Port 53
    beschr"ankt. Dieser Port muss dann aber auch in der Firewall
    freigeschaltet werden.

    G"ultige Werte: yes, no

    Standardeinstellung: \texttt{BIND9\_PORT\_53\_ONLY='no'}
}


\config{BIND9\_LISTEN\_IPADDR\_N}
{BIND9\_LISTEN\_IPADDR\_N}
{BIND9LISTENIPADDRN}
{
    "Uber diesen Parameter wird die Anzahl der individuell konfigurierten
    IP-Adressen angegeben, auf welchen der BIND-Server Verbindungen entgegen
    nehmen soll. Wird der Wert dieses Parameters auf '0' gesetzt, so werden
    Verbindungen auf allen lokalen IP-Adressen des Servers entgegen genommen.

    G"ultige Werte: Zahl

    Standardeinstellung: \texttt{BIND9\_LISTEN\_IPADDR\_N='0'}
}


\config{BIND9\_LISTEN\_IPADDR\_x\_NAME}
{BIND9\_LISTEN\_IPADDR\_x\_NAME}
{BIND9LISTENIPADDRxNAME}
{
    An dieser Stelle kann eine Beschreibung angegeben werden.
    Dieser Parameter wird nicht ausgewertet.

    G"ultige Werte: alles

    Standardeinstellung: \texttt{BIND9\_LISTEN\_IPADDR\_x\_NAME='{}'}
}


\config{BIND9\_LISTEN\_IPADDR\_x\_ACTIVE}
{BIND9\_LISTEN\_IPADDR\_x\_ACTIVE}
{BIND9LISTENIPADDRxACTIVE}
{
    Wird dieser Parameter auf den Wert 'yes' gesetzt, so wird der
    zugeh"orige Datensatz aktiviert, 'no' deaktiviert ihn.

    G"ultige Werte: yes, no

    Standardeinstellung: \texttt{BIND9\_LISTEN\_IPADDR\_x\_ACTIVE='no'}
}


\config{BIND9\_LISTEN\_IPADDR\_x}
{BIND9\_LISTEN\_IPADDR\_x}
{BIND9LISTENIPADDR}
{
    Diese Option wird dann ben"otigt, wenn mehrere Netzwerkkarten im Server
    verwendet werden und nicht von allen ein Zugriff auf den BIND Server
    erlaubt werden soll. Die IP-Adresse der f"ur die Servernutzung
    freigegebenen Netzwerkkarte wird dann hier eingetragen.

    Hier wird keine echte IP Adresse angegeben sondern der Index der
    Angabe \texttt{IP\_ETH\_x\_IP\_x\_IPADDR} aus der
    Base Konfiguration in \texttt{/etc/config.d/base}.

    Beispiel: \texttt{BIND9\_LISTEN\_IPADDR\_1='2:1'}
    zeigt auf \texttt{IP\_ETH\_2\_IP\_1\_IPADDR} in
    \texttt{/etc/config.d/base}.

    Der Wert vor dem '2:' ist der Index der Netzwerkkkarte \\
    der Wert hinter dem ':1' ist der Index der IPADDR.

    Der Index kann, wenn der Editor \glqq{}\ece\grqq{} eingestellt ist,
    auch aus dem Dialog eingef"ugt werden.

    G"ultige Werte: 1:1, 1:2, 2:1 etc..

    Standardeinstellung: \texttt{BIND9\_LISTEN\_IPADDR\_x='{}'}
}


\config{BIND9\_START\_OPTION\_IPV4}
{BIND9\_START\_OPTION\_IPV4}
{BIND9STARTOPTIONIPV4}
{
    Mit diesem Paramter wird BIND auf IPv4 festgelegt.
    IPv6 Anfragen werden nicht beachtet.

    G"ultige Werte: yes, no

    Standardeinstellung: \texttt{BIND9\_START\_OPTION\_IPV4='no'}
}


\config{BIND9\_DNSSEC\_VALIDATION}
{BIND9\_DNSSEC\_VALIDATION}
{BIND9DNSSECVALIDATION}
{
    Mit diesem Paramter wird das verhalten bei dnssec-validation
    gesteuert.

    G"ultige Werte: no, auto, yes

    Standardeinstellung: \texttt{BIND9\_DNSSEC\_VALIDATION='no'}
}


\config{BIND9\_DEBUG\_LOGFILE}
{BIND9\_DEBUG\_LOGFILE}
{BIND9DEBUGLOGFILE}
{
    Erweitert die Logdateiausgabe um Debug-Informationen.
    Diese werden im Verzeichnis /var/lib/named/var/log abgelegt.

    G"ultige Werte: yes, no

    Standardeinstellung: \texttt{BIND9\_DEBUG\_LOGFILE='no'}
}


\config{BIND9\_LOGGING\_LAME\_SERVERS}
{BIND9\_LOGGING\_LAME\_SERVERS}
{BIND9LOGGINGLAMESERVERS}
{
    Mit diesem Parameter wird das loggen von LAME\_SERVERS eingestellt.
    'no' schaltet das loggen ab.

    G"ultige Werte: yes, no

    Standardeinstellung: \texttt{BIND9\_LOGGING\_LAME\_SERVERS='yes'}
}

\end{description}
