文档库 最新最全的文档下载
当前位置:文档库 › bind9详解

bind9详解

bind9详解
bind9详解

BIND配置文件详解(二)

6.options语句

options语句的定义和使用:

options语句用来设置可以被整个BIND使用的全局选项。这个语句在每个配置文件中只有一处。如果出现多个options语句,则第一个options的配置有效,并且会产生一个警告信息。

如果没有options语句,则每个选项使用缺省值。

options {

[ version version_string; ]

[ directory path_name; ]

[ named-xfer path_name; ]

[ tkey-domain domainname; ]

[ tkey-dhkey key_name key_tag; ]

[ dump-file path_name; ]

[ memstatistics-file path_name; ]

[ pid-file path_name; ]

[ statistics-file path_name; ]

[ zone-statistics yes_or_no; ]

[ auth-nxdomain yes_or_no; ]

[ deallocate-on-exit yes_or_no; ]

[ dialup dialup_option; ]

[ fake-iquery yes_or_no; ]

[ fetch-glue yes_or_no; ]

[ has-old-clients yes_or_no; ]

[ host-statistics yes_or_no; ]

[ minimal-responses yes_or_no; ]

[ multiple-cnames yes_or_no; ]

[ notify yes_or_no | explicit; ]

[ recursion yes_or_no; ]

[ rfc2308-type1 yes_or_no; ]

[ use-id-pool yes_or_no; ]

[ maintain-ixfr-base yes_or_no; ]

[ forward ( only | first ); ]

[ forwarders { ip_addr [port ip_port] ; [ ip_addr [port ip_port] ; ... ] }; ] [ check-names ( master | slave | response )( warn | fail | ignore ); ] [ allow-notify { address_match_list }; ]

[ allow-query { address_match_list }; ]

[ allow-transfer { address_match_list }; ]

[ allow-recursion { address_match_list }; ]

[ allow-v6-synthesis { address_match_list }; ]

[ blackhole { address_match_list }; ]

[ listen-on [ port ip_port ] { address_match_list }; ]

[ listen-on-v6 [ port ip_port ] { address_match_list }; ]

[ query-source [ address ( ip_addr | * ) ] [ port ( ip_port | * ) ]; ]

[ max-transfer-time-in number; ]

[ max-transfer-time-out number; ]

[ max-transfer-idle-in number; ]

[ max-transfer-idle-out number; ]

[ tcp-clients number; ]

[ recursive-clients number; ]

[ serial-query-rate number; ]

[ serial-queries number; ]

[ transfer-format ( one-answer | many-answers ); ]

[ transfers-in number; ]

[ transfers-out number; ]

[ transfers-per-ns number; ]

[ transfer-source (ip4_addr | *) [port ip_port] ; ]

[ transfer-source-v6 (ip6_addr | *) [port ip_port] ; ]

[ notify-source (ip4_addr | *) [port ip_port] ; ]

[ notify-source-v6 (ip6_addr | *) [port ip_port] ; ]

[ alsonotify { ip_addr [port ip_port] ; [ ip_addr [port ip_port] ; ... ] }; ] [ max-ixfr-log-size number; ]

[ coresize size_spec ; ]

[ datasize size_spec ; ]

[ files size_spec ; ]

[ stacksize size_spec ; ]

[ cleaning-interval number; ]

[ heartbeat-interval number; ]

[ interface-interval number; ]

[ statistics-interval number; ]

[ topology { address_match_list }];

[ sortlist { address_match_list }];

[ rrset-order { order_spec ; [ order_spec ; ... ] } }; [ lame-ttl number; ]

[ max-ncache-ttl number; ]

[ max-cache-ttl number; ]

[ sig-validity-interval number ; ]

[ min-roots number; ]

[ use-ixfr yes_or_no ; ]

[ provide-ixfr yes_or_no; ]

[ request-ixfr yes_or_no; ]

[ treat-cr-as-space yes_or_no ; ]

[ min-refresh-time number ; ]

[ max-refresh-time number ; ]

[ min-retry-time number ; ]

[ max-retry-time number ; ]

[ port ip_port; ]

[ additional-from-auth yes_or_no ; ]

[ additional-from-cache yes_or_no ; ]

[ random-device path_name ; ]

[ max-cache-size size_spec ; ]

[ match-mapped-addresses yes_or_no; ]

};

version

回答针对服务器版本的请求时的内容。缺省返回的是服务器的真实版本。

directory

服务器的工作目录。配置文件中所有使用的相对路径,指的都是在这里配置的目录下。大多数服务器的输出文件(如named.run)都缺省生成在这个目录下。如果没有设定目录,工作目录缺省设置为服务器启动时的目录….?。指定的目录应该是一个绝对路径。

named-xfer

这个选项已经被废弃了。它在BIND8 中,它用来给named-xfer程序设定路径名。在BIND9中,不需要单独的named-xfer程序;它的功能已经内置在域名服务器中。

tkey-domain

这个域名将会附带在由TKEY 生成的所有共享密匙名字的后面。当用户请求进行TKEY交换时,它会为密匙设定或不设定所要求的名称。如果设置了tkey_domain,共享密匙的名字将会是"client specified part"(用户设定的部分)+ "tkey-domain"。否则,共享密匙的名字将是"random hex digits"(随机的16 进制数)+ "tkey-domain"。在大多数情况下,domainname应该是服务器的域名。

tkey-dhkey

针对使用Diffie-Hellman 的TKEY模式的用户,服务器用来生成共享密匙的Diffie-Hellman 密匙。服务器必须可以从工作目录中调入公共和私人密匙。大多数情况下,

密匙的名称应该是服务器的主机名。

dump-file

当执行rndc dumpdb命令时,服务器存放数据库文件的路径名。如果没有指定,缺省名字是named_dump.db。

memstatistics-file

服务器输出的内存使用统计文件的路径名。如果没有指定,默认值为named.memstats。注意:还没有在BIND9中实现!

pid-file

进程ID文件的路径名。如果没有指定,默认为/var/run/named.pid。pid-file是给那些需要向运行着的服务器发送信号的程序使用的。

statistics-file

当使用rndc stats命令的时候,服务器会将统计信息追加到的文件路径名。如果没有指定,默认为named.stats在服务器程序的当前目录中。

port

服务器用来接收和发送DNS协议数据的UDP/TCP端口号。默认为53。这个选项主要用于服务器的检测;因为如果不使用53端口的话,服务器将不能与其它的DNS进行通讯。random-device

服务器使用的entropy源:entropy主要用于DNSSEC操作,如TKEY的数据交换和加密域的动态更新。此选项指定了entropy将会从哪个设备(或文件)中读取信息。如果它是一个文件,则当文件耗尽后,需要entropy的操作将会失败。如果没有指定,默认值是/dev/random(或等价的),如果它存在,否则就是没有。random-device选项是在服务器启动时,初始化配置时起作用的,在以后的重启时则被忽略。

A.Boolean选项

auth-nxdomain

如果是yes,那么AA位将一直设置成NXDOMAIN响应,甚至在服务器不是授权服务器的情况下都是这样的。默认值是no;这与BIND8不同。如果用户使用的是非常老版本的DNS 软件,则有必要把它设置成yes。

deallocate-on-exit

此选项在BIND8中用于检查出口处内存泄露。BIND9忽略此选项,并始终进行检查。dialup

如果是yes,那么服务器将会像在通过一条按需拨号的链路进行域传送一样,对待所有的域

(按需拨号就是在服务器有流量的时候,链路才连通)。根据域类型的不同它有不同的作用,并将集中域的维护操作,这样所有有关的操作都会集中在一段很短的时间内完成,每个

heartbeat-interval一次,一般是在一次调用之中完成。它也禁止一些正常的域维护的流量。默认值是no。

dialup选项也可以定义在view和zone语句中,这样就会代替了全局设置中dialup的选项。

如果域是一个主域,服务器就会对所有辅域发送NOTIFY请求。这将激活辅域名服务器中

的对域的序列号的检验。这样当建立一个连接时,辅域名服务器才能确认这个域的传输合法性。

如果这个域是一个辅域或是末梢域(stub zone),那么服务器将会禁止通常的“zoneup to date”(refresh)请求,为了能发送NOTIFY请求,只有在heartbeat-interval 过期之后

才执行。

通过下列的设置,可以实现更好的控制。

1、notify 只发送NOTIFY信息。

2、notify-passive 发送NOTIFY信息,并禁止普通的刷新(refresh)请求。

3、refresh 禁止普通的刷新处理,当heartbeat-interval 过期时才发送刷新请求。

4、passive 只用于关闭普通的刷新处理。

fake-iquery

在BIND8中,此选项用来模拟陈旧的DNS查询类型IQUERY。BIND9不再进行IQUERY 模拟。

fetch-glue

这个选项以后不再使用。

has-old-clients

这个选项在BIND8中执行有问题,BIND9则忽略了这个选项。为了达到has-old-clients yes 的预期效果,可以设定两个独立选项auth-nxdomain yes和rfc2308-type1 no来代替。host-statistics

在BIND8中,它可以保留每台和域名服务器交互的主机统计信息。BIND9中不支持。maintain-ixfr-base

此选项不再使用了。在BIND8用于判定是否保存了增量域传输的处理日志。BIND9任何可能的时候都会保存传输日志。如果需要禁止流出的增量域传输,可以使用provide-ixfr no。minimal-responses

如果是yes,当产生响应的时候,服务器将只会按照需要将记录添加到authority和additional的数据部分。(例如,delegations,negative responses)。这样会改善服务器的性能。默认值为no。

multiple-cnames

这个选项在BIND8中使用,允许一个域名承认多条CNAME记录(与DNS标准相违背)。BIND9.2在主hosts文件和动态更新中都严格强制执行CNAME规则。

notify

如果是yes(默认),当一个授权的服务器修改了一个域后,DNS NOTIFY信息被发送出去。此信息将会发给列在域NS记录上的服务器(除了由SOA MNAME标示的主域名服务器)和任何列在also-notify选项中的服务器。

如果是explicit,则notify将只发给列在also-notify中的服务器。如果是no,就不会发出任何报文。

notify选项也可能设定在zone语句中,这样它就替代了options中的notify 语句。如果notify会使得辅域名服务器崩溃,就需要将此选项关闭。

recursion

如果是yes,并且一个DNS询问要求递归,那么服务器将会做所有能够回答查询请求的工作。如果recursion是off的,并且服务器不知道答案,它将会返回一个推荐(referral)响应。默认值是yes。注意把recursion设为no,不会阻止用户从服务器的缓存中得到数据,它仅仅阻止新数据作为查询的结果被缓存。服务器的内部操作还是可以影响本地的缓存内容,如NOTIFY地址查询。

rfc2308-type1

设置成yes 将会使得服务器发送NS 记录和关于negative answer 的SOA记录。默认值为no。

注:BIND9 中还不支持。

use-id-pool

此选项已经不再使用。BIND9 始终都是从池中分配请求ID的。

zone-statistics

如果是yes,缺省情况下,服务器将会收集在服务器所有域的统计数据。这些统计数据可以通过使用rndc stats来访问,rndc stats命令可以将这些信息转储到statistics-file定义的文件中去。

use-ixfr

这个选项不再使用。如果需要针对一个或多个特殊的服务器关闭IXFR,可以参考provide-ixfr中的内容。

provide-ixfr

参阅中关于provide-ixfr的陈述。

request-ixfr

参阅关于request-ixfr的陈述。

treat-cr-as-space

这个选项应用于BIND8中,使服务器正确处理回车(”\r”)字符,就象其它的空格或tab 字符一样。这样可以便于在unix系统上加载由NT或DOS系统生成的域文件。在BIND9中,UNIX”的\n”和DOS 的”\r\n”都可以正确处理为换新行,这个选项就被忽略了。additional-from-auth

additional-from-cache

当回答具有additional数据的请求,或者当在CNAME 和DNAME串的后面时,这些选

项控制一个权威服务器的操作。

当这两个选项都被设成yes(默认状态),并且查询的是授权的数据(这个域就配置在本地服务器中)时,回答中的additional部分的数据将使用来自于其它授权域和cache。

在许多情况下这是不需要的,比如在缓存内容的正确性受到怀疑的情况下,或是在某些辅域可能被非法修改的服务器。还有,避免对这些additional数据的搜索将会加速服务器运转。例如,如果一个查询需要主机https://www.wendangku.net/doc/9d6505366.html,的MX记录,找到的记录是"MX 10 https://www.wendangku.net/doc/9d6505366.html,",如果知道的话, https://www.wendangku.net/doc/9d6505366.html,的地址记录(A,A6 和AAAA)也会被提供出来。把选项设置为no,则禁止了这种操作。

这些选项用于授权的服务器,或者是授权的视图中。把它们设成no,但没有同时设置recursion no,将会使得服务器忽略这些选项,并记录一个警告日志。

设定additional-from-cache为no实际上针对additional信息的查询和正在响应的查询,

都禁止了缓存的使用。这常常使用在一台授权的服务器中,因为在这里缓存数据的正确性非常重要。

当一台域名服务器不提供递归查询时,并且查询的名称并不在本地域中,一般会对根服务器或者其他已知的上级服务器回答"upwards referral(向上推荐)"。既然在向上查询中的数据

来自于缓存,那么当additional-from-cache被设定为no时,服务器就不能提供向上推荐。相反,它会使用REFUSED(拒绝)回答这些查询。因为向上推荐不是在用户解析过程中需要的,所以就不会出任何问题。

match-mapped-addresses

如果是yes,那么一个ipv4映射成的ipv6地址就会匹配任何地址匹配表中能匹配于对应的ipv4 地址的记录。打开这个选项,对于运行了ipv6的linux系统有时非常有用,这样通过地址映射,就可以使得ipv4的TCP连接(如域传送)实现在Ipv6的soket上,因为地址匹配列表是给Ipv4设计的。

B.转发

转发功能可以用来在一些服务器上产生一个大的缓存,从而减少到外部服务器链路上的流量。它可以使用在和internet没有直接连接的内部域名服务器上,用来提供对外部域名的查询。只有当服务器是非授权的,并且缓存中没有相关记录时,才会进行转发。

forward

此选项只有当forwarders列表中有内容的时候才有意义。当值是First,默认情况下,使服务器先查询设置的forwarders,如果它没有得到回答,服务器就会自己寻找答案。如果设定的是only,服务器就只会把请求转发到其它服务器上去。

forwarders

设定转发使用的ip地址。默认的列表是空的(不转发)。转发也可以设置在每个域上,这样全局选项中的转发设置就不会起作用了。用户可以将不同的域转发到服务器上,或者对不同的域可以实现forward only或first的不同方式,也可以根本就不转发。

C.访问控制

可以根据用户请求使用的IP地址进行限制。

allow-notify

设定哪个主机上的辅域(不包括主域)已经进行了修改。allow-notify也可以在zone语句中设定,这样全局options中的allow-notify选项在这里就不起作用了。但它只对辅域有效。如果没有设定,默认的是只从主域发送notify信息。

allow-query

设定哪个主机可以进行普通的查询。allow-query也能在zone语句中设定,这样全局options中的allow-query选项在这里就不起作用了。默认的是允许所有主机进行查询。allow-recursion

设定哪台主机可以进行递归查询。如果没有设定,缺省是允许所有主机进行递归查询。注意禁止一台主机的递归查询,并不能阻止这台主机查询已经存在于服务器缓存中的数据。

allow-v6-synthesis

设定哪台主机能接收对ipv6的响应。

allow-transfer

设定哪台主机允许和本地服务器进行域传输。allow-transfer也可以设置在zone语句中,这样全局options中的allow-transfer选项在这里就不起作用了。如果没有设定,默认值是允许和所有主机进行域传输。

blackhole

设定一个地址列表,服务器将不会接收来自这个列表的查询请求,或者解析这些地址。从这些地址来的查询将得不到响应。默认值是none。

D.接口

接口和端口(服务器回答来自于此的询问)可以使用listen-on选项来设定。listen-on使用可选的端口和一个地址匹配列表(address_match_list)。服务器将会监听所有匹配地址列表中所允许的端口。如果没有设定端口,就使用默认的53。

允许使用多个listen-on语句。例如:

listen-on{ 5.6.7.8; };

listen-on port 1234 { !1.2.3.4; 1.2/16; };

将在5.6.7.8 的ip地址上打开53端口,在除了1.2.3.4的1.2 网段上打开1234 端口。

如果没有设定listen-on,服务器将在所有接口上监听端口53。

listen-on-v6选项用来设定监听进入服务器的ipv6请求的端口。

服务器并不象在ipv4中那样对每个IPV6端口地址绑定一个独立的socket。相反,它一直监听ipv6通配的地址。这样,对于listen-on-v6语句唯一的address_match_list的参数就是:{ any; }和{ none;}

多个listen-on-v6选项可以用来监听多个端口:

listen-on-v6 port 53 { any; };

listen-on-v6 port 1234 { any; };

要使服务器不监听任何ipv6地址,使用:

listen-on-v6 { none; };

如果没有设定listen-on-v6语句,服务器将不会监听任何ipv6地址。

E.查询地址

如果服务器查不到要解析的地址,它将会查询其它域名服务器。query-source可以用来设定这类请求所使用的地址和端口。对于使用ipv6发送的查询,有一个独立的query-source-v6选项。如果address是*或者被省略了,则将会使用一个通配的IP地址(INADDR ANY)。如果port是*或者被省略了,则将会使用一个随机的大于1024的端口。默认为:

query-source address * port *;

query-source-v6 address * port *;

注:query-source选项中设置的地址是同时用于UDP和TCP两种请求的,但是port仅

仅用

于UDP请求。TCP请求使用的是随机的大于1024的端口。

F.域传输

BIND有适当的机制来简化域传输,并限定系统传输的负载量。下列设定应用于域传输: also-notify

定义一个用于全局的域名服务器IP地址列表。无论何时,当一个新的域文件被调入系统,域名服务器都会向这些地址,还有这些域中的NS记录发送NOTIFY信息。这有助于更新的域文件尽快在相关的域名服务器上收敛同步。如果一个also-notify列表配置在一个zone 语句中,全局options中的also-notify语句就会在这里失效。当一个zone-notify语句被设定为no,系统就不会向在全局中also-notify列表中的IP地址发送NOTIFY消息。缺省状态为空表(没有全局通知列表)。

max-transfer-time-in

比设定时间更长的进入的域传输将会被终止。默认值是120分钟(2小时)。

max-transfer-idle-in

在设定时间下没有任何进展的进入域传输将会被终止。默认为60分钟(1小时)。

max-transfer-time-out

运行时间比设定的时间长的发出的域传输将会被终止。默认为120分钟(2小时).

max-transfer-idle-out

在设定时间下没有任何进展的发出的域传输将会被终止。默认为60分钟(1小时)。

serial-query-rate

辅域名服务器将会定时查询主域名服务器,来确定域的串号是否改变。每个查询将会占用一些辅域名服务器网络带宽。为限制占用的带宽,BIND9可以限制每个查询发送的频率。

serial-query-rate的值是一个整数,就是每秒能发送的最大查询数。默认值为20。serial-queries

在BIND8中, serial-queries选项设定了在任何时候允许达到的最大的并发查询数。BIND9不限制串号查询的数量并忽略了serial-queries选项。它会使用serial-query-rate选项来限制查询的频率。

transfer-format

域传输可以用两种不同格式,one-answer和many-answer。transfer-format选项使用在主域名服务器上,用来确定发送哪种格式。one-answer在每个资源记录传输中使用一个DNS消息。many-answer则将尽可能多的资源记录集中在一个消息中。many-answer是更加有效的,但只有相对比较新的辅域名服务器才支持它,如BIND9、BIND8.x 和打了补丁的BIND4.9.5。默认的设置为many-answer。使用server语句中的相关选项,可以替代全局选项中的transfer-format设置。

transfers-in

可以同时运行的进入的域传输的最大值。默认值为10。增加transfers-in的值,可以加速辅域的收敛速度,但也可能增加本地系统的负载。

transfers-out

可以同时运行的发出的传输的最大值。超过限定的域传输请求将会被拒绝。默认值为10。transfers-per-ns

从一台指定的远程域名服务器,同时进行的进入的域传输的最大值。默认值2。增加transfers-per-ns的值,会加速辅域的收敛速度,但也可能增加远程系统的负载。使用server语句中的transfer短语可以替代全局选项中的transfers-per-ns。

transfer-source

transfer-source决定在从外部域名服务器上得到域传送数据时,选哪个本地的ip地址使用

在IPV4的TCP连接中。它可以选定IPV4的源地址,和可选的UDP端口,用于更新的查询和转发的动态更新。不过不做设置,它会缺省挑选一个系统中的地址(常常是最靠近远程终端服务器的接口地址)。但这个地址必须已经配置在远程终端的allow-tranfer选项中,才能进行域传送。此语句为所有的域设定了transfer-source,但如果view或zone中也使用了transfer-source语句,则全局选项中的配置就在这里失效了。

transfer-source-v6

和transfer-source一样,只是域传输是通过IPV6执行的。

notify-source

notify-source确定使用哪些本地的源地址和可选的UDP端口,用于发送NOTIFY消息。这个地址必须在辅域名服务器的master域或在allow-notify中设置。它会为所有域设定notify-source, 但如果view或zone中也使用了notify-source语句,则全局选项中的配

置就在这里失效了。

notify-source-v6

与notify-source类似,但应用于ipv6地址的notify报文的发送。

G.操作系统资源限制

可以限制服务器对许多系统资源的使用。这些就是通过调节资源限制的数值来完成的。例如,

1G可以代替1073741824,限定一个十亿字节的限制。Unlimited 要求不限制使用,或者最大可用量。Default 将会使用服务器启动时的缺省值。

下列选项设定了域名服务器进程的操作系统资源占用限制。一些操作系统可能不支持一些或所有的限制。在这样的系统中,当使用不被支持的限制时,会产生一个告警。

coresize

core dump文件的最大值尺寸。默认值为default

datasize

服务器可以使用的最大数据内存量。默认值为default。这是一个在服务器系统内存中

已经设置了的参数。如果服务器要超过这个限制的内存量,则会失败,这将使服务器不能提供DNS服务。所以,这个选项作为一种限制服务器所使用的内存量的方式就不太有效,但是它能够将操作系统设置的太小的缺省数据尺寸增大。如果要限制服务器使用的内存量,可以使用max-cache-size和recursive-clients选项。

files

服务器可以同时打开的最大文件数。默认是unlimited。

stacksize

服务器可以使用最大的堆栈内存量。默认值为default。

H.服务器资源限制

下列选项设定了服务器资源使用限制,这是由域名服务内部做的而不是操作系统设定的。max-ixfr-log-size

此选项比较老;它由BIND8兼容接受或者忽略。

recursive-clients

服务器同时为用户执行的递归查询的最大数量。默认值1000,因为每个递归用户使用许多位内存,一般为20KB,主机上的recursive-clients选项值必须根据实际内存大小调整。tcp-clients

服务器同时接受的TCP连接的最大数量,默认值100。

max-cache-size

服务器缓冲使用的最大内存量,用比特表示。但在缓存数据的量达到这个界限,服务器将会使记录提早过期这样限制就不会被突破。在多视图的服务器中,限制分别使用于每个视图的缓存。默认值没有限制,意味着只有当总的限制被突破的时候记录才会被缓存清除。

I.周期性任务间隔

cleaning-interval

服务器将在cleaning-interval的每一时间中从缓存中清除过期的资源记录。默认为60分钟,

如果设置为0,就不会有周期性清理。

heartbeat-interval

服务器将会为所有标记dialup的域运行维护任务,无论它的间隔在何时到期。默认为60分钟,合理值不超过1天(1440 分钟)。如果设定为0,不会为这些域产生域维护。

interface-interval

服务器将在每个interface-interval时间扫描网络接口表。默认为60分钟。如果设置为0,仅当配置文件被加载时才会进行接口扫描。在扫描之后,所有新接口上的监听器将会被打开

(listen-on配置使用的接口)。关闭接口上的监听器将会被清除。

statistics-interval

域名服务器统计将会在每个statistics-interval时刻被记入日志。默认值60分钟,如果设为0,就没有统计数据记入日志。

注意:BIND9 不支持

J.拓扑

当服务器从一个域名服务器列表中选择一个域名服务器查询时,这些域名服务器是没有什么不同的,但是服务器会先选择在拓扑结构上距离自己最近的服务器去做解析。拓扑语句使用一个地址匹配列表并且以一个特殊方式解释它。每个顶层列表元素被赋了一段距离,非否定元素得到它们在列表中的位置的距离,匹配距离表的开头越近,它离服务器的距离就越小。否定匹配元素将会从服务器分配最大距离;没有匹配的地址将会得到一个比任何非否定表元素都远的并且比任何否定元素近的距离。例如:

topology {

10/8;

!1.2.3/24;

{ 1.2/16; 3/8; };

};

最优先网段10的服务器,然后是在网络1.2.0.0(网络掩码255.255.0.0)和3.0.0.0(网络掩

码255.0.0.0);再就是没列出来的,但是没有否定的网段。否定的网段1.2.3 的主机(网络掩码255.255.255.0)。

默认拓扑为:

topology { localhost; localnets; };

注意:BIND9不支持拓扑选项。

K. sortlist语句

对一个DNS询问的响应包括形成一个资源记录集(RR集)的多资源记录(RRs)。名称服务器将会以不确定的顺序返回在RRset中的RRs(参见rrset-order语句)。用户端的解答器会重

新适当的排列,也就是说,使用任何在本地网上的地址优先于其他的地址。尽管如此,不是所有的解答器可以做到或者正确配置。当用户使用一个本地服务器的时候,服务器可以基于用户地址进行分类。这只要求配置名称服务器,而不是所有用户端。

sortlist语句(如下)使用一个地址匹配表甚至比拓扑语句还要特殊的解释它。每个在sortlist 的顶层语句必须自己就是一个清楚的拥有一个或两个元素的地址匹配表。每个顶级表的第一个元素(可能是一个IP地址,一个IP前缀,一个ACL名称或者一个地址匹配表)与查询源地

址进行匹配检查直到找到匹配的地址。

一旦查询的源地址被匹配,如果顶级语句只包括一个元素的话,真正的匹配于源地址的原始元素就被用来选择地址,对应的转移到了响应的开始。如果语句是两个元素的表,那么第二个元素遵照拓扑语句中地址匹配表的方式进行处理。每个顶级元素被赋予一个距离和与响应的开头距离最近的地址。

在下列例子中,任何来自于任何主机地址的查询将会得到本地网上第一首选地址的响应。下一个首选地址在网段192.168.1/24上,既可以在192.168.2/24或192.168.3/24网段之后。从一台在192.168.1/24网段上的主机收到的查询将会优先本网段和192.168.2/24和192.168.3/24网。而来自192.168.4/24或192.168.5/24上主机的查询将只优先直连的网段。

sortlist {

{ localhost; //IF 主机名

{ localnets;

192.168.1/24; //THEN 在下列网中最适合

{ 192.168.2/24; 192.168.3/24; }; }; }; //IF 在C类192.168.1

{ 192.168.1/24; //THEN 使用.1, 或.2 或.3

{ 192.168.2/24; 192.168.3/24; }; }; };

{ 192.168.2/24; //IF C类192.168.1

{ 192.168.2/24; //THEN使用2, 或.1 或.3

{ 192.168.1/24; 192.168.3/24; }; }; };

{ 192.168.3/24; //IF 在C类192.168.3

{ 192.168.1/24; 192.168.2/24; }; }; }; //THEN使用.3 或.1 或.2

};

};

下个例子将给出一个本地主机和直接连接到网上的主机的合理的状态(behavior)。它很象BIND4.9.x分类的地址状态。从本地主机发给查询的响应支持任何直接连接的网络,从其他

直接连接网络上的主机发送给查询的响应优先在相同网段上的地址。对其他查询的响应没有分类。

sortlist {

{ localhost; localnets; };

{ localnets; };

};

L. RRset排序

当多重记录在一个解答中被返回的时候,设定在响应中的记录顺序是很有用的.。

rrset-order语句允许对在多记录响应下的记录顺序的设定。参见sortlist语句。

[tool]BIND 9 配置语法简介

BIND 9 配置语法简介/etc/bind/named.conf 下面列出/etc/bind/named.conf 中使用的常用配置语句。named.conf 中使用的常用配置语句 acl 定义访问控制列表,参考acl controls 定义rndc 命令使用的控制通道,若省略此句,则只允许经过rndc.key 认证的127.0.0.1 的rndc 控制,参考rndc include 将其他文件包含到本配置文件当中 key 定义用于TSIG 的授权密钥 logging 定义日志的记录规范,参考BIND 9 的高级配置的“BIND 日志部分” lwres 将named 同时配置成一个轻量级的解析器 options 定义全局配置选项 trusted-keys 为服务器定义DNSSEC 加密密钥 server 设置每个服务器的特有的选项 view 定义域名空间的一个视图,参考BIND 9 的高级配置的“View 语句部分” zone 定义一个区声明 ?Ubuntu 将options 语句分离放置于/etc/bind/named.conf.options 文件中。 ?Ubuntu 将本机解析的权威区的声明语句zone 放置于/etc/bind/named.conf.local 文件中。 此文件可以使用三种风格的注释: ?/* C 语言风格的注释*/ ?// C++ 语言风格的注释 ?# Shell 语言风格的注释 下面对常用的语句作进一步的说明。 include include 语句的功能为:将指定的文件引入named.conf 主配置文件。语法为: include "path"; ?建议使用绝对路径

Windows下使用BIND搭建本地DNS服务器

Networking - Windows下使用BIND搭建本地DNS服务器(2012-07-06 11:10:35) 标签: 杂谈 1. 下载BIND安装包: BIND9.9.1-P1.zip 2. 安装BIND 9.9.1: 路径、账户名都不需要改变,设置密码后Install安装。 3. 设置安全属性: 【Windows菜单栏】->【工具】->【文件夹选项】->【查看】->【取消勾选:使用简单文件共享(推荐)】->【确定】 4. 授权完全控制:

对C:\WINDOWS\system32\dns目录授权named账户的完全控制: 【右键:C:\WINDOWS\system32\dns目录】->【属性】->【标签:安全】->【添加】->【查找位置:PC-201111071507】->【输入对象名称来选择:PC-201111071507\named】->【检查名称】->【确定】->【选择:named(PC-201111071507\named)】->【勾选:“完全控制”等除了“特别的权限”的所有其他权限的允许】->【确定】 5. 添加环境变量: 将目录C:\WINDOWS\system32\dns\bin到系统环境变量Path的末尾(无需详述)。 6. 执行命令: 在C:\WINDOWS\system32\dns\etc目录下首先依次执行如下命令: rndc-confgen -a rndc-confgen > rndc.conf 将依次得到文件:rndc.key和rndc.conf 7. 下载named.root文件: 打开https://www.wendangku.net/doc/9d6505366.html,/zones/named.root链接,复制所有内容保存为文件named.root,存放在C:\WINDOWS\system32\dns\etc目录下。 文件内容如下: ; This file holds the information on root name servers needed to ; initialize cache of Internet domain name servers ; (e.g. reference this file in the "cache . " ; configuration file of BIND domain name servers). ; ; This file is made available by InterNIC ; under anonymous FTP as ; file /domain/named.cache ; on server https://www.wendangku.net/doc/9d6505366.html, ; -OR- https://www.wendangku.net/doc/9d6505366.html, ; ; last update: Jun 8, 2011 ; related version of root zone: 2011060800 ; ; formerly https://www.wendangku.net/doc/9d6505366.html, ; . 3600000 IN NS https://www.wendangku.net/doc/9d6505366.html,. https://www.wendangku.net/doc/9d6505366.html,. 3600000 A 198.41.0.4 https://www.wendangku.net/doc/9d6505366.html,. 3600000 AAAA 2001:503:BA3E::2:30 ; ; FORMERLY https://www.wendangku.net/doc/9d6505366.html, ; . 3600000 NS https://www.wendangku.net/doc/9d6505366.html,.

最新Linux服务器搭建之九:DNS服务器bind9

L i n u x服务器搭建之九:D N S服务器 b i n d9

Linux服务器搭建之九:DNS服务器(bind9) Linux操作系统平台:Xubuntu 账户:root 主要软件包:bind9 bind9服务器搭建流程: 0.【apt-get install bind9】安装bind9软件包: 1.【/etc/】目录下有个bind目录,bind9的文件配置目录: 2.【/etc/bind】目录里的配置文件: 3.vim编辑named.conf.local文件,在里面修改信息为下图那样:(配置域名文件)

(原来有个模子的,直接修改即可,https://www.wendangku.net/doc/9d6505366.html,是我即将解析的域名,你可自己想一个新的) 4.【cp db.local https://www.wendangku.net/doc/9d6505366.html,】将文件db.local复制为 https://www.wendangku.net/doc/9d6505366.html,: 5.vim编辑cat https://www.wendangku.net/doc/9d6505366.html,文件,在原先的模子上修改为下面那样即可:(配置解析文件) (主要修改了:[1]https://www.wendangku.net/doc/9d6505366.html,,[2]192.168.170.184(本机IP),其他的基本默认了)

6.【service bind9 start】启动bind9服务器:(忘记截图了)还是【nslookup】命令查询https://www.wendangku.net/doc/9d6505366.html,域名是否解析成功:

刚才解析的https://www.wendangku.net/doc/9d6505366.html,和现在解析的https://www.wendangku.net/doc/9d6505366.html,在同一个IP上,这样的话可以实现一机多站了,节省网站服务器开支。 (还有一种常见的DNS域名解析服务器搭建是Redhat平台上的,由于那个软件有些过时了,配置文件非常麻烦,我就选择Xubuntu平台进行DNS搭建了)

编译安装DNS-bind-9.9.0初始化设置

编译安装DNS-bind-9.9.0初始化设置 编译安装DNS-bind-9.9.0初始化设置 操作系统是CentOS-6.2-i386-minimal.iso [root@bind9 ~]# uname -a Linux bind9.9 2.6.32-220.el6.i686 #1 SMP Tue Dec 6 16:15:40 GMT 2011 i686 i686 i386 GNU/Linux bind9.9.0的编译安装成败就在此一举了,继续看看吧 一、要准备好bind-9.9.0的源代码包,放到root目录下,一般是bind-9.9.0.tar.gz.通过命令:[root@bind9 ~]# tar xvf bind-9.9.0.tar.gz 解压并归档后有个目录:bind-9.9.0 [root@bind9 ~]# cd bind-9.9.0 [root@bind9 bind-9.9.0]# ./configure --prefix=/usr/local/named checking build system type... i686-pc-linux-gnu checking host system type... i686-pc-linux-gnu checking whether make sets $(MAKE)... no checking for gcc... no checking for cc... no checking for cl.exe... no configure: error: in `/root/bind-9.9.0': configure: error: no acceptable C compiler found in $PATH See `config.log' for more details [root@bind9 bind-9.9.0]# 提示没有安装gcc [root@bind9 bind-9.9.0]# yum install gcc [root@bind9 bind-9.9.0]# ./configure --prefix=/usr/local/named checking for OpenSSL library... configure: error: OpenSSL was not found in any of /usr /usr/local /usr/local/ssl /usr/pkg /usr/sfw; use --with-openssl=/path If you don't want OpenSSL, use --without-openssl [root@bind9 bind-9.9.0]# 提示没有OpenSSL [root@bind9 bind-9.9.0]# yum install openssl [root@bind9 bind-9.9.0]# ./configure --prefix=/usr/local/named checking for OpenSSL library... configure: error: OpenSSL was not found in any of /usr /usr/local /usr/local/ssl /usr/pkg /usr/sfw; use --with-openssl=/path If you don't want OpenSSL, use --without-openssl [root@bind9 bind-9.9.0]# 安装完还是提示Openssl,还的安装如下包 [root@bind9 bind-9.9.0]# yum install openssl-devel [root@bind9 bind-9.9.0]# ./configure --prefix=/usr/local/named

Solaris下用Bind安装和配置DNS

Solaris下用Bind安装和配置DNS 一、DNS基础 DNS:Domain Name System,域名解析服务器,它在互联网的作用是把域名转换成为网络可以识别的ip地址。 BIND:Berkeley Internet Name Domain,是unix中DNS协议用的最多的一个实现。 如https://www.wendangku.net/doc/9d6505366.html,,blog是一四级域名,sina是三级域名,com是二级域名,cn是顶级域名。一完整域名最多可以是256个字符,各级别域名最多63个字符。 DNS使用https://www.wendangku.net/doc/9d6505366.html,d进程,如果/etc/named.conf存在,系统启动时会开启https://www.wendangku.net/doc/9d6505366.html,d进程并读取 /etc/named.conf文件,https://www.wendangku.net/doc/9d6505366.html,d其实就是/usr/sbin/named的一个链接。 名字到地址的查找称为正向映射;地址到名字的查找称为反向映射。 二、DNS服务器安装配置 以下都为Solaris平台下用root用户操作,不论你使用哪个发行版本的unix,DNS的设置与unix的关系并没有太大的关系。 1、安装BIND,当前Release版本是bind-9.4.2.tar.gz 为了方便用于其他操作系统,我们还是从源代码包方式安装。首先从ISC公司的主页 ( https://www.wendangku.net/doc/9d6505366.html,/index.pl?/sw/bind/index.php )下软件包。 解压: # pwd /opt/wacos/encle # gunzip bind-9.4.2.tar.gz # tar -xvf bind-9.4.2.tar 配置编译并安装,BIND正常安装在/usr/local目录下,但可以调整通过--prefix参数设置,本例不用IPv6,启动文件最后会安装在/usr/local/sbin里: # cd bind-9.4.2 # ./configure --prefix=/usr/local --sysconfdir=/etc --disable-ipv6 # make # make install 安装的时间会比较久,安装完后看一看现版本是多少: # /usr/local/sbin/named -v 到此Bind已经安装完成了。 2、生成RNDC(用于控制DNS服务器,Bind9有)配置文件/etc/rndc.conf Bind9规定,如果要使用rndc来控制dns,必须先生成验证文件 rndc.conf 和密锁。rndc.conf文件的内容,可用rndc-confgen命令生成所需内容。 # /usr/local/sbin/rndc-confgen > /etc/rndc.conf 如果机器上没有random产生器,这种情况下系统应该让你输入一些无关字母来替代/dev/random的功能。 ------------------------------------------ You must use the keyboard to create entropy, since your system is lacking /dev/random (or equivalent) start typing: ........................... stop typing. # Start of rndc.conf ... # End of named.conf ------------------------------------------

利用Bind9搭建XP下DNS服务器

利用Bind9搭建XP下DNS服务器 前言: 在测试设备或者在安装调试设备的过程中,经常要用到DNS服务器以测试设备的DNS 功能,对于具有windows server或者Linux服务器的环境来说,可以使用现成的DNS服务器,但对于个人测试需要,或者有经常需要改动DNS条目的环境中,搭建一个DNS服务器尤为必要,但一般的DNS服务都是集成在Server版本的系统中,而大家一般都使用个人版操作系统,所以这里给大家介绍一个能安装在WindowsXP或者Window7系统中的DNS服务——功能强大的开源软件:BIND。 环境准备: 1、系统:windows xp/windows 7/Windows server series 2、C++2005运行库:Microsoft Visual C++ 2005 Redistributable 下载地址:https://www.wendangku.net/doc/9d6505366.html,/soft/softdown.asp?softid=49151 3、Bind9主程序 4、etc配置目录 安装步骤 1、安装解压BIND9.5.2rc1.zip,双击BINDInstall.exe,按照图示安装,帐户密码可随意。

2、解压etc etc是BIND的配置文件,这里已经做了一些相关的配置,直接解压就可以用了。解压etc.zip到C:\WINDOWS\system32\dns\etc,覆盖掉etc目录 3、配置服务。 打开C:\WINDOWS\system32\dns\etc\named.conf,根据需要修改该行(注意空格和格式,错一不可,注释用双斜线//): listen-on port 53 { 127.0.0.1; 192.168.0.0/16; 169.254.0.0/16; }; 上面这行表示端口53在127.0.0.1上、本地网卡IP上属于192.168.0.0/255.255.0.0和169.254.0.0/255.255.0.0上监听 4、打开服务。开始—运行—services.msc,找到ISC BIND,双击,并按如下设置(配置完就可以启动该服务了,确认下启动类型为自动:)

Bind9做智能DNS

Bind9做智能DNS 中国的南北网络问题,是许多做网站的人的心病除了使用双通或者多通机房以外,还可以通过多台镜像服务器的方法来提高用户的访问速度 但是,如果使用的双通机房并不是单IP的,或者使用多台镜像的做法,就会面临多个不同的服务器IP的问题 最早的时候,很多镜像服务器都是使用不同的域名的,比如说www1和www2,或者www和cnc 这样的做法,对用户相当不友好,而且不方便推广,比如说,你要告诉朋友一个网站,还要问他是什么线路才能给网址吗,或者可能你还不知道这个网站有一个专为网通的线路所设置的镜像 用统一的域名,然后根据用户的线路自动判断引导到不同的镜像服务器,正是智能DNS的功用(智能DNS其实是CDN 的其中一部分,是最前端的部分) 现在还是有一些地方使用多域名,比如说下载网站的下载镜像服务器,因为智能DNS有一定的缺陷(并不一定选择到正确的线路,下面说),也提供给用户自由选择线路的权利目前也有一些公司提供智能DNS解释服务,把你的域名NS 指到他们服务器,然后输入网通和电信服务器的IP就ok了也有一些公司提供比较完整的CDN服务,比如比较出名的

就是chinacache,不少中型网站是使用他们的服务 最初的bind是不支持通过来源选择不同的ip的,因此只能通过iptables的辅助来实现智能DNS,方法也很简单,在DNS 服务器上面启动两份bind,都不要用默认的端口,两份分别解析不同的线路,然后再用iptables将默认端口的DNS请求根据来源IP发送到不同的bind实例 这种方法缺点很明显,需要多个bind实例,如果需要更多的线路解释那就还要再开bind实例,另外iptables对来源的解释也会导致iptables太多规则 现在的bind支持了根据来源选择的功能,我不确定是不是bind9的新特性,不过bind9是重写过的,相比漏洞百出的bind8来说,稳定和安全很多,以下的配置以bind9为基础 我使用的是CentOS,由于bind服务没有其他服务(比如apache,squid)要求那么高,所以也没有必要自己编译一份,我是用过yum安装的,版本不是最新的稳定版 装好之后,可以用过/etc/init.d/named start成功启动服务 有一个文件named.conf出现在/etc下,就是bind的主config 文件,我们只要改动他 (我只说明智能DNS实现部分,其他的bind设置自行修改,呵呵) 另外一个小技巧,可以通过/usr/sbin/named -g -u named来启动bind,可以立刻看到输出信息,方便调试

BIND DNS配置详解

BIND DNS配置详解 前面所介绍的服务器服务大多是用在内部网络环境中的﹐不过﹐以现代的情况和未来的趋势来看﹐每个网络或多或少都需要Internet 联机以及向Internet 提供服务。从这一章开始﹐我们将为大家陆续介绍一些在Internet 环境中常用到的服务器之架设技巧。就算您目前还没真的需要架设Internet 相关的服务器﹐但许多企业的Intranet 环境中﹐也需要相类似的服务器来为企业内部网络提供服务。 前提条件 在众多Internet 服务器当中﹐有一种服务是所有服务的基础﹐就是DNS 服务。DNS 可以说是一个不容易弄清楚的概念﹐尤其是其运作原理。如果您看过“学习网络”中的“ DNS 协议”(我强烈建议您看看这篇文章﹗)﹐相信应该有一定概念了﹐否则﹐您在如下的阅读中可能难以理解﹐也浪费您的时间。 无论如何﹐在您进一步阅读下面文章之前﹐请您先确定能正确回答如下的问题﹕ 什么是DNS 的授权模式﹖是怎样进行的﹖ 请解释zone 和domain 的差别。 什么是DNS 正解和反解﹖ 什么是DNS 的查询模式﹖查询过程是怎样进行的﹖ 请解释DNS cache 的作用和它对查询流程的影响。 忠告﹕请不必急着知道怎样设定DNS﹐花点时间将DNS 的原理弄明白非常重要﹐尤其是授权模式和查询模式的正确理解。在日后的DNS 架设和管理中﹐是否能正确理解这些DNS 原理﹐往往是成败的关键所在﹗ 如果您在NT 或Win2K 下面设定过DNS 服务器﹐相信您会觉得在Linux 下面难多了。除了概念上要比较清楚外﹐另外对档案的关联也要有清晰的追踪能力﹐这对于进行debug 尤为重要。因为在Windows 系统上面﹐您的所有设定都透过图形界面进行﹐方便是方便﹐但也因为这个图形界面﹐限制了您的设定灵活性﹐同时也阻隔了您对DNS 系统的深入了解。当您完成了这章的学习﹐而且成功在Linux 架设出复杂的DNS 环境之后﹐欢迎您再回到Win2K 上尝试做同样的事情。或许﹐您就会认同我这里的观点了... 好了﹐闲话休提﹑言归正传﹐听百遍不如做一遍﹐那就让我们开始动手吧﹗ 探索NAMED 在Linux 上面﹐提供DNS 服务的套件是叫bind﹐但执行服务程序名称则是named 。请您确定系统上装有bind﹑bind-utils﹑以及caching-nameserver 这几个套件﹐同时用ntsysv 确定named 被选择为开机服务。 首先﹐让我们设定一个最重要的dns 设定档﹐它就是/etc/named.conf 。我将我自己的设定档案列出来﹐然后逐部份进行解释﹕ // generated by named-bootconf.pl

Bind9编译安装

Bind9 编译安装 一、准备 BIND9 源代码 https://www.wendangku.net/doc/9d6505366.html,/index.pl 将最新的 BIND9 源代码包下载到 /usr/local/src 下。 二、编译安装 BIND9 # cd /usr/local/src # tar xzvf bind-9*.gz # cd bind-9* # ./configure \ --prefix=/usr/local/bind9 \ --enable-threads \ --enable-static \ --enable-ipv6=no 注:如果需要支持 IPv6 ,则将 --enable-ipv6=no 改为 --enable-ipv6=yes 。 # make # make install 三、配置 BIND9 环境 1. 建立 BIND9 需要的目录 (1) 配置文件目录: # mkdir /usr/local/bind9/etc (2) 域数据文件目录: # mkdir -p /usr/local/bind9/var/named (3) BIND9 运行时目录: # mkdir /usr/local/bind9/var/run (4) BIND9 日志目录 # mkdir /usr/local/bind9/var/logs

2. 创建 BIND9 系统文件: # touch /usr/local/bind9/var/run/named.pid # touch /usr/local/bind9/var/named_dump.db # touch /usr/local/bind9/var/run/named.stats 3. 下载最新的 named.ca 根 DNS 服务器数据文件 # cd /usr/local/bind9/var/named # wget ftp://https://www.wendangku.net/doc/9d6505366.html,/domain/named.root # mv named.root named.ca 四、创建 BIND9 配置文件 1. 创建包含root server 和 locahost. 以及 https://www.wendangku.net/doc/9d6505366.html,. 域的默认 named.conf 文件(见附带的 named.conf); # vi /usr/local/bind9/etc/named.conf 2. 创建 localhost. 域数据文件和反解文件(见附带的 localhost.zone、 localhost.rzone); # vi /usr/local/bind9/var/named/localhost.zone # vi /usr/local/bind9/var/named/localhost.rzone 3. 创建 https://www.wendangku.net/doc/9d6505366.html,. 域数据文件和反解文件(见附带的 https://www.wendangku.net/doc/9d6505366.html,.zone、localhost.rzone); # vi /usr/local/bind9/var/named/https://www.wendangku.net/doc/9d6505366.html,.zone # vi /usr/local/bind9/var/named/https://www.wendangku.net/doc/9d6505366.html,.rzone 五、配置 RNDC # /usr/local/bind9/sbin/rndc-confgen > /usr/local/bind9/etc/rndc.conf 打开刚刚创建的 rndc.conf ,查看 # End of rndc.conf 以下部分的注释信息, 按照说明对 named.conf 进行修改。 六、设置 BIND9 运行权限 # useradd named # chown -R named:named /usr/local/bind9/

bind9配置精讲

架设 DNS 前面所介绍的服务器服务大多是用在内部网络环境中的,不过,以现代的情况和未来的趋势来看,每个网络或多或少都需要 Internet 联机以及向 Internet 提供服务。从这一章开始,我们将为大家陆续介绍一些在 Internet 环境中常用到的服务器之架设技巧。就算您目前还没真的需要架设 Internet 相关的服务器,但许多企业的 Intranet 环境中,也需要相类似的服务器来为企业内部网络提供服务。 前提条件 在众多 Internet 服务器当中,有一种服务是所有服务的基础,就是 DNS 服务。DNS 可以说是一个不容易弄清楚的概念,尤其是其运作原理。如果您看过“学习网络”中的“ DNS 协议”(我强烈建议您看看这篇文章!),相信应该有一定概念了,否则,您在如下的阅读中可能难以理解,也浪费您的时间。 无论如何,在您进一步阅读下面文章之前,请您先确定能正确回答如下的问题: 什么是 DNS 的授权模式?是怎样进行的? 请解释 zone 和 domain 的差别。 什么是 DNS 正解和反解? 什么是 DNS 的查询模式?查询过程是怎样进行的? 请解释 DNS cache 的作用和它对查询流程的影响。 如果您未能从上面的联结网页找到答案,那我再推荐您多看一篇文章: https://www.wendangku.net/doc/9d6505366.html,.tw/~tung/dns/dnsintro.html 忠告:请不必急着知道怎样设定 DNS,花点时间将 DNS 的原理弄明白非常重要,尤其是授权模式和查询模式的正确理解。在日后的 DNS 架设和管理中,是否能正确理解这些 DNS 原理,往往是成败的关键所在! 如果您在 NT 或 Win2K 下面设定过 DNS 服务器,相信您会觉得在 Linux 下面难多了。除了概念上要比较清楚外,另外对档案的关联也要有清晰的追踪能力,这对于进行 debug 尤为重要。因为在 Windows 系统上面,您的所有设定都透过图形界面进行,方便是方便,但也因为这个图形界面,限制了您的设定灵活性,同时也阻隔了您对 DNS 系统的深入了解。当您完成了这章的学习,而且成功在Linux 架设出复杂的 DNS 环境之后,欢迎您再回到 Win2K 上尝试做同样的事情。或许,您就会认同我这里的观点了...

bind9详解

BIND配置文件详解(二) 6.options语句 options语句的定义和使用: options语句用来设置可以被整个BIND使用的全局选项。这个语句在每个配置文件中只有一处。如果出现多个options语句,则第一个options的配置有效,并且会产生一个警告信息。 如果没有options语句,则每个选项使用缺省值。 options { [ version version_string; ] [ directory path_name; ] [ named-xfer path_name; ] [ tkey-domain domainname; ] [ tkey-dhkey key_name key_tag; ] [ dump-file path_name; ] [ memstatistics-file path_name; ] [ pid-file path_name; ] [ statistics-file path_name; ] [ zone-statistics yes_or_no; ] [ auth-nxdomain yes_or_no; ] [ deallocate-on-exit yes_or_no; ] [ dialup dialup_option; ] [ fake-iquery yes_or_no; ]

[ fetch-glue yes_or_no; ] [ has-old-clients yes_or_no; ] [ host-statistics yes_or_no; ] [ minimal-responses yes_or_no; ] [ multiple-cnames yes_or_no; ] [ notify yes_or_no | explicit; ] [ recursion yes_or_no; ] [ rfc2308-type1 yes_or_no; ] [ use-id-pool yes_or_no; ] [ maintain-ixfr-base yes_or_no; ] [ forward ( only | first ); ] [ forwarders { ip_addr [port ip_port] ; [ ip_addr [port ip_port] ; ... ] }; ] [ check-names ( master | slave | response )( warn | fail | ignore ); ] [ allow-notify { address_match_list }; ] [ allow-query { address_match_list }; ] [ allow-transfer { address_match_list }; ] [ allow-recursion { address_match_list }; ] [ allow-v6-synthesis { address_match_list }; ] [ blackhole { address_match_list }; ] [ listen-on [ port ip_port ] { address_match_list }; ] [ listen-on-v6 [ port ip_port ] { address_match_list }; ] [ query-source [ address ( ip_addr | * ) ] [ port ( ip_port | * ) ]; ]

BIND域名解析软件安全配置规范参考

B I N D域名解析 软件安全配置规范 S p e c i f i c a t i o n f o r B I N D S o f t w a r e C o n f i g u r a t i o n U s e d i n C h i n a M o b i l e 版本号:1.0.0 ╳╳╳╳-╳╳-╳╳发布╳╳╳╳-╳╳-╳╳实施

目录 1概述 (1) 1.1适用范围 (1) 1.2内部适用性说明 (1) 1.3外部引用说明 (2) 1.4术语和定义 (2) 1.5符号和缩略语 (2) 2BIND域名解析软件安全配置要求 (3) 2.1记录安全事件到文件 (3) 2.2隐藏BIND版本信息 (4) 2.3禁止DNS域名递归查询 (4) 2.4增加查询ID的随机性 (5) 2.5限制域名查询 (5) 2.6限制域名递归查询 (6) 2.7指定动态DNS更新主机 (6) 2.8指定动态DNS更新主机 (7) 2.9指定不接受区域请求 (7) 2.10指定不接受区域请求 (8) 2.11定义ACL地址名 (9) 2.12控制管理接口 (10) 2.13防止DNS欺骗 (10) 2.14设置重试查询次数 (11) 2.15防止污染高速缓存(Cache) (12)

前言 本标准起草单位: 本标准解释单位: 本标准主要起草人:

1概述 1.1 适用范围 本规范适用于互联网使用BIND软件进行域名解析的DNS系统。本规范明确了BIND 域名解析软件安全配置方面的基本要求。 BIND:全称是Berkeley Internet Name Domain(伯克利因特网名字系统)。官方网址:https://www.wendangku.net/doc/9d6505366.html,/。它主要有3个版本:BIND 4,BIND 8,BIND9。BIND没有5,6,7这几个版本,一下就跳到8了,在BIND8以后的版本里融合了许多提高效率,稳定性和安全性的技术。 BIND安全选项非常多,应针对BIND服务软件进行安全配置,充分利用BIND自身已经实现的保护功能加强BIND安全性,从而能抵御目前已知的BIND安全漏洞,并尽可能使潜在的安全漏洞对DNS服务造成最小的影响。 BIND安全配置可完成针对限制域传输、限制查询、防止DNS欺骗、设置重试查询次数、修改BIND的版本信息等Bind系统安全配置。本规范基于BIND9.x.x以上的版本提供了安全配置操作方法。 1.2 内部适用性说明 本规范是在《设备通用设备安全功能和配置规范》(以下简称《通用规范》)各项 设备配置要求的基础上,提出的BIND域名解析软件安全配置规范。本规范新增的安全 配置要求,如下: 安全要求-设备-通用-BIND-配置-1 安全要求-设备-通用-BIND-配置-2 安全要求-设备-通用-BIND-配置-3 安全要求-设备-通用-BIND-配置-4 安全要求-设备-通用-BIND-配置-5 安全要求-设备-通用-BIND-配置-6 安全要求-设备-通用-BIND-配置-7 安全要求-设备-通用-BIND-配置-8 安全要求-设备-通用-BIND-配置-9 安全要求-设备-通用-BIND-配置-10 安全要求-设备-通用-BIND-配置-11

BIND9 的安装与配置

3. BIND9 的安装与配置 3.1 bind简介 BIND (Berkeley Internet Name Domain)是Domain Name System (DNS) 协议的一个实现,提供了DNS主要功能的开放实现,包括 ?域名服务器 (named) ?DNS解析库函数 ?DNS服务器运行调试所用的工具 是一款开放源码的DNS服务器软件,由美国加州大学Berkeley分校开发和维护的, 按照ISC的调查报告,BIND是世界上使用最多最广泛的域名服务系统。不论你的邮件服务器,WEB服务器或者其他的services如何的安全可靠,DNS的故障会给你带来用户根本无法访问这些服务。 BIND,也是我们常说的named,由于多数网络应用程序使用其功能,所以在很多BIND的弱点及时被发现。主要分为三个版本: v4 1998年多数UNIX捆绑的是BIND4,已经被多数厂商抛弃了,除了OpenBSD 还在使用。OpenBSD核心人为BIND8过于复杂和不安全,所以继续使用 BIND4。这样一来BIND8/9的很多优点都不包括在v4中。 v8 就是如今使用最多最广的版本,其详细内容可以参阅BIND 8+ 域名服务器安全增强 v9 最新版本的BIND,全部重新写过,免费(但是由商业公司资助),也添加了许多新的功能(但是安全上也可能有更多的问题)。BIND9在2000 年十月份推出,现在稳定版本是9.3.2。 3.2 软件的相关资源 官方网站:https://www.wendangku.net/doc/9d6505366.html,/ 最新版本: 9.3.2 https://www.wendangku.net/doc/9d6505366.html,/sw/bind/bind9.3.php#download 帮助文档:https://www.wendangku.net/doc/9d6505366.html,/sw/bind/ 配置文件样例:https://www.wendangku.net/doc/9d6505366.html,/bind.html FAQ: https://www.wendangku.net/doc/9d6505366.html,/getOpenSourceResource.php?id=6 3.3 配置环境 环境:GNU/Linux Debian/testing Linux 2.6.8-2-386 版本:bind9 9.3.2-2 测试域名:https://www.wendangku.net/doc/9d6505366.html, 测试ip: 192.168.102.47 主域名服务器 192.168.102.48 纯缓存域名服务器

Windows XP 上安装 Bind9 DNS 服务器笔记

Windows XP 上安装Bind9 DNS 服务器笔记 文章来源: https://www.wendangku.net/doc/9d6505366.html,/windows-xp-%E4%B8%8A%E5%AE%89%E8%A3%85-bind9-dns-%E6%9 C%8D%E5%8A%A1%E5%99%A8%E7%AC%94%E8%AE%B0.html 1,从https://https://www.wendangku.net/doc/9d6505366.html,/downloadables/11下载得到BIND9.6.0-P1.zip 2,解压,运行BindInstall.exe ,安装位置不变,服务的账户名为named 不变,密码随便设置,我设置的是123456 。下面的三个选项勾选前两个即可。点击Install,如图: Bind9 安装界面 3,开Cmd,转到C:\Windows\system32\dns\bin 目录下,运行rndc-confgen.exe 产生默认的配置文件 >rndc-confgen.exe >temp.conf >cat temp.conf

# Start of rndc.conf key “rndc-key” { algorithm hmac-md5; secret “GnEDdo4iFTiPxEfvQJYE/Q==”; }; options { default-key “rndc-key”; default-server 127.0.0.1; default-port 953; }; # End of rndc.conf # Use with the following in named.conf, adjusting the allow list as needed: # key “rn dc-key” { # algorithm hmac-md5; # secret “GnEDdo4iFTiPxEfvQJYE/Q==”; # }; # # controls { # inet 127.0.0.1 port 953 # allow { 127.0.0.1; } keys { “rndc-key”; }; # }; # End of named.conf 4,在C:\Windows\System32\dns\etc\ 目录下建立rndc.conf文件,把刚才生成的temp.conf的前半部分复制到里面 >cat rndc.conf # Start of rndc.conf key “rndc-key” { algorithm hmac-md5; secret “khlj1YwaAoj7PuH+zFpkJA==”; }; options { default-key “rndc-key”; default-server 127.0.0.1; default-port 953; }; # End of rndc.conf

freebsd 7.0 安装配置dns服务-bind9.5.0

freebsd 7.0 安装配置dns服务-bind9.5.0 这次在Freebsd7.0上安装并成功运行了bind9.5, 感觉还不错.. 以下是我的安装及配置方案.. 1: 安装bind. 你可以通过ports方式安装. 因为ports里面的是bind9.4.2,之前也装了一次,感觉还是用9.5的爽.嘻嘻.. ports方法很简单.. cd /usr/ports/dns/bind94 make install clean 我是自己编译安装的. 下载你要的文件bind-9.5.0.tar.gz tar -zxvf bind-9.5.0.tar.gz cd bind-9.5.0 ./configure --prefix=/usr/local/named95 --enable-threads --enable-largefile --enable-ipv6 # threads 支持多线程 # largefile 好像是支持大文件 # ipv6 支持ipv6 协议ip解析. # 具体参数说明,可以通过 ./configure --help make && make install 2:建立账户 因为之前我用ports方式安装过bind,所以已经帮我自动建立了bind账户. 所以建立账户这步我可以省略了. 如果你是第一次编译安装, 那为了安全,还是新建一个账户来启动bind服务. groupadd bind useradd -g bind -d /usr/local/named95 -s /sbin/nologin bind #新建bind账户,并绑定目录到bind的安装目录. 3: 配置 /usr/local/named95/sbin/rndc-confgen > /etc/rndc.conf #我的路径不同,不是默认的/sbin这里自己根据情况来修改. tail -10 /etc/rndc.conf|head -9|sed s/#\//g > /etc/named.conf #这里是通过rndc来加密bind的连接, 主要是在主副dns服务器,以及rndc连接的时候做加密用, #在安全方面做防护. 和ssh的key方式连接差不多意思. 建立log文件下面会用到. touch /var/log/named/dns_warning touch /var/log/named/dns_log chown bind:bind /var/log/named/dns_waring chown bind:bind /var/log/named/dns_log 这里提个醒,写这些文档的时候,注意不要遗漏了{} ;这几个符号,前后对应,我写的时候也吃了好几次亏. 以下是我的named.conf文件内容,仅作参考: key "rndc-key" { algorithm hmac-md5; secret "HA4Sdtp0QprQbSPH4UFy7g=="; }; controls { inet 127.0.0.1 port 953 allow { 127.0.0.1; } keys { "rndc-key"; }; }; acl "my-lan" {

相关文档