1.DNSserver简单介绍



域名系统英文Domain
Name System,縮寫DNS)是因特网的一项服务。

它作为将域名IP地址相互映射的一个分布式数据库,可以使人更方便的訪问互联网。DNS
使用TCPUDPport53。

当前。对于每一级域名长度的限制是63个字符,域名总长度则不能超过253个字符。



在dns出现之前,我们把域名和IP的对比存放在/etc/hosts文件中边。可是随着IP的不断增大,使用文件存放显得不够了。并且不利于和其它的主机进行同步,DNS应运而生。



DNS的结构:他是利用树形文件夹的架构。将主机名的管理分配在不同层级的DNSserver,让每一层的改动和查找都变得功能单一。



DNS查询主机名的流程:



(1)先在本机有没有记录,没有的话向(.root)查询;

(2)向最顶层的.查询;

(3)然后分层的查询,每次仅仅查询它所对的下一层。

(4)查到之后记录缓存,而且将路径返回给用户。

注:在系统中我们能够通过dig命令进行路径追踪。



工作流程如图所看到的:





​2.搭建DNSserver





​今天我们来自己搭建一个DNSserver。这种需求在公司的内部还是有的。



​首先我们来查找安装dns的包有那些:





​安装dnsserver:





​开启服务后看到dns服务开启的port号是53:





​接下来我们要改动配置文件提供对应的服务,这里我们为了安全期间。在/var/named/chroot的文件夹下改动配置文件,而不直接对/etc/named文件夹下的文件进行改动。两者是同步的,可是有一个约束条件,前者仅仅有在dns开启成功的情况下才干使用!

!!







​我们在选项中关闭了ipv6的开放。并且同意随意用户使用。







主配置文件的最后两行各自是副配置文件和我们的dns加密文件:







​(1)DNS的正向解析:

​我们依次来查看:







​我们来设置自己的域名系统,上边的是模板,底下的我们指定了域名配置文件的名称,这个要自己创建,位置在/var/named/chroot/var/named下:







​这个文件夹底下也有域名配置文件的模板,我们拷贝一份并进行设置:







这个是初始模样。请务必记住,而且和改动之后的进行对照:







​改动之后的:







​注意:这里的@等于example.com. 所以在最后两行,假设没有把域名补全的话。系统会把@所代表的值加入到末尾。而且注意每一个com后边另一个点。



​这个时候我们重新启动服务,而且查看火墙是否已经关闭:







​服务端设置好之后,我们在另外一台机子上訪问dnsserver。



​首先要做的就是改动ifcfg-eth0文件中的DNS1參数为指定DNSserver的IP:192.168.2.100.然后又一次启动network服务:









​又一次启动network:











​我们追踪了一下。发现能够找到www.example.com,而且dnsserver为192.168.2.100这就说明我么之前的dnsserver配置是没有问题的。





​上述部分是dnsserver的正向解析,同一时候我们还知道dns具有反向解析的能力。那怎样实现呢,当然还是要改动配置文件了,与正向解析的步骤区别不大。



​(2)DNS的反向解析:



​回到副配置文件里。在文件夹/var/named/chroot/etc下:







​看到我们IP的书写格式了么,是的,既然是反向解析,IP的书写顺序也是相反的,而且指定了配置文件:







​跳转到配置文件文件夹。首先我们拷贝反向解析配置文件的模板。然后进行编辑:







​这个是模板的格式:







​我们改动之后的样子:







​记住最后一行。它代表的意思是192.168.2.200所相应的域名是ptr.example.com.这个是我们等会检验配置是否正确的标准。



​退出保存后重新启动dns服务:







​回到客户机我们来反向解析一下192.168.2.200是什么域名:







​小结:



​     如上所讲,dns的正向解析和反向解析已经完毕,可是这种功能有点单一化,其实它还有些不使用,比方说怎样去同步的改动,怎样和dhcp共同协作提供ddns的服务。这些我们在下节解说。

最新文章

  1. Struts 原理
  2. html5 定位 获得当前位置的经纬度
  3. jquery的$.extend()、$.fn和$.fn.extend()
  4. 多个list合并
  5. Cordova+angularjs+ionic+vs2015开发(三)
  6. HNOI2008 and ZJOI2006 排名系统
  7. The largest prime factor(最大质因数)
  8. js中constructor的作用
  9. Ubuntu Eclipse的Tomcat小问题:不能输入server name,不能启动tomcat
  10. hdu 3333 Turing Tree
  11. js第一天 inner html value
  12. Quick Cocos2dx MVC初步
  13. CDOJ 1271 Search gold
  14. Docker学习总结(一)
  15. 深入理解JavaScript中的闭包
  16. 【sql】ALTER更新数据库字段
  17. python面向对象和面向过程介绍与区别
  18. 【BZOJ】 4810: [Ynoi2017]由乃的玉米田
  19. SqlServer 循环建表、删除表、更新表
  20. 【读书笔记】iOS-成为一名开发者

热门文章

  1. ural 1989(树状数组+多项式hash)
  2. springmvc 1.接受日期类型的参数 2.后台返回json串的格式处理(返回json串null值处理为"")
  3. dedecms4张关键表解析之2
  4. php八大设计模式之简介篇
  5. HDU-6109 数据分割 并查集(维护根节点)
  6. mySQL主从复制实战
  7. Windows 10 计划带来颜文字和Sandbox
  8. js cookie 页面倒计时
  9. 洛谷P1108 低价购买 (最长下降子序列方案数)(int,long long等 范围)
  10. nyoj 1104 just for you