红联Linux门户
Linux帮助

配置DNS的问题

发布时间:2009-08-20 22:20:14来源:红联作者:a1838210
[i=s] 本帖最后由 a1838210 于 2009-8-21 18:29 编辑 [/i]

named.conf的内容,问题在下面点...

//
// Sample named.conf BIND DNS server 'named' configuration file
// for the Red Hat BIND distribution.
//
// See the BIND Administrator's Reference Manual (ARM) for details, in:
// file:///usr/share/doc/bind-*/arm/Bv9ARM.html
// Also see the BIND Configuration GUI : /usr/bin/system-config-bind and
// its manual.
//
options
{
// Those options should be used carefully because they disable port
// randomization
// query-source port 53;
// query-source-v6 port 53;

// Put files that named is allowed to write in the data/ directory:
directory "/var/named"; // the default
dump-file "data/cache_dump.db";
statistics-file "data/named_stats.txt";
memstatistics-file "data/named_mem_stats.txt";

};
logging
{
/* If you want to enable debugging, eg. using the 'rndc trace' command,
* named will try to write the 'named.run' file in the $directory (/var/named).
* By default, SELinux policy does not allow named to modify the /var/named directory,
* so put the default debug log file in data/ :
*/
channel default_debug {
file "data/named.run";
severity dynamic;
};
};
//
// All BIND 9 zones are in a "view", which allow different zones to be served
// to different types of client addresses, and for options to be set for groups
// of zones.
//
// By default, if named.conf contains no "view" clauses, all zones are in the
// "default" view, which matches all clients.
//
// If named.conf contains any "view" clause, then all zones MUST be in a view;
// so it is recommended to start off using views to avoid having to restructure
// your configuration files in the future.
//
view "localhost_resolver"
{
/* This view sets up named to be a localhost resolver ( caching only nameserver ).
* If all you want is a caching-only nameserver, then you need only define this view:
*/
match-clients { localhost; };
match-destinations { localhost; };
recursion yes;
# all views must contain the root hints zone:
include "/etc/named.root.hints";

/* these are zones that contain definitions for all the localhost
* names and addresses, as recommended in RFC1912 - these names should
* ONLY be served to localhost clients:
*/
include "/etc/named.rfc1912.zones";
};
view "internal"
{
/* This view will contain zones you want to serve only to "internal" clients
that connect via your directly attached LAN interfaces - "localnets" .
*/
match-clients { localnets; };
match-destinations { localnets; };
recursion yes;
// all views must contain the root hints zone:
include "/etc/named.root.hints";

// include "named.rfc1912.zones";
// you should not serve your rfc1912 names to non-localhost clients.

// These are your "authoritative" internal zones, and would probably
// also be included in the "localhost_resolver" view above :

zone "my.internal.zone" {
type master;
file "my.internal.zone.db";
};
zone "my.slave.internal.zone" {
type slave;
file "slaves/my.slave.internal.zone.db";
masters { /* put master nameserver IPs here */ 127.0.0.1; } ;
// put slave zones in the slaves/ directory so named can update them
};
zone "my.ddns.internal.zone" {
type master;
allow-update { key ddns_key; };
file "slaves/my.ddns.internal.zone.db";
// put dynamically updateable zones in the slaves/ directory so named can update them
};
};
key ddns_key
{
algorithm hmac-md5;
secret "use /usr/sbin/dns-keygen to generate TSIG keys";
};
view "external"
{
/* This view will contain zones you want to serve only to "external" clients
* that have addresses that are not on your directly attached LAN interface subnets:
*/
match-clients { any; };
match-destinations { any; };

recursion no;
// you'd probably want to deny recursion to external clients, so you don't
// end up providing free DNS service to all takers

// all views must contain the root hints zone:
include "/etc/named.root.hints";

// These are your "authoritative" external zones, and would probably
// contain entries for just your web and mail servers:

zone "my.external.zone" {
type master;
file "my.external.zone.db";
};
};

zone "abc.com" IN {
type master;
file "abc.com.zone";
allow-update { none; };
};

zone "0.168.192.in-addr.arpa" IN {
type master;
file "0.168.192.in-addr.arpa.zone";
allow-update { none; };
};



zone的配置是写在一个named.rfc1912。zones的文件中

配置完毕后,需要把
key ddns_key

{

algorithm hmac-md5;

secret "use /usr/sbin/dns-keygen to generate TSIG keys";

};

这几行注释掉,才能启动named,否则启动失败,日志中提示
Aug 20 18:41:05 localhost named[7285]: /etc/named.conf:100: configuring key 'ddns_key': bad base64 encoding
这个错误是什么问题,那5行有什么作用?除了把他们注释掉还有别的解决办法吗?

注释掉他们,重启named后,出现的问题是,可以给自己解析,但是无法给客户端提供解析,防火墙之类的全部关闭掉了。

如果将named.conf里的内容都删掉,直接改为只有下面的三段,再添加区域进去的话,(named.rfc1912.zone文件不使用了) 就可以为客户机解析了,所以我猜是原文件里的内容导致的,不知道是什么问题啊,权限不足还是别的什么功能限制?求解了

简化后的named.conf:

options {
directory "/var/named";
};

zone "abc.com" IN {
type master;
file "abc.com.zone";
allow-update { none; };
};

zone "0.168.192.in-addr.arpa" IN {
type master;
file "0.168.192.in-addr.arpa.zone";
allow-update { none; };
};

最后问下,那个view功能是什么?求一些说明和资料
文章评论

共有 6 条评论

  1. a1838210 于 2009-08-21 18:28:39发表:

    谢谢,我又参考了一下资料,现在DNS可以正常运行了

  2. yahoo_sun 于 2009-08-21 17:40:14发表:

    这位仁兄我在rhel5.1上实现了dns功能,虽然配置文件不太一样,但是可能对你会有帮助,你可以加到我的群里来,我的群号是:78648615。

  3. 太平桥 于 2009-08-21 12:26:29发表:

    后面那个 named.conf 貌似简单了一点。

    对于前面的这个配置,需要把所有的内容从view里拿出来,且删除view。

  4. 太平桥 于 2009-08-21 12:22:10发表:

    中间的这句提示倒是应该注意一下
    //
    // All BIND 9 zones are in a "view", which allow different zones to be served
    // to different types of client addresses, and for options to be set for groups
    // of zones.
    //
    //
    // By default, if named.conf contains no "view" clauses, all zones are in the
    // "default" view, which matches all clients.
    //
    // If named.conf contains any "view" clause, then all zones MUST be in a view;
    // so it is recommended to start off using views to avoid having to restructure
    // your configuration files in the future.
    //

    显然后者 没有使用view 所以运行正常。

  5. lhoobe 于 2009-08-21 00:01:45发表:

    不懂,帮顶上

  6. qrpengx 于 2009-08-20 23:54:30发表:

    不需要注解的,你搞错了