ubuntu配置简单的DNS服务器

之所以说是简单的服务器,实现的功能很简单,通过这个dns server 查询制定域名的时候,能够根据设置的值来返回IP,当前的需求是需要轮询的返回IP

DNS 轮询机制会受到多方面的影响,如:A记录的TTL时间长短的影响;别的 DNS 服务器 Cache 的影响;windows 客户端也有一个DNS Cache。这些都会影响 DNS 轮询的效果。

下面的配置就是实现解析test.zp.com到不同的IP地址

安装dns server软件包

ubuntu下是通过安装bind9软件包来配置dns-server的

1
[root@lab5106 ~]# apt-get install bind9

配置dns

配置文件的路径在/etc/bind路径下面

添加一个zone

1
2
3
4
root@ubuntu14:/etc/bind# vim /etc/bind/named.conf.local 
添加下面,语法可以参照/etc/bind/zones.rfc1918中的语法添加,如下:

zone "zp.com" { type master; file "/etc/bind/db.zp.com"; };

修改db的配置文件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
root@ubuntu14:/etc/bind# cp db.local db.zp.com
root@ubuntu14:/etc/bind# vim db.zp.com
;
; BIND data file for local loopback interface
;
$TTL 604800
@ IN SOA zp.com. root.localhost. (
2 ; Serial
604800 ; Refresh
86400 ; Retry
2419200 ; Expire
604800 ) ; Negative Cache TTL
;
@ IN NS localhost.
@ IN A 127.0.0.1
@ IN AAAA ::1
test IN A 192.168.0.11
test IN A 192.168.0.12
test IN A 192.168.0.13
test IN A 192.168.0.14
test IN A 192.168.0.15
test IN A 192.168.0.16

修改/etc/bind/named.conf.option 配置文件,在 named.conf.option 中可以设置 bind 的 round-robin 的给出结果的顺序:

1
2
3
4
5
6
rrset-order { order cyclic; };

rrset-order 支持三个参数:fixed, random, cyclic 。
fixed 会将多个A记录按配置文件的顺序固定给出
random 会随机给出
cyclic 会循环给出

重启服务

1
root@ubuntu14:/etc/bind# /etc/init.d/bind9 restart

###检查配置效果

1
2
3
4
5
6
7
8
9
10
修改域名解析配置文件
root@ubuntu14:/etc/bind# vim /etc/resolv.conf
nameserver 192.168.0.122
添加你的域名服务器的IP地址

通过多次ping域名检查返回的结果
root@ubuntu14:/etc/bind# ping test.zp.com
PING test.zp.com (192.168.0.13) 56(84) bytes of data.
root@ubuntu14:/etc/bind# ping test.zp.com
PING test.zp.com (192.168.0.14) 56(84) bytes of data.

后话

window的dns缓存的处理办法:
清空dns缓存

1
ipconfig /flushdns

显示缓存的dns信息

1
ipconfig/displaydns

临时禁用dns缓存

1
net stop dnscache

启动dns缓存

1
net start dnscache