在Ubuntu系统上搭建DNS Server的过程, 此处仅对基本安装及设置作介绍, 更多详细内容请查阅相关资料。
1. 安装dns服务器
ubuntu下面安装dns服务器使用dnsmasq
dnsmasq是一个Linux平台下的轻量级DNS 代理软件,我们只将其配置成一个简单的本地DNS Server。另外此软件最新版本含有DHCP Server以及TFTP Server的功能,这些功能默认都是关闭的, 根据依赖关系可能会安装其他包。
(如dnsmasq-base等, 但Ubuntu 10.04 Desktop已默认安装过,但在安装时可能会自动升级dnsmasq-base)。
sudo apt-get install dnsmasq
2.配置dnsmasq服务器
1. 将dnsmasq配置成一个本地DNS Server(非DNS代理)
打开文件/etc/dnsmasq.conf(安装后默认此配置文件内的所有参数都被注释掉), 找到参数resolv-file和addn-hosts, 去掉注释符号#后修改成如下值。
resolv-file=/etc/dnsmasq/dnsmasq.resolv
addn-hosts=/etc/dnsmasq/dnsmasq.hosts
此处resolve-file指定dnsmasq从哪里获取上行DNS Server, 默认是从/etc/resolv.conf获取。
因为dnsmasq本是一个DNS代理软件而非Server, 我们只是利用dnsmasq的缓存功能来实现DNS Server, 故而要将上行server指定为本机地址, 在文件/etc/dnsmasq/dnsmasq.resolv中指定nameserver为127.0.0.1即可。
addn-hosts指定dnsmasq从哪个文件中读取“地址 域名”记录, 默认是系统文件/etc/hosts, 此处我们指定从自定义文件/etc/dnsmasq/dnsmasq.hosts中读取。
2. 添加相关自定义文件
创建文件夹/etc/dnsmasq/(这里的文件夹是上一步中地址的两个文件所在目录, 可以自己任意指定, 但要和上一步中的保持一致), 并添加文件/etc/dnsmasq/dnsmasq.resolv和/etc/dnsmasq/dnsmasq.hosts。
添加一行内容到/etc/dnsmasq/dnsmasq.resolv文件中
nameserver 127.0.0.1
添加自定义的“地址 域名”记录到文件/etc/dnsmasq/dnsmasq.hosts中, 支持IPv6地址, 例如:
10.0.0.1 www.tianmm.com
2001::1 www.tianmm.com
可以任意添加自己的本地DNS Server可解析的“地址 域名”记录, 注意必须重新启动dnsmasq才可以使更新生效(也可以发送信号SIGHUP给dnsmasq进程, 具体请参考dnsmasq帮助文档, Shell命令man dnsmasq)。
实际上dnsmasq是将这些记录读取到内存中缓存起来(默认最多可以记录150条记录, 可以自己在配置文件/etc/dnsmasq.conf中修改), 收到DNS查询请求时从自身的缓存中直接查找答复。
更多功能及设置请参考dnsmasq的帮助文档或者查看配置文件/etc/dnsmasq中的注释说明内容。
3. 启动、停止
- /etc/init.d/dnsmasq start
- /etc/init.d/dnsmasq stop
- /etc/init.d/dnsmasq restart
如果启动DNS Server失败请查看系统log(/var/log/syslog),
4. 本地测试
使用nslookup直接测试
ipv4地址
ubuntu:~$ nslookup www.tianmm.com
Server: 127.0.0.1
Address: 127.0.0.1#53
Name: www.tianmm.com
Address: 10.0.0.1
ipv6地址
ubuntu:~$ nslookup
> set type=AAAA
> gw.zihome.com
Server: 127.0.0.1
Address: 127.0.0.1#53
gw.zihome.com has AAAA address 2001:2345::1
> www.tianmm.com
Server: 127.0.0.1
Address: 127.0.0.1#53
www.tianmm.com has AAAA address 2001::1
网友评论