一、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 服务器ip:192.168.1.26

测试机xpip:192.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 root44959 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 root405 09-10 18:16 localtime

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

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

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

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

[root@dg etc]# vim named.conf

034156550.png

4.编辑named.rfc1912.zones文件

034329376.png

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

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

[root@dg named]# ll

034428383.png

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

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

034555109.png

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

034710192.png

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

file“slaves/dg.zone”是文件的存放位置。

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

034906611.png

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

034953542.png

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

035110243.png

测试是否能够正常解析:

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

035320532.png

测试说明可以正常解析

035408666.png

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

案例二.

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

035459110.png

注:1.转发:

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

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

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

配置过程:

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

035649167.png

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

035734588.png

3修改主域qq.com:

035835307.png

4.修改北京子域

035928825.png

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

6.配置上海子域:

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

[root@localhost etc]# vim named.conf

修改如下:

040036633.png

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

040150162.png

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

040239824.png

 

040307792.png

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

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

040457121.png

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

040548470.png

040609275.png

 配置到此结束。

反向区域的配置

正向区域是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

111441186.png

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

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

111555399.png

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修改正向域

111719641.png

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

111840401.png

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

112039606.png

112108814.png

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