linux杂谈(十八):DNSserver的配置(一)
1.DNSserver简单介绍
域名系统(英文:Domain
Name System,縮寫:DNS)是因特网的一项服务。
它作为将域名和IP地址相互映射的一个分布式数据库,可以使人更方便的訪问互联网。DNS
使用TCP和UDPport53。
当前。对于每一级域名长度的限制是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的服务。这些我们在下节解说。
最新文章
- Struts 原理
- html5 定位 获得当前位置的经纬度
- jquery的$.extend()、$.fn和$.fn.extend()
- 多个list合并
- Cordova+angularjs+ionic+vs2015开发(三)
- HNOI2008 and ZJOI2006 排名系统
- The largest prime factor(最大质因数)
- js中constructor的作用
- Ubuntu Eclipse的Tomcat小问题:不能输入server name,不能启动tomcat
- hdu 3333 Turing Tree
- js第一天 inner html value
- Quick Cocos2dx MVC初步
- CDOJ 1271 Search gold
- Docker学习总结(一)
- 深入理解JavaScript中的闭包
- 【sql】ALTER更新数据库字段
- python面向对象和面向过程介绍与区别
- 【BZOJ】 4810: [Ynoi2017]由乃的玉米田
- SqlServer 循环建表、删除表、更新表
- 【读书笔记】iOS-成为一名开发者
热门文章
- ural 1989(树状数组+多项式hash)
- springmvc 1.接受日期类型的参数 2.后台返回json串的格式处理(返回json串null值处理为";";)
- dedecms4张关键表解析之2
- php八大设计模式之简介篇
- HDU-6109 数据分割 并查集(维护根节点)
- mySQL主从复制实战
- Windows 10 计划带来颜文字和Sandbox
- js cookie 页面倒计时
- 洛谷P1108 低价购买 (最长下降子序列方案数)(int,long long等 范围)
- nyoj 1104 just for you