转载说明:这个在后续的版本也是可行的,在12.04上测试通过,另外对原文做了些修改。

1. 配置环境:
一台server和若干client组成的简单局域网,在一个网段上。一台Server做为DNS server。

Server的ip:192.140.30.9

Client的ip范围为:192.140.30.1--192.140.30.254,相互能ping通。

2. 检查是否安装bind

使用命令dpkg -l bind*查看相关软件是否安装

这是安装的效果


如果没有安装就进行下一步
3. Installing BIND9 (安装 BIND9)
命令: sudo apt-get install bind9

我们将配置DNS为主服务器类型

DNS 配置文件在/etc/bind 目录中。安装bind9后会生成如下三个配置文件:
named.conf;named.conf.options;named.conf.local。

named.conf.local即可。

设置实例

⑴环境:
Server的ip:192.140.30.9
Client的ip范围为:192.140.30.1--192.140.30.254,相互能ping通

现在将主机架设成主dns服务器,要求能解析
kxsrv.example.com 192.140.30.9
www.example.com 192.140.30.9

⑵分析:根据上面的主机名称和ip对应可以看出:
①需要添加正向区域“example.com”和反向区域“30.140.192.in-addr.arpa”,
②在“example.com”区域中添加A记录kxsrv对应192.140.30.9, CNAME记录www对应kxsrv
③在“30.140.192.in-addr.arpa”区域中添加各个ip地址对应的主机名

⑶编辑配置文件 记得路径 /etc/bind/

①编辑named.conf.local

$ sudo vi /etc/bind/named.conf.local
 添加下列语句
//正向区域
 zone "example.com" {
 type master;
 file "/etc/bind/db.example.com";
 };
 //反向区域
 zone "30.140.192.in-addr.arpa" {
 type master;
 notify no;
 file "/etc/bind/db.30.140.192";
};


然后保存

②建立named.conf.local中指定的区域文件

在/etc/bind下建立正向区域文件 (复制了一份)
 命令:sudo cp /etc/bind/db.local /etc/bind/db.example.com
 在/etc/bind下建立反向区域文件 (复制了一份)
 命令:sudo cp /etc/bind/db.127 /etc/bind/db.30.140.192

③编辑正向区域文件

命令:sudo vi /etc/bind/db.example.com
 将原文参照下文修改
;
 ; BIND data file for local loopback interface
 ;
 $TTL 604800
 @ IN SOA ns.example.com. root.example.com. (
 2 ; Serial
 604800 ; Refresh
 86400 ; Retry
 2419200 ; Expire
 604800 ) ; Negative Cache TTL
 ;
 @ IN NS ns.example.com.
 @ IN A 127.0.0.1
 @ IN AAAA ::1
 ns IN A 192.140.30.9
 kxsrv IN A 192.140.30.9
 www IN CNAME kxsrv 注意修改的地方,在原文的localhost处更改,再添加各个主机记录 注意用Tab键分开对齐
 另外使用别名时:www IN cname 192.140.30.9 会出错,
 要使用www IN cname kxsrv

④编辑反向区域文件

命令:sudo vi /etc/bind/db.30.140.192
 将原文参照下文修改
;
 ; BIND reverse data file for local loopback interface
 ;
 $TTL 604800
 @ IN SOA ns.example.com. root.example.com. (
 1 ; Serial
 604800 ; Refresh
 86400 ; Retry
 2419200 ; Expire
 604800 ) ; Negative Cache TTL
 ;
 @ IN NS ns.
 9 IN PTR ns.example.com.
 9 IN PTR kxsrv.example.com.
 9 IN PTR www.example.com.

注意修改的地方,在原文的localhost处更改,再添加各个主机记录 注意用Tab键分开对齐

(4)重新启动DNS服务
sudo /etc/init.d/bind9 restart
到此位置dns就配置完成了,你可以在XP下的cmd环境下用nslookup去试试看
注意:改动配置文件后都要重新启动bind9。

DNS客户端的配置

此时DNS服务器已经开始工作了,要使用该DNS服务器,以XP为例,到"控制面板"–"网络连接",找到上网的网卡,右键选择"属性",改变DNS地址为192.140.30.9

Linux 修改DNS,请修改/etc/resolv.conf文件。
例如:
编辑sudo vi /etc/resolv.conf
更改为
nameserver 192.140.30.9
nameserver 192.140.30.1

DNS搭建后的检测

查看域名解析的命令为nslookup,敲入nslookup后再敲入域名如www.example.com进行正向解析,敲入IP地址则进行反向解析;也可以用dig,ping,host 接域名验证

以XP为例,在CMD命令下:


关于反向解析:即从IP解析到域名。本实验中,该功能没什么用途。在反垃圾邮件方面,它很有作用,由于邮件的协议,伪装域名发送邮件是可能的,这时候,邮件服务器端收到邮件后,根据邮件的IP地址反解析,得到域名,如果域名和邮件的发信人域名一致,则收下,否则拒绝。