分页: 1 / 1

昨天配了个bind9的DNS

发表于 : 2008-10-21 10:36
qqttdh
参考文档

代码: 全选

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 软件的相关资源

官方网站: http://www.bind.com/

最新版本: 9.3.2 http://www.isc.org/sw/bind/bind9.3.php#download

帮助文档: http://www.isc.org/sw/bind/

配置文件样例: http://www.bind.com/bind.html

FAQ: http://www.nominum.com/getOpenSourceResource.php?id=6
3.3 配置环境

            环境:GNU/Linux Debian/testing Linux 2.6.8-2-386

            版本:bind9  9.3.2-2

            测试域名:mydebian.org

            测试ip: 192.168.102.47  主域名服务器  
                    192.168.102.48  纯缓存域名服务器
                    192.168.102.49  辅助域名服务器
                    192.168.102.49  测试客户机

3.4 配置文件说明

安装bind9的命令:

            ~# aptitude update
            ~# aptitude install bind9 bind9-host dnsutils

配置文件族:

            # ls /etc/bind/ -l
            total 44
            -rw-r--r-- 1 root root  237 Jan 16  2006 db.0
            -rw-r--r-- 1 root root  271 Jan 16  2006 db.127
            -rw-r--r-- 1 root root  237 Jan 16  2006 db.255
            -rw-r--r-- 1 root root  353 Jan 16  2006 db.empty
            -rw-r--r-- 1 root root  256 Jan 16  2006 db.local
            -rw-r--r-- 1 root root 1507 Jan 16  2006 db.root
            -rw-r--r-- 1 root bind 1611 Jan 16  2006 named.conf
            -rw-r--r-- 1 root bind  165 Jan 16  2006 named.conf.local
            -rw-r--r-- 1 root bind  672 Jan 16  2006 named.conf.options
            -rw-r----- 1 bind bind   77 Aug  4 08:41 rndc.key
            -rw-r--r-- 1 root root 1317 Jan 16  2006 zones.rfc1918

配置文件说明:

named.conf

    设置一般的named参数,指向该服务器使用的域数据库的信息源
named.conf.options

    全局选项
db.root

    根服务器指向文件, 由Internet NIC创建和维护, 无需修改, 但是需要定期更新
db.local

    localhost正向区文件,用于将名字localhost转换为本地回送IP地址 (127.0.0.1)
db.127

    localhost反向区文件,用于将本地回送IP地址(127.0.0.1)转换为名字localhost

其中,主配置文件/etc/named.conf的配置语句

     命令          用法 
     acl           定义IP地址的访问控制清单 
     control       定义ndc使用的控制通道 
     include       把其他文件包含到配置文件中 
     key           定义授权的安全密钥 
     logging       定义日志写什么,写到哪 
      opitons       定义全局配置选项和缺省值  
     server        定义远程服务器的特征 
     trunsted-keys 为服务器定义DNSSEC加密密钥 
     zone          定义一个区

默认情况下, 内容如下:

            include "/etc/bind/named.conf.options";

            zone "." {
                    type hint;
                    file "/etc/bind/db.root";
            };

            zone "localhost" {
                    type master;
                    file "/etc/bind/db.local";
            };

            zone "127.in-addr.arpa" {
                    type master;
                    file "/etc/bind/db.127";
            };

            zone "0.in-addr.arpa" {
                    type master;
                    file "/etc/bind/db.0";
            };

            zone "255.in-addr.arpa" {
                    type master;
                    file "/etc/bind/db.255";
            };

            include "/etc/bind/named.conf.local";

其中type项的值:

master:表示定义的是主域名服务器

slave :表示定义的是辅助域名服务器

hint:表示是互联网中根域名服务器

在Debian环境中,options语句的配置内容, 被移至named.conf.options文件中:

            options {
                    directory "/var/cache/bind";

                    // 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 and later use an unprivileged
                    // port by default.

                    // query-source address * port 53;

                    // If your ISP provided one or more IP addresses for stable
                    // nameservers, you probably want to use them as forwarders.
                    // Uncomment the following block, and insert the addresses replacing
                    // the all-0's placeholder.
                    //可以将下面的注释去掉添加原来的dns (可加多个)
                    // forwarders {
                    //      0.0.0.0;
                    // };

                    auth-nxdomain no;    # conform to RFC1035

            };

3.5 创建主域名服务器

a. 首先, 在在192.168.102.47机器上安全bind9

b. 使用编辑器,比如vi, 编辑配置文件/etc/bind/named.conf
注:在ubuntu中还有一个 /etc/bind/named.conf.local (效果相同)

加入如下内容

zone "mydebian.org" {
          type master;    //定义此区为主服务器
          file "/etc/bind/db.mydebian";   //指定区资源文件的位置
};


zone "102.168.192.in-addr.arpa" {
         type master;    //定义此区为主服务器
        file "/etc/bind/db.192";        //指定区资源文件的位置
};

c. 创建区资源文件:

创建区资源文件/etc/bind/db.mydebian内容如下

;
; BIND data file for local loopback interface
;
$TTL    604800
$ORIGIN mydebian.org.
@       IN      SOA     mydebian.org. root.mydebian.org. (
                         2006080401      ; Serial
                          604800         ; Refresh
                          86400         ; Retry
                         2419200         ; Expire
                        604800 )       ; Negative Cache TTL
;

IN      NS      ns
IN      MX      0       mail.mydebian.org.
@       IN      A       192.168.102.47
ns      IN      A       192.168.102.47
www     IN      A       192.168.102.47
webserver       IN      CNAME   www
mail    IN      A       192.168.102.47
ftp     IN      A       192.168.102.48
ns2     IN      A       192.168.102.48
ns3     IN      A       192.168.102.49

第一行是TTL设定,生存时间记录字段。它以秒为单位定义该资源记录中的信息存放在高速缓存中的时间长度。这里定义为604800秒,也就是1周.

第二行是$ORIGIN设定,说明下面的记录出自何处.请您加倍留意最后的一个小小数点"."

然后,第三行,是一个 SOA 记录的设定,在这里我们看到一个特殊字符 @ ,它就是 ORIGIN 的意思,也就是刚刚所定义的$ ORIGIN mydebian.org. 的内容,您可以写成 mydebian.org. 也可以用 @ 来代替。

假如这个文件前面没有定义 $ ORIGIN 的话, 那這个 @ 的值就以 named.conf 里的 zone .

接着 SOA 后面,指定了这个区域的授权主机和管理者的信箱,这里分别是"mydebian.org." 和"root.mydebian.org."。我们平时使用的信箱通常是“user@host”这样的格式,但因为@在 DNS 记录中是个保留字符,所以在 SOA 中就用“.”来代替了@。目前这个信箱是 "root@mydebian.org."。

接下来的 SOA 设置,是被括在“( )”之间的 5 组数字,主要作为和 slave 服务器同步 DNS 资料所使用的资料:

Serial:其格式通常会是“年月日+修改次序”(但也不一定如此,您自己能够记得就行)。当 slave 要进行资料同步的时候,会比较这个号码。如果发现在这里的号码比它那边的数值“大”,就进行更新,否则忽略。不过设 serial 有一个地方您要留意:不能超过 10 位数字!

Refresh:这里是是告诉 slave 要隔多久要进行资料同步(是否同步要看 Serial 的比较结果)。

Retry:如果 slave 在进行更新失败后,要隔多久再进行重试。

Expire:这是记录逾期时间:当 slave 一直未能成功与 master 取得联系,那到这里就放弃 retry,同时这里的资料也将标识为过期(

expired )。

Minimum:这是最小默认 TTL 值,如果您在前面没有用“$TTL”来定义,就会以此值为准。

请注意:SOA 记录中这对 “ ( ) ”符号之第一个 “ (”括号一定要和 SOA 写在同一行,而不能用 Enter 断行到下一行去,而且其左边最好有一个空格键或 tab 建。而最后一个 “ )”括号也不能写在注解符号 “ ;”的右边。 置 DNS 的 RR 记录档,其格式要求非常严格,我们丝毫不能掉以轻心。比方说:如果句子不是以空格键、Tab 键、 或注解符号 ( ; )开头,也不在 SOA 的 “ ( ) ”之内, 则表示要定义一个“新记录项 (Entry) ”;如果句子是以空格键或 tab 键开始的话,其设置被视为上一个“记录项”的内容。所以,如果您要为“同一个记录项”定义多个记录设置,而不想重复打字,您倒可以偷懒:在接着它的后面几行用空白或 Tab 来缩排就可以了。

NS表明负责mydebian.org.这个域的Name Server是mydebian.org这台主机

MX记录标明发往mydebian.org域的邮件由mail.mydebian.org这台服务器接收

A记录标明了IP地址和域名之间的对应关系

接下来创建该区的反向映射资源文件

/etc/bind/db.192内容如下:

;
; BIND reverse data file for local loopback interface
;
$TTL    604800
@       IN      SOA     mydebian.org. root.mydebian.org. (
                        2006080401      ; Serial
                        604800         ; Refresh
                        86400         ; Retry
                        2419200         ; Expire
                        604800 )       ; Negative Cache TTL
;
@       IN      NS      mydebian.org.
47      IN      PTR     mail.mydebian.org.
47      IN      PTR     http://www.mydebian.org.
47      IN      PTR     ns.mydebian.org.
48      IN      PTR     ftp.mydebian.org.
48      IN      PTR     ns2.mydebian.org.
49      IN      PTR     ns3.mydebian.org.

其中PTR记录用来解析IP地址对应的域名

d. 重启DNS服务

         sudo  /etc/init.d/bind9 restart

注:DNS服务只对该服务启动前本机的ip地址有效,
    具体状况可通过 sudo netstat -atnpl 查询(端口53)

此时查看系统日志,可了解BIND的启动情况,比如如下输出,则说明引导正常

            tonybox:~# tail /var/log/syslog
            Aug 14 08:36:45 localhost named[2792]: zone 127.in-addr.arpa/IN: loaded serial 1
            Aug 14 08:36:45 localhost named[2792]: zone 102.168.192.in-addr.arpa/IN: loaded serial 2006080801
            Aug 14 08:36:45 localhost named[2792]: zone 255.in-addr.arpa/IN: loaded serial 1
            Aug 14 08:36:45 localhost named[2792]: zone localhost/IN: loaded serial 1
            Aug 14 08:36:45 localhost named[2792]: zone mydebian.org/IN: loaded serial 2006080801
            Aug 14 08:36:45 localhost named[2792]: running
            Aug 14 08:36:45 localhost named[2792]: zone mydebian.org/IN: sending notifies (serial 2006080801)
            Aug 14 08:36:45 localhost named[2792]: zone 102.168.192.in-addr.arpa/IN: sending notifies (serial 2006080801)
            Aug 14 08:36:45 localhost named[2792]: client 192.168.102.47#1030: received notify for zone 'mydebian.org'
            Aug 14 08:36:45 localhost named[2792]: client 192.168.102.47#1030: received notify for zone '102.168.192.in-addr.arpa'

e. 在客户机上的设置

            # cat /etc/resolv.conf
            search mydebian.org
            nameserver 192.168.102.47

f. 测试:

使用nslookup 测试

            tonybox2:~# nslookup
            > set type=any
            > mydebian.org
            Server:         192.168.102.47
            Address:        192.168.102.47#53

            mydebian.org
                    origin = mydebian.org
                    mail addr = root.mydebian.org
                    serial = 2006080801
                    refresh = 604800
                    retry = 86400
                    expire = 2419200
                    minimum = 604800
            mydebian.org    nameserver = ns.mydebian.org.
            mydebian.org    mail exchanger = 0 mail.mydebian.org.
            Name:   mydebian.org
            Address: 192.168.102.47

使用dig测试

            tonybox2:~# dig @192.168.102.47 mydebian.org

            ; <<>> DiG 9.3.2 <<>> @192.168.102.47 mydebian.org
            ; (1 server found)
            ;; global options:  printcmd
            ;; Got answer:
            ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 41793
            ;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 1

            ;; QUESTION SECTION:
            ;mydebian.org.                  IN      A

            ;; ANSWER SECTION:
            mydebian.org.           604800  IN      A       192.168.102.47

            ;; AUTHORITY SECTION:
            mydebian.org.           604800  IN      NS      ns.mydebian.org.

            ;; ADDITIONAL SECTION:
            ns.mydebian.org.        604800  IN      A       192.168.102.47

            ;; Query time: 31 msec
            ;; SERVER: 192.168.102.47#53(192.168.102.47)
            ;; WHEN: Mon Aug 14 09:16:27 2006
            ;; MSG SIZE  rcvd: 79


            tonybox2:~# dig @192.168.102.47 ftp.mydebian.org

            ; <<>> DiG 9.3.2 <<>> @192.168.102.47 ftp.mydebian.org
            ; (1 server found)
            ;; global options:  printcmd
            ;; Got answer:
            ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 63890
            ;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 1

            ;; QUESTION SECTION:
            ;ftp.mydebian.org.              IN      A

            ;; ANSWER SECTION:
            ftp.mydebian.org.       604800  IN      A       192.168.102.48

            ;; AUTHORITY SECTION:
            mydebian.org.           604800  IN      NS      ns.mydebian.org.

            ;; ADDITIONAL SECTION:
            ns.mydebian.org.        604800  IN      A       192.168.102.47

            ;; Query time: 22 msec
            ;; SERVER: 192.168.102.47#53(192.168.102.47)
            ;; WHEN: Mon Aug 14 09:16:41 2006
            ;; MSG SIZE  rcvd: 83

反向查询

            tonybox2:~# dig @192.168.102.47 -x 192.168.102.47

            ; <<>> DiG 9.3.2 <<>> @192.168.102.47 -x 192.168.102.47
            ; (1 server found)
            ;; global options:  printcmd
            ;; Got answer:
            ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 21885
            ;; flags: qr aa rd ra; QUERY: 1, ANSWER: 3, AUTHORITY: 1, ADDITIONAL: 1

            ;; QUESTION SECTION:
            ;47.102.168.192.in-addr.arpa.   IN      PTR

            ;; ANSWER SECTION:
            47.102.168.192.in-addr.arpa. 604800 IN  PTR     http://www.mydebian.org.
            47.102.168.192.in-addr.arpa. 604800 IN  PTR     mail.mydebian.org.
            47.102.168.192.in-addr.arpa. 604800 IN  PTR     mydebian.org.

            ;; AUTHORITY SECTION:
            102.168.192.in-addr.arpa. 604800 IN     NS      mydebian.org.

            ;; ADDITIONAL SECTION:
            mydebian.org.           604800  IN      A       192.168.102.47

            ;; Query time: 33 msec
            ;; SERVER: 192.168.102.47#53(192.168.102.47)
            ;; WHEN: Mon Aug 14 09:17:00 2006
            ;; MSG SIZE  rcvd: 138

3.6 纯缓存域名服务器

192.168.102.48 为我们的dns 缓存服务器,首先, 在在192.168.102.48 机器上安全bind9, 在配置前我们用dig 进行测试

            tonybox2:/etc/bind# dig @192.168.102.48 http://www.mydebian.org

            ; <<>> DiG 9.3.2 <<>> @192.168.102.48 http://www.mydebian.org
            ; (1 server found)
            ;; global options:  printcmd
            ;; Got answer:
            ;; ->>HEADER<<- opcode: QUERY, status: SERVFAIL, id: 34137
            ;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 0

            ;; QUESTION SECTION:
            ;www.mydebian.org.              IN      A

            ;; Query time: 1844 msec
            ;; SERVER: 192.168.102.48#53(192.168.102.48)
            ;; WHEN: Tue Aug  8 12:05:17 2006
            ;; MSG SIZE  rcvd: 34

修改named.conf.options文件

            tonybox2:/etc/bind# cat named.conf.options
            options {
                    directory "/var/cache/bind";

                    // 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 and later use an unprivileged
                    // port by default.

                    // query-source address * port 53;

                    // If your ISP provided one or more IP addresses for stable
                    // nameservers, you probably want to use them as forwarders.
                    // Uncomment the following block, and insert the addresses replacing
                    // the all-0's placeholder.

                     forwarders {
                            192.168.102.47;  //主域名服务器的IP地址
                     };

                    auth-nxdomain no;    # conform to RFC1035

            };

然后再进行测试

            tonybox2:/etc/bind# dig @192.168.102.48 http://www.mydebian.org

            ; <<>> DiG 9.3.2 <<>> @192.168.102.48 http://www.mydebian.org
            ; (1 server found)
            ;; global options:  printcmd
            ;; Got answer:
            ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 54332
            ;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 1

            ;; QUESTION SECTION:
            ;www.mydebian.org.              IN      A

            ;; ANSWER SECTION:
            http://www.mydebian.org.       604800  IN      A       192.168.102.47

            ;; AUTHORITY SECTION:
            mydebian.org.           604800  IN      NS      mydebian.org.

            ;; ADDITIONAL SECTION:
            mydebian.org.           604800  IN      A       192.168.102.47

            ;; Query time: 44 msec
            ;; SERVER: 192.168.102.48#53(192.168.102.48)
            ;; WHEN: Tue Aug  8 12:05:47 2006
            ;; MSG SIZE  rcvd: 80

所谓的 forwarder,就是当某一台 NS 主机遇到非本机负责的 zone ( slave zone 也属于本机负责的范围) 查询请求的时候,将不直接向 "." zone 查询而把请求转交给指定的 forwarder (一台或多台) 主机代为查询。

我们知道,当DNS服务器接到客户端主机的查询请求时,首先会检查这个查询是否属于本机管辖,否则将转向 "." zone 再逐级的查询下去,最后再把查询结果告诉客户端。

在这个过程之中,DNS服务器还会将查询到的结果存放到缓存中。只要缓存中的 TTL 没过期,在下次遇到同样查询的时候,就可以直接将结果响应给客户端,而无需再重复上次的查询流程。

如果DNS服务器上指定了forwarder,那这个DNS发现缓存中没有记录时,将不向 "." 查询,而是向 forwarder 送出同样的请求(转发),然后等待查询结果,即把逐级往下查询这个耗费精力的动作,交给 forwarder 负责。但无论这个结果是自己直接查询得来的,还是 forwarder 送回来的,DNS服务器都会保存一份数据在缓存中。

这样,以后的相同查询就快多了,这对于DNS所服务的 客户端而言查询效率会提高很多。

            /var/named/named.ca
            dig @a.root-servers.net . ns > /var/named/named.ca

3.7 辅助域名服务器

a. 192.168.102.49 为我们的dns 缓存服务器,首先, 在在192.168.102.49 机器上安全bind9,

b. 在主配置文件/etc/named.conf中加入如下内容:

            zone "mydebian.org" {
                    type slave;
                    file "/etc/bind/slaves/db.mydebian";
                    masters {192.168.102.47;};
            };

            zone "102.168.192.in-addr.arpa" {
                    type slave;
                    file "/etc/bind/slaves/db.192";
                    masters {192.168.102.47;};
            };

type后面的值已经成为slave; 表示定义的是辅助域名服务器

file 后面也可以是别的文件名不必与主域DNS服务器的设置一样

masters 后为主域DNS服务器的IP地址, 可以是多个IP,型如

            masters {ip1;ip2;ip3;};

c. 创建/etc/bind/slaves/目录

            tonybox2:/etc/bind# mkdir slaves

            tonybox2:/etc/bind# chown bind.bind slaves

d. 重启dns服务

            tonybox2:/etc/bind/slaves# /etc/init.d/bind9 restart

named进程第一次启动时,辅助域名服务器就下载主域名服务器的信息;辅助域名服务器根据主域名服务器的对应SOA记录规定的刷新时间间隔,去主域名服务器查询相关信息。

            tonybox2:/etc/bind/slaves# ls -l
            total 8
            -rw-r--r-- 1 bind bind 410 2006-08-08 12:23 db.192
            -rw-r--r-- 1 bind bind 430 2006-08-08 12:23 db.mydebian

查看 /etc/bind/slaves 目录,我门会发现已经从主域名服务器获取了相应的资源文件

如果用户bind对于/etc/bind/slaves目录没有写权限, 则查看 /var/log/syslog 会出现如下类似错误:

            tonybox:~# tail /var/log/syslog

            Aug  8 12:30:09 tonybox2 named[3849]: zone mydebian.org/IN: Transfer started.
            Aug  8 12:30:09 tonybox2 named[3849]: transfer of 'mydebian.org/IN' from 192.168.102.47#53: connected using 192.168.102.15#1075
            Aug  8 12:30:09 tonybox2 named[3849]: dumping master file: /etc/bind/tmp-VHTxU6CT5n: open: permission denied
            Aug  8 12:30:09 tonybox2 named[3849]: transfer of 'mydebian.org/IN' from 192.168.102.47#53: failed while receiving responses: permission denied
            Aug  8 12:30:09 tonybox2 named[3849]: transfer of 'mydebian.org/IN' from 192.168.102.47#53: end of transfer
            Aug  8 12:30:10 tonybox2 named[3849]: zone 102.168.192.in-addr.arpa/IN: Transfer started.
            Aug  8 12:30:10 tonybox2 named[3849]: transfer of '102.168.192.in-addr.arpa/IN' from 192.168.102.47#53: connected using 192.168.102.15#1076
            Aug  8 12:30:10 tonybox2 named[3849]: dumping master file: /etc/bind/tmp-dxbiD1JtTK: open: permission denied
            Aug  8 12:30:10 tonybox2 named[3849]: transfer of '102.168.192.in-addr.arpa/IN' from 192.168.102.47#53: failed while receiving responses: permission denied
            Aug  8 12:30:10 tonybox2 named[3849]: transfer of '102.168.192.in-addr.arpa/IN' from 192.168.102.47#53: end of transfer


Re: 昨天配了个bind9的DNS

发表于 : 2008-10-23 16:36
jsyzlc
我们处在城域网下面,用的172.24.0.0.的网段,用户很多,其中内部也有许多服务器,服务器里有一些网站服务器的应用,在内部,用IP就可以直接访问了,但是在外面申请了域名,现在要把这些域名,和这些内部服务器的IP一个个对应起来,做个解析,让在内部通过域名也能访问,看了上面的教程,虽然讲的很详细,但是太多了,不知道哪些文件要配置,针对我们目前网络这个状况,还不知道怎么配置文件。
我们一般需要解析的地址大概为:

u.hjju.cn 解析到 内网的 172.24.34.101 (这个地址已经通过路由做过公网映射)
www.mqxx.cn 解析到 172.24.23.111 (这个地址已经通过路由做过公网映射)
等等,还有大概20多个。

我们只要达到这个功能就可以了,其他功能不需要。
谁能根据我这个IP 和域名 提供一个格式的文件配置吗?看上去更直观点,我根据你们提供的格式,只要一个个往下面加就可以了。

我服务器 和 DNS 服务全部装好了,网络也配置好了,就等配置文件了,
还请各位热心人,帮忙看下,关键一次没配置过,只要看过了,下次就有个思路了,否则没办法下手的。

谢谢了,最近比较急,这个问题。

Re: 昨天配了个bind9的DNS

发表于 : 2008-10-23 16:42
oneleaf
呵呵,基于域名的方向代理?容易,使用apache的虚拟主机加上反向代理即可搞定。或使用lighttpd的代理和域名配置也很容易搞定。

Re: 昨天配了个bind9的DNS

发表于 : 2008-10-23 17:11
jsyzlc
oneleaf 写了:呵呵,基于域名的方向代理?容易,使用apache的虚拟主机加上反向代理即可搞定。或使用lighttpd的代理和域名配置也很容易搞定。

谢谢你的回答,我还是想用bind9来做,请大家帮帮忙,指引下。

Re: 昨天配了个bind9的DNS

发表于 : 2008-10-23 17:20
oneleaf
参考:
http://wiki.ubuntu.org.cn/Bind%E5%8F%8C ... D%E7%BD%AE

注意: match-clients

代码: 全选

view  "internal" {
match-clients { 10.0.0.0/8; };
...
};

view  "external" {
match-clients { any; };
....
};

Re: 昨天配了个bind9的DNS

发表于 : 2008-10-23 17:49
jsyzlc
看了下双重DNS的设定教程:

include "/etc/rndc.key";

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

#Log Files
logging {
category queries {
default_syslog;
};
};

#DataBase Files
#注意view和match-clients的用法,就是它们在起作用
view "internal" {
match-clients { 10.0.0.0/8; };
recursion yes;
zone "." {
type hint;
file "named.ca";
};
zone "0.0.127.in-addr.arpa" {
type master;
file "0.0.127.in-addr.arpa.zone";
};
zone "localhost" {
type master;
file "localhost.zone";
};
zone "xxu.edu.cn" {
type master;
file "xxu.edu.cn.in.zone";
};
zone "10.in-addr.arpa" {
type master;
file "10.in-addr.arpa.zone";
};
};

view "external" {
match-clients { any; };
recursion yes;
zone "." {
type hint;
file "named.ca";
};
zone "0.0.127.in-addr.arpa" {
type master;
file "0.0.127.in-addr.arpa.zone";
};
zone "localhost" {
type master;
file "localhost.zone";
};
zone "xxu.edu.cn" {
type master;
file "xxu.edu.cn.out.zone";
};
zone "xx.xx.210.in-addr.arpa" {
type master;
file "xx.xx.210.in-addr.arpa.zone";
};
};
这样就配置好了!至于具体的数据文件,我想大家都应该会配置了,我这里就不多说了!

sudo vi /etc/bing/named.conf

把这个里面的文件 修改为上面的内容?

谁能根据上面的模板,给我配置1-2个吗? 就用我上面的那2个案例
u.hjju.cn 解析到 内网的 172.24.34.101
http://www.mqxx.cn 解析到 172.24.23.111

让我模仿下,我就知道大概什么意思了,这和配置路由器一样的,没人带你入门,自己学,很难入门的。

我问的这么详细,希望大家别笑我,我玩的是桌面的,服务器没用过的,虽然命令,文件都知道点,就是没办法下手的。

Re: 昨天配了个bind9的DNS

发表于 : 2008-10-23 19:52
qqttdh
....我可以实现你内网解析的问题。。。但代价是内网用户不能得到你的网站的公网地址。。。
其实内网用户好像也没必要得到那地址。。。呵呵

具体以sina.com为例(给你个动手的机会)
第一步
sudo gedit /etc/bind/named.conf.local
添加以下内容

代码: 全选

zone "sina.com" {
	type master;    //定义此区为主服务器
	file "/etc/bind/db.myweb";   //指定区资源文件的位置
};

zone "208.62.10.in-addr.arpa" {
	type master;    //定义此区为主服务器
	file "/etc/bind/db.10";        //指定区资源文件的位置
};
第二部。。建立相应的数据文件
sudo /etc/bind/db.myweb
这个用于解析域名

代码: 全选

;
; BIND data file for local loopback interface
;
$TTL    604800
$ORIGIN sina.com.
@       IN      SOA     sina.com. root.marx08.org. (
                        2008080401      ; Serial
                        604800         ; Refresh
                        86400         ; Retry
                        2419200         ; Expire
                        604800 )       ; Negative Cache TTL
;

        IN      NS      ns
        IN      MX      0       mail.sina.com.
@       IN      A       10.62.208.100
ns      IN      A       10.62.208.100
www     IN      A       10.62.208.1
webserver       IN      CNAME   www
mail    IN      A       10.62.208.100
ftp     IN      A       10.62.208.100
ns2     IN      A       10.62.208.100
ns3     IN      A       10.62.208.100
sudo gedit /etc/bind/db.10
这个用于地址反查域名

代码: 全选

;
; BIND reverse data file for local loopback interface
;
$TTL    604800
@       IN      SOA     sina.com. root.marx08.org. (
                        2008080401      ; Serial
                        604800         ; Refresh
                        86400         ; Retry
                        2419200         ; Expire
                        604800 )       ; Negative Cache TTL
;
@       IN      NS      sina.com.
100      IN      PTR     mail.sina.com.
1      IN      PTR     www.sina.com.
100      IN      PTR     ns.sina.com.
100      IN      PTR     ftp.sina.com.
100      IN      PTR     ns2.sina.com.
100      IN      PTR     ns3.sina.com.
保存好后重启域名服务即可
sudo /etc/init.d/bind9 restart

此外还可以在file:///etc/bind/named.conf.options中
添加一些指定的域名服务器

例如
sudo gedit /etc/bind/named.conf.options
修改或添加 forwarders内容

代码: 全选

	 forwarders {
		211.90.216.130;
		202.101.172.35;
	 };
ok....

注:www.sina.com对应10.62.208.1 (嘿嘿,这域名归我了。。)

Re: 昨天配了个bind9的DNS

发表于 : 2008-10-23 21:29
jsyzlc
非常感谢 qqttdh 朋友的回答,这下真的很详细了,就这几个步骤,简单明了。下面我加个我们的看下,对不对。

sudo gedit /etc/bind/named.conf.local

代码: 全选

   zone "mqxx.cn" {
   type master;    //定义此区为主服务器
   file "/etc/bind/db.myweb";   //指定区资源文件的位置
};

zone "23.24.172.in-addr.arpa" {
   type master;    //定义此区为主服务器
   file "/etc/bind/db.172";        //指定区资源文件的位置
};


第二部。。建立相应的数据文件
sudo /etc/bind/db.myweb
这个用于解析域名

代码: 全选

;
; BIND data file for local loopback interface
;
$TTL    604800
$ORIGIN mqxx.cn.
@       IN      SOA     mqxx.cn. root.gmail.com. (
                        2008080401      ; Serial
                        604800         ; Refresh
                        86400         ; Retry
                        2419200         ; Expire
                        604800 )       ; Negative Cache TTL
;

www     IN      A       172.24.23.111
ftp     IN      A       172.24.23.111
(我只做网站服务和FTP服务,所以把多余的给删了,不知道对不对)

sudo gedit /etc/bind/db.10
这个用于地址反查域名

代码: 全选

;
; BIND reverse data file for local loopback interface
;
$TTL    604800
@       IN      SOA     mqxx.cn. root.gmail.com. (
                        2008080401      ; Serial
                        604800         ; Refresh
                        86400         ; Retry
                        2419200         ; Expire
                        604800 )       ; Negative Cache TTL
;

111      IN      PTR     www.mqxx.cn.
111      IN      PTR     ftp.mqxx.cn.

保存好后重启域名服务即可
sudo /etc/init.d/bind9 restart

此外还可以在file:///etc/bind/named.conf.options中
添加一些指定的域名服务器

例如
sudo gedit /etc/bind/named.conf.options
修改或添加 forwarders内容

代码: 全选

    forwarders {
      61.177.7.1;
      61.147.37.1;
    };
(这2个DNS,为我们江苏省的DNS,填这个就可以上公网)

注:www.mqxx.cn对应172.24.23.111


大功告成,估计还有不对的地方, 请大家指正。

还有个小问题:我还有很多域名,还是在这个文件里,累计往下面加?还是重新建立?

Re: 昨天配了个bind9的DNS

发表于 : 2008-10-23 22:54
qqttdh
后缀是.mqxx.cn的当然可以
别的需要按照上述步骤添加。。。
ip反解析正好相反。。

如果你在zone里定义.的话估计就都能写在里面了。。。不过可能会有个小问题。。

ip写法可参照db.127
1.0.0 IN PTR localhost.


别的目前还没试出来

Re: 昨天配了个bind9的DNS

发表于 : 2008-10-23 23:09
jsyzlc
思路开始清晰了

那全部定义在 named.conf.local 文件里 不会有问题吧? 一起30多个域名吧 也不算特别多。

然后
例如db.mqxx
db.172

放在一个目录里

db.qq
db.61

放在一个目录里

分开管理,会好点?


创建db.mqxx
命令就是touch db.mqxx ???


www IN A 172.24.23.111
ftp IN A 172.24.23.111

就写这2个没问题吗?
以后有其他的服务,我再添加

Re: 昨天配了个bind9的DNS

发表于 : 2011-04-26 12:34
a5201825
在named.conf.local 里面的配置为:
zone"cmwap.mcc000.mnc460.gprs"{

type master;

flie "/etc/bind/db.cmwap";

};
在db.cmwap 的配置为
;
; BIND reverse data file for local loopback interface
;
$TTL 86400
@ IN SOA cmwap.mcc000.mnc460.gprs.root.cmwap.mcc000.mnc460.gprs. (
2 ; Serial
10800 ; Refresh every 3 hours
3600 ; Retry every hour
604800 ; Expire after a week
86400 ) ; Minimum ttl of 1 day
;
IN NS cmwap.mcc000.mnc460.gprs.
IN A 221.177.169.5

用nslookup 测试的结果为
root@ubuntu:/etc/bind# nslookup
> cmwap.mcc000.mnc460.gprs
Server: 192.168.23.2
Address: 192.168.23.2#53

Non-authoritative answer:
Name: cmwap.mcc000.mnc460.gprs
Address: 222.246.129.82
>

这是为什么? :em06