BIND-DNS配置介绍

发布时间:2024年01月02日

??一、主要配置文件

/etc/named.conf

options { ?????????????//Option 段全部配置

??listen-on port 53 { 127.0.0.1; };//表示BIND将在53端口监听,若需要对所有IP进行监听,则修改为// listen-on port 53 { any; };

directory ??????"/var/named";//工作目录。

dump-file ??????"/var/named/data/cache_dump.db";//缓存转储位置,需要配合rndc命令。

statistics-file "/var/named/data/named_stats.txt";//记录统计信息的文件,需要配合rndc命令。

?emstatistics-file "/var/named/data/named_mem_stats.txt";//记录内存使用的统计信息。

allow-query ????{ localhost; };//允许查询的主机,默认只允许本机查询若需要允许所有客户机查询,则修改为// allow-query { any; };

recursion yes;//允许递归查询。

notify?yes;//区域数据文件更新发送通知。

querylog ?yes //启用日志

forwarders? ???{ 192.168.1.1; };?// 如果域名服务器无法解析时,将请求交由168.95.1.1; 192.168.1.1来解析
?allow-transfer { none; };?//指定允许接受区域传送请求的主机,比如辅dns的ip是192.168.1.2,那么可以这样定义{ 192.168.1.2; },要不然主辅dns不能同步,当然,{}里的也可以用下面提到的acl。

dnssec-enable yes;?//是否支持DNSSEC开关,默认为yes。

dnssec-validation yes;?// ?是否进行DNSSEC确认开关,默认为no。

dnssec-lookaside auto;// 当设置dnssec-lookaside,它为验证器提供另外一个能在网络区域的顶层验证DNSKEY的方法。

bindkeys-file "/etc/named.iscdlv.key";??//该文件中保存了ISC DNSSEC的后备验证密钥,该文件用来代替DS集。

};

logging {//Loging段

channel default_debug {

file "data/named.run";//记录了一些named的信息,如监听/解析记录等。它的位置在/var/named /var/named/data下。

severity dynamic;??//输出日志级别

};

};

zone "." IN {

type hint;//type只有3种参数:hint/master/slave.只有"."对应的type为hint,其它zone的类型只能为master或slave,即DNS主机和DNS从机。

file "named.ca";//指定了root解析文件的位置,解析文件中记录着域名与IP的对应关系。它的位置在/var/named /var/named/data下。

};

include "/etc/named.rfc1912.zones";//解析文件列表的位置

include "/etc/named.root.key"; //根区域的key文件,与事务签名相关。
// 这里定义一个acl列表
acl "acl1" {
? ?? ???192.168.139.0/200; 192.168.1.0/200?
};
view localhost_resolver {?//定义一个视图
? ?? ???match-clients? ?? ?{ any; };?//查询者的源地址,any表示localhost_resolver视图对任何主机开放,如果写成{ acl1; },那么就只有acl1表里的ip可以递归查询了
? ?? ???match-destinations { any; };?//查询者的目标地址,这里也可以写成{ localhost; acl1; }

}

二、日志系统配置

在默认情况下,BIND把日志消息写到/var/log/messages文件中,而这些日志消息是非常少的,主要就是启动,关闭的日志记录和一些严重错误的消息,所以要详细记录服务器的运行状况,需要自己配置服务器的日志行为。也就是要在配置文件named.conf中使用logging语句来定制自己所需要的日志记录,logging语句的语法为:

logging {

?????????channel ; {

?????????????????file ;;

?????????????????syslog ;;

?????????????????null;

?????????????????stderr;

?????????????????severity ;;

?????????????????print-time ;;

?????????????????print-severity ;;

?????????????????print-category ;;

????????};

????????category ; { ;; ... };

};

在日志中主要有两个概念:通道(channel)和类别(category)。通道指定了应该向哪里发送日志数据:是发送给syslog,还是写在一个文件里,或是发送给named的标准错误输出。类别则规定了哪些数据需要记录。

启用DNS日志:

日志通道输出级别:

critical
error
warning
notice
info
debug [ level ]
dynamic

category日志源:

default: 默认分类,没有分类的日志都使用这个分类的配置.
general: 没有分类的日志都记录在此分类中.
database: 服务器内部使用存储zone和缓存数据.
security: 允许/拒绝的请求.
config: 配置文件分析和处理.
resolver: DNS解析,被dns缓存服务器进行递归查询.
xfer-in: 接收区域传输.
xfer-out: 发送区域传输.
notify: NOTIFY协议.
client: 客户端请求进程.
unmatched: 未匹配的查询.
network: 网络操作.
update: 动态更新.
update-security: 允许/拒绝更新请求.
queries: 客户端队列日志.
dispatch: 数据包传送日志.
dnssec: DNSSEC和TSIG协议处理.
lame-servers: 远端的配置错误的服务器发送的请求.
delegation-only: NXDOMAIN的结果将被强制定义到delegation-only区域.

需要注意的是,一个日志类别产生的多个不同类别的信息可以发往不同的位置,但每一个位置只能保存来自于一个category的信息(一个category可以被定向到多个channel,但一个channel只能属于一个category)。

举例:

在/var/log/下新建一个文件夹bind用于记录查询日志。

三、配置正向解析区域

1、在主配置文件中定义区域

(1)一个FQDN可对应同多个IP;(负载均衡)?

(2)多个FQDN可对应一个IP:(一台主机有多个名称,且可以用CNAME定义)。

(3)使用相关命令(named-checkconf、named-checkzone)测试配置文件及区域文件是否存在语法错误。

(4)确保主配置文件和各区域解析库文件的权限为640,属主为root,属组为named;

?vim /etc/named.conf

同样可以自定义文件zone文件位置,自定义区域文件路径需要修改相应文件权限。

chgrp??named ?/etc/named.rfc1912.zones

2、区域文件关键性字段格式?

zone "ZONE_NAME" IN {

type {master|slave|hint|forward};

file "ZONE_NAME.zone";

};

?3、增加解析库文件

“ZONE_NAME.zone”文件默认路径在"/var/named",工作目录。为了后期维护方便可以自定义解析库文件路径,同样需要修改文件权限。

chgrp??-R??named??test/

$ORIGIN test1.com.???//宏定义

@ IN SOA ns1.?test1.com. test.test1.org (

2015042201

1H

5M

7D

1D )

IN ?NS ??ns1

IN ?MX 10 mx1

ns1 IN ?A 192.168.100.11

mx1 IN ?A 192.168.100.13

webapp??IN??A 192.168.100.100

4、配置完成后可用命令对文件进行检查

主配置文件语法检查:

named-checkconf

解析库文件语法检查:

named-checkzone "?ZONE_NAME"?/var/named/test1.com.zone

5、配置生效

?rndc reload?或者

systemctl reload named

四、配置反向解析区域

正向解析与反向解析各自采用不同的解析库,一台DNS服务器可以只有正向解析库或只有反向解析库,也可以同时提供正向/反向解析。

反向区域的区域名称格式:

地址反写.in-addr.arpa

例如:假设网络地址为172.16.100.1 那么规则命名为100.16.172.in-addr.arpa

这里我本地的内网IP为192.168.1.0, 所以则写成1.168.192.in-addr.arpa

1、定义区域

zone "?ReverseIP.in-addr.arpa " IN {

type {master|slave|forward};

file "网络地址.zone"

};

2、创建反向区域解析文件

?

?

文章来源:https://blog.csdn.net/vincent0920/article/details/135332484
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。