Bind / DNS Howto door Piethein Strengholt

In deze howto wordt uitgelegd hoe een DNS-server geinstalleerd kan worden. We gebruiken BIND als dns-server. Met een dns-server worden de hostnames vertaald naar ip-addressen en andersom. Tevens chached de dns-server die je installeerd de ip-addressen. Het zoeken naar pagina's moet hierdoor dus sneller gaan. Ook kan met een DNS-server problemen met andere unix/bsd in je interne netwerk oplossen.

Download de laatste versie van bind van http://www.isc.org

Pak de Bind.tar.gz file uit met 'tar zxvf bind*.tar.gz'

./configure
make
make install

In het configuratie bestand kunnen eventuele aanpassingen gedaan worden.
/etc/named.conf ( config bestand, hier mijn voorbeeld )

/etc/named.conf:

// Config file for caching only name server

options {
directory "/var/named";
datasize 20M;
};

zone "." {
type hint;
file "root.hints";
};

zone "0.0.127.in-addr.arpa" {
type master;
file "pz/127.0.0";
};

zone "local.home" {
type master;
file "pz/local.home";
};

zone "0.168.192.in-addr.arpa" {
type master;
file "pz/192.168.0";
};

Het betstand verwijst naar /var/named. Dit is de directory waar de 'zones' van domein staan. Voor localhost is de zone 127.0.0 beschikbaar. Om ip-adressen naar namen te vertalen is 192.168.0 beschikbaar, voor namen naar adressen local.home. Het bestand roots.hints cached alle dns server van het internet (we gaan namelijk ook een cached dns server draaien) Zou je geen gebruik willen maken van een dns-server in je interne netwerk, maar de dns server puur als cached only willen gaan inzitten, dan moet de regels mbt 192.168.0 en local.home verwijderen. De howto beperkt zich dan alleen tot 'root.hints' en '127.0.0'.

ga in de directory /var/named staan en geef het volgende commando:

dig @e.root-servers.net . ns >root.hints

Met dit commando wordt een lijst van alle dns servers binnengehaald en zo weet de dns server waar die de addressen vandaan kan halen.

Nu moeten de zones worden aangemaakt. Zoals in dit voorbeeld dienen er op in de directory /var/named/pz de volgende bestanden aangemaakt te worden:

/var/named/pz/127.0.0 (met de volgende inhoud):

$TTL 1D
@ IN SOA netwerk.home. root.local.home. (
10 8H 2H 1W 1D )
;
NS server.local.home.
1 PTR localhost.


/var/named/pz/192.168.0:

$TTL 1D
@ IN SOA server hostmaster.local.home. (
199802151 8H 2H 1W 1D )
;
1 IN PTR server.local.home.
1 IN PTR www.local.home.
1 IN PTR mailserver.local.home.
2 IN PTR erhnam.local.home.
3 IN PTR zeus.local.home.
4 IN PTR caddy.local.home.
5 IN PTR marijn.local.home.
6 IN PTR bert.local.home.
7 IN PTR kleintje.local.home.
8 IN PTR apollo.local.home.
9 IN PTR 3comtest.local.home.
10 IN PTR jupiter.local.home.
@ IN NS server.local.home.


/var/named/pz/local.home:

$TTL 86400
@ IN SOA server root.local.home. (
200202151 8H 2H 1W 1D )
;
localhost IN A 127.0.0.1
server IN A 192.168.0.1
www IN A 192.168.0.1
mailserver IN A 192.168.0.1
erhnam IN A 192.168.0.2
zeus IN A 192.168.0.3
caddy IN A 192.168.0.4
marijn IN A 192.168.0.5
bert IN A 192.168.0.6
kleintje IN A 192.168.0.7
apollo IN A 192.168.0.8
3comtest IN A 192.168.0.9
jupiter IN A 192.168.0.10
@ IN NS server.local.home.

Aanpassen /etc/resolv.conf

De computer moet nu gebruik gaan maken van de DNS-server In /etc/resolv.conf zijn de instellingen te vinden waar de addressen worden opgeslagen van de DNS-servers waar gebruik van wordt gemaakt:

pico /etc/resolv.conf

hier moet iets van dit komen te staan:

search domeinnaam ( bv quicknet.nl )
nameserver 127.0.0.1
nameserver {ip-nummer-nameserver-van-de-internetprovider}

---------------------------------------


Nu moet het bestand nsswitch.conf worden aangepast:

Op deze manier wordt een ipnummer eerst gezocht op de eigen nameserver. Wordt het adres niet gevonden dan wordt het ipnummer gebruikt van de tweede nameserver bijvoorbeeld van de internetprovider. De eerste keer kan het opvragen van een adres langer duren maar de keer daarna zal het vele malen sneller gaan.

Aanpassen /etc/nsswitch.conf :

Dit is een groot bestand waar het systeem al zijn data vandaan trekt

pico /etc/nsswitch.conf

Dit bestand moet de volgende regel bevatten (er staan er meer in):

hosts: files dns

Tevens moet worden gekeken in het bestand /etc/host.conf of de volgende regel er in staat:

order hosts,bind

Zo niet voeg hem dan even toe

Starten van de nameserver

nameserver starten met:

Als alle configuratie klaar is/gecontroleer is, kan de nameserver gestart worden door het commando: /etc/rc.d/init.d/named start. Mocht deze al gestart zijn kan de nameserver herstart worden door /etc/rc.d/init.d/named restart. Kijk in /var/log/messages om te kijken of de nameserver opgestart is.

/etc/rc.d/init.d/named start
/etc/rc.d/init.d/named restart
/etc/rc.d/init.d/named stop

Controleer of de nameserver werkt door nslookup te geven. Er moet als alles goed is komen te staan:

$ nslookup
Default Server: localhost
Address: 127.0.0.1

Geef een naam in van bijvoorbeeld de website van microsoft.com en kijk of het ipadres gevonden wordt. ( exit -> quiten )

Ik heb mijn netwerk 'local.home' genoemd en op die manier alle hostnames aan ip-addressen gekoppeld. Als je in mijn named.conf kijkt zie je dat er naast 127.0.0 ook nog een verwijzing is naar de zones 192.168.0 en local.home ( rechts op klikken om ze te bewaren )

Deze zou je kunnen overnemen en zelf kunnen aanpassen

 

TIP: pas /etc/dhcpd.conf aan om alle clients met de nieuwe dns server te laten werken! De clients krijgen bij een dhcp-request meteen de lokale dns server mee!

TIP2: /etc/resolv.conf zou je ook nog kunnen updaten met search local.home en domain local.home. Dit zorgt er voor dat clients zoeken in je interne domein. Handig voor als je naast je linux/bsd server nog een linux/bsd-achtige pc in je netwerk hebt!

Mijn resolv.conf ziet er dus nu zo uit:

search local.home
search quicknet.nl
domain local.home
nameserver 192.168.0.1
nameserver 127.0.0.1
nameserver 213.73.255.254
nameserver 80.242.224.6
nameserver 80.242.224.2