一、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记录是成对出现   如:

 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软件包的安装以及配置文件简介

1、bind软件包的安装

在使用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缓存名称服务器

2、DNS监听的协议及端口

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

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

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

3、bind配置文件简介

/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           Internet的13个根服务器名字和地址,DNS接到客户端主机的查询请求时,如果在Cache中找不到相应的数据,就会通过根服务器进行逐级查询。

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

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

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

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

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

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

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; ) 前后有空格

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

1、配置缓存服务器

打开并编辑/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";                #定义区域数据文件
};
检查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查看服务是否启动正常

[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. 命令测试本地缓存解析

2、配置正向解析,反向解析DNS服务器

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

NS主DNS服务器master:192.168.1.192

NSSOA为ns1.51yunxuexi.club.

www服务器:192.168.1.106  192.168.1.103

mail服务器: 192.168.1.104

有一台ftp在www主机上,ftp是www的别名CNAME

SOA:起始授权记录格式

ZONE NAME           TTL          IN         SOA    FQDN(主DNS名称)  ADMIN MAIL(SerialnumberRefreshRetryExpireNattl )
$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。

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

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

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

修改/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创建反向解析

使用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命令测试正反向解析是否能正常解析

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

转载于:https://blog.51cto.com/bosszhang/1688094

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

  1. Linux配置启动挂载:fstab文件详解

    Linux配置启动挂载:fstab文件详解 [日期:2014-12-23] 来源:Linux社区 作者:aceking10 [字体:大 中 小] fstab文件介绍 fstab文件包含了你的电脑上的存 ...

  2. ElasticSearch预警服务-Watcher详解-Schedule配置

    介绍 Watcher服务详解-定时器的设定 关于Schedule配置选择,Watcher提供了丰富的时间语法支持,采用UTC时间,来我们一起看下如何设置: 支持的设置方式: hourly:按小时周期设 ...

  3. linux下 卸载qt_Ubuntu14.04安装、配置与卸载QT5的步骤详解

    1.之前我下载的是QT5.13版本但是安装结束后Qtcreator出现打不开,这里我推荐Qt5.9版本,下载网址如下: https://download.qt.io/official_releases ...

  4. Linux卸载安装bind,Bind编译安装详解

    Bind编译安装详解 Bind是一款开放源码的DNS服务器软件,由美国加州大学Berkeley分校开发和维护的,全名为Berkeley Internet Name Domain它是目前世界上使用最为广 ...

  5. Tomcat安装、配置、优化及负载均衡详解

    博客园 首页 新随笔 联系 管理 订阅 随笔- 31  文章- 0  评论- 25  Tomcat安装.配置.优化及负载均衡详解 一.常见JavaWeb服务器      1.WebLogic:是BEA ...

  6. 【Linux】循序渐进学运维-服务篇-FTP服务配置文件详解

    大家好,我是互联网老辛,本文是Linux运维-循序渐进学运维-服务篇的第14篇文章 文章目录 前言 ftp配置文件详解 1. 常见默认配置参数 2. 常见参数的含义 配置文件使用举例 1. 创建本地用 ...

  7. 详解Nginx SSL快速双向认证配置(脚本)

    这篇文章主要介绍了详解Nginx SSL快速双向认证配置(脚本),现在分享给大家,也给大家做个参考.一起跟随小编过来看看吧 目前遇到一个项目有安全性要求,要求只有个别用户有权限访问.本着能用配置解决就 ...

  8. 从一份配置清单详解Nginx服务器配置

    概述 在前面<Nginx服务器开箱体验> 一文中我们从开箱到体验,感受了一下Nginx服务器的魅力.Nginx是轻量级的高性能Web服务器,提供了诸如HTTP代理和反向代理.负载均衡.缓存 ...

  9. mysql data文件夹恢复_【专注】Zabbix源码安装教程—步骤详解(2)安装并配置mysql...

    四.安装并配置mysql(1) 解压mysql-5.7.26.tar.gz与boost_1_59_0.tar.gz #tar -xvf mysql-5.7.26.tar.gz #tar -xvf bo ...

最新文章

  1. 谈GPT-2(附大量网址)
  2. 【java设计模式】-00目录
  3. sudo apt-get update后public key is not available公钥不存在问题解决
  4. python实现 多叉树 寻找最短路径
  5. java基础:12.7 对象流 ObjectInputStream、ObjectOutputStream
  6. 第 133 章 FAQ
  7. 5.3矩阵的压缩存储(稀疏矩阵转置和快速转置)
  8. python设计模式总结
  9. java泛型约束_java泛型
  10. python语言单词_python – 在动词/名词/形容词之间转换单词
  11. gitlab mysql 坑_gitlab迁移和踩坑
  12. SecureCRT上传下载位置
  13. 数学和计算机竞赛,数学奥赛VS信息学奥赛,数学基础扎实的孩子
  14. 简单理解-Head First 设计模式
  15. Android 谷歌地图不显示,Android谷歌地图不显示在模拟器
  16. 谷哥学术2022年2月资源分享下载列表 08/20
  17. 实习收获之 获取json对象键值的几种方法
  18. 苹果消息是先推送到服务器,iPhone消息推送机制实现与探讨
  19. 计算机每次网络重插才能启动,为何电脑开机后再插网线才能用_每次开机都要重插网线的解决方法...
  20. 飞机一般是什么操作系统?

热门文章

  1. matlab 计算N天前(后)的日期
  2. 【Ogre-windows】旋转矩阵及位置解析
  3. 编程书单:十本Python编程语言的入门书籍
  4. pycharm安装lxml
  5. vue中 mock使用教程
  6. MIME类型不可小视
  7. jquery插件封装指南
  8. Vue多字段下的非空判断(new Promise)
  9. 【Zigbee技术入门教程-02】一图读懂ZStack协议栈的核心思想与工作机理
  10. 【noip模拟】德充符