DNS with bind
From ArchWiki
Contents |
Introduction
This is a simple tutorial in howto setup a simple home network DNS-server with bind. This tutorial is based upon Two-in-one DNS...
Install
Install bind:
pacman -S bind
Basic configuration
Kernel config
load capability-module:
modprobe capability
Add it to start at boot:
MODULES=(8139too mii via-rhine capability)
Main config
Edit /etc/named.conf and edit under options:
options {
directory "/var/named";
pid-file "/var/run/named/named.pid";
auth-nxdomain yes;
datasize default;
allow-recursion { 127.0.0.1; };
listen-on { any; };
};
This instructs bind to listen on any interface.
Zones
Adding zone
Add your own zone (/etc/named.conf):
zone "cgeek.net" {
type master;
file "cgeek.net.zone";
};
On BIND 9.4.1 and later, the defaults for allowing queries changed; consider also defining allow-query { any; }; to allow queries for this zone.
Then create the file <domain>.zone (same name as in config above) in /var/named and paste this content and edit to fit your needs:
- cgeek.net
$TTL 604800
@ IN SOA ns1.cgeek.net. root.cgeek.net. (
2006020201 ; Serial
604800 ; Refresh
86400 ; Retry
2419200 ; Expire
604800); Negative Cache TTL
;
@ IN NS ns1
IN MX 10 mail
IN A 192.168.0.2
; servers
ns1 IN A 192.168.0.2
www IN A 192.168.0.2
max IN A 192.168.0.2
gw IN A 192.168.0.1
; Clients
desk IN A 192.168.0.20
mini IN A 192.168.0.16
Restart bind with:
/etc/rc.d/named restart
Test the config by trying:
host <computer>.<domain> localhost
If all is well, you should get something like this:
[root@max named]# host max.cgeek.net localhost Using domain server: Name: localhost Address: 127.0.0.1#53 Aliases: max.cgeek.net has address 192.168.0.2