一、DNS概述:DNS 是域名系统 (Domain Name System),是一个分布式数据库,组织成域层次结构次的结构的计算机和网络服务命名系统。它的作用是:把域名转换成为网络可以识别的 IP 地址,查询结果保存起来,并告诉给客户端.

二、DNS查询过程

1.本地解析

客户机平时得到的dns查询记录都记录保留在dns缓存中,dns客户端程序首先使用本地缓存信息进行解析,如果可以解析要查询的名称,则dns客户端程序就直接应答该查询,而不需要向dns服务器查询,该dns查询处理过程也就结束了。

2.直接解析

如果dns客户程序不能从本地dns缓存回答客户机的dns查询,它就向客户机所设定的局部dns服务器发一个查询请求,要求局部dns服务器进行解析。

3.递归解析

当局部dns服务器自己不能回答客户机的dns查询时,它就要想其他的dns服务器进行查询,此时有两种方式 一种是递归查询,局部服务器一般是先向该域名的根域服务器查询,再由根域名服务器一级级向下查询,最后得到的结果返回给局部服务器,再由局部服务器返回给客户端。

4.迭代解析

当局部dns服务器自己不能回答客户机的dns查询时,也可以通过迭代查询的方式进行解析。局部dns不是自己向其他dns服务器进行查询,而是把能解析该域名的ip地址返回给客户端dns程序,客户端dns程序再继续向dns服务器进行查询,直到得到查询结果为止。

5.按查询内容分类DNS查询

a.正向查询;域名--IP

b.反向查询:IP----》域名

三、目录

1.dns服务器目录

/var/named/chroot/

2.主配置文档目录

/var/named/chroot/etc

3.区域文件目录

/var/named/chroot/var/named

四.案例一.

linux系统主DNS 服务器ip:192.168.1.25

linux系统辅助DNS 服务器ip192.168.1.26

测试机xp ip192.168.1.30

五、DNS安装

主要安装这3个包

1.bind 主程序

2.bind-chroot 安全 【产生额外目录】

3.caching-nameserver 产生dns的主配置文档的样例文件,实现缓存服务器

DNS 服务器的配置

1. [root@dg ~]# mount /dev/cdrom /mnt/cdrom

[root@dg cdrom]# cd Server/

[root@dg Server]# ll bind*

-r--r--r-- 64 root root 1001253 2009-07-31 bind-9.3.6-4.P1.el5.i386.rpm

-r--r--r-- 64 root root 44959 2009-07-31 bind-chroot-9.3.6-4.P1.el5.i386.rpm

[root@dg Server]# rpm -ivh bind-9.3.6-4.P1.el5.i386.rpm

[root@dg Server]# rpm -ivh bind-chroot-9.3.6-4.P1.el5.i386.rpm

[root@dg Server]# rpm -ivh caching-nameserver-9.3.6-4.P1.el5.i386.rpm

2.切换到 /var/named/chroot/etc

[root@dg ~]# cd /var/named/chroot/etc

[root@dg etc]# ll

-rw-r--r-- 1 root root 405 09-10 18:16 localtime

-rw-r----- 1 root named 1230 2009-07-30 named.caching-nameserver.conf

-rw-r----- 1 root named 113 10-19 13:40 rndc.key

3.复制主配置文件,并修改如下

[root@dg etc]# cp -p named.caching-nameserver.conf named.conf

[root@dg etc]# vim named.conf

 

4.编辑named.rfc1912.zones文件

5.切换目录,并拷贝域文件进行修改  (注意cp时要加上 -p

[root@dg etc]# cd ../var/named

[root@dg named]# ll

 

[root@dg named]# cp -p localhost.zone  dg.com.zone

[root@dg named]# vim dg.com.zone

 

6.DNS服务器配置完成,重启DNS服务器

[root@dg etc]# service named restart

停止 named                                         [确定]

启动 named                                         [确定]

7.辅助DNS 配置 是在另一台linux服务器上进行配置的,它的配置基本上和主DNS服务器一样,在编辑named.rfc1912.zones文件,一定要将默认的"allow-update {none;}; 删除。配置文件所有者和拥有组是named

[root@localhost etc]# vim named.rfc1912.zones

 

masters{192.168.1.25}是主服务器的ip地址

fileslaves/dg.zone”是文件的存放位置。

8.重启named服务,发现slaves目录下生成了一个dg.zone文件

9、测试:在主DNS服务器中添加几条记录。观察辅助DNS服务器里面有没有变化。这是主DNS添加↓↓

nslookup来测试,发现新添加记录并没有正确解析,因为dns设置的refresh刷新时间为1分钟,过一段时间后,slaves下的dg.com.zone文件已经增大了,而且那几条记录也已经添加到辅助区域的区域文件内了

测试是否能够正常解析:

把测试机的DNS服务器设为主DNS服务器ip

测试说明可以正常解析

 

本实验到此结束。注意:linux DNS服务器的防火墙一定要关掉否则可能不能正常解析。

案例二.

实验描述:某公司其总部在北京,主域名为:qq.com,北京的子域bj.qq.com也建在主域的dns服务器,而要想远在上海的子域sh.qq.com也能够正常解析主区域的域名,则要通过转发而在北京的主机想通过主DNS查询到子域的域名则需要通过委派来实现,实验拓扑图如下:

注:1.转发:

a.完全转发:将客户端所有DNS查询以递归的方式转发到指定DNS服务器。

b.条件转发:指定DNS后缀的查询转发到指定的DNS服务器。

2.委派:BIND中可以将某个子域的查询工作委派给别一个DNS服务器完成。

配置过程:

1.  和案例一中一样修改dns主配置文件.并修改named.rfc1912.zones文件如下

2添加区域文件,下面是已经添加过了

 

3修改主域qq.com:

 

4.修改北京子域

5.主区域配置完成,重启服务。

6.配置上海子域:

为子域设置转发,在主配置文件添加"forwareders {192.168.1.25; };"实现完全转发:

[root@localhost etc]# vim named.conf

修改如下:

也可以在named.rfc1912.zones中添加如下图中的语句,实现条件转发

 

7.测试,修改测试机IP192.168.1,30DNS改为192.168.1.26,即子域的DNS

 

 

 

8.委派配置,在主区域的区域文件内添加如下语句,即将对sh.qq.com域的查询委派给上海子域192.168.1.26

[root@dg named]# vim qq.com.zone

 

9.测试。把测试机的DNS服务器设为主域DNSip

 

 配置到此结束。

反向区域的配置

正向区域是dg.com ,ip地址段 192.168.1.0 /24

DNS服务器ip地址是192.168.1.25

添加www主机:192.168.1.30

1.修改主配置文件 [root@dg etc]# vim named.conf

 

2.修改named.rfc1912.zones文件如下

[root@dg etc]# vim named.rfc1912.zones

 

3.  复制模版文件并修改

[root@dg named]# cp -p localhost.zone dg.com.zone

[root@dg named]# cp -p named.local 1.168.192.zone

[root@dg named]# vim dg.com.zone   修改正向域

 

[root@dg named]# vim 1.168.192.zone  修改反向域

 

3.语法检查,重起服务

[root@dg named]# named-checkzone dg.com dg.com.zone

zone dg.com/IN: loaded serial 44

OK

[root@dg named]# named-checkzone dg.com 1.168.192.zone

zone dg.com/IN: loaded serial 1997022700

OK

[root@dg etc]# service named restart

停止 named                                               [确定]

启动 named                                               [确定]

4.测试把测试机的DNS服务器设置为 192.168.1.25

 

 

测试DNS能够正常正反方向解析,本实验到此结束。