自己动手搭建DNS服务器

前言:

    在我们平时上网中,访问的都是域名,那么域名是如何转换为IP地址的呢?进而访问我们的服务器主机的呢?这时候就需要用到DNS服务器了。DNS是由域名解析器和域名服务器组成的,域名服务器是指保存有该网络中所有主机的域名和对应IP地址,并具有将域名转换为IP地址功能的服务器。




    那么接下就开始搭建DNS服务器吧!

wKiom1cHsTjQTQ59AACb_ywGqfY974.png



1.首先搭建主DNS服务器,ch1主机配置如下:


[root@ch1 ~]# yum -y install bind        ## 安装bind程序
[root@ch1  ~]#  ntpdate 172.18.0.1                ## 同步时间服务器
[root@ch1 ~]# vim /etc/named.conf        ## 修改DNS服务器配置文件

wKioL1cHwffhDVixAAA95oyakBM222.png

[root@ch1 ~]# named-checkconf            ## 检查配置文件语法错误
[root@ch1 ~]# vim /etc/named.rfc1912.zones        ## 在此配置文件中添加区域

wKiom1cHtPGB3f2AAAATS9LPMs8456.png

[root@ch1 ~]# vim /var/named/test.com.zone        ##在/var/named目录下建立区域数据文件

wKioL1cJEQzBlmmJAABX-uOIEGA247.png


[root@ch1 named]# vim /var/named/172.18.20.zone         ## 建立反向解析区域数据文件

wKiom1cHu7eRjFjzAAAWVA5nIZg894.png


[root@ch1 ~]# chown :named /var/named/test.com.zone       ## 修改属组为named
[root@ch1 ~]# chmod o= /var/named/test.com.zone         ## 移除其他的权限
[root@ch1 named]# named-checkzone test.com /var/named/test.com.zone  ## 检测区域文件语法错误
[root@ch1 named]# named-checkzone 20.18.172.in-addr.arpa /var/named/172.18.20.zone
[root@ch1 named]# service named start                 ## 启动DNS服务
[root@ch1 named]# dig -t A www.test.com @172.18.20.10    ## 测试DNS服务器172.18.20.10是否能正常解析A记录
[root@ch1 named]# dig -x 172.18.20.11 @172.18.20.10      ## 测试DNS服务器172.18.20.10是否能反向解析172.18.20.11


主DNS服务器搭建完毕




2.搭建从DNS服务器,ch2配置如下


[root@ch2 ~]# yum -y install bind        ## 安装bind程序
[root@ch2 ~]# ntpdate 172.18.0.1         ## 同步时间服务器
[root@ch2 ~]# vim /etc/named.rfc1912.zones        ## 定义一个从区域

wKioL1cHwHKxfsXsAAAOT3wiXg8727.png

[root@ch2 ~]# named-checkconf         ## 检查语法错误
[root@ch2 ~]# service named start        ## 启动DNS服务
[root@ch2 slaves]# cat test.com.zone        ## 查看区域配置文件是否能够同步


注意:要在主DNS服务器上配置一条指向从DNS服务器的NS记录



3.配置子域


[root@ch3 ~]# yum -y install bind         ## 安装bind程序
[root@ch3 ~]# ntpdate 172.18.0.1           ## 同步时间服务器
[root@ch3 ~]# vim /etc/named.conf          ## 修改配置文件

wKioL1cH0HGSLAz9AAAyfckZMP0791.png

[root@ch3 ~]# vim /etc/named.rfc1912.zones  ## 建立区域配置

wKioL1cJEKKynwJGAAAXAncqnsU492.png

[root@ch3 ~]# vim /var/named/ops.test.com.zone         ## 建立区域配置文件

wKiom1cJETixUdJxAAA_8xg6OmE197.png

[root@ch3 ~]# named-checkconf                     ## 检查语法是否错误
[root@ch3 ~]# service named start                 ## 启动服务   
[root@ch3 ~]# dig -t A www.ops.test.com @172.18.20.12        ## 测试子域是否能够正常解析
[root@ch3 ~]# dig -t A www.test.com @172.18.20.12            ## 测试子域是否能够解析父域


注意:子域同样需要主DNS服务器上的授权



总结:


1. DNS是应用层协议,端口号为tcp/53和udp/53


2. DNS查询的过程

    

wKioL1cJFUaCybXAAAFRE1LVtDo680.png

    

    (1)客户机将查询www.test.com的信息传递到自己的首选DNS服务器。

    (2)DNS客户机的首选DNS服务器检查区域数据库,由于此服务器没有test.com域的授权记            录,因此,它将查询信息传递到根域DNS服务器,请求解析主机名称。

    (3)根域DNS服务器把负责解析“com”顶级域的DNS服务器的IP地址返回给DNS客户机的首选          DNS服务器。

    (4)首选DNS服务器将请求发送给负责“com”域的DNS服务器。

    (5)负责“com”域的服务器根据请求将负责“test.com”域的DNS服务器的IP地址返回给首          选DNS服务器。

    (6)首选DNS服务器向负责“test.com”区域的DNS服务器发送请求。

    (7)由于此服务器具有www.test.com的记录,因此它将www.test.com  的IP地址返回给首          选DNS 服务器。

    (8)客户机的首选DNS服务器将www.test.com的IP 地址发送给客户机。

    (9)域名解析成功后,客户机将http请求发送给Web服务器。

    (10)Web服务器响应客户机的访问请求,客户机便可以访问目标主机。


3. DNS服务器类型

        主DNS服务器:维护所负责解析的域数据库的那台服务器;读写操作均可进行;

        从DNS服务器:从主DNS服务器那里或其它的从DNS服务器那里“复制”一份解析库;但                    只能进行读操作;


4. DNS区域数据库文件常见类型

        SOA:起始授权记录; 一个区域解析库有且只能有一个SOA记录

        NS:域名服务记录;一个区域解析库可以有多个NS记录;其中一个为主的;

        A: 地址记录,FQDN --> IPv4;

        AAAA:地址记录, FQDN --> IPv6;

        CNAME:别名记录;

        PTR:Pointer,IP --> FQDN

        MX:Mail eXchanger,邮件交换器;



5. DNS的配置文件

    主配置文件:/etc/named.conf 

            或包含"include"设定的其它文件;

                /etc/named.iscdlv.key

                /etc/named.rfc1912.zones

                /etc/named.root.key

        解析库文件:

            /var/named/目录下;

                一般名字为:ZONE_NAME.zone


6. DNS测试工具

    dig命令:

        dig  [-t RR_TYPE]  name  [@SERVER]  [query options]

    用于测试dns系统,因此其不会查询hosts文件;

    查询选项:

 +[no]trace:跟踪解析过程;

         +[no]recurse:进行递归解析;

    反向解析测试:    dig  -x  IP

    模拟完全区域传送:    dig  -t  axfr  DOMAIN  [@server]


7. DNS中的安全相关的配置

    访问控制指令:

    allow-query  { }; 允许查询的主机;白名单;

    allow-transfer { }; 允许向哪些主机做区域传送;默认为向所有主机;

    allow-recursion { }; 允许哪此主机向当前DNS服务器发起递归查询请求; 

        allow-update { }; DDNS,允许动态更新区域数据库文件中内容;

优秀的个人博客,低调大师

微信关注我们

原文链接:https://blog.51cto.com/ch666/1762193

转载内容版权归作者及来源网站所有!

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。

相关文章

发表评论

资源下载

更多资源
Oracle Database,又名Oracle RDBMS

Oracle Database,又名Oracle RDBMS

Oracle Database,又名Oracle RDBMS,或简称Oracle。是甲骨文公司的一款关系数据库管理系统。它是在数据库领域一直处于领先地位的产品。可以说Oracle数据库系统是目前世界上流行的关系数据库管理系统,系统可移植性好、使用方便、功能强,适用于各类大、中、小、微机环境。它是一种高效率、可靠性好的、适应高吞吐量的数据库方案。

Eclipse(集成开发环境)

Eclipse(集成开发环境)

Eclipse 是一个开放源代码的、基于Java的可扩展开发平台。就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。幸运的是,Eclipse 附带了一个标准的插件集,包括Java开发工具(Java Development Kit,JDK)。

Java Development Kit(Java开发工具)

Java Development Kit(Java开发工具)

JDK是 Java 语言的软件开发工具包,主要用于移动设备、嵌入式设备上的java应用程序。JDK是整个java开发的核心,它包含了JAVA的运行环境(JVM+Java系统类库)和JAVA工具。

Sublime Text 一个代码编辑器

Sublime Text 一个代码编辑器

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。