之所以说是简单的服务器,实现的功能很简单,通过这个dns server 查询制定域名的时候,能够根据设置的值来返回IP,当前的需求是需要轮询的返回IP
DNS 轮询机制会受到多方面的影响,如:A记录的TTL时间长短的影响;别的 DNS 服务器 Cache 的影响;windows 客户端也有一个DNS Cache。这些都会影响 DNS 轮询的效果。
下面的配置就是实现解析test.zp.com到不同的IP地址
安装dns server软件包
ubuntu下是通过安装bind9软件包来配置dns-server的
[root@lab5106 ~]# apt-get install bind9
配置dns
配置文件的路径在/etc/bind路径下面
添加一个zone
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的配置文件
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 的给出结果的顺序:
rrset-order { order cyclic; };
rrset-order 支持三个参数:fixed, random, cyclic 。
fixed 会将多个A记录按配置文件的顺序固定给出
random 会随机给出
cyclic 会循环给出
重启服务
root@ubuntu14:/etc/bind# /etc/init.d/bind9 restart
检查配置效果
修改域名解析配置文件
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缓存
ipconfig /flushdns
显示缓存的dns信息
ipconfig/displaydns
临时禁用dns缓存
net stop dnscache
启动dns缓存
net start dnscache