企业网络翻译官――DNS

一、DNS简介

(一)、DNS原理

    DNS 是计算机域名系统 (Domain Name System 或Domain Name Service) 的缩写。主要提供域名解析服务。将IP地址转换为相对应的域名,或者将域名解析为相应的IP地址。

(二)、DNS查询

    DNS查询分为迭代查询和递归查询两种查询方式。

    迭代查询:当服务器使用迭代查询时能使其他服务器返回一个最佳的查询点提示或主机地址,若此最佳的查询点中包含需要查询的主机地址,则返回主机地址信息,若此时服务器不能够直接查询到主机地址,则是按照提示的指引依次查询,直到服务器给出的提示中包含所需要查询的主机地址为止,一般每次指引都会更靠近根服务器(向上),查寻到根域名服务器后,则会再次根据提示向下查找。B访问C、D、E、F、G,都是迭代查询,首先B 访问C,得到了提示访问D的提示信息后,开始访问D,D又返回给B提示信息,告诉B应该访问E,依次类推。

    递归查询:域名服务器将代替提出请求的客户机(下级DNS服务器)进行域名查询,若域名服务器不能直接回答,则域名服务器会在域各树中的各分支的上下进行递归查询,最终将返回查询结果给客户机,在域名服务器查询期间,客户机将完全处于等待状态。

    以下是两种查询方式的具体示例图: 

 

(三)、DNS的分类

    1.主DNS服务器

    主DNS服务器拥有最原始的记录,可以修改。

   2.辅助DNS服务器

    辅助DNS服务器的资源记录主要从主DNS服务器上进行复制。

    3.存根DNS服务器

   存根DNS服务器主要作用是管理存根区域,它与主DNS服务器之间存在着区域复制。

    4.缓存DNS服务器

   缓存DNS服务器没有管理任何区域的功能,也不会产生区域复制,它只能缓存DNS名字并且使用缓存的信息来答复DNS客户端的解析请求。缓存DNS服务器可以通过缓存减少DNS客户端访问外部DNS服务器的网络流量,并且可以降低DNS客户端解析域名的时间。

二、DNS其它问题

(一)、DNS区域

   1.正向查找区域

    正向查找区域主要是提供域名到IP地址的解析服务。正向查找区域包括SOA (授权起始记录)、NS (负责该区域的dns服务器)、A (主机记录)、CNAME(别名)、  MX (邮件交换记录)

   2.反向查找区域

    反向查找区域主要提供IP地址到域名的解析服务。反向查找区域包括SOA (授权起始记录)、NS (负责该区域的dns服务器)、PTR(指针)。

(二)、DNS资源记录

   1.SOA(授权起始记录)

   主要表明该区域的主dns服务器、管理员邮箱、刷新策略等。

   2.NS (负责该区域的dns服务器)

   表明该区域的dns服务器。主要有两行表明NS记录,格式如下:

    @        IN         NS       ns.abc.com.(注意:只能写名称,而且是完全名称) 
    ns(可以写相对的名称)     IN         A         1.1.1.1

   3.A (主机记录)

   记录名称和地址的对应关系。格式如下:

  www.abc.com     IN     A      2.2.2.2

   4.CNAME 别名

   可以将多个名称映射到某个地址。格式如下:
   pop3  IN CNAME   mail.abc.com.(要么写相对的,要么写绝对的)

   5.MX (该区域的电子邮件服务器)

    MX邮件交换机路,指向一个邮件服务器。格式如下:
    @        IN      MX      10(优先级)      mail.abc.com

   6.PTR(指针)

   它是电子邮件系统中的邮件交换记录的一种,常被用于反向地址解析。格式如下:

   若反向区域为:101.168.192.in-addr.arpa.dns

   PTR记录:10 IN PTR www.sina.com.

   用来表示,地址为192.168.101.10的主机名称为www.sina.com.

(三)、范域名解析

   利用通配符 * (星号)来做次级域名以实现所有的次级域名均指向同一IP地址。

    例如您的域名是abc.cn:做一个*.abc.cn的次级域名A记录指向222.222.222.222,那么生效后当访问者无论是输入“123.abc.cn”还是“123.123.abc.cn”甚至可以是“!@#.$%$.3ww.a.abc.cn”这样的 任意字符 均可以指向到222.222.222.222这个IP地址。

(四)、DNS重要目录

   1、DNS根目录

   DNS的根目录主要位于/var/named/chroot/     
   2、 DNS配置文件

   DNS的配置文件主要位于/var/named/chroot/etc 
  3、区域文件

   DNS的区域文件主要位于/var/named/chroot/var 

(五)、DNS常用检测工具

   1.检测区域文档 

    named-checkzone 工具可以方便您检测区域文档,您所要遵循的格式为: named-checkzone   域名    区域文档  

   例如,您所配置的区域为abc.com,那么 named-checkzone abc.com      /var/named/chroot/var/named/abc.com.db 
   2.检测主配置文档

     named-checkconf工具可以方便您去检测主配置文档。您可以参照以下模式:  

   named-checkconf /var/named/chroot/etc/named.conf 
   3.使用日志

    当您使用以上两种方式无法解决问题时,您可以求助系统日志。日志位于/var/log/messages

(六)、DNS常用解析工具

   1.nslookup工具

   nslookup工具可以很方便的为您提供解析工作。您可以在命令行模式下直接使用nslookup   名称 ,来解析主机的地址,你也可以直接nslookup后回车,接下来使用set来帮您完成解析工作。如set q=ns之后输入abc.com (只能是区域名称)或者set q=any 之后输入www.abc.com(可以是区域)或者set q=mx (邮件)之后输入 abc.com

   2.dig工具

   dig工具同样可以帮您完成解析域名工作。您只须遵循以下格式:dig -t(表示查询的记录类型) 类型 区域,如dig -t ns sina.com

   3.host工具

   host工具同样可以完成域名解析工作。例如:host    www.sina.com

三、DNS应用案例1 

 实验要求:某公司有上海和北京子公司,其中北京和公司总部使用同一台DNS服务器,而上海分公司也有一台DNS服务器。要求,各分公司内部员工可以查询到公司(总公司和分公司)所有的服务器地址。

实验设备:DNS服务器两台(Linux版本2.6.18-164.el5、Windows server 2003)

              两台客户端主机(Windows xp sp3) 

实验拓扑:

 

 

实验步骤:

(一)父域配置

1.安装DNS服务组件

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

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

[root@server Server]# rpm -ivh bind-utils-9.3.6-4.P1.el5.i386.rpm (如果已经安装可以跳过此项)

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

2.修改主配置文件

[root@server chroot]# ll
drwxr-x--- 2 root named 4096 02-08 02:21 dev
drwxr-x--- 2 root named 4096 02-08 02:22 etc
drwxr-x--- 6 root named 4096 02-08 02:21 var

[root@server etc]# pwd
/var/named/chroot/etc
[root@server etc]# cp -p named.caching-nameserver.conf named.conf
[root@server etc]# ll
-rw-r--r-- 1 root root   405 02-08 02:08 localtime
-rw-r----- 1 root named 1230 2009-07-30 named.caching-nameserver.conf
-rw-r----- 1 root named 1230 2009-07-30 named.conf
-rw-r----- 1 root named  955 2009-07-30 named.rfc1912.zones
-rw-r----- 1 root named  113 02-08 02:21 rndc.key
[root@server etc]#

[root@server etc]# vim named.conf 

 

[root@server etc]# service named restart
Stopping named:                                            [  OK  ]
Starting named:                                            [  OK  ]
[root@server etc]# rndc reload
server reload successful
[root@server etc]#

3.修改区域声明

[root@server etc]# pwd
/var/named/chroot/etc
[root@server etc]# vim named.rfc1912.zones 

 

4.修改文件

[root@server named]# pwd
/var/named/chroot/var/named
[root@server named]# cp -p localhost.zone abc.com.db

[root@server named]# vim abc.com.db

  

5.重启服务

[root@server etc]# service named restart
Stopping named:                                            [  OK  ]
Starting named:                                            [  OK  ]
[root@server etc]# rndc reload
server reload successful
[root@server etc]#

(二)、北京子域

1.修改区域声明

[root@server etc]# pwd
/var/named/chroot/etc
[root@server etc]# vim named.rfc1912.zones 

 

2.修改文件

[root@server named]# pwd          
/var/named/chroot/var/named
[root@server named]# cp -p abc.com.db bj.abc.com.db
[root@server named]# ll
total 44
-rw-r----- 1 root  named  278 Feb  8 02:44 abc.com.db
-rw-r----- 1 root  named  278 Feb  8 02:44 bj.abc.com.db
drwxrwx--- 2 named named 4096 Feb  8 02:48 data
-rw-r----- 1 root  named  198 Jul 30  2009 localdomain.zone
-rw-r----- 1 root  named  195 Jul 30  2009 localhost.zone
-rw-r----- 1 root  named  427 Jul 30  2009 named.broadcast
-rw-r----- 1 root  named 1892 Jul 30  2009 named.ca
-rw-r----- 1 root  named  424 Jul 30  2009 named.ip6.local
-rw-r----- 1 root  named  426 Jul 30  2009 named.local
-rw-r----- 1 root  named  427 Jul 30  2009 named.zero
drwxrwx--- 2 named named 4096 Jul 27  2004 slaves
[root@server named]# vim bj.abc.com.db  

3.重启服务

[root@server named]# service named restart
Stopping named:                                            [  OK  ]
Starting named:                                            [  OK  ]
[root@server named]# rndc reload
server reload successful  

(三)、上海子域

1.修改父域文件

[root@server named]# pwd           
/var/named/chroot/var/named
[root@server named]# vim abc.com.db  

 

2.重启服务

[root@server named]# service named restart
Stopping named:                                            [  OK  ]
Starting named:                                            [  OK  ]
[root@server named]# rndc reload
server reload successful

3.在上海子域服务器上配置

选择区域类型 

 

填写区域名称 

 

创建文件 

 

  修改SOA 

 

修改名称服务器 

 

添加有关记录 

 

(四)、配置转发器

    以上操作仅仅只能保证,位于bj.abc.com和abc.com的主机可以进行正常的域名解析,可以解析到www.sh.abc.com,但是,位于sh.abc.com的主机却无法解析到abc.com和bj.abc.com的web服务器。想要解决这个问题,需要在上海域名解析服务器上配置。有两种方法,第一种是将根提示修改成abc.com域DNS服务器地址,第二种方法是配置转发器。笔者采用的是后者。 

 

(五)、测试

    使用位于sh.abc.com域的主机进行解析,发现可以正常解析 

 

   使用位于bj.abc.com域的主机进行解析,同样可以正常解析。   实验成功!

 

四、DNS应用案例2   

实验目的:某企业使用两种ISP(电信、联通)组件网络。其中在企业电信网中存在一台DNS服务器。出于节省成本和提高服务器利用率的考虑,现要求企业联通内部主机也能使用位于企业联通内部的DNS服务器。 

实验拓扑:  

实验设备:Linux服务器(版本2.6.18-164.el5)

            防火墙(利用Linux(版本2.6.18-164.el5)来做软件防火墙)

            两台客户端(Windows xp sp3) 

实验步骤:

(一)、在DNS服务器上进行配置

 1.安装DNS组件

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

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

[root@server Server]# rpm -ivh bind-utils-9.3.6-4.P1.el5.i386.rpm (如果已经安装可以跳过此项)

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

 2.修改主配置文档

[root@server etc]# pwd
/var/named/chroot/etc
[root@server etc]# cp -p named.caching-nameserver.conf named.conf
[root@server etc]# vim named.conf

    添加acl规则

 

    添加视图

 

特别注意:

Localhost_resolver视图所匹配的客户端一定要为localhost,不能为any,否则会影响acl规则的应用。

重启服务

[root@server etc]# service named restart
Stopping named:                                            [  OK  ]
Starting named:                                            [  OK  ]
[root@server etc]# rndc reload
server reload successful

特别说明:由于在name.conf文件中已经定义了域,并且由于域本身就包含了named.rfc1912.zones文件,因此不需要修改域文件。

 3.产生数据库文件

产生内网视图所用数据库

[root@server named]# pwd

/var/named/chroot/var/named

[root@server named]# cp -p localhost.zone telecom.com.db

[root@server named]# vim telecom.com.db  

 

产生外网视图所用数据库

[root@server named]# pwd

/var/named/chroot/var/named

[root@server named]# cp -p telecom.com.db telecom.com.db1

[root@server named]# vim telecom.com.db1 

 

 4.重启服务器

[root@server etc]# service named restart
Stopping named:                                            [  OK  ]
Starting named:                                            [  OK  ]
[root@server etc]# rndc reload
server reload successful
[root@server etc]#

(二)、在防火墙上进行配置

 1.打开路由转发功能

  打开路由转发功能的方法有两种一种是直接将“1”写到文件(echo "1" >/proc/sys/net/ipv4/ip_forward ),另一种是修改配置文件后,再使用sysctl命令。笔者采用的是第二种。

[root@server ~]# vim /etc/sysctl.conf 

[root@server ~]# sysctl -p

net.ipv4.ip_forward = 1

net.ipv4.conf.default.rp_filter = 1

net.ipv4.conf.default.accept_source_route = 0

kernel.sysrq = 0

kernel.core_uses_pid = 1

net.ipv4.tcp_syncookies = 1

kernel.msgmnb = 65536

kernel.msgmax = 65536

kernel.shmmax = 4294967295

kernel.shmall = 268435456

[root@server ~]# 

2.做DNAT转换

[root@server ~]# iptables -t nat -d 200.200.200.1 -A PREROUTING -p udp --dport 53 -j DNAT --to 192.168.10.2

[root@server ~]# iptables -t nat -L

Chain PREROUTING (policy ACCEPT)

target     prot opt source               destination         

DNAT       udp  --  anywhere             200.200.200.1       udp dpt:domain to:192.168.10.2 

Chain POSTROUTING (policy ACCEPT)

target     prot opt source               destination         

Chain OUTPUT (policy ACCEPT)

target     prot opt source               destination         

[root@server ~]#

(三)、使用客户端进行测试

1.使用电信内部主机进行测试。

2.使用联通内部主机进行测试。 

  

 

五、总结

   DNS服务器在企业中有着举足轻重的地位,管理好DNS服务器,对企业的生产、安全有着不可估量的作用。

 

 

 

 

你可能感兴趣的:(dns,域名,IP地址,休闲,查询方式)