Linux的bind服务_linux bind_Mllllk的博客-程序员秘密

技术标签: 运维  linux  服务器  linux网络与服务  

以下的讲解是bind服务结合chroot之后

1、配置主配置文件

首先我们需要配置主配置文件,主配置文件可以将/etc/named.conf 这个文件复制到/var/named/chroot/etc目录下,这个文件我们需要修改的地方就是修改下面两个红线的地方。

第一个红线代表服务器上哪些地址在监听53号端口,第二个红线代表允许哪些地址可以进行地址查询。

2、然后配置进行区域的添加

区域的添加可以直接在主配置文件上进行,也可以使用include,然后在另一个文件上面进行,在主配置文件的底部就有一个include的文件专门给我们去添加区域。如下图红线上方的文件。

3、添加区域的语法

(1)正向主区域的添加:

zone "区域名" {

type master;

file "区域文件名";

allow-transfer { [网段|单个IP|域名|any]|none; }; //指定哪些主机可以接受来自该server的区域信息的传送

allow-update { [网段|单个IP|域名|any|none]; };  //指定了允许哪些主机提交该区域的动态DNS更新。默认是拒绝来自所有主机的更新。

};

(2)逆向主区域的添加

zone "区域名.in-addr.arpa" {

type master;

file "区域文件名";

allow-transfer { [网段|单个IP|域名|any|none]; }; //指定哪些主机可以接受来自该server的区域信息的传送

allow-update { [网段|单个IP|域名|any|none]; };  //指定了允许哪些主机提交该区域的动态DNS更新。默认是拒绝来自所有主机的更新。

};

(2)辅助区域的添加:

zone "区域名" {

type slave;

file  "slaves\区域文件名" 

masters { IP地址1;IP地址2;....IP地址n; }; //主服务器的IP地址

allow-transfer { [网段|单个IP|域名|any|none]; }; //指定哪些主机可以接受来自该server的辅助区域信息的传送
allow-update-forwarding { [网段|单个IP|域名|any|none]; }; //指定哪些主机可以通过该从DNS服务器去进行主DNS服务器的DNS记录资源的更新

};

辅助区域从主区域获取到的区域文件存储在file项定义的路径中

(3)转发区域的添加:

部分转发

zone "区域名" {

type forward;

forwarders { IP地址1;IP地址2;....IP地址n; };

forward 【first|only】;

};

其中first代表先转发给其他DNS服务器,不行的话再自己来,only代表只转发给其他服务器,自己不做任何操作。

(4)全部转发:

也可以直接在主配置文件上输入:forwarders { IP地址1;IP地址2; };这样就代表不管是什么查询都直接转发给别的DNS服务器。

下面的图片是正反主区域的两个例子:

下面两个是对应着上图的正反辅助区域的例子

4、区域文件的语法

区域文件的存储位置在/var/named/chroot/var/named,相关配置在主配置文件中定义。

首先区域文件的名字一定和主配置文件中定义的区域文件名相同,比如file xxx ,那么在var/named中创建的区域文件名也要叫xxx。

我们可以直接将/var/named/chroot/var/named目录中的其他区域文件模板复制过来然后直接使用即可,比如named.localhost文件。

下面是一个正向区域的区域文件

第一行的TTL代表的是该记录在客户机上存活的时间,也就是在缓存中存在的时间,改图的存活时间是一天,D是天,H是小时,W是星期。

第二行要改的地方只有SOA的后面,后面要跟上两个域名,第一个是本区域的域名,第二个是管理的邮箱号,但是邮箱号的@被切换为了“.” ,

第三行是序列号,用于主从服务器进行数据的更新的,从服务器会从主服务器上下载区域文件,然后当设定的时间到后会去比对它们的序列号值,当主服务器上的序列号比较大的时候,就要从主服务器上进行相关数据的下载。

第四行代表多久进行一次比对和数据的刷新

第五行代表如果比对或者数据的刷新失败的话,过多久再试一次

第六行代表如果从服务器和主服务器彻底失去联系后,它的数据还能有效多久

第七行代表的是无效解析的缓存时间

PS!!!:注意区域文件里面出现的域名的尾部都要以"."结尾。

其中的IN我们可以将它看作是一个固定格式,其实这个东西不写也可以,但是就是好看

IN  NS my.fuck.com. :这一行是无论正向区域文件还是反向区域文件都要添加的一行,这一行书写了改区域内的域名服务器的域名,而NS代表着这个my.fuck.com这个主机是一个域名服务器。

 my.fuck.com.  IN  A  192.168.1.11 :这一行的最左边是域名,IN是固定格式,A代表着该资源的类型,标识这条记录是记录着一个IPv4的主机正向域名,最右边是它对应的IP地址。如果想要添加正向记录按这个格式添加就可以了。

别名记录的添加:AA.fuck.com IN  CNAME  BB.fuck.com ,最左边的是域名,IN是固定格式,CNAME是资源类型,标识该记录是别名记录,BB.fuck.com是AA.fuck.com的真实域名记录,而AA.fuck.com只是一个别名。

5、主从区域传送

1、在主服务器主配置文件的区域信息中添加allow-transfer { 允许的主机的IP  };

2、在从服务器上安装BIND服务,然后将基础环境部署完成

3、在从服务器上的主配置文件中加入辅助区域(语法如下:)

zone "区域名" {

type slave;

file  "slaves\区域文件名" 

masters { IP地址1;IP地址2;....IP地址n; }; //主服务器的IP地址

allow-transfer { [网段|单个IP|域名|any]; }; //指定哪些主机可以接受来自该server的区域信息的传送
allow-update-forwarding { [网段|单个IP|域名|any]; }; //指定哪些主机可以通过该从DNS服务器去进行主DNS服务器的DNS记录资源的更新

};

4、当1,2,3步骤都做了之后,我们还要注意/var/named/chroot/var/named/slaves目录对于named用户来说是否有写的权限,因为named用户需要将主服务器上获取到的区域文件放在slaves目录中,如果没有服务虽然会起来,但是slaves目录中是没有任何东西。如果权限都有之后,且主服务器的相关配置以及生效,我们只要重启从服务器上的bind服务,就可以看到对应的区域文件了。

6、根据IP地址区分DNS解析

这里使用view语法和zone语法结合,先来看一个例子:

我们在外面使用view "view名" {  } 将所有的zone包括在里面,注意外面我把根域的zone也包括在里面了,这是view的语法规定,所有的zone都要在view里面。然后看例子中的

match-clients { 【网段|单个IP|any|none】 };这条语句的作用是当查询者的IP是花括号里面的IP的时候,就使用该view中的区域文件,如果不满足,那么要么使用其他view的区域文件,要么就不使用任何的区域文件。如果该语句没有加,那么默认是允许所有人都使用该view中的区域文件。

match-destinations { address_match_list } ;

match-recursive-only { yes_or_no } ;

上面是其他两个限制语句match-destinations 代表我根据查询者要查询的目标来区分和限制,match-recursive-only表示我要根据用户是否要求进行递归查询来区分和限制。

 我们可以根据不同的区域的客户IP,然后准备两份DNS区域文件,通过我们精心设计区域文件中的内容,可以让客户根据域名解析到离自己更近的服务器,这样可以加强客户的使用体验。

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_47529104/article/details/122812399

智能推荐

Java 8虚拟扩展方法_dnc8371的博客-程序员秘密

我一直关注Java 8 Lambda表达式项目的发展已经有一段时间了,我对其当前的进展状态感到非常兴奋。 我发现的最新“易于理解”的演示文稿是这样的: http://blogs.oracle.com/briangoetz/resource/devoxx-lang-lib-vm-co-evol.pdf 现在,作为一名API设计师,我对虚拟扩展方法的概念特别感兴趣,并且我想知道是否也考虑引入...

图基准数据集(OGB)_wolf_szh的博客-程序员秘密

1.OGB节点预测(5个数据集)1.1ogbn-products--亚马逊产品联合采购网络无权无向图(ClusterGCN-master)节点代表产品,边代表2个产品被一起购买。节点特征为产品说明书中的单词,并进行了降4维操作。共有47种类型。数据的分割处理:对产品进行排序,销售量前8%用于训练,接下来的2%用于验证,剩余的用于测试1.2ogbn-papers100M--论文引用网络有向图,包括1.11亿篇论文。构造方式与ogbn-arxiv一样。1.3ogbn-arxiv--a

c语言打不开h文件,说那个“mem.h”头文件打不开 怎么改啊 高手们帮帮忙_bin oy的博客-程序员秘密

该楼层疑似违规已被系统折叠隐藏此楼查看此楼#include"stdio.h"#include"stdlib.h"#include"string.h"#include"conio.h"#include"mem.h"#include"ctype.h"#include"alloc.h"structscore{chargukehao[8];charmingzi[20];floats...

第三部分“多线程”模块的题和答案_Angus博客的博客-程序员秘密

文章目录https://javawsj.blog.csdn.net/article/details/89446327多线程35. 并行和并发有什么区别?并行是指两个或者多个事件在同一时刻发生;而并发是指两个或多个事件在同一时间间隔发生。 并行是在不同实体上的多个事件,并发是在同一实体上的多个事件。 在一台处理器上“同时”处理多个任务,在多台处理器上同时处理多个任务。如hadoop分...

Winform通用经典快速开发C/S框架(极速开发专业版)_daxiao4320的博客-程序员秘密

源码下载地址:http://www.51aspx.com/code/WinformUniversalClassicRapidDevelopment转载于:https://www.cnblogs.com/QQ512929249/articles/9647077.html

java类库中的包_Java类库中的包_weixin_39700394的博客-程序员秘密

1.java.lang提供常用的类、接口、一般异常、系统等编程语言的核心内容。如基本数据类型、基本数学函数、字符串处理、线程、异常处理类等,系统缺省加载这个包。java.lang包中的元素:(1)接口摘要:Cloneable接口;Comparable接口;Iterable接口;Runnable接口。(2)类摘要Boolean Boolean类将基本类型为boolean的值包装在一个对...

随便推点

推箱子——学完C语言简单实现小游戏_c代码推箱子悔棋功能_尘客-追梦的博客-程序员秘密

*推箱子是一款非常经典的游戏,我们一起来实现它吧!*一:要完成这个游戏,首先要知道实现那些功能,需要哪些知识点。1.实现图形的界面*二维数组,初始化赋值,图形库贴图2.人物的移动for循环,switch,以及人物推动箱子等等一切逻辑的判断!人物往前走的时候,遇到的情况:①.人物面前是空地,人往前走,对人原本位置进行判断,如果站在目的地就...

教你快速高效接入SDK——游戏接入SDK(只接入抽象框架)_游戏sdk接入_chenjie19891104的博客-程序员秘密

题记:很多做游戏开发的人,估计都或多或少地接过渠道SDK,什么UC,当乐,91,小米,360......据统计国内市场当前不下于100家渠道,还包括一些没有SDK的小渠道。每个渠道SDK接入的方法呢,多是大同小异。但是,正是这些小异,又让SDK的接入,产生了无穷无尽的变数。所以,接入SDK之前,如果你没有经验,或者没有被SDK坑过,那么当你看到这系列文章的时候,你很幸运,你可以避免这一切了。如果你

SSH原理与运用_夏尔的骄傲-JianChe的博客-程序员秘密

转载地址:http://www.ruanyifeng.com/blog/2011/12/ssh_remote_login.html文章讲的很好,但是在公钥登录部分有点问题,在最后做出更改。SSH原理与运用(一):远程登录作者: 阮一峰日期: 2011年12月21日SSH是每一台Linux电脑的标准配置。随着Linux设备从电脑逐渐扩展到手机、外设和家用电器,SSH的

tensorflow入门 (一)_weixin_30480651的博客-程序员秘密

转载:作者:地球的外星人君链接:https://www.zhihu.com/question/49909565/answer/207609620来源:知乎著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。分享一篇文章面向普通开发者的机器学习入门,作者@狸小华前言最近在摸索这方面相关的知识,本着整理巩固,分享促进的精神。所以有了这篇博文。需要注意...

Linux下固定IP共享NAT代理上网 _ucshng的博客-程序员秘密

#/bin/sh iptables -F iptables -X iptables -t nat -F iptables -t nat -X echo "1">/proc/sys/net/ipv4/ip_forward arp -s 192.168.0.5 00:E0:11:01:CE:BD iptables -A FORWARD -s 192.168.0.5 -m mac --mac 00:E0

分享编程文章不错的博主(更新中。。。)_博客园哪些博主不错_Cacra的博客-程序员秘密

1.CSDN http://blog.csdn.net/sunhuaqiang12.博客园 http://www.cnblogs.com/dkblog/

推荐文章

热门文章

相关标签