Linux上DNS实现工具之bind详叙
一、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详叙相关推荐
- linux上传下载工具lrzsz
linux上传下载工具lrzsz ubuntu安装 sudo apt-get install lrzsz centos安装 yum -y install lrzsz 下载 操作 命令 下载文件 sz ...
- linux sfdisk命令,Linux运维知识之Linux sfdisk硬盘分区工具程序命令详解
本文主要向大家介绍了Linux运维知识之Linux sfdisk硬盘分区工具程序命令详解,通过具体的内容向大家展现,希望对大家学习Linux运维知识有所帮助. 功能说明:硬盘分区工具程序. 语 法:s ...
- Linux上音频转换工具mpg123
今天在做中文语音识别的时候碰到需要将mp3文件转码为wav格式,且需要是单声道和16KHZ,想着linux上用命令行会比较简单,于是找到了mpg123工具. 安装 sudo yum install m ...
- 【DNS】Linux上DNS缓存的开启和清理
DNS 缓存是一个临时数据库,用于存储有关以前的 DNS 查找的信息. 换句话说,每当你访问网站时,你的操作系统和网络浏览器都会保留该域和相应 IP 地址的记录. 这消除了对远程 DNS 服务器重复查 ...
- linux bind 分离 DNS,Linux智能DNS服务搭建之Bind服务(一)
一.准备工作 1.DNS学前准备 学习目标: 1.了解原理:dns实现原理及实际dns应用 2.动手搭建:掌握Bind服务的搭建过程及DNS测试方法 3.深入学习:dns负载均衡实现 4.掌握应用:只 ...
- linux的dns查询工具,一款超强的统计DNS查询的工具--DNSTOP
一款超强的统计DNS查询的工具--DNSTOP 在维护DNS服务器时,偶们希望知道到底是哪些用户在使用偶们的DNS服务器,同时也希望能对DNS查询做一个统计.一般情况下,偶们可以使用 tcpdump ...
- Linux下安全扫描工具Nmap用法详解
扫描器是一种能够自动检测主机安全性弱点的程序.扫描器通过发送特定的网络数据包,记录目标主机的应答消息,从而收集关于目标主机的各种信息.目前网络上有很多扫描软件,比较著名的扫描器有SSS,X-Scan, ...
- Linux上C语言程序编译过程详解
点击蓝字 关注我们 因公众号更改推送规则,请点"在看"并加"星标"第一时间获取精彩技术分享 来源于网络,侵删 本文将介绍如何将高层的C/C++语言编写的程序转换 ...
- linux 上传下载工具有哪些,Linux上传下载工具
远程连接Linux(如:Xshell.SecrueCRT),把需要上传文件和下载文件到Linux.使用下面几种方法都可以实现: 一.首先确定Linux服务器安装了lrzsz,如果没安装进行安装:yum ...
最新文章
- day042前端之HTML
- 使用pydub实现训练声音数据集加噪
- java 反射 注解 运用_Java注解与反射的使用
- 简单比较Python的数据持久化操作
- win10 tensorrt安装 踩坑记录
- 【20160924】GOCVHelper综述
- 不想跑数了,数据分析师的前途在哪里?
- v-on指令修饰符大全
- nginx https透明代理_nginx正向https代理配置
- linux6.3 插u盘,U盘安装centos 6.3教程(超级详细教程)
- plex插件显示无服务器,Plex插件
- 机器视觉入门——Halcon软件学习<1>
- DEP和ASLR的原理与破解
- 2019最新升级【超能版】 vbox硬件级虚拟机系统 去虚拟化去vm标识 支持批量启动 批量克隆 CPA网赚挂机电商 virtualbox
- 根据首字母排序英文名c语言,英文名按首字母排序的问题
- C语言|博客作业04
- iphone照片恢复至android,绝招!如何恢复苹果/安卓手机上误删的照片,详细教程奉上!...
- python 创建虚拟环境报错
- HDU - 5965 扫雷(dp[好理解,但不那么优的题解])
- 农业产业化发展趋势下人力资源管理浅析
热门文章
- python 预测算法_通过机器学习的线性回归算法预测股票走势(用Python实现)
- Java的Runtime类介绍
- 百练OJ:2714:求平均年龄
- Linux 运维日常 40 个命令汇总
- Winform中选取指定文件夹并获取其下所有文件
- CentOS7中怎样安装JDK与配置环境变量
- 信息系统项目管理师-信息系统项目整体管理核心知识点思维脑图
- Chrome浏览器Json查看插件JsonHandle下载以及无法安装插件的解决方法
- Junit单元测试时提示:Method should have no parameters
- SpringBoot中使用thymeleaf的switch来实现if-else if -else的效果