Support #696
Updated by Daniel Curtis almost 10 years ago
This is a guide on installing an authoritative DNS server using the Unbound on Arch Linux.
h2. Prepare the Environment
* Make sure the system is up to date:
<pre>
pacman -Syu
</pre>
h2. Install Unbound
* Install unbound:
<pre>
pacman -S unbound
</pre>
* Create a config from the packaged example:
<pre>
cp /etc/unbound/unbound.conf.example /etc/unbound/unbound.conf
</pre>
* Make a config directory for the various domains served by unbound:
<pre>
mkdir /etc/unbound/conf.d
</pre>
* Create a log file for unbound:
<pre>
touch /etc/unbound/unbound.log
chown unbound:unbound /etc/unbound/unbound.log
</pre>
* Edit the unbound config:
<pre>
vi /etc/unbound/unbound.conf
</pre>
#* And add the following:
<pre>
## Authoritative, validating, recursive caching DNS
server:
verbosity: 1
logfile: "/etc/unbound/unbound.log"
use-syslog: no
username: "unbound"
trust-anchor-file: trusted-key.key
interface: 0.0.0.0
port: 53
do-ip4: yes
do-udp: yes
do-tcp: yes
access-control: 127.0.0.0/8 allow
access-control: 10.0.0.0/16 allow
local-zone: "localhost." static
local-data: "localhost. 10800 IN NS localhost."
local-data: "localhost. 10800 IN SOA localhost. nobody.invalid. 1 3600 $
local-data: "localhost. 10800 IN A 127.0.0.1"
local-zone: "127.in-addr.arpa." static
local-data: "127.in-addr.arpa. 10800 IN NS localhost."
local-data: "127.in-addr.arpa. 10800 IN SOA localhost. nobody.invalid. $
local-data: "1.0.0.127.in-addr.arpa. 10800 IN PTR localhost."
include: "/etc/unbound/conf.d/*.conf"
chroot: ""
hide-identity: yes
hide-version: yes
harden-glue: yes
harden-dnssec-stripped: yes
use-caps-for-id: yes
prefetch: yes
forward-zone:
name: "."
forward-addr: 208.67.222.222
</pre>
* Create an unbound config for the example.com domain:
<pre>
vi /etc/unbound/conf.d/example.com.conf
</pre>
#* And add the following:
<pre>
# example.com domain
local-zone: "example.com." static
local-data: "gateway.example.com. IN A 192.168.55.1"
local-data: "nas.example.com. IN A 192.168.55.2"
local-data: "pc1.example.com. IN A 192.168.55.3"
local-data: "pc2.example.com. IN A 192.168.55.4"
local-data: "wap1.example.com. IN A 192.168.55.5"
local-data: "dhcp1.example.com. IN A 192.168.55.6"
local-data: "dhcp2.example.com. IN A 192.168.55.7"
local-data-ptr: "192.168.55.1 gateway.example.com"
local-data-ptr: "192.168.55.2 nas.example.com"
local-data-ptr: "192.168.55.3 pc1.example.com"
local-data-ptr: "192.168.55.4 pc2.example.com"
local-data-ptr: "192.168.55.5 wap1.example.com"
local-data-ptr: "192.168.55.6 dhcp1.example.com"
local-data-ptr: "192.168.55.7 dhcp2.example.com"
</pre>
* Start and enable unbound at boot:
<pre>
systemctl enable unbound
systemctl start unbound
</pre>
* With unbound configured and running edit the interface netctl config file:
<pre>
vi /etc/netctl/wired
</pre>
#* And change the nameserver to the localhost and the search domain to example.com:
<pre>
DNS=('127.0.0.1')
DNSSearch='example.com'
</pre>
h2. Resources
* https://wiki.archlinux.org/index.php/Unbound