DNS在企业网中的应用

一、DNS的简介

DNS(Domain Name System)即“域名系统”。在一个TCP/IP架构的网络(例如Internet)环境中,IP地址用于标识主机地址,DNS的主要功能是易于记忆的Domain Name(域名)与人不容易记忆的IP 地址进行转换。网络中执行DNS服务的主机称为DNS服务器(域名服务器)。DNS服务器除了将域名转换为IP地址外(“正向解析”),还可以将IP 地址转换成域名(“逆向解析”)。

二、DNS的解析过程

以解析www.abc.com域名为例。当系统需要调用www.abc.com主机的资料时,发送一个查询www.abc.com域名的指令。

(1)因为系统中存在一个hosts文件,可以用来解析域名。在系统中,一般是先查找hosts文件,如果在hosts文件中发现www.abc.com记录,则直接返回结果。

(2)如果hosts文件中没有发现该记录,则把查询指令转发到系统中指定的域名服务器,进行DNS查询。

(3)指定域名服务器在自己的缓存中查找相应的域名记录,如果存在该记录,则返回结果;否则,把这个查询指令转发到根域名服务器。

(4)在根域名服务器的记录中,根据递归查询的规则,只能返回顶级域名com,并且把能够解析com的域名服务器的地址告诉客户机。

(5)客户机根据返回的信息,继续向com域名服务器发送递归请求,收到请求的、能够正确返回abc.com域名信息的域名服务器,再把相关信息返回给客户机。

(6)客户机再次向abc.com的域名服务器发送递归请求,收到请求的服务器再次进行解析;该服务器已经能够把www.abc.com域名完全解析到一个IP地址,并把这个IP地址返回。

三、DNS案例

1、案例1(域名解析)

(1)实施环境:Centos.x86_64

(2)要求:

现有一区域为abc.com,dns服务器为192.168.2.100,在该区域内有主机www,IP地址为1.1.1.1;主机ftp,IP地址为2.2.2.2;主机mail,IP地址为3.3.3.3,有两个别名为:pop3smtp;还有一个MX。要求能够实现这些主机域名解析。

(3)网络拓扑图:

用绘制工具绘制出拓扑图如图1所示:

wKiom1No6PLjUxo5AAEL74PKRAE594.jpg

图1:网络拓扑图

(4)DNS服务器的搭建

第一步:安装dns安装包,首先挂载光盘,然后进入到光盘的安装包的文件下查找与dns相关的安装包,这些安装包有bind和bind-chroot,找到后然后进行安装。

//挂载光盘

[root@huangzhong ~]# mount /dev/cdrom /media/cdrom

mount: block device /dev/sr0 is write-protected, mounting read-only

//进入光盘的安装包目录下查找bind安装包

[root@huangzhong ~]# cd /media/cdrom/Packages/

[root@huangzhong Packages]# ll |grep bind

-r--r--r--. 2 root root  4157992 Feb 24  2013 bind-9.8.2-0.17.rc1.el6.x86_64.rpm

-r--r--r--. 2 root root    71924 Feb 24  2013 bind-chroot-9.8.2-0.17.rc1.el6.x86_64.rpm

//安装这两个安装包

[root@huangzhong Packages]# yum install bind-9.8.2-0.17.rc1.el6.x86_64.rpm bind-chroot-9.8.2-0.17.rc1.el6.x86_64.rpm

第二步:首先在终端下产生钥匙,然后再直接启动named服务,并查看端口

//产生钥匙

wKioL1No6NuDcyALAABBdjUX5Ns756.jpg

//启动named服务

[root@huangzhong ~]# service named start

Generating /etc/rndc.key:                            [  OK  ]

Starting named:                                       [  OK  ]

//查看端口号

[root@huangzhong ~]#netstat -tupln |grep 53

tcp   0   0 192.168.2.100:53     0.0.0.0:*     LISTEN   2250/named  

tcp    0    0 127.0.0.1:53     0.0.0.0:*     LISTEN    2250/named  

tcp     0    0 127.0.0.1:953     0.0.0.0:*    LISTEN    2250/named  

tcp     0    0 ::1:53       :::*           LISTEN      2250/named  

tcp        0      0 ::1:953       :::*     LISTEN      2250/named    

udp      0      0 192.168.2.100:53      0.0.0.0:*      2250/named  

udp     0      0 127.0.0.1:53        0.0.0.0:*       2250/named    

udp     0      0 ::1:53        :::*                  2250/named  

第三步:启动named服务后,此时进到/var/named/chroot/etc/目录下可以看到产生了named服务的配置,然后编辑/var/named/chroot/etc/目录下的配置文件named.conf,编辑的内容如下图所示:

//打开文件编辑

[root@huangzhong etc]# vim named.conf

wKiom1No6RWwojN0AAJcwc2cxXo905.jpg

第四步:编辑完named.conf文件后保存退出,然后编辑named.rfc1912.zones

//打开文件编辑,编辑结果如下图所示:

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

wKioL1No6PqTXnCWAASKcZdfGaM216.jpg

第五步:编辑完文件named.rfc1912.zones后保存退出,然后到/var/named目录下,拷贝named.localhost命名为abc.com.zone,然后编辑文件abc.com.zone。

//拷贝named.localhost命名为abc.com.zone

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

//编辑文件vim abc.com.zone

[root@huangzhong named]# vim abc.com.zone

wKioL1No6RDj-FM6AAHKBQna8_s558.jpg

第六步:重新启动named服务

[root@huangzhong named]# service named restart

Stopping named: .                                  [  OK  ]

Starting named:                                    [  OK  ]

(5)测试验证:

在本机上测试验证,首先把本机的DNS指向自己,操作如下:

//编辑文件/etc/resolv.conf,编辑结果如下:

[root@huangzhong named]# vim /etc/resolv.conf

wKiom1No6Urhp-iPAABzIaeeiTs055.jpg

编辑完后然后保存退出,然后进行测试:

[root@huangzhong ~]# nslookup www.abc.com

Server:192.168.2.100

Address:192.168.2.100#53

Name:www.abc.com

Address: 1.1.1.1

[root@huangzhong ~]# nslookup ftp.abc.com

Server:192.168.2.100

Address:192.168.2.100#53

Name:ftp.abc.com

Address: 2.2.2.2

[root@huangzhong ~]# nslookup mail.abc.com

Server:192.168.2.100

Address:192.168.2.100#53

Name:mail.abc.com

Address: 3.3.3.3

在主机192.168.2.101上测试,结果如下图所示:

wKiom1No6VqhxxqaAAHagIo_E64980.jpg

从上面的测试结果可以看出已经解析成功了。

2、案例2(主辅同步)

(1)实施环境:Centos64Centos 32位

(2)要求:

现有一区域为abc.com,dns1【主 linux】服务器为192.168.2.100,dns2【辅 windows】服务器为192.168.2.101,在该区域内有主机www,IP地址为1.1.1.1;主机ftp,IP地址为2.2.2.2;主机mail,IP地址为3.3.3.3,有两个别名为:pop3smtp;还有一个MX。要求能够实现这些主机域名解析。

(3)网络拓扑图:

使用绘图工具绘制出的网络拓扑图,如图1所示:

wKioL1No6T_C_s9XAAFWlCD-r1Y475.jpg

图1:网络拓扑图

(4)主DNS服务器的搭建

主DNS的搭建在安装步骤上和文件的编辑上与案例1中的DNS的搭建完全是相同的,这里为了便于测试验证只是在编辑文件abc.com.zone的时候不相同,改编辑如下:

wKiom1No6XnDVjxWAAGasNthamc513.jpg

//编辑完后保存,然后重新加载区域:

[root@huangzhong named]# rndc reload

server reload successful

(5)辅助DNS服务器的搭建

辅助DNS在搭建过程中安装步骤与案例1中的DNS的安装步骤相同只是在文件的编辑配置上不同,该DNS的文件编辑如下:

其中named.conf文件的编辑也与案例1中的相同,只需编辑文件named.rfc1912.zones。

//编辑文件named.rfc1912.zones,编辑内容如下:

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

wKiom1No6Yrg_TbRAAP6r6mxqJA876.jpg

(6)测试验证:

查看日志文件此时可以看到如下信息:

[root@server1 ~]# tail -f /var/log/messages

Apr 17 13:21:35 server1 named[3639]: zone abc.com/IN: Transfer started.

Apr 17 13:21:35 server1 named[3639]: transfer of 'abc.com/IN' from 192.168.2.100#53: connected using 192.168.2.101#37054

Apr 17 13:21:35 server1 named[3639]: zone abc.com/IN: transferred serial 2

Apr 17 13:21:35 server1 named[3639]: transfer of 'abc.com/IN' from 192.168.2.100#53: Transfer completed: 1 messages, 6 records, 183 bytes, 0.028 secs (6535 bytes/sec)

从上面信息可以看到该辅助DNS已经从192.168.2.100中拷贝过信息了

然后到/var/maned/slaves目下查看abc.com.zone内容如下:

wKiom1No6Z3iIig7AAE1NFsI054897.jpg

然后到主dnsabc.com.zone编辑,添加如下内容,然后在查看辅助dns的变化。

//编辑abc.com.zone内容如下:

wKiom1No6azwjzJGAAHIBBSCrmo544.jpg

编辑完后保存,然后重新加载区域

[root@huangzhong named]# rndc reload

加载完后再重新查看辅助DNS中区域文件内容的变化如下:

wKioL1No6ZPxsTPQAAIGajbmQeE652.jpg

3、案例3(授权与转发)

(1)实施环境:Centos 64位

(2)要求:

现有一区域b.com和两个子区域bj.b.bom和sh.b.com,区域b.com中有一个父域DNS管理区域b.com和子区域bj.b.com,子区域sh.b.com有一个子域DNS要求由父域DNS授权管理子区域sh.b.com,并且区域b.com和两个子区域bj.b.com和sh.b.com分别有一个www主机IP地址分别为1.1.1.1、2.2.2.2和3.3.3.3。要求子区域sh.b.com的主机能够访问b.com和bj.b.com区域里的主机。

(3)实施拓扑图:

用绘图工具绘制出的拓扑图如下图所示:

wKiom1No6eahJjNzAAKXdu1_lQ0987.jpg

(4)父域DNS的搭建与授权:

父域DNS的搭建过程中的dns相关安装包的安装步骤与案例1中的安装步骤相同,只是在文件的编辑配置上不同。该子域DNS的文件编辑如下:

编辑named.conf,编辑内容也与案列1中的named.confcd的编辑内容相同。

//编辑文件named.rfc1912.zones,编辑内容如下:

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

wKioL1No6c-iQBTmAARPOwG0Y_k351.jpg

编辑完文件named.rfc1912.zones后保存退出,然后进入到/var/named目录下拷贝样例named.localhost分别命名为b.com.zone和bj.b.com.zone然后编辑这两个文件。

//拷贝named.localhost命名为b.com.zone

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

//拷贝named.localhost命名为bj.b.com.zone

[root@huangzhong named]# cp -p named.localhost bj.b.com.zone

//编辑文件b.com.zone,编辑内容如下:

[root@huangzhong named]# vim b.com.zone

wKioL1No6f2CCOmAAAG5Ea4usF8511.jpg

//编辑文件bj.b.com.zone,编辑内容如下:

[root@huangzhong named]# vim bj.b.com.zone

wKiom1No6j3jMcT3AAFJb-1EwnI289.jpg

编辑完后保存退出,然后重新加载区域如下:

[root@huangzhong named]# rndc reload

server reload successful   //此时你可以看到已加载成功,你也可以从日志信息中看到加载成功。

(5)子域DNS的搭建与转发:

子域DNS的搭建过程中的dns相关安装包的安装步骤与案例1中的安装步骤相同,只是在文件的编辑配置上不同。该子域DNS的文件编辑如下:

//编辑named.conf,编辑内容如下:

[root@server1 etc]# vim named.conf

wKioL1No6iTAZ6ccAAVLWPGT120747.jpg

//编辑文件named.rfc1912.zones,编辑内容如下:

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

wKiom1No6l6RWRqlAAT2-TfRBzQ717.jpg

编辑完上面内容后保存退出,然后再到/var/named目录下拷贝文件named.localhost命名为sh.b.com.zone然后编辑该文件。

//编辑文件sh.b.com.zone,内容如下:

[root@server1 named]# vim sh.b.com.zone

wKioL1No6kLRrW_7AAFMPXA7kRc696.jpg

编辑完后保存退出,然后重新加载区域如下:

[root@server1 named]# rndc reload

server reload successful

(6)测试与验证:

测试验证授权:在区域b.com中的PC1主机上分别解析区域b.com的www主机和子区域bj.b.bom和sh.b.com中的www主机,结果如下:

wKiom1No6oPT_uuVAAPIoKCZ9X0457.jpg

测试验证转发:在子区域sh.b.com中的PC2主机上分别解析区域b.com的www主机和子区域bj.b.bom和sh.b.com中的www主机,结果如下:

wKioL1No6pWSR7jsAAPiy4q97OA385.jpg

4、案例4(视图)

(1)实施环境:Centos 64位 Centos32位 Windows2003

(2)要求:

现有一LAN网络和Internet网络,在LAN网络中有一DNS服务器和一www服务器,要求在网络LAN中的主机访问DNS服务器和www服务器看到的IP地址是本服务主机的IP地址,而在Internet网络中的主机访问DNS和www服务器时看到的IP地址是Internet与防火墙连接的IP地址。

(3)实施拓扑图:

根据要求用绘制工具绘制出实施拓扑图,如下图所示:

wKiom1No6tawCOGCAAFjhr_1Q-w284.jpg

(4)DNS服务器的搭建

DNS服务器的搭建过程中dns相关安装包的安装步骤与案例1中的安装步骤相同,只是在文件的编辑上不同。

//编辑问价named.conf,编辑内容如下:

wKioL1No6r_iBihoAAMuWQwJsYo713.jpg

wKiom1No6vvCMkYxAALoOUJwafA289.jpg

编辑完后保存退出,然后进入到/var/named目录下拷贝文件named.localhost分别命名为abc.com.lan和abc.com.internet然后编辑这两个文件。

//拷贝文件named.localhost命名为abc.com.lan

[root@huangzhong named]# cp -p named.localhost abc.com.lan

//拷贝文件named.localhost命名为abc.com.internet

[root@huangzhong named]# cp -p named.localhost abc.com.internet

//编辑文件abc.com.lan,编辑内容如下:

[root@huangzhong named]# vim abc.com.lan

wKioL1No6uWjEleAAAEaApJTnSQ991.jpg

//编辑文件abc.com.Internet,编辑内容如下:

[root@huangzhong named]# vim abc.com.internet

wKiom1No6yHwZTUXAAEUJcqhHhc632.jpg

编辑完这些文件后保存退出,然后重新加载这些区域如下:

[root@huangzhong etc]# rndc reload

server reload successful

(5)防火墙的配置

这里使用Centos 32位作为防火墙,首先增加一块网卡并配置IP地址如下:

wKioL1No6wXQkUMqAAFRsTFydcs362.jpg

设置完IP地址后重新启动网络服务如下:

[root@server1 ~]#service   network   restart

为了能够实现NAT技术要编辑/etc目录下文件sysctl.conf,打开文件编辑内容如下:

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

wKioL1No6xegfSCzAAH3pGjpmaQ747.jpg

然后设置防火墙规则如下:

[root@server1 ~]# iptables -t nat -A PREROUTING -d 192.168.3.1 -p udp --dport 53 -j DNAT --to 192.168.2.100

[root@server1 ~]# iptables -t nat -A PREROUTING -d 192.168.3.1 -p tcp --dport 80 -j DNAT --to 192.168.2.102

//查看nat规则

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

Chain PREROUTING (policy ACCEPT)

target     prot opt source               destination        

DNAT       udp  --  anywhere             192.168.3.1         udp dpt:domain to:192.168.2.100

DNAT       tcp  --  anywhere             192.168.3.1         tcp dpt:http to:192.168.2.102

从上面可以看到nat规则已经生成,然后保存

[root@server1 ~]# service iptables save

iptables: Saving firewall rules to /etc/sysconfig/iptables:[  OK  ]

(6)验证测试

在LAN网络中的主机上域名解析测试如下:

wKiom1No617ii0z5AAEoYTNJuQ4307.jpg

5、案例5(dns轮询)

(1)实施环境:Centos 64位

(2)要求:

现有一区域sina.com.cn,有一DNS服务器管理该区域的www主机IP地址为1.1.1.1和www主机IP地址为2.2.2.2,要求外面主机访问www.sina.com.an是通过轮询访问,如PC1解析时看到的www主机IP地址为1.1.1.1,PC2解析时看到的www主机IP地址为2.2.2.2。

(3)实施拓扑图:

根据要求绘制出实施拓扑图,如下图所示:

wKioL1No60nh_7A6AADn2F8rnSw921.jpg

(4)DNS服务器的搭建

DNS服务器的搭建过程中软件包的安装与案例1中软件包的安装相同,只是在文件的编辑上不同,其中文件named.conf的编辑也与案例1中的named.conf的编辑也相同。

//编辑named.rfc1912.zones,编辑内容如下:

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

wKioL1No61-TaHMRAAMkc2tZbKs749.jpg

编辑完后保存退出,然后进入/var/named目录下拷贝文件named.localhost分别命名为sina.com.cn.zone,然后编辑此文件。

//拷贝文件named.localhost分别命名为sina.com.cn.zone

[root@huangzhong named]# cp -p named.localhost sina.com.cn.zone

//编辑文件sina.com.cn.zone,编辑内容如下:

wKiom1No65yB7xkqAAFXRplu1eg566.jpg

编辑完后保存退出,然后重新加载区域,如下:


(5)测试验证:

在PC1上解析的结果为:

[root@huangzhong etc]# nslookup www.sina.com.cn

Server:192.168.2.100

Address:192.168.2.100#53

Name:www.sina.com.cn

Address: 1.1.1.1

Name:www.sina.com.cn

Address: 2.2.2.2  

//从上面可以看到首先解析到的IP地址为1.1.1.1

在PC2上解析的结果为:

wKioL1No64KC-Wf2AADiWz9VFBQ831.jpg