rndc的相关知识:
1.什么是rndc:
Remote Name Domain Controller,远程名称域控制器
rndc 通过一个 TCP 连接与名字服务器通信,发送经过数字签名认证的命令。在当前版本的rndc 和 named 中,唯一支持的认证算法是 HMAC-MD5,在连接的两端使用共享密钥。它为命令请求和名字服务器的响应提供 TSIG类型的认证。所有经由通道发送的命令都必须被一个服务器所知道的 key_id 签名。
监听端口:953/tcp
语法:
rndc [-b address] [-c config] [-s server] [-p port]
[-k key-file ] [-y key] [-V] command
command is one of the following:
reload Reload configuration file and zones. #重新加载配置文件和区域文件
reconfig Reload configuration file and new zones only. #重新加载配置文件和新的区域文件
freeze Suspend updates to all dynamic zones.
stats Write server statistics to the statistics file. #将服务器统计信息写入统计文件中
stop Save pending updates to master files and stop the server.
halt Stop the server without saving pending updates.
flush Flushes all of the server's caches. #清空DNS缓存
status Display status of the server. #显示bind服务器的工作状态
2、rndc的调试和日志:
调试:显示程序运行中的详细信息(会产生I/O,正常情况下建议关闭)
调试级别:0,1,2,3...
提升调试级别:
rndc trace
rndc trace LEVEL
rndc notrace
打开查询日志:记录查询动作(会增加磁盘I/O)

——————————————————————————————————————————————————
主从DNS服务器的配置
功能:避免因主DNS服务器挂了而影响一个域下的所有主机无法访问;服务器可均衡访问负载。
从服务器上的解析库文件内容要与主服务器一致,从服务器要随时从主服务器同步,这个同步是单向的,只有从服务器拉取主服务器的解析库文件
如何令解析请求均衡负载

如果是对本地缓存DNS服务器的请求,则只需令本地一半主机DNS地址配置为主服务器的IP,另一半配置为从的即可;
如果是对互联网上负责指定域的服务器,则只需在该服务器上级DNS服务器写两条NS记录即可,bind给客户主机答案时会采取轮询方式。
配置主从服务器
主从服务器时间要一致。
从服务器的解析文件从主DNS服务器同步而来,不能手动创建和修改。从服务器的解析库文件放置在/var/named/slaves目录下。
named进程对工作目录/var/named是没有写权限的,而在从服务器上又不能像在主服务器上那样以管理员的身份手动创建解析库,故bind提供了一个目录/var/named/slaves用来专门存放同步而来的解析文件。named进程对该目录是有写权限的

区域的定义:
zone “区域名称” IN {
type slave; #区域类型为从DNS服务器
file "slaves/ZONE_NAME.zone"; #区域文件必须保存在slaves目录下,放在其他目录没有权限
masters { #指出主服务器是谁,注意:花括号前后要有一个空格
MASTER_DNS_IP;主dns服务器IP地址,可一个也可以多个
MASTER_DNS2_IP;
};
};
我们在这里以正向解析的主从DNS服务器配置为例子
首先编辑主dns服务器上的区域解析库文件添加相应记录

编辑从DNS服务器的/etc/named.rfc1912.zones 添加相应区域记录
zone "lishuai.com" IN {
type slave;
file "slaves/lishuai.com.zone";//这里的区域名称和解析库文件名称要和主DNS服务器的保持一致
masters { 192.168.2.18; };
};
在从DNS服务器上检查语法错误,重读配置文件

我们在主DNS服务器解析库文件里修改一下序列号

rndc reload
我们可以在主DNS服务器日志中看到

在从DNS服务器的/var/named/slaves内我们也可以看到同步的解析库文件


如果同步的解析库文件乱码,我们就在区域文件里指定格式即可
zone "lishuai.com" IN {
type slave;
file "slaves/lishuai.com.zone";
masters { 192.168.2.18; };
masterfile-format text;
};
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

测试

1、每个DNS服务器必须要有一个对应的NS资源记录;
2、创建slave的时候,其配置文件类型必须是type slve; 必须指定主服务器的 IP地址 ;
3、可以使用dig -t axfr test.com @server_IP 从主DNS服务器拉取所有解析库资源记录;
4、主辅同步完成后,将自动在slave服务器上的slaves/目录下生成zone文件,这些区域文件是从主DNS同步过来的,一般为只读,不建议更改slave的zone文件;
5、在主DNS上修改区域文件时,必须将SOA记录的serial加1 因为slave是通过serial值来进行判断更新的(windows系统上是自动完成的);
6、DNS的日志默认全部保存在/var/log/messege 文件中;
7、DNS的解析依赖于解析库,所以就算是所配置的内容是完全不存在的也可以解析(且正向解析和反向解析的解析库是各自独立的)。需要注意,正向解析里没有PTR记录,而反向解析库里不需要A记录、MX记录和CNAME记录

创建子域
这里我们还是以从DNS服务器作为子域服务器(192.168.2.29)主DNS服务器作为父域(192.168.2.18)
我们在子域服务器编辑/etc/named.rfc1912.zones创建子域区域文件
zone "son.lishuai.com" IN {
type master;
file "son.lishuai.com.zone";
};
创建子域区域文件的解析库文件

我们在父域服务器编辑解析库文件添加子域的NS记录和A记录

named-checkconf
named-checkzone lisuai.com lishuai.com.zone

extra GLUE A表示额外的粘附A记录
rndc reload

测试

此时我们把主从DNS服务器功能关掉 并且清除缓存我们测试一下子域是否能访问父域

rndc reload
rndc flush

此时我们发现子域无法解析父域
授权是自上而下的,上级(父域)知道下级(子域)的存在,而下级(子域)并不知道上级(父域)的存在(因此子域的解析从根开始层层往下迭代)
我们可以通过转发让子域也能解析父域
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

DNS名称解析转发器:

(1)当本地DNS服务器(也是转发器)收到查询时,它会尝试使用它主持和缓存的主要和辅助区域解析该查询;
(2)如果不能使用本地数据解析查询,此时它作为客户端,会将查询转发给外网DNS服务器;
(3)本地DNS(转发器)收到客户端的请求后会等待一段很短的时间,等待来自外网DNS的应答;
(4)对于外网DNS来说,它接收到的查询请求是递归查询,此时,它自己需要向外层层迭代找到最终答案返回给转发器(此时转发器作为DNS客户端)
(5)转发器将外网DNS返回的查询结果送到客户端(非权威答案),完成解析过程。
注:转发的前提——接收转发请求的服务器(这里是外网DNS)必须能够为请求者(这里是本地DNS,也是转发器)做递归查询;
3、转发的类型:
(1)无条件转发:转发所有针对非本机负责解析的区域的请求;

#在主配置文件/etc/named.conf的全局选项中添加如下内容:
options {
forwarders { ip; }; #指明转发器是谁
forward only|first; #only表示仅转发 ;first表示先进行转发,如果没查询到结果,那么它自己还会根据根提示向外迭代查询
};

(2)条件转发:仅转发对特定区域的请求(即转发域);

#在区域置文件/etc/named.rfc1912.zone中定义转发域:
zone "区域名称" IN {
type forward; #区域的类型为转发
forwarders { ip; }; #指明转发器是谁
forward only|first; #only表示仅转发 ;first表示先进行转发,如果没查询到结果,那么它自己还会根据根提示向外迭代查询

};

我们在子域服务器的全局配置文件里加入如下:

检查配置文件然后rndc reload
测试

此时子域已经能正常解析父域
我们把刚才在全局配置文件中加的转发给注释掉,然后rndc flush
在子域的的/etc/named.rfc1912.zones 配置条件转发,转发只针对父域的请求

zone "lishuai.com" IN {
type forward;
forwarders { 192.168.2.18; };
forward first;
};

检查配置文件并执行rndc reload
测试

此时针对lishuai.com的请求我们可以通过子域去解析

转载于:https://blog.51cto.com/12052401/2135278

Linux-dns基础知识和BIND的简单配置-3(主从DNS服务器及转发)相关推荐

  1. DNS 基础知识及 Linux DNS 服务器操作知识

    一.DNS域名结构与域名服务器 域名系统DNS(Domain Name System)是因特网使用的命名系统,用来把便于人们使用的机器名字转换成为IP地址.域名系统其实就是名字系统.为什么不叫&quo ...

  2. Linux驱动 简单的Linux驱动基础知识

    Linux驱动 简单的Linux驱动基础知识 一.简述         记--Linux驱动学习笔记. Linux驱动程序初始化硬件设备,并提供硬件控制接口给更上一层的应用调用. 例如使用QT应用程序 ...

  3. 一文搞懂 DNS 基础知识,收藏起来有备无患~

    你知道的越多,不知道的就越多,业余的像一棵小草! 你来,我们一起精进!你不来,我和你的竞争对手一起精进! 编辑:业余草 juejin.cn/post/6844903497494855687 推荐:ht ...

  4. Linux系统基础知识

    Linux系统基础知识 1.在Linux系统中,以文件方式访问设备.   2. Linux内核引导时,从文件 /etc/fstab中读取要加载的文件系统. 3. Linux文件系统中每个文件用 ino ...

  5. Kali Linux渗透基础知识整理(四):维持访问

    Kali Linux渗透基础知识整理系列文章回顾 维持访问 在获得了目标系统的访问权之后,攻击者需要进一步维持这一访问权限.使用木马程序.后门程序和rootkit来达到这一目的.维持访问是一种艺术形式 ...

  6. Linux操作系统基础知识学习

    Q1.什么是GNU?Linux与GNU有什么关系? A: 1)GNU是GNU is Not Unix的递归缩写,是自由软件基金会(Free Software Foundation,FSF)的一个项目, ...

  7. Linux常用基础知识必备三之常用指令及操作

    Linux常用基础知识必备三之常用指令及操作 1.vi和vim vi如何使用 vi几种模式下的操作指令 命令模式进入编辑模式 命令模式下的快捷键 底行模式(指按了esc键之后输入按键:后出现) 字符串 ...

  8. 一文搞懂 DNS 基础知识,收藏起来有备无患

    点击上方 "编程技术圈"关注, 星标或置顶一起成长 后台回复"大礼包"有惊喜礼包! 每日英文 Life is just like a journey. Ther ...

  9. 权限认证php,2016年Linux认证基础知识:php做权限管理

    2016年Linux认证基础知识:php做权限管理 在学习Linux认证过程中,每个人会遇到每个人不同的问题,或小或大,那么你知道在Linux下,php怎么做权限管理?下面跟yjbys小编来看看最新的 ...

最新文章

  1. 关于某日访问次数最多的IP的topK问题的三种解法
  2. 爬虫图片href是html图片,python爬虫取图片详解,
  3. Google的预训练模型又霸榜了,这次叫做T5(附榜单)
  4. dataframe for 循环 数据格式 python_Python中的for循环
  5. ACCP8.0Y2Web前端框架与移动应用开发第5章Bootstrap制作微票儿首页
  6. python 无序表查找
  7. axure 小程序 网盘_万门大学微信小程序实战开发特训班【完结】网盘高清全套最新系列精品课程...
  8. JSP过滤器Filter配置过滤类型汇总
  9. jmeter判断值是否相等_jmeter beanshell判断响应的json值是否正确;
  10. 使用Google WebP图片格式帮助控制网站页面大小
  11. HEVC---xCompressCU()函数作用及位置
  12. python语言与c语言相比在分支结构上有什么不同_C语言顺序结构和分支结构总结...
  13. BM3D 去噪算法原理解析与代码实现
  14. 【采坑】CocosCreator 使用对象池再次创建对象创建节点时出现的某明的bug,节点使用了动作系统
  15. (搞笑)经典!一些很彪悍的句子 !!!
  16. MinIO 中的图片在前端列表渲染时报错 404
  17. java右移和无符号右移区别_Java 无符号右移与右移运算符的使用介绍
  18. katex常用公式符号一览表
  19. PDF如何生成电子书分享
  20. h5禁用浏览器下载视频_阻止下载HTML5视频(右键单击保存)?

热门文章

  1. photoshop的页面制作练习2
  2. linux下u盘的使用
  3. 2010伊始就这么忙
  4. SQL定时自动备份,并将备份文件加密压缩并自动下载的实现
  5. vue2+vuex+vue-router 快速入门(三) vue 实例介绍
  6. 官方实锤!微软宣布以 75 亿美元收购 GitHub
  7. 【不积跬步,无以致千里】linux下如何查看自己的外网IP
  8. Windows下架设SVN服务
  9. 6-2 是否二叉搜索树 (25 分)
  10. 动手学习数据分析(二)——数据处理