打造DNS私有根

当我们了解到了很多DNS的相关知识后,今天我们用一个综合性的实验把前面的内容都串起来一下,这个有趣的实验就是DNS的私有根。私有根顾名思义是由个人或企业自行创建的DNS根服务器,这个根服务器属于创建者私有专用,不能象互联网上的根服务器那样为众多的网民服务。那么为什么会有企业搭建私有根呢?直接用互联网上的根服务器不是很好吗?需要搭建私有根一般有下列原因,例如有的单位出于保密需要,必须把单位的网络和互联网物理隔离,但又不愿使用IP地址来互相访问,这样就必须使用DNS私有根才能保证域名的正常应用;还有的大型企业为了管理方便,也在企业内设置私有根解析域名,这样可以省却去公网申请域名的麻烦。

对我们来说,创建私有根的意义在于可以通过这些操作更好地理解DNS的体系结构,可以亲自体验一下DNS的诞生过程。下面我们准备用五台虚拟机来实现一个DNS的私有根,拓扑如下图所示,Berlin充当私有根的根服务器,根服务器把.com区域的解析权委派给Jinshan,把.net区域的解析权委派给Mufeng。然后Jinshan再把itet.com的解析权委派给ruixing,而mufengxuejun.net的解析权委派给shenshan。每台服务器的完全合格域名和IP地址都在拓扑图中进行了标注。

                          

 

一、    我们先在这五台机器上把DNS装上

 

二、 负责根域的DNS服务器

我们在Berlin上创建根服务器,私有根服务器的诞生宣布了我们使用了另外一个域名空间,和公网域名空间完全平行的另一个名称空间,在这个自己创建的域名空间中,我们可以使用任意域名而不用担心和公网上的同名区域发生冲突。如下图所示,我们在BerlinDNS管理器中选择新建区域,准备在Berlin上创建出根域。

 

 

出现新建区域向导,点击下一步继续。

区域类型选择“主要区域”

 

 

区域名称为“.”,“.”就代表根区域。

 

 
根域的区域数据文件是root.dns

 

 

出现完成新建区域向导,点击完成。区域创建完毕,这时,私有根已经诞生了。

 

 

我们在根域中首先检查NSSOA记录,对任何区域来说,这两个记录都是不可或缺的。首先我们检查NS记录,如下图所示,NS记录中描述了根域的DNS服务器是Berlin.,由于Berlin.并不是一个完全合格域名,因此我们要对这个域名进行编辑。 按照拓扑图中的设计,我们把根域的域名服务器改成了Berlin.com.IP地址是192.168.11.1

 

 

然后对根域的SOA记录也进行修改,如下图所示,我们把根域的主服务器设置为berlin.com.,这样,根域的NS记录和SOA记录就都设置好了。

 

 

接下来我们就要在根域中设置区域委派了,按照拓扑要求,我们应该把com区域委派给jinshan,把net区域委派给mufeng。我们在根域的区域上右键“新建委派”,如下图所示,我们把com的解析权委派给jinshan.com区域. ,把net的解析权委派给mufeng.net区域。

 

 

指定要委派得DNS域的名称com

 

 
添加com区域的名称服务器jinshan.com., IP地址192.168.11.2

 

 

再指定一个要委派DNS域的名称net。名称服务器mufeng.net, IP地址192.168.11.3

 

 

如图所示,显示了在Berlin配置的最终结果

 

至此,我们对根域的设置完成,主要工作是创建了根域以及在根域中设置了委派。

 、 负责com区域的DNS服务器

根服务器把com区域的解析权委派给了jinshan,接下来我们就要在jinshan上进行设置了,首先我们要做的就是让jinshan信任我们新创建的根服务器,默认情况下,jinshan只承认互联网上的那13个根服务器。如下图所示,我们在jinshanDNS管理器中打开服务器属性中的根提示,删除jinshan目前承认的13个根服务器, berlin.com.作为唯一的DNS根服务器添加进来,这样,jinshan就承认我们新创建的根服务器了。

 

 

 

jinshan 承认了私有根后,我们在jinshan上创建com区域,如下图所示,我们在jinshanDNS管理器中选择新建区域。

 

 

创建一个主要区域

 

 

区域名称为com

 

 

Com 区域创建非常简单,如图所示我们已经创建完成com区域

 

Com 区域创建完成之后,我们来修改NSSOA记录,按照拓扑结构我们把com区域的名称服务器改为jinshan.com. IP地址192.168.11.2

 

 

 

SOA 记录的主服务器改为jinshan.com.

 

 

 

修改完NSSOA记录后,然后在com区域上指定委派,将com区域委派给itet.com区域解析

 

 

添加itet.com区域的DNS服务器的 名称和IP地址。

 

 

如下图所示,可以看到我们对JINSHAN配置的结果。

 

 

至此,我们已经完成在jinshan服务器的设置,首先修改根服务器,然后完善了区域地NSSOA记录,最后指定委派。

四、 负责net区域的DNS服务器

我们在根服务器上把net区域为派给mufeng,首先在mufeng服务器上指定根服务器

如图所示,我们在mufeng服务器属性的根提示中设置了唯一的根服务器:Berlin.com.

 

 

 

 

接下来在mufeng上创建net区域,区域类型为主要区域。

 

 

区域数据文件net.dns

 

 

修改net区域的NS和SOA记录,将名称服务器改为mufeng.net.

 

 

 

 

SOA记录的主服务器名也改为mufeng.net.。
 

 

 

 

再将net区域委派给xuejun.net.区域解析

 

 

添加xuejun.net.区域的DNS服务器名称和IP地址

 

 

如图所示,看到我们在MUFENG上配置后的结果

 

 

至此在mufeng上的所有配置已经完成,首先修改了根服务器,让mufeng相信Berlin就是根服务器,让后完善了net区域的NSSOA记录,最后将net区域委派出去。

五、 负责itet.com的服务器

ruixing 负责itet.com区域的解析,我们首先也是要设置ruixing的根服务器,如下图所示,我们设置berlin.com.是唯一的根服务器。

 

 

 

ruixing上创建itet.com区域。区域类型为主要区域。

 

 

Itet.com 的区域数据文件

 

 

修改itet.com区域的NSSOA记录,将域名服务器都该为ruixing.itet.com.

IP 192.168.11.4

 

 

 

 

然后在区域中添加一条主机记录为:[url]www.itet.com[/url]

 

 

如图所示,在ruixing服务器上配置后的结果

 

 

ruixing上的设置相对简单一些,只是把根服务器重新设置了一下,同时对itet.com区域中的NSSOA记录进行了一些修改,添加了一条新记录,没有涉及到区域委派。

六、 负责xuejun.net的服务器

负责xuejun.net的是shenshan,我们首先也是要在shenshan上修改根服务器,如下图所示,我们把根服务器修改为berlin.com.
 
 

然后,创建xuejun.net区域,区域类型为主要区域。

 

 

 
Xuejun.net 区域的区域数据文件

 

 
修改区域的NSSOA记录,将域名服务器都修改为shenshan.xuejun.net

IP 地址192.168.11.5

 

 

 

 

xuejun.net区域中新建一条记录为[url]www.xuejun.net[/url]

 

 

 

如图所示,显示了在shenshan服务器上配置的最终结果

 

Shenshan 的设置也比较简单,和ruixing类似,只是简单地修改了一下根服务器,同时对shenshan.net的区域数据进行了一下修改,同时也添加了一条新记录,也没有涉及区域委派。

七、 私有根测试

我们费了半天力气终于搭好了私有根,现在我们来测试一下效果,理论上我们使用任何一个DNS服务器都可以把私有名称空间内的任何域名都解析出来。我们在ruixing上进行一个测试,用ruixing作为DNS服务器来解析[url]www.xuejun.net[/url]。理论上分析,以xuejun.net结尾的域名应该由shenshan来解析,ruixing如果能解析出来,那肯定是通过私有根找到了shenshan。测试结果如下图所示,我们发现ruixing已经成功地解析了[url]www.xuejun.net[/url]

我们用抓包工具记录一下ruixing的解析过程,我们可以很清楚地看到,ruixing先是向私有根的根服务器192.168.11.1发出了查询请求,然后又向负责net区域的192.168.11.3发出了查询请求,最后向负责xuejun.net192.168.11.5申请查询,这次终于如愿以偿,查到了正确结果,过程和以前在公网上的解析完全一样,我们设置私有根已经成功了!

 

谢谢大家的支持!如有问题还请大家多多提出!