Linux配置 DNS and BIND服务配置详解--缓存服务器配置 正反向解析配置

本文涉及的产品
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
云解析DNS,个人版 1个月
云解析 DNS,旗舰版 1个月
简介:

一、DNS简介

一、DNS简介    

    DNS是计算机域名系统 (Domain Name System 或Domain Name Service) 的缩写,它是由域名解析器和域名服务器组成的。域名服务器是指保存有该网络中所有主机的域名和对应IP地址,并具有将域名转换为IP地址功能的服务器。其中域名必须对应一个IP地址,一个域名可以有多个IP地址,而IP地址不一定有域名。域名系统采用类似目录树的等级结构。域名服务器为客户机/服务器模式中的服务器方,它主要有两种形式:主服务器和转发服务器。将域名映射为IP地址的过程就称为“域名解析”。

1. DNS解析分正向解析和反向解析

正向解析:

        正向解析是指域名到ip地址的解析过程。

反向解析

         反向解析是指Ip地址到域名的解析过程。

2. DNS查询:分递归查询和迭代查询

        递归查询: 即客户端向本地DNS服务器请求查询域名,本地DNS服务器收到查询任务后如自身无法回答则向其他服务器查询,直到查到结果后返回结果给客户端。期间DNS服务器可能要查询很多其他DNS服务器。
        迭代查询:即客户端向本地服务器请求查询域名,本地DNS服务器无法回答,则给客户端返回另一个能查询域名的服务器地址,客户端再向另一服务器查询,期间可能客户端需查询多个DNS服务器,最终查到结果。

3. 主从DNS服务器:

         主DNS服务器(Master DNS): 数据库的修改更新;

         辅助DNS服务器 (SlaveDNS):请求主DNS服务器的数据同步更新;

         缓存DNS服务器:它主要用来缓存查询的地址信息,而不用承担任何其他的工作。它没有区域文件,也不从其他DNS服务器传输数据。它能响应客户机的查询,但是没有授权。

4. 资源记录类型

        1>.SOA记录:SOA名叫起始授权机构记录,用于说明负责解析的DNS服务器中哪一个是主服务器。

        2>.NS(NAME SERVER):名称服务器记录,用于说明这个区域由哪些DNS服务器负责解析,NS和A记录是成对出现   如:

1
2
3
  NAME                  TTL         IN        RPT             VALUE   
51yunxuexi.club.       400         IN        NS           ns.51yunxuexi.club.
ns.51yunxuexi.club.    400         IN        A               1.1.1.1

        3>.A记录(address):地址A记录把FQND(域名)解析到IPv4地址,把主机名解析到IPv4地址,正向解析

        4>.AAAA记录(address):AAAA资源记录把FQDN解析到IPv6地址,把主机名解析到IPv6地址

        5>.PTR指针记录(pointer):和A记录相反,用于实现IP地址映射到FQDN,反向解析

        6>.MX记录: 全称是邮件交换记录(邮件交换器),在使用邮件服务器的时候,MX记录是无可或缺的,比如A用户向B用户发送一封邮件,那么他需要向DNS查询B的MX记录,DNS在定位到了B的MX记录后反馈给A用户,然后A用户把邮件投递到B用户的MX记录服务器里!优先级,0-99,数字越小,优先级越高

        7>.CNAME记录:也可说是别名记录,规范名字(CNAME)资源记录创建特定FQDN的别名。用户可以使用CNAME记录来隐藏用户网络的实现细节,使连接的客户机无法知道。比如一个网站a.com 在发布的时候,他可以建立一个别名记录,把B.com发布出去,这样不容易被外在用户所察觉!达到隐藏自己的目的!

        8>.SRV记录:它是DNS服务器的数据库中支持的一种资源记录的类型,它记录了哪台计算机提供了哪个服务这么一个简单的信息。SRV 记录:一般是为Microsoft的活动目录设置时的应用。


5. 区域

        区域是用于存储DNS域名的数据库。DSN服务器是以区域为单位来管理域名空间的。DNS数据库表称为区域文件(Zone File)。数据库中包含着DNS域的RR【资源记录】,数据库表中,RR是用文本形式表示的。

 

        一台DNS服务器可以管理一个或多个区域,而一个区域也可以由多台DNS服务器来管理。

在DNS服务器中必须先建立区域,然后才可以根据需要在区域中建立子域以及在区域中添加RR。

 

可以创建正向查找区域反向查找区域两种区域。

1>.区域类型主要区域(主区域)辅助区域(从区域)存根区域、准发区域、提示区域等

        主要区域:它是新区域的主副本,负责在新创建区域的服务器上管理和维护本区域的RR。

        辅助区域:它是主区域的副本【备份】,主要区域中的DNS服务器将把区域信息传递给辅助区域中的DNS服务器。使用辅助区域的目的是提供冗余、减少包含主要区域数据库文件的DNS服务器的负载。辅助区域的数据无法修改,其所有数据都是从主要区域复制而来。

        存根区域:它只包含用于标识该区域的授权DNS服务器所需的RR。含有存根区域的DNS服务器对该区域没有管理权。存根区域只能创建只含有NS、SOA和A记录的区域的副本。其所属的主要区域通常是一个受委派区域。

2>.区与域的关系:

        区包含了域中除了代理给别处的子域外所含有的所有域名和数据。如果域的子域没有被代理出去,则该区包含该子域名和子域中的数据。

6. 区域传输(区域传送) 

        将一个区域文件复制到多个服务器上的过程叫做区域传输。它是通过从主服务器上将区域文件的信息复制到辅助服务器上来实现的。

主服务器是区域复制的来源服务器,它既可以是主要区域,也可以是辅助区域。

*如果主服务器是主要区域,区域传输则直接从主要区域取得区域文件。

*如果主服务器是辅助区域,区域传输仅传输区域文件的一个只读副本。

两种区域文件复制方式:

        AXFR全部区域文件复制,复制整个区域文件。

        IXFR增量区域文件复制,仅仅复制区域里变化的记录。


二、 bind软件包的安装以及配置文件简介

1bind软件包的安装

        在使用DNS服务器时首先要确保bind软件包是否已经安装,可以使用rpm –qa | grep bind 查看。可以使用rpm命令安装,也可以使用yum源安装及所依赖软件包。首先要安装以下三个软件包。

bind-9.8.2-0.17.rc1.el6.x86_64       bind的安装包

bind-utils-9.8.2-0.17.rc1.el6.x86_64

bind-libs-9.8.2-0.17.rc1.el6.x86_64 

源码包安装可以在http://www.isc.org/官网下载安装

bind-chroot软件包:切换named根目录,加强DNS服务器的安全

caching-nameserver.i386软件包    可以快速构建DNS缓存名称服务器

2DNS监听的协议及端口

    53/UDP      默认查询过程中使用的是UDP协议,因不需要三次握手,速度快         

    53/TCP      主从服务数据传输时为确保数据的准确、性完整性和安全行,使用的是TCP   

    953/TCP     rndc远程域名服务控制器则使用953端口监听


3bind配置文件简介

/etc/named.conf bind服务进程的主配置文件,主要定义bind进程的工作属性和区域的定义

       /etc/rnd.key                  远程名称控制器,rndc的密钥文件

       /etc/rndc.conf                rndc的配置文件

       /etc/var/named/               区域数据文件,可自定义名称

       /etc/rc.d/init.d/named  { start|stop|restart|status|reload }服务进程的启动停止重启等

       /usr/sbin/named           bind的主程序文件

       /usr/sbin/named-checkconf     named-checkconf命令检查配置文件是否有语法错误

       /usr/sbin/named-checkzone     named-checkzone命令检查区域文件是否有语法错误

       /usr/sbin/rndc                rndc命令是远程控制工具

       /usr/sbin/rndc-confgen        rndc-confgen 命令是rndc配置文件生成器(/etc/rndc.conf

       /var/named/named.ca           Internet13个根服务器名字和地址,DNS接到客户端主机的查询请求时,如果在Cache中找不到相应的数据,就会通过根服务器进行逐级查询。

           Dig–t NS . 可以查询跟节点的NS服务器(可以访问互联网的情况下)

/var/named/named.localhost      本地localhost主机的正向解析

/var/named/named.loopback       本地localhost主机的反向解析

           /etc/resolv.conf                DNS服务器地址


三、/etc/named.cong主配置文件

      区域的定义,每个选项后面必须要加分号,定义全局选项  

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
options {
         //  listen-onport 53 { 127.0.0.1; };               #默认监听本地53端口 
         
         listen-on port 53 { any; };                       #监听所有地址的53端口
        listen-on-v6 port 53 { ::1; };
        directory       "/var/named" ;                      #自定义区域数据文件存放目录
        allow-query     { localhost; };                   #默认只允许本地查询
        recursion  yes ;                                    #是否允许递归
};
  
logging {                                                #日志
         channeldefault_debug {
                file  "data/named.run" ;                    #日志文件存放目录
                severity dynamic;
         };
};

区域zone的定义:

zong “ZONE NAME” IN{

       type    master() | slave() | hint(根区域) | forward(转发}区域类型   

}

如果定义的数据类型为主区域则还需定义 file “区域数据文件路径”;

如果定义的数据类型为主区域则还需定义 file “区域数据文件”;

                                                                                     master (主服务器地址;)

                                                                                 master (master_ip; ) 前后有空格

 

1
2
3
4
zone “.” IN {                                           #定义根区域
               type  hint;                                  #定义根区域类型
               file  “named.ca”;                          #定义根区域数据文件
};

1配置缓存服务器

1
2
3
4
5
6
7
8
9
打开并编辑 /etc/name .conf文件,也可以在named.rfc1912.zones文件中添加zone区域
               zone  "localhost"  IN {                   #定义本地localhost正向解析zone区域
                 type  master;                          #定义主区域类型
                 file "named.localhost" ;                #定义区域数据文件
};
zone  "0.0.127.in-addr.arpa"  IN {                      #定义本地localhost反向解析zone区域
                 type  master;                          #定义主区域类型
                 file "named.loopback" ;                 #定义区域数据文件
};
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
检查named配置文件语法是否正确
        [root@localhost etc] # named-checkconf
        [root@localhost etc] #
使用named-checkconf命令,无报错则说明配置文件语法正确
检查zone区域配置是否正确
[root@localhost etc] # named-checkzone "0.0.127.in-addr.arpa"/var/named/named.loopback
zone 0.0.127. in -addr.arpa /IN : loaded serial0
OK 
[root@localhost etc] # named-checkzone"localhost" /var/named/named.localhost
zone localhost /IN : loaded serial 0
OK
[root@localhost etc] #
使用named-cone命令检查区域是否有语法错误,返回OK则说明无语法错误
重启DNS服务器
[root@localhost etc] # service named restart
停止 named:.                                              [确定]
启动 named:                                               [确定]
[root@localhost etc] #

 可以使用tail /var/log/messages查看服务是否启动正常        

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
[root@localhost log] # tail /var/log/messages
Aug 29 22:43:10 localhost named[21072]: automatic
empty zone: 9.E.F.IP6.ARPA
Aug 29 22:43:10 localhost named[21072]: automatic
empty zone: A.E.F.IP6.ARPA
Aug 29 22:43:10 localhost named[21072]: automatic
empty zone: B.E.F.IP6.ARPA
Aug 29 22:43:10 localhost named[21072]: automatic
empty zone: 8.B.D.0.1.0.0.2.IP6.ARPA
Aug 29 22:43:10 localhost named[21072]:  command
channel listening on 127.0.0.1 #953
Aug 29 22:43:10 localhost named[21072]:  command
channel listening on ::1 #953
Aug 29 22:43:10 localhost named[21072]: zone
0.0.127. in -addr.arpa /IN : loaded serial 0
Aug 29 22:43:10 localhost named[21072]: zone
localhost /IN : loaded serial 0
Aug 29 22:43:10 localhost named[21072]:
managed-keys-zone . /IN : loaded serial 7
Aug 29 22:43:10 localhost named[21072]: running
[root@localhost log] #

 使用dig –t NS. 命令测试本地缓存解析

wKiom1XkXhSwb9ijAAM4z85iZ58596.jpg2、配置正向解析,反向解析DNS服务器

配置环境:在万网注册域名为    www.51yunxuexi.club

                                   NSDNS服务器master192.168.1.192

                                   NSSOAns1.51yunxuexi.club.

                                   www服务器:192.168.1.106  192.168.1.103

                                   mail服务器: 192.168.1.104

                                   有一台ftpwww主机上,ftpwww的别名CNAME


SOA:起始授权记录格式

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
ZONE NAME           TTL          IN         SOA    FQDN(主DNS名称)  ADMIN MAIL(
                                                                                                                                                               Serialnumber
                                                                                                                                                               Refresh
                                                                                                                                                               Retry
                                                                                                                                                               Expire
                                                                                                                                                               Nattl )
$TTL 600
     @   IN     SOA    [FQDN]51yunxuexi.club.  admin.com.[管理员邮箱] (
                                 2015083001;serial     #版本号(最长为10位数字)
                                 refresh               #定义检查周期时间
                                 1H;retry              #定义重试时间
                                 1W;expire             #定义过期时间
                                 3H );minimum          #定义否定答案时长
  
时间单位:M(分钟)、H(小时)、D(天)、W(周)、默认单位是秒

ZONE NAME(区域名称/etc/named.conf中的zone “51yunxuexi.club”,可以使用@来代替51yunxuexi.club,@可以自动读取zone name

A)、打开并编辑/etc/named.conf,添加正向解析和反向解析的zone

    wKiom1XkYKTAgTzkAAJE7hEbQRI813.jpg

B)、在/var/named/目录下创建51yunxuexi.club.zone

       打开并编辑51yunxuexi.club.zone创建正向解析

       [root@localhost named]# vim /var/named/51yunxuexi.club.zone

wKiom1XkYXSAPGqOAALI6DoE4xI688.jpg

1
2
3
4
5
6
7
8
9
10
11
修改 /var/named  /51yunxuexi .club.zone的文件权限和属组
[root@localhost named] # chmod 640 51yunxuexi.club.zone
[root@localhost named] # chown root:named51yunxuexi.club.zone 
[root@localhost named] #
  
使用named-checkconf和named-checkzone命令检查主配置文件和数据区域文件是否有语法错误。
  [root@localhost named] # named-checkconf
[root@localhost named] # named-checkzone"51yunxuexi.club" /var/named/51yunxuexi.club.zone
zone 51yunxuexi.club /IN : loaded serial 2015080301
OK
[root@localhost named] #

C)、打开并编辑/var/named/192.168.1.zone创建反向解析

        wKioL1XkZBWjmsssAAHKtrHA93I707.jpg

1
2
3
4
5
6
7
使用named-checkconf 和named-zone命令检查配置文件是否有语法错误
[root@localhost ~] #
[root@localhost ~] # named-checkconf
[root@localhost ~] # named-checkzone"1.168.192.in-addr.arpa" /var/named/192.168.1.zone
zone 1.168.192. in -addr.arpa /IN : loaded serial2015080301
OK
[root@localhost ~] #

我在这里使用nslookup命令测试正反向解析是否能正常解析

wKioL1XkZKPDeAAaAANARjKXCwA049.jpg正反向解析正常,说明正反向解析服务器完成配置!



本文转自 zhangguangyi 51CTO博客,原文链接:http://blog.51cto.com/bosszhang/1688094


相关文章
|
4天前
|
网络协议
DNS正向解析实现
文章介绍了DNS正向解析的实现,包括资源记录的定义、配置区域解析记录的步骤,并通过实际操作展示了如何为"yinzhengjie.com"域名配置DNS解析记录。
14 2
DNS正向解析实现
|
4天前
|
存储 消息中间件 算法
深入解析OpenStack Cinder:块存储服务详解
本文介绍了OpenStack及其块存储服务Cinder。OpenStack是一个开源云计算管理平台,提供基础设施即服务(IaaS),核心服务包括计算、网络、存储等。Cinder主要用于为虚拟机提供持久性块存储,具备多种功能,如卷操作、备份、快照及与实例的交互等。此外,还详细介绍了Cinder的工作流程、命令行操作及不同存储插件的使用。
|
4天前
|
域名解析 网络协议
DNS服务工作原理
文章详细介绍了DNS服务的工作原理,包括FQDN的概念、名称解析过程、DNS域名分级策略、根服务器的作用、DNS解析流程中的递归查询和迭代查询,以及为何有时基于IP能访问而基于域名不能访问的原因。
14 2
|
4天前
|
弹性计算 开发框架 数据可视化
阿里云虚拟主机和云服务器有什么区别?多角度全解析对比
阿里云虚拟主机与云服务器ECS的主要区别在于权限与灵活性。虚拟主机简化了网站搭建流程,预装常用环境,适合初级用户快速建站;而云服务器提供全面控制权,支持多样化的应用场景,如APP后端、大数据处理等,更适合具备技术能力的用户。尽管虚拟主机在价格上通常更优惠,但随着云服务器价格的下降,其性价比已超越虚拟主机,成为更具吸引力的选择。
|
7天前
|
API C# 开发框架
WPF与Web服务集成大揭秘:手把手教你调用RESTful API,客户端与服务器端优劣对比全解析!
【8月更文挑战第31天】在现代软件开发中,WPF 和 Web 服务各具特色。WPF 以其出色的界面展示能力受到欢迎,而 Web 服务则凭借跨平台和易维护性在互联网应用中占有一席之地。本文探讨了 WPF 如何通过 HttpClient 类调用 RESTful API,并展示了基于 ASP.NET Core 的 Web 服务如何实现同样的功能。通过对比分析,揭示了两者各自的优缺点:WPF 客户端直接处理数据,减轻服务器负担,但需处理网络异常;Web 服务则能利用服务器端功能如缓存和权限验证,但可能增加服务器负载。希望本文能帮助开发者根据具体需求选择合适的技术方案。
29 0
|
7天前
|
Java 数据库 API
JSF与JPA的史诗级联盟:如何编织数据持久化的华丽织锦,重塑Web应用的荣耀
【8月更文挑战第31天】JavaServer Faces (JSF) 和 Java Persistence API (JPA) 分别是构建Java Web应用的用户界面组件框架和持久化标准。结合使用JSF与JPA,能够打造强大的数据驱动Web应用。首先,通过定义实体类(如`User`)和配置`persistence.xml`来设置JPA环境。然后,在JSF中利用Managed Bean(如`UserBean`)管理业务逻辑,通过`EntityManager`执行数据持久化操作。
14 0
|
9天前
|
监控 网络协议 Java
Tomcat源码解析】整体架构组成及核心组件
Tomcat,原名Catalina,是一款优雅轻盈的Web服务器,自4.x版本起扩展了JSP、EL等功能,超越了单纯的Servlet容器范畴。Servlet是Sun公司为Java编程Web应用制定的规范,Tomcat作为Servlet容器,负责构建Request与Response对象,并执行业务逻辑。
Tomcat源码解析】整体架构组成及核心组件
|
1月前
|
存储 NoSQL Redis
redis 6源码解析之 object
redis 6源码解析之 object
51 6
|
16天前
|
测试技术 Python
python自动化测试中装饰器@ddt与@data源码深入解析
综上所述,使用 `@ddt`和 `@data`可以大大简化写作测试用例的过程,让我们能专注于测试逻辑的本身,而无需编写重复的测试方法。通过讲解了 `@ddt`和 `@data`源码的关键部分,我们可以更深入地理解其背后的工作原理。
16 1
|
26天前
|
开发者 Python
深入解析Python `httpx`源码,探索现代HTTP客户端的秘密!
深入解析Python `httpx`源码,探索现代HTTP客户端的秘密!
60 1

相关产品

  • 云解析DNS
  • 下一篇
    DDNS