一、DNS的描叙及层次结构:

1、DNS:domain name service,即域名服务,是把复杂的IP地址解析成我们易于记忆并理解的域名,以方便在网络上通信。

2、DNS的层次:DNS呈金字塔状结构,根域在最顶层,向下依次为一级域、二级域、三级域(或有或无)、主机名。如下所示:

A、根域:. ,以“.”来标识,全世界有13组根域服务器。

B、一级域:(1)组织域:.com,,.org, .mil, .gov, .edu, .net

(2)国家域:.cn,.hk,.tw,.jp,.ir,.iq,.us,.uk

(3)反向域:.in-addr.arpa

C、二级域:需要向一级域申请和注册二级域名,如:xybbs.com,hello.net.

D、三级域:可有可无,通常用在父子域关系中,如:tech.hello.edu.

E、主机:具体的主机,即FQDN,Full Qualified Domain Name,完全合格的域名,如:www.baidu.com

二、linux上的DNS实现程序工具:

1、实现工具:BIND(Berkeley Internet NameDomain), PowerDNS, dnsmasq。我们以bind为例来介绍DNS的安装和使用。

2、使用yum安装bind程序包以及相应的路径:

图1

图2

三、名称解释:

1、DNS查询类型:

(1)递归查询:只发出一次请求就得到最终结果。只有客户端主机才能向DNS服务器递归,且DNS服务器必须允许客户端递归,即recursion yes,客户端才能得到结果。根域是不允许客户端主机递归的。

(2)迭代查询:经过多次查询才能返回结果。只有DNS服务器才能向其他DNS服务器进行多次迭代查询。

2、名称解析类型:

(1)正向解析:通过完全合格的域名来解析IP地址。

(2)反向解析:通过IP地址来解析完全合格的域名。

3、资源记录的类型:

(1)SOA:Start OfAuthority,起始授权,上级区域授权某一区域来管理的区域。SOA只能有一个。

(2)NS:Name Server,域名服务器,标明某一DNS服务器所管理的区域。NS可以有多个,如辅助DNS服务器的NS记录,子域的NS记录。

(3)MX:MaileXchanger,邮件交换器,标明该区域的邮箱服务。

(4)A:internetaddress,地址记录,通常是正向解析。

(5)PTR:PoiTeR,指针记录,通常用于反向解析。

(6)AAAA:address,IPV6的正向解析记录。

(7)CNAME: Canonical Name,别名记录。通常用于A记录的别名。

4、DNS服务器类型:

(1)主DNS服务器:只能有一个。

(2)辅助DNS服务器:辅助主DNS服务器工作,在主DNS服务器宕机的时候能顶替上去,辅助DNS要实时从主DNS同步区域名称和区域数据库文件。辅助DNS可以有多个。

(3)缓存名称服务器:缓存其它客户端向DNS服务器递归查询后,DNS服务器迭代查询所缓存的的DNS记录。

(4)转发DNS服务器:某一DNS服务器无法查询的记录会转发给其它DNS服务器进行查询,那么前一个DNS服务器就是一个转发DNS服务器。

5、区域传送:辅助DNS服务器从主DNS服务器或其它的辅助DNS服务器请求传输数据的过程:

(1)完全区域传送:传送区域的所有数据,命令为AXFR。

(2)增量区域传送:传送区域中改变的数据部分,命令为IXFR。

6、子域授权:父域DNS服务器授权子域DNS服务器所管理的区域。所以父域DNS服务器的配置文件中要有:授权的子区域名称、子区域的名称服务器、子区域的名称服务器的IP地址,并且子域要设置好自己的区域数据文件,并把DNS服务器指向父域。如:父域为:yanhai.com.,子域为tech.yanhai.com.。

7、转发机制:配置好父子域之后,子域会无法解析父域的资源记录,或子域想解析其它区域的资源记录,那么就得在子域上做好转发,并把地址指向想要解析的区域。转发分2种,区域转发和全局转发,如果想解析某一或某些区域,则设置区域转发,如果想让本地客户端解析所有区域,则设置全局转发。

8、view视图:通常是让内外网或不同地区访问某一网站时,访问的FQDN都一样,但解析的IP地址不同。View提高了不同地区访问网站的速度。

9、rndc: Remote Name Domain Controller,即远程名称域控制器,是远程管理BIND的工具,能够实现重新载入区域数据文件、重新加载主配置文件等远程操作。

四、正向解析、反向解析的实现:

1、配置bind的主配置文件/etc/named.conf:

图片3

图4

2、从一级域.com那里申请yanhai.com.的二级域名,并在/etc/named.rfc1912.zones中配置yanhai.com的区域:

图片5

图6

3、正向区域的区域数据库文件:

图7

图8

说明:

资源记录的格式:

name    [ttl]    IN       RRtype           Value

(1)SOA:只能有一个

name: 区域名称, 通常可以简写为@,例如:yanhai.com.

value: 主DNS服务器的FQDN

注意:SOA必须是区域数据库文件第一条记录

如:@    600     IN          SOA          dns.yanhai.com.       admin.yanhai.com.(

serialnumber ;序列号,十进制数字,不能超过10位,通常使用日期,例如2014031301

refreshtime;刷新时间,即每隔多久到主服务器检查一次

retrytime;重试时间,应该小于refresh time

expiretime;过期时间

negativeanswer ttl;否定答案的ttl

(2) NS:可以有多条

name: 区域名称,通常可以简写为@

value: DNS服务器的FQDN(可以使用相对名称)

如:@          600      IN      NS           dns

(3)A:只能定义在正向区域数据库文件中

name: FQDN(可以使用相对名称)

value: IP

如:www         600           IN         A         172.16.35.100

(4) MX: 可以有多个

name: 区域名称,用于标识smtp服务器

value: 包含优先级和FQDN

优先级:0-99, 数字越小,级别越高

如:@     600    IN       MX   10        mail

@     600    IN       MX   20        mail2

(5)CNAME: 别名

name: FQDN

value: FQDN

如:

ftp      IN       CNAME          www

pop      IN       CNAME          mail

(6)PTR:IP-->FQDN, 只能定义在反向区域数据文件中,反向区域名称为逆向网络地址加.in-addr.arpa.后缀组成

name: IP, 逆向的主机地址,例如172.16.35.100的name为100.35,完全格式为。100.35.16.172.in-addr.arpa.

value: FQDN

4、反向区域的区域数据库文件:

图9

图10

5、更改主配置文件和区域数据库文件的属主为root,属组为named,权限为640:

图11

6、重启bind的named服务:

图12

7、用dig工具模拟正向解析:

图13

8、用dig工具模拟反向解析:

图14

五、主DNS和辅助DNS服务器的实现:

1、配置辅助DNS服务器的IP为172.16.35.2,并把DNS指向主DNS服务器的地址172.16.35.1:

图15

2、辅助DNS服务器安装bind程序。

3、在主DNS服务器上的正向区域数据库文件中添加辅助DNS服务器的NS记录及其A记录:

图16

4、在辅助DNS服务器上的/etc/named.rfc1912.zones文件中定义区域yanhai.com,区域类型为slave,即辅助DNS服务器,masters中写上主DNS服务器的IP,并指定辅助DNS服务器的区域数据库文件在slaves目录下:

图17

5、在主DNS服务器上生成远程DNS控制器的配置文件:

图18

图19

6、把rndc配置文件中后半部分内容复制到/etc/named.conf中去:

图20

7、重启named服务,并查看rndc运行状态:

图21

8、重启辅助DNS服务器后查看其数据库文件已传送成功:

图22

9、在主DNS服务器上添加一条A记录,并把序列号增加一个数:

图23

10、重启主DNS服务器和辅助DNS服务器的named服务,然后查看辅助DNS的数据库文件中已成功传送到一条A记录:

图24

11、在辅助DNS服务器上使用host解析2条A记录:

图25

六、子域授权和转发机制:

1、在子域tech.yanhai.com中设置子域DNS服务器的IP为172.16.35.3,DNS地址指向父域172.16.35.1(yanhai.com):

图26

2、注释子域的主配置文件中的某些部分,见图3。

3、在子域DNS服务器上的/etc/named.rfc1912.zones文件中配置子域信息:

图27

4、配置子域的区域数据库文件:

图28

5、更改子域的区域数据库文件的权限及属主、属组:

图29

6、在父域yanhai.com的区域数据库文件中添加子域的NS记录和子域的A记录:

图30

7、分别重启父域和子域的named服务。

8、在父域上能解析子域的A记录:

图31

9、在子域上能解析本区域的A记录:

图32

10、在子域上无法解析父域的资源记录,原因是在子域上没有配置转发:

图33

11、在子域的区域文件中配置对yanhai.com区域的解析都转发到yanhai.com区域:

图34

12、重启子域的named服务后,子域能够解析父域的主机了:

图35

13、如果想让子域内客户端能够通过北京DNS服务器来上网,可在主配置文件的全局选项中添加转发地址为北京DNS服务商的地址,或是如果父域和互联网相通,子域可在主配置文件的全局选项中添加转发的IP为父域的IP:

图36

七、view视图:

1、在一台linux服务器上配置2个IP,一个为内网用户解析,一个为外网用户解析:

图37

2、注释掉viewDNS服务器的主配置文件的某些部分,如图3。

3、在/etc/named.rfc1912.zones中定义视图:

图38

图39

4、配置相同区域解析不同IP的区域数据库文件:

图40

图41

5、更改2个区域数据库文件的权限和属主属组:

图42

6、重启named服务后在内网和外网各解析www.yanhai.com,解析的IP不同:

图43

图44

八、结束语:

至此,bind中基本的解析配置都已完成,DNS中还涉及一些高级的配置,还待我们进一步研究。。。

转载于:https://blog.51cto.com/yanhai/1376232

Linux上DNS实现工具之bind详叙相关推荐

  1. linux上传下载工具lrzsz

    linux上传下载工具lrzsz ubuntu安装 sudo apt-get install lrzsz centos安装 yum -y install lrzsz 下载 操作 命令 下载文件 sz ...

  2. linux sfdisk命令,Linux运维知识之Linux sfdisk硬盘分区工具程序命令详解

    本文主要向大家介绍了Linux运维知识之Linux sfdisk硬盘分区工具程序命令详解,通过具体的内容向大家展现,希望对大家学习Linux运维知识有所帮助. 功能说明:硬盘分区工具程序. 语 法:s ...

  3. Linux上音频转换工具mpg123

    今天在做中文语音识别的时候碰到需要将mp3文件转码为wav格式,且需要是单声道和16KHZ,想着linux上用命令行会比较简单,于是找到了mpg123工具. 安装 sudo yum install m ...

  4. 【DNS】Linux上DNS缓存的开启和清理

    DNS 缓存是一个临时数据库,用于存储有关以前的 DNS 查找的信息. 换句话说,每当你访问网站时,你的操作系统和网络浏览器都会保留该域和相应 IP 地址的记录. 这消除了对远程 DNS 服务器重复查 ...

  5. linux bind 分离 DNS,Linux智能DNS服务搭建之Bind服务(一)

    一.准备工作 1.DNS学前准备 学习目标: 1.了解原理:dns实现原理及实际dns应用 2.动手搭建:掌握Bind服务的搭建过程及DNS测试方法 3.深入学习:dns负载均衡实现 4.掌握应用:只 ...

  6. linux的dns查询工具,一款超强的统计DNS查询的工具--DNSTOP

    一款超强的统计DNS查询的工具--DNSTOP 在维护DNS服务器时,偶们希望知道到底是哪些用户在使用偶们的DNS服务器,同时也希望能对DNS查询做一个统计.一般情况下,偶们可以使用 tcpdump ...

  7. Linux下安全扫描工具Nmap用法详解

    扫描器是一种能够自动检测主机安全性弱点的程序.扫描器通过发送特定的网络数据包,记录目标主机的应答消息,从而收集关于目标主机的各种信息.目前网络上有很多扫描软件,比较著名的扫描器有SSS,X-Scan, ...

  8. Linux上C语言程序编译过程详解

    点击蓝字 关注我们 因公众号更改推送规则,请点"在看"并加"星标"第一时间获取精彩技术分享 来源于网络,侵删 本文将介绍如何将高层的C/C++语言编写的程序转换 ...

  9. linux 上传下载工具有哪些,Linux上传下载工具

    远程连接Linux(如:Xshell.SecrueCRT),把需要上传文件和下载文件到Linux.使用下面几种方法都可以实现: 一.首先确定Linux服务器安装了lrzsz,如果没安装进行安装:yum ...

最新文章

  1. day042前端之HTML
  2. 使用pydub实现训练声音数据集加噪
  3. java 反射 注解 运用_Java注解与反射的使用
  4. 简单比较Python的数据持久化操作
  5. win10 tensorrt安装 踩坑记录
  6. 【20160924】GOCVHelper综述
  7. 不想跑数了,数据分析师的前途在哪里?
  8. v-on指令修饰符大全
  9. nginx https透明代理_nginx正向https代理配置
  10. linux6.3 插u盘,U盘安装centos 6.3教程(超级详细教程)
  11. plex插件显示无服务器,Plex插件
  12. 机器视觉入门——Halcon软件学习<1>
  13. DEP和ASLR的原理与破解
  14. 2019最新升级【超能版】 vbox硬件级虚拟机系统 去虚拟化去vm标识 支持批量启动 批量克隆 CPA网赚挂机电商 virtualbox
  15. 根据首字母排序英文名c语言,英文名按首字母排序的问题
  16. C语言|博客作业04
  17. iphone照片恢复至android,绝招!如何恢复苹果/安卓手机上误删的照片,详细教程奉上!...
  18. python 创建虚拟环境报错
  19. HDU - 5965 扫雷(dp[好理解,但不那么优的题解])
  20. 农业产业化发展趋势下人力资源管理浅析

热门文章

  1. python 预测算法_通过机器学习的线性回归算法预测股票走势(用Python实现)
  2. Java的Runtime类介绍
  3. 百练OJ:2714:求平均年龄
  4. Linux 运维日常 40 个命令汇总
  5. Winform中选取指定文件夹并获取其下所有文件
  6. CentOS7中怎样安装JDK与配置环境变量
  7. 信息系统项目管理师-信息系统项目整体管理核心知识点思维脑图
  8. Chrome浏览器Json查看插件JsonHandle下载以及无法安装插件的解决方法
  9. Junit单元测试时提示:Method should have no parameters
  10. SpringBoot中使用thymeleaf的switch来实现if-else if -else的效果