打造DNS私有根
我们现在已经从前面的博文中了解到了很多DNS的相关知识,今天我们用一个综合性的实验把前面的内容都串起来复习一下,这个有趣的实验就是DNS的私有根。私有根顾名思义是由个人或企业自行创建的DNS根服务器,这个根服务器属于创建者私有专用,不能象互联网上的根服务器那样为众多的网民服务。那么为什么会有企业搭建私有根呢?直接用互联网上的根服务器不是很好吗?需要搭建私有根一般有下列原因,例如有的单位如警察或军事部门出于保密需要,必须把单位的网络和互联网物理隔离,但又不愿使用IP地址来互相访问,这样就必须使用DNS私有根才能保证域名的正常应用;还有的大型企业为了管理方便,也在企业内设置私有根解析域名,这样可以省却去公网申请域名的麻烦。
对我们来说,创建私有根的意义在于可以通过这些操作更好地理解DNS的体系结构,可以亲自体验一下DNS的诞生过程。下面我们准备用五台虚拟机来实现一个DNS的私有根,拓扑如下图所示,Florence充当私有根的根服务器,根服务器把.com区域的解析权委派给Berlin,把.net区域的解析权委派给Firenze。然后Berlin再把hexun.com的解析权委派给Istanbul,而Firenze把homeway.net的解析权委派给Perth。每台服务器的完全合格域名和IP地址都在拓扑图中进行了标注。
一 负责根域的DNS服务器
我们把创建根服务器这个伟大的任务交给了Florence,私有根服务器的诞生宣布了我们使用了另外一个域名空间,和公网域名空间完全平行的另一个名称空间,在这个自己创建的域名空间中,我们可以使用任意域名而不用担心和公网上的同名区域发生冲突。如下图所示,我们在Florence的DNS管理器中选择新建区域,准备在Florence上创建出根域。
出现新建区域向导,点击下一步继续。
区域类型当然选择“主要区域”。
区域的名称为. ,哈哈,大名鼎鼎的根域原来如此简单。
根域的区域数据文件是root.dns,注意,我们之后要修改这个文件。
区域创建完毕,这时,私有根已经诞生了。
我们在根域中首先检查NS和SOA记录,都任何区域来说,这两个记录都是不可或缺的。首先我们检查NS记录,如下图所示,NS记录中描述了根域的DNS服务器是Florence.,由于Florence.并不是一个完全合格域名,因此我们要对这个域名进行编辑。
按照拓扑图中的设计,我们把根域的域名服务器改成了Florence.root.net.,IP地址是192.168.11.101。
然后对根域的SOA记录也进行修改,如下图所示,我们把根域的主服务器设置为Florence.root.net.,这样,根域的NS记录和SOA记录就都设置好了。
接下来我们就要在根域中设置区域委派了,按照拓扑要求,我们应该把com区域委派给Berlin,把net区域委派给Firenze。我们在根域的区域数据文件root.dns中设置委派,如下图所示,我们把com的解析权委派给Berlin.root.net. ,把net的解析权委派给Firenze.root.net.。
修改了根域的区域数据文件后,我们在DNS管理器中已经可以看到根域的委派结果了。
至此,我们对根域的设置完成,主要工作是创建了根域以及在根域中设置了委派。
二 负责com区域的DNS服务器
根服务器把com区域的解析权委派给了Berlin,接下来我们就要在Berlin上进行设置了,首先我们要做的就是让Berlin信任我们新创建的根服务器,默认情况下,Berlin只承认互联网上的那13个根服务器。如下图所示,我们在Berlin的DNS管理器中打开服务器属性中的根提示,发现了Berlin目前承认的13个根服务器。
如下图所示,我们把13个根服务器删除,把Florence.root.net.作为唯一的DNS根服务器添加进来,这样,Berlin就承认我们新创建的根服务器了。
Berlin承认了私有根后,我们在Berlin上创建com区域,如下图所示,我们在Berlin的DNS管理器中选择新建区域。
区域类型选择主要区域。
区域名称是com。
Com区域的区域数据文件是com.dns。
Com区域的创建非常简单,如下图所示,我们已经完成了com区域的创建。
创建了com区域后,我们接下来就要在com区域中检查NS记录和SOA记录的设置情况了。我们检查com区域的区域数据文件com.dns,如下图所示,我们发现com区域中的NS记录和SOA记录都把域名服务器设置为了Berlin.,但Berlin.并不是一个完全合格域名,因此我们要对记录进行修改。
如下图所示,我们通过编辑com.dns完成了两件工作,首先是把NS记录和SOA记录都用Berlin.root.net.这么个标准的完全合格域名来表示,其次是在com区域中进行了委派操作,把hexun.com的解析权委派给了Istanbul.hexun.com。
如下图所示,我们可以看到修改了com.dns后的结果。
至此,我们在Berlin上完成了DNS服务器的设置,首先修改了根服务器,然后完善了com区域的NS记录和SOA记录,最后在com区域中设置了委派。
三 负责net区域的DNS服务器
我们在根域中把net区域的解析权委派给了Firenze,接下来我们在Firenze上进行操作,首先Firenze要承认Florence是根服务器。如下图所示,我们在Firenze属性的根提示中设置了唯一的根服务器,Florence.root.net.。
接下来在Firenze上创建net区域,如下图所示,我们在Firenze的DNS管理器中选择新建区域。
区域名称是net。
区域数据文件是net.dns。
如下图所示,我们看到net区域的NS记录和SOA记录都表示得不恰当,我们在net的区域数据文件中进行修改。
如下图所示,我们在区域数据文件中把net区域的NS记录和SOA记录都进行了修改,改成了firenze.root.net.,然后把homeway.net的解析权委派给了perth.homeway.net.。
至此,Firenze的设置完成,基本上和Berlin的设置是相同的,也是重新设置了根服务器,创建了net区域,修改了区域的NS和SOA记录,同时设置了区域委派。
四 负责hexun.com的服务器
Istanbul负责hexun.com区域的解析,我们首先也是要设置Istanbul的根服务器,如下图所示,我们设置Florence.root.net.是唯一的根服务器。
接下来需要在Istanbul上创建区域hexun.com,具体的创建过程不再赘述,如下图所示,这是hexun.com区域创建后的结果,显然,我们需要对其中的NS和SOA记录进行修改。
如下图所示,我们编辑了hexun.com的区域数据文件hexun.com.dns。我们把hexun.com区域的NS和SOA记录中的域名服务器都改为了istanbul.hexun.com.,而且在区域中添加了[url]www.hexun.com[/url]和mail.hexun.com两条A记录。
修改后的结果如下图所示。
在Istanbul上的设置相对简单一些,只是把根服务器重新设置了一下,同时对hexun.com区域中的记录进行了一些修改,没有涉及到区域委派。
五 负责homeway.net的服务器
负责homeway.net的是Perth,我们首先也是要在perth上修改根服务器,如下图所示,我们把根服务器修改为florence.root.net.。
接下来在perth上创建区域homeway.net,具体过程不再赘述,如下图所示就是homeway.net刚创建完的结果。
我们修改区域数据文件homeway.net.dns,如下图所示,我们修改了homeway.net的NS和SOA记录,用完全合格域名来表示DNS服务器。然后还创建了两条A记录,[url]www.homeway.net[/url]和ftp.homeway.net。
修改后的结果如下图所示。
Perth的设置也比较简单,和Istanbul类似,只是简单地改了一下根服务器,同时对homeway.net的区域数据进行了一下修改。
六 私有根测试
我们费了半天力气终于搭好了私有根,现在我们来测试一下效果,理论上我们使用任何一个DNS服务器都可以把私有名称空间内的任何域名都解析出来。我们在perth上进行一个测试,用perth作为DNS服务器来解析[url]www.hexun.com[/url]。理论上分析,以hexun.com结尾的域名应该由Istanbul来解析,perth如果能解析出来,那肯定是通过私有根找到了istanbul。测试结果如下图所示,我们发现perth已经成功地解析了[url]www.hexun.com[/url]。
我们用抓包工具记录一下perth的解析过程,我们可以很清楚地看到,perth先是向私有根的根服务器192.168.11.101发出了查询请求,然后又向负责com区域的192.168.11.108发出了查询请求,最后向负责hexun.com的192.168.11.107申请查询,这次终于如愿以偿,查到了正确结果,过程和以前在公网上的解析完全一样,我们设置私有根成功了!
本文出自 “岳雷的微软网络课堂” 博客,请务必保留此出处http://yuelei.blog.51cto.com/202879/110700
- nova创建虚拟机源码分析系列之六 api入口create方法
openstack 版本:Newton 注:博文图片采用了很多大牛博客图片,仅作为总结学习,非商用.该图全面的说明了nova创建虚机的过程,从逻辑的角度清晰的描述了前端请求创建虚拟机之后发生的一系列反 ...
- kubernetes dns 初步理解和使用 dnsmasq dns服务器跟host机器同步
1.安装DNS后,pod就可以通过dns来解析service,从而实现通信 2.创建一个dns测试工具pod apiVersion: extensions/v1beta1 kind: Deployme ...
- Linux:DNS主、从、缓存服务器配置、DNS同步加密TSIG配置、DNS分离解析配置
DNS主服务器配置(正向解析.反向解析) 正向解析:根据主机名查找对应的IP地址.当用户访问一个域名时(不考虑hosts文件等因素),正常情况会向指定的DNS主机发送递归查询请求反向解析:根据IP地址 ...
- HealthKit开发快速入门教程之HealthKit框架体系创建健康AppID
HealthKit开发快速入门教程之HealthKit框架体系创建健康AppID HealthKit开发准备工作 在开发一款HealthKit应用程序时,首先需要讲解HealthKit中有哪些类,在i ...
- 如何清除DNS缓存,使用cmd命令清理DNS缓存方法
如何清除DNS缓存,使用cmd命令清理DNS缓存方法 有时候电脑突然上不了网,或者存在某些网站打不开的情况,但别的网站又可以打开,解决办法需要清除DNS缓存,那么如何清除DNS缓存呢,最常用的方法就是 ...
- 如何在云服务器创建maven私有仓库
参考链接:https://blog.csdn.net/silence_jjj/article/details/77531916 nexus3创建maven私有仓库(windows) 1.官网:http ...
- dns缓存刷新时间是多久?dns本地缓存时间介绍
原文: http://www.winwin7.com/JC/4742.html dns缓存刷新时间是多久?一般来说,我们只知道DNS解析是互联网绝大多数应用的实际寻址方式,在我们打开某站点,DNS返回 ...
- 架构师成长之路6.6 DNS服务器搭建(构建企业级DNS)
点击返回架构师成长之路 架构师成长之路6.6 DNS服务器搭建(构建企业级DNS) 采用LVS-DR模式负载均衡,多IDC,多套DNS集群,通过master-slave技术保证dns配置的一致性. 1 ...
- 架构师成长之路6.4 DNS服务器搭建(部署主从DNS)
点击返回架构师成长之路 架构师成长之路6.3 DNS服务器搭建(部署主从DNS) 部署主DNS : 点击 部署从DNS : 如下步骤 1.与主DNS一样,安装bind yum -y install ...
随机推荐
- asp.net 权限问题
asp.net项目中通过Web.config配置文件及文件夹的访问权限! http://blog.csdn.net/qingyun1029/article/details/6184723
- ZipArchive框架的文件压缩和解压
导入第三方框架ZipArchive之后还要在系统库文件中导入一个如下文件(搜索libz出来的任何一个都可以) 导入的头文件是#import "Main.h" 文件压缩 -(vo ...
- Delphi判断字符串是否是数字、字母、大小写字母
function IsNumberic(Vaule:String):Boolean; //判断Vaule是不是数字 var i:integer; begin result:=true; //设置返回值 ...
- CF198 D2
B. Maximal Area Quadrilateral 题意:在N个点中构建四边形,使得四边形面积最大,且不自交. 分析:不自交四边形可以剖分成两个三角形,因此可以在O(N^2)内枚举对角线,然后 ...
- renameTo()方法的用法
使用renameTo()方法,可以将文件data.txt从C:\JavaApp\IOTest1\目录移动到C:\目录,并改名为newdata.txt import java.io.File; //将文 ...
- win8系统 Reflect 破解
在win8系统中,从网上下载Reflect和注册机,按照教程操作,但是在生成应答字符串的时候,没有生成字符串,很纳闷. 尝试了好几个版本,最终是在win7系统中也按照流程操作一遍.重点是在生成应答字符 ...
- hdu 1176 免费馅饼(nyist 613)
http://acm.hdu.edu.cn/showproblem.php?pid=1176 dp[i][j]:表示第i秒接j位置的馅饼的最大值. 三种状态: dp[i][j]=max(dp[i-1] ...
- tokudb引擎安装-2
前言:因为现在tokuDB直接整合到Percona server里面了,下载页面直接跳转到下载Percona Server 页面了.安装方法跟以前不一样了,下面就来看一下新版本怎么安装了 ##准备阶段 ...
- php整理(一):变量和字符串
PHP中的变量: 1. 定义:$符号来定义变量 2. 说明: (1)PHP弱语言,定义变量的时候不用声明类型,但是并不代表PHP没有数据类型 (2)变量名是区分大小写的,只能是数字,字母或者下划线 ( ...
- C#中默认的修饰符
参考自Default visibility for C# classes and members (fields, methods, etc)? Classes and structs that ar ...