中国Linux公社论坛's Archiver

gugong 发表于 2003-12-10 14:29

BIND域名服务器配置

在 “动态域名更新(DDNS+DHCPD)”的这个

http://www.linuxfans.org/nuke/modules.php?name=Forums&file=viewtopic&t=13288

帖子里,我大概地写了 bind 的配置,这里详细地写一个。



[color=red][b]本 人 申 明[/b] :
我这里的例子均是本人在实际环境里面使用过的,只是改变了yourdomaon.com、1.2.3 等。 [/color]
[color=blue]所以您可以完全拷贝我的。
然后将 “yourdomaon.com” 改成你的“域名”;
将“1.2.3”、“3.2.1” 改成您的(比如)“192.168.0”、“0.168.192”(私网和公网均可) 即可![/color]


[color=red][b]所用到的文件[/b] [/color]:
[code:1]
3.2.1                        29-Jan-2002 17:04  745   
127.0.0                      29-Jan-2002 17:00  278   
localdomain                  29-Jan-2002 17:00  296   
named.ca                     04-Jul-2001 04:56  2.7K  
named.conf                   20-Dec-2002 13:21  3.2K  
named.root                   04-Jul-2001 04:56  2.7K  
yourdomain.com               29-Jan-2002 17:04  953    [/code:1]


[color=red]named.cond [/color]文件内容:

[code:1]#
# file:    /etc/named.conf
#
# It's ONLY for reference. ------------- gugong
#


controls {
        inet 127.0.0.1 allow { localhost; } keys { rndckey; };
};


include "/etc/rndc.key";


logging {
        channel gugong_update_debug {
                file "/var/named/update-debug.log";        #您须手工 touch 此文件,然后改为 named 用户所有,下同。
                severity  debug 3 ;
                print-category yes;
                print-severity yes;
                print-time     yes;
        };

        channel gugong_security_info    {
                file "/var/named/named-auth.log";
                severity  info;
                print-category yes;
                print-severity yes;
                print-time     yes;
        };

        channel gugong_queries_info        {
                file "/var/named/queries.log";
                severity  info;
                print-category yes;
                print-severity yes;
                print-time     yes;
        };

        channel gugong_default_info        {
                file "/var/named/named-default.log";
                severity  info;
                print-category yes;
                print-severity yes;
                print-time     yes;
        };

        category update {
                gugong_default_info;
                gugong_update_debug;
                default_syslog;
                default_stderr;
        };

        category security {
                gugong_security_info;
                default_debug;
                default_syslog;
        };

        category queries {
                gugong_queries_info;
#                default_syslog;
                default_debug;
        };

        category lame-servers {
                gugong_queries_info;
                default_syslog;
        };

        category default {
                gugong_default_info;
                default_syslog;
                default_debug;
                default_stderr;
        };
#        不同的 bind 版本,可能上面的有些不能用,注释掉不能用的即可。

};

# ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~

options {
        directory        "/etc/named";

        #        指定域名解析文件的存放目录为 "/etc/named"。
        /*
         * If there is a firewall between you and nameservers you want
         * to talk to, you might need to uncomment the query-source
         * directive below.  Previous versions of BIND always asked
         * questions using port 53, but BIND 8.1 uses an unprivileged
         * port by default.
         */
        // query-source address * port 53;

        auth-nxdomain yes;
#        check-names master fail;
#        check-names slave warn;
#        check-names response ignore;

#
#                可以指定在哪个地址监听。
#                listen-on port 53 { 127.0.0.1; 192.168.0.251; };
#                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^


# ========================================================================

#                提供 “域名解析转发”。
#                这在若你没有直接连接到互联网时会特别管用。
#                当然您也可以指定这里,来减少您服务器的 DNS 解析的网络流量。
#
#                forward first;
#                forwarders { 192.168.0.1; 192.168.0.2; };
#

#
#                rfc2308-type1 yes;                        #  no

};

#

acl local_host_name {
        192.168.0.0/24;
#        !192.168.1.239;
};

#


zone "yourdomain.com" in {
        type master;
        file "master/yourdomain";
#        allow-update { local_host_name; };
#        check-names warn;
                        #         ( warn | fail | ignore );
};


# ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~

zone "3.2.1.in-addr.arpa" {
        type master;
        notify no;
        file "master/3.2.1";
#        allow-update { local_host_name; };
#        check-names warn;
                #         ( warn | fail | ignore );
};


# ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~
#
# hint file (formerly known as cache file)

zone "." {
        type hint;
        file "named.ca";
#        check-names warn;
                #        ( warn | fail | ignore );
};
#



/* localhost */
zone "0.0.127.in-addr.arpa" {
        type master;
        notify no;
        file "master/127.0.0";
};
#

/* localhost.localdomain */
zone "localdomain" {
        type master;
        notify no;
        file "master/localdomain";
};
# ------------------------ END ------------------------
[/code:1]

gugong 发表于 2003-12-10 14:36

[color=red] yourdomain.com [/color]文件(正向)内容:

[code:1]
;
; file:    yourdomain.com
;
; It's ONLY for reference. ------------- gugong
;
;
;$INCLUDE <FileName> <opt_domain>
$ORIGIN                yourdomaon.com.       
$TTL                144000

@                IN        SOA                yourdomaon.com. hostmaster.yourdomaon.com. (
                                        2002010828 ; Serial
                                        3H      ; Refresh
                                        2H      ; Retry
                                        4W      ; Expire
                                        3D )    ; Minimum

                IN        NS        ns1.yourdomaon.com.
                IN        NS        ns2.yourdomaon.com.

                IN        MX         10 mail.yourdomaon.com.
                        TXT        "Your Corporation"

yourdomaon.com.                IN        A        1.2.3.4
                        IN        MX         10 mail.yourdomaon.com.

www.yourdomaon.com.        IN        A        1.2.3.5
                        IN        MX         10 mail.yourdomaon.com.

ns1.yourdomaon.com.        IN        A        1.2.3.6
                        IN        MX         10 mail.yourdomain.com.

ns2.fruitron.com.cn.        IN        A        1.2.3.7
                        IN      MX      10 mail.yourdomaon.com.
                               
mail.yourdomaon.com.        IN        A        1.2.3.4
                        IN        MX         10 mail.yourdomaon.com.

;
;
;pop                IN        CNAME        mail.yourdomaon.com.
;pop3                IN        CNAME        mail.yourdomaon.com.
;imap                IN        CNAME        mail.yourdomaon.com.
;
; ================ END ================

[/code:1]

gugong 发表于 2003-12-10 14:38

[color=red]3.2.1[/color] 文件(反向)内容:

[code:1]
;
; file:        3.2.1
;
; It's ONLY for reference.  --------- gugong
;
;
;$INCLUDE <FileName> <opt_domain>
$ORIGIN                3.2.1.in-addr.arpa.
$TTL                144000


@               IN      SOA     yourdomain.com. hostmaster.yourdomain.com. (
                                        2002010838        ; Serial
                                        28800                ; Refresh
                                        14400                ; Retry
                                        3600000                ; Expire
                                        86400 )                ; Minimum

                IN        NS        ns1.yourdomain.com.
                IN        NS        ns2.yourdomain.com.
               
                IN        MX         10 mail.yourdomain.com.


4        IN        PTR        yourdomain.com.
        IN        MX        10 mail.yourdomain.com.

5        IN        PTR        www.yourdomain.com.
        IN        MX        10 mail.yourdomain.com.

6        IN        PTR        ns1.yourdomain.com.
        IN        MX        10 mail.yourdomain.com.

7        IN        PTR        ns2.yourdomaon.com.
        IN        MX        10 mail.yourdomain.com.

4        IN        PTR        mail.10 mail.yourdomain.com.
        IN        MX        10 mail.yourdomain.com.
;
;
[/code:1]

gugong 发表于 2003-12-10 14:39

[color=red]localdomain[/color] 文件内容:

[code:1]
;
; file:    localdomain
;
; It's ONLY for reference. ------------- gugong
;
$TTL        86400
$ORIGIN localdomain.
@        IN        SOA        localhost. root.localhost. (
                                        2002010748        ; serial
                                        3H                ; refresh
                                        15M                ; retry
                                        1W                ; expiry
                                        1D )                ; minimum

                        IN        NS        localhost.

localhost                IN        A        127.0.0.1

[/code:1]

gugong 发表于 2003-12-10 14:40

[color=red]127.0.0[/color]  文件内容:

[code:1]
;
; file:    127.0.0
;
; It's ONLY for reference. ------------- gugong
;
$TTL        86400
@        IN        SOA        localhost. root.localhost.  (
                                        2002010698        ; Serial
                                        28800                ; Refresh
                                        14400                ; Retry
                                        3600000                ; Expire
                                        86400 )                ; Minimum
                IN        NS        localhost.

1                IN        PTR        localhost.

[/code:1]

gugong 发表于 2003-12-10 14:53

named.ca(或者  named.root)的内容,我就不帖了。

gugong 发表于 2003-12-10 14:59

新 BIND 版本支持[color=red] view[/color] 项。

可以让某个 zone 只为某些指定的用户服务。意味着:

[b]您可以在自己公司的服务器上建一个你私人的虚拟主机,而局域网不可以访问,公网的用户却可以访问(在 dns 、网关为您控制的情况下,我原来就是这么做的哟)[/b]。


[color=red] named.conf[/color] 文件内容:

[code:1]
// generated by named-bootconf.pl

controls {
        inet 127.0.0.1 allow { localhost; } keys { rndckey; };
};


include "/etc/rndc.key";


logging {
        channel gugong_update_debug {
                file "/var/named/update-debug.log";        #您须手工 touch 此文件,然后改为 named 用户所有,下同。
                severity  debug 3 ;
                print-category yes;
                print-severity yes;
                print-time     yes;
        };

        channel gugong_security_info    {
                file "/var/named/named-auth.log";
                severity  info;
                print-category yes;
                print-severity yes;
                print-time     yes;
        };

        channel gugong_queries_info        {
                file "/var/named/queries.log";
                severity  info;
                print-category yes;
                print-severity yes;
                print-time     yes;
        };

        channel gugong_default_info        {
                file "/var/named/named-default.log";
                severity  info;
                print-category yes;
                print-severity yes;
                print-time     yes;
        };

        category update {
                gugong_default_info;
                gugong_update_debug;
                default_syslog;
                default_stderr;
        };

        category security {
                gugong_security_info;
                default_debug;
                default_syslog;
        };

        category queries {
                gugong_queries_info;
#                default_syslog;
                default_debug;
        };

        category lame-servers {
                gugong_queries_info;
                default_syslog;
        };

        category default {
                gugong_default_info;
                default_syslog;
                default_debug;
                default_stderr;
        };
#        不同的 bind 版本,可能上面的有些不能用,注释掉不能用的即可。

};

# ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~

options {
        directory        "/etc/named/named.fruitron";

        #        指定域名解析文件的存放目录为 "/etc/named"。
        /*
         * If there is a firewall between you and nameservers you want
         * to talk to, you might need to uncomment the query-source
         * directive below.  Previous versions of BIND always asked
         * questions using port 53, but BIND 8.1 uses an unprivileged
         * port by default.
         */
        // query-source address * port 53;

        auth-nxdomain yes;
#        check-names master fail;
#        check-names slave warn;
#        check-names response ignore;

#        listen-on port 53 { 127.0.0.1; 192.168.10.8; 192.168.20.8; 211.148.130.133; };
#        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

# ========================================================================

#                forward first;                        # 缺省值

#                forwarders { 202.96.128.143; 202.96.134.133; 202.96.128.68; 202.66.145.179; };

#                rfc2308-type1 yes;                # 缺省值 no

};

#

acl local_host_name {
        192.168.20.0/24;
#        !192.168.1.239;
};




# when using 'view' statements, all zones must be in views.

#
view "internal" {

        // This should match our internal networks.
        match-clients { 192.168.10/24; 192.168.20/24; 192.168.30/24; };

        // Provide recursive service to internal clients only.
        recursion yes;

        # hint file (formerly known as cache file)

        zone "." {
                type hint;
                file "named.ca";
        #        check-names warn;
                #        ( warn | fail | ignore );
        };
        #

        /* localhost */
        zone "0.0.127.in-addr.arpa" {
                type master;
                notify yes;
                file "master/127.0.0";
        };
#

        /* localhost.localdomain */
        zone "localdomain" {
                type master;
                notify yes;
                file "master/localdomain";
        };

        zone "fruitron.com.cn" in {
                type master;
                notify yes;
                file "master/fruitron.com.cn.internal";
                allow-update { local_host_name; };
               #        check-names warn;
                #        ( warn | fail | ignore );
        };

        zone "20.168.192.in-addr.arpa" {
                type master;
                notify yes;
                file "master/192.168.20";
                allow-update { local_host_name; };
        #        check-names warn;
                #        ( warn | fail | ignore );
        };

};



#
view "external" {

        match-clients { any; };
        // Refuse recursive service to external clients.
        recursion no;

        zone "fruitron.com.cn" in {
                type master;
                notify yes;
                file "master/fruitron.com.cn.external";
        #        allow-update { local_host_name; };
        #        check-names warn;
                        #         ( warn | fail | ignore );
        };

        #zone "511888.com" in {
        #        type master;
        #        file "master/511888.com";
        #        notify yes;
        #        allow-update { local_host_name;
        #        check-names warn;
        #};


        # ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~

        zone "130.148.211.in-addr.arpa" {
                type master;
                notify yes;
                file "master/211.148.130";
        #        allow-update { local_host_name; };
        #        check-names warn;
                #         ( warn | fail | ignore );
        };
};

[/code:1]

[color=blue]别的文件我就不帖了,可以参考:[/color]
http://shcore.com.cn/gugong/gugong/linux/config/named.NEW/named.fruitron/

或者:
http://www.ehuilong.com/gugong/gugong/linux/config/named.NEW/named.fruitron/

hew 发表于 2003-12-18 21:14

[code:1];
; file:        3.2.1
;
; It's ONLY for reference.  --------- gugong
;
;
;$INCLUDE <FileName> <opt_domain>
$ORIGIN      3.2.1.in-addr.arpa.
$TTL      144000


@          IN      SOA     [b]yourdomain.com. [/b]hostmaster.yourdomain.com. (
               2002010838   ; Serial
               28800      ; Refresh
               14400      ; Retry
               3600000      ; Expire
               86400 )      ; Minimum [/code:1]

SOA 后面不是应该是主机吗?

foxlooly 发表于 2004-1-23 22:18

看了很久没有看懂1!!

我会仔细看得!

oldrabbit 发表于 2004-2-10 16:53

不太明白这些是什么意思?

logging {
   channel gugong_update_debug {
      file "/var/named/update-debug.log";   #您须手工 touch 此文件,然后改为 named 用户所有,下同。
      severity  debug 3 ;
      print-category yes;
      print-severity yes;
      print-time     yes;
   };

   channel gugong_security_info    {
      file "/var/named/named-auth.log";
      severity  info;
      print-category yes;
      print-severity yes;
      print-time     yes;

blueant 发表于 2004-2-29 13:12

版主给讲解一下脚本吧。

gugong 发表于 2004-2-29 13:42

man named.conf

nox 发表于 2004-3-2 17:42

帮主麻烦给解决一个问题:
我用linux做网关,内部网的电脑透明出去。
我在网关上启用了dns服务,
内部网电脑的dns查询也是通过这个网关的,这个一起都很正常。
现在有个问题:我想把一个域名比如www.mydomain.com指向内部网的一个地址(比如192.168.0.123).就是内部网的电脑如果访问www.mydomain.com,向网关的dns查询的结果是192。168。0。123。
我在named.conf总也设置了mydomain.com的zone,同样在/var/named/下面也配置了文件。但是查询的时候就是不能用的(或者得到的是公网的地址,我其实想要的是内部的地址)。如果解决,请指点。

gugong 发表于 2004-3-2 21:57

[quote:cb33bc8260="nox"]帮主麻烦给解决一个问题:
我用linux做网关,内部网的电脑透明出去。
我在网关上启用了dns服务,
内部网电脑的dns查询也是通过这个网关的,这个一起都很正常。
现在有个问题:我想把一个域名比如www.mydomain.com指向内部网的一个地址(比如192.168.0.123).就是内部网的电脑如果访问www.mydomain.com,向网关的dns查询的结果是192。168。0。123。
我在named.conf总也设置了mydomain.com的zone,同样在/var/named/下面也配置了文件。但是查询的时候就是不能用的(或者得到的是公网的地址,我其实想要的是内部的地址)。如果解决,请指点。[/quote]

加上参数

   auth-nxdomain yes;

试一试,若不行,加上 view 项,肯定可以的。

nox 发表于 2004-3-3 17:59

折腾了一下,终于找出毛病来了

用了斑竹的方法试了一下,还是不行.只好自己折腾,
我用的fedora core 1 最近的update.
后来用ps -A -f 查看的时候
发现named 的命令行是/usr/sbin/named -u named -t /var/named/chroot

问题就在-t /var/named/chroot 这个参数
到这个目录一看,原来这里也有配置文件,修改这里的配置文件,
restart service,一切ok!

jenkin 发表于 2004-3-15 00:30

fedora的named有点莫名其妙!

bigbigbig 发表于 2004-3-15 09:52

是在是太强了~~~~~~~~~~~` :twisted:  :twisted:  :twisted:  :twisted:

超级喜欢~ :mrgreen:

超级需要~~ :twisted: 精品~~~~

bigbigbig 发表于 2004-3-15 10:02

实在太强了~~~~~~~~~~~~~~~~~~~~~~ :mrgreen:

都是极品~!~!~!~ :twisted:  :twisted:

http://www.ehuilong.com/gugong/gugong/linux/config/named.NEW/named.fruitron/

我想把上面,这个网页包含它以下的都下在下来~~~怎摩版呀~?~?~?~

bigbigbig 发表于 2004-3-15 10:03

能不能做个压缩包之类的~~~~~太感谢了~~~~ :oops:

mhlovers 发表于 2004-3-24 14:28

:lol: 太帮了!!!

tarozy 发表于 2004-6-4 15:43

斑竹请帮个忙吧~~
我在linux环境下,,在没有配DNS前,,liunux的两个用户之间在终端用mail就可以相互发邮件,,但在我配好DNS后(www.telteacher.com),,在终端上两个用户发邮件时不提示任何错误,,但是对方根本就没有新邮件,,我发现那些邮件都退到root的信箱里了,,说是 553  5.5.3 system config error
你帮我看看可能是什么地方有问题吧,,非常感谢!!

h2004 发表于 2004-6-7 18:26

什摸我不懂啊

pk 发表于 2004-6-23 23:44

古公,请问下:


一台linux box,担当网关的同时,也在它上面正确配置了bind9。当没有使用iptables规则时,它都能正反解析,不管是本地的还是外网的。但使用ipables规则时,当采用的策略使用:
iptables -P INPUT DROP
iptables -P OUTPUT DROP
iptables -P FORWARD DROP

无论我后面写上什么规则,linux box本身不能解析了,但ping ip地址是通的(不管是本地的还是外网的),内网的机器都可以正常使用域名,正反解析都可以。

不知道如何解决这种情况?

谢谢!!!!!

gugong 发表于 2004-6-24 07:46

后麵的規則要將 53 的 udp、tcp 允許。

pk 发表于 2004-6-25 15:47

谢谢古公兄。后面的规则都加上了。对内网卡,偶几乎历遍了所有可能的规则,还是不行。

后来无意中加上这么两句:
iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT

就可以了。真是汗ing....

你说怪不怪??

sunguy&l 发表于 2004-10-17 17:50

要配置那么多阿?

浪心 发表于 2004-11-3 10:53

very good!

gugong 发表于 2004-11-3 14:12

[quote:b4a5f032c1="pk"]谢谢古公兄。后面的规则都加上了。对内网卡,偶几乎历遍了所有可能的规则,还是不行。

后来无意中加上这么两句:
iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT

就可以了。真是汗ing....

你说怪不怪??[/quote]

lo 是肯定不能被禁止掉的啦。

bst 发表于 2004-11-13 22:19

斑竹最好加入一些注释,这样对于我们这些菜鸟看起来才能不至于退却.

advanceboy 发表于 2004-11-18 21:52

我也是fedora c 1 的 用ps -A -f查看时是/usr/sbin/named -u named -t /var,跟前一面的那位朋友提到的不一样。问题是我也是无法解析我自己加进去的记录,但是可以解析互联网上的域名。我也加了那条auth-nxdomain yes;但是还是不行。请大家帮我一下,给点详细的方法。

页: [1] 2 3

Powered by Discuz! Archiver 6.1.0F  © 2001-2007 Comsenz Inc.