6.DNS部署与安全

1.域名组成概述

以www.sina.com.cn为例,sina.com.cn是域名,需要购买。

.com是根域名,我们购买的是顶级域名(也叫一级域名),如上就是sina.com,买完后可以根据自己需求做配置,比如配置www.sina.com给某台服务器使用,再配置个mail.sina.com给另一台服务器。这里的www和mail就是二级域名,也被称为主机名

一个完整的主机名+域名对应的是某台服务器,其IP地址可以用nslookup指令来查看:

 2.DNS(域名解析)服务

  输入域名访问网站时,需要域名解析获取其相应的IP地址,以www.baidu.com为例,客户机会先在本地缓存中查找,找不到会到Host文件中查询,再没有会发请求给本地DNS服务器,本地DNS服务器先查看自己的缓存,找不到会把请求发给根域服务器(.)(目前架设在国外),根域服务器发现此域名以.com结尾,会告诉DNS服务器.com对应的域服务器的IP地址,随后此DNS服务器再发送请求给相应的.com域名服务器,.com域名服务器找到baidu.com对应的域名服务器IP地址,返回给DNS服务器后,此DNS服务器再发送请求给baidu.com域名服务器,它会返回最终的IP地址,随后此DNS服务器会把此IP地址缓存并返回给客户机,客户机也会将之缓存下来。

  一般来说,本地DNS服务器是一些公网的服务器,但有些公司会有搭建自己专用的DNS服务器的需求,这里有个概念,就是私有的DNS服务器一般会有个是否"负责"的判断,如果一些DNS请求在本地缓存和Host中找不到,且此域名不在自己要负责的范围内,此时分两种情况:

1.若设置了转发器,它不会去请求根域服务器,而会用DNS转发器把此请求转发给公网的DNS服务器,这相当于将请求各级子域服务器的压力转移给了公网的DNS服务器,可以提高公司员工的解析速度。

2.若未设置转发器,它会直接请求根域服务器,这就和正常流程一样了。

  解析也分为两种,正向解析和反向解析。

  正向解析是把域名解析成IP地址,反向解析是把IP地址解析成域名。

 

3.DNS服务器搭建:

现在用Win2003虚拟机来搭建一下DNS服务器,首先要安装DNS服务:

这里可以参考之前写的DHCP部署:

https://www.cnblogs.com/czw52460183/p/13387997.html

类似地,我们先给虚拟机配上静态IP地址,挂载此光盘后选中"安装可选的Windows组件",随后双击网络服务组件,选中DNS服务,点击确定并点下一步进行安装:

注意,此时可能会弹这种提示:

这是因为装虚拟机时,我们做了分区,把原先光驱所在的D盘,重新划分到了E盘,而这里仍去D盘找此DNS服务相关文件,自然是找不到的。

我们把盘符改成光驱所在盘即可,我这里是E盘:

点击确定后继续安装,此窗口可能又会弹出几次,还是按此方法修改即可。

 

DNS监听端口号是53,安装好后可以看到此端口已经打开:

注意,此时只安装好了DNS服务,若把客户机的DNS地址指向此服务器(此服务器能上网),并发送访问百度的请求,是否能正确解析呢?

答:按我们之前的思路来分析。

  首先,由于此时它刚搭建,无缓存,因此找不到对应解析条目。

  其次,我们还未做设置,因此也是不负责的。

  再然后,由于我们还未设置转发器,因此会直接访问根域服务器,由于此服务器能上网,因此能正常得到根域服务器的应答,接下来的流程就和正常解析流程一样,因此是能正确解析的。

 

 

开始->管理工具中可以看到DNS服务选项,点开它,在相应的服务器下,有两种查找区域,分别对应之前说的正向解析和反向解析。

我们这里先新建个正向解析的查找区域,右键->新建区域:

点击下一步后选择要创建的区域类型,其中主要区域代表主服务器,辅助区域是当已经存在主服务器时,做备份用的。存根区域用于创建自己的根域服务器,一般不会用到。

我们这里选主要区域:

为区域命名,建议填上想负责的区域的名称,比如我们解析百度相关的域名:

点下一步后点确定,会在C盘生成相应的区域解析文件:

随后一直点下一步直到完成。

 

此时可以在服务界面上看到此区域的解析条目:

现在里面已经有了两条解析条目:

第一条类型是SOA,代表这是权威服务器,即所有该名称的解析以它为准,后面的数据说明目前是本主机

注意,名称里的"与父文件夹相同"即没有主机名,代表本条解析的就是baidu.com

第二条类型是NS,代表这是备份服务器,后面的数据说明目前负责解析baidu.com的只有本主机

 

现在我们开始添加新的解析条目,右键->新建主机,在名称里填上主机名,比如我们要解析baidu.com下的www为主机的域名,就填www,下面填上此域名相应的IP地址,这里为了简便起见,我们就随便写个1.1.1.1,再点击确认后就添加完毕了:

现在来验证一下,我们在另一台WinXP虚拟机上做测试:

先要把它的DNS地址指向我们的服务器,我们手动配置一下:

现在我们用nslookup指令在XP上看下www.baidu.com的IP地址,是否是之前配置的1.1.1.1:

可以看到,www.baidu.com已经被解析成了1.1.1.1。

为了方便理解,我们在真实机上(Win10)也解析下www.baidu.com:

上面的结果代表真实机将www.baidu.com这个域名送到了192.168.1.1去请求解析,解析的结果是180.101.49.11和180.101.49.12两个IP地址,另外本次解析是非权威解析,意思是192.168.1.1也是去请求了其他服务器,并将得到的结果返回给了我们,并不是它本身内置的解析条目。

 

另外补充一点,ping某个域名的时候,其实第一步做的是域名的解析,我们在WinXP虚拟机上测试下ping下www.baidu.com:

可以看到,虽然没有Ping通,但解析是成功的,www.baidu.com被成功解析成了1.1.1.1

 

DNS缓存问题:

记录一个小问题,就是由于有缓存的存在,当服务器中解析的IP地址被修改时,由于客户机发起DNS请求时是先从缓存拿的,会拿到之前的IP地址。

我们做下测试,先在Win2003服务器上把www.baidu.com的解析从1.1.1.1改成1.1.1.2:

随后在XP客户机上尝试ping www.baidu.com:

可以看到,解析出来的仍然是1.1.1.1,估计是因为DNS缓存未更新的缘故,我们再用nslookup尝试一下:

咦,为什么nslookup能成功解析呢?经过一番查询,我发现自己对nslookup的理解有误,实际上它不会去修改/读取DNS缓存,它是直接对DNS服务器做的查询,因此是必然能得到DNS服务器上的正确结果的。

为了验证,我们用ipconfig /displaydns来查看下DNS缓存:

果然,DNS缓存中仍是1.1.1.1,再次证明nslookup不会修改DNS缓存。

那我们怎么更新XP客户机中的DNS缓存呢?答案是用ipconfig /flushdns来实现,我们做下尝试:

 

可以看到,刷新DNS缓存后,ping的解析成功了,且DNS缓存中也成功修改为了1.1.1.2。

 

现在我们来熟悉下DNS转发功能:

我们再开一台Win2003虚拟机作为第二台DNS服务器,还是像之前一样,先配置静态IP为10.1.1.2(上一台为10.1.1.1)

随后安装DNS服务,参考上文即可。

这台服务器负责解析qq.com的相关域名,参照上文进行设置:

为它建立一条www.qq.com的解析条目,IP地址随便配置一个:

此时由于客户机配置的还是第一台DNS服务器的地址,肯定是无法解析www.qq.com的,但我们可以建立转发器来解决此问题。

在第一台DNS服务器的主机那里右键->属性,在打开页面的转发器页签下,添加第二台DNS服务器的IP地址:

这样就完成了,我们在XP客户机下做一下测试:

可以看到,虽然DNS服务器仍然指向的是10.1.1.1(第一台),但www.qq.com已经能成功被解析了。

 

然后我们看一下如何在另一台服务器上备份某个解析域:

我们打算把第一台服务器的baidu.com解析域备份到第二台DNS服务器上。

首先在第一台DNS服务器的baidu.com域右键->属性,选中区域复制页签,勾选"只允许到下列服务器"选项,然后填入第二台DNS服务器的IP地址:

随后在第二台DNS服务器上右键->新建区域,这次选择"辅助区域",区域名称就是我们要备份的baidu.com:

 

随后填入主DNS服务器(即第一台DNS服务器)的IP地址:

随后点击完成即可。

此时可能会出现备份的baidu.com解析域报错的问题,这种情况下只要多刷新几次就可以了:

完成

 

posted on 2020-08-25 22:53  暴躁法师  阅读(453)  评论(0编辑  收藏  举报