当前时区为 UTC + 8 小时



发表新帖 回复这个主题  [ 9 篇帖子 ] 
作者 内容
1 楼 
 文章标题 : 求助 ubuntu 9.04 server下用MYSQL和BIND9搭建DNS的方法
帖子发表于 : 2010-03-17 20:54 

注册: 2010-03-17 20:49
帖子: 5
送出感谢: 0 次
接收感谢: 0 次
请高手指教搭建DNS的方法


页首
 用户资料  
 
2 楼 
 文章标题 : Re: 求助 ubuntu 9.04 server下用MYSQL和BIND9搭建DNS的方法
帖子发表于 : 2010-03-18 11:40 
头像

注册: 2008-10-18 12:41
帖子: 1339
送出感谢: 0 次
接收感谢: 0 次
DNS关mysql屁事呀


代码:
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地址对应的域名,也就是反向域名解析,如果客户端用nslookup,显示can't find server name,就要检查一下这里

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


_________________
Server@Linux:~#


页首
 用户资料  
 
3 楼 
 文章标题 : Re: 求助 ubuntu 9.04 server下用MYSQL和BIND9搭建DNS的方法
帖子发表于 : 2010-03-24 13:33 
头像

注册: 2010-01-23 23:38
帖子: 163
送出感谢: 0 次
接收感谢: 0 次
:em05 看了标题我也很奇怪,为何要用MYSQL


_________________
Burst.net VPS、独立主机代购


页首
 用户资料  
 
4 楼 
 文章标题 : Re: 求助 ubuntu 9.04 server下用MYSQL和BIND9搭建DNS的方法
帖子发表于 : 2010-03-28 10:14 

注册: 2010-03-17 20:49
帖子: 5
送出感谢: 0 次
接收感谢: 0 次
下面是我在互联网上找的一篇关于bind+mysql搭建DNS的步骤,但是做到一半做不下去了,就是做到make和make install的时候总是出现错误,请高手指点下



最近几天直bind9+mysql盘旋,搞头晕脑涨,该死DNS同步~呵呵,只能怪自己心急`总搞儿就bind停掉,今天起,就不停掉bind,让自己去同步吧,好不废话,安装步骤发出家共项,有兴趣照着做,手给指点二,谢谢,欢迎各种板砖,臭鸡蛋~

  测试环境:ubuntu8.04

  万网花10元申域名服务器 ns1.edgora.cn 这里鄙视。NND这钱。

  解析域名 xueku.org.cn

  服务器IP地址 123.123.123.123

  需软包:bind9.5.tar.gz apache2 php5 php-mysql mysql-bind.tar.gz phpmyadmin.gz mysql-server libmysqlclient15-dev php5-cli

  1。apache2 php5 mysql-server 就apt-get install 安装,ubuntu打包文还不,当然手以安装源代码`修改源代码安装以匹配自己机器才稳定么,呵呵没那么技术,懒去修改源代码!本人懒。

  apt-get install apache2 php5 php5-cli php5-mysql mysql-server libmysqlclient15-dev

  陆户推荐C99源,美国服务器装,速度惊人,呵呵不修改源`

  2。安装 bind9.5+mysql-bind这里穿插郁闷问题,bind官方网站windows XP 载bind9 载传服务器,tar 解压时候总提示文不全,不论载少次都,所有bind9.5wget载。不知道们安装时候怎么样。

tar zxvf bind9.5
tar zxvf mysql-bind
cp mysql-bind/mysqldb.c bind9.5/bin/named
cp mysql-bind/mysqldb.h bind9.5/bin/named/include/named
cd bind9.5
vim bin/named/Makefile.in
DBDRIVER_OBJS =
DBDRIVER_SRCS =
DBDRIVER_INCLUDES =
DBDRIVER_LIBS =改成
DBDRIVER_OBJS = mysqldb.@O@
DBDRIVER_SRCS = mysqldb.c
DBDRIVER_INCLUDES = -I'/usr/include/mysql'
DBDRIVER_LIBS = -L'/usr/lib/mysql' -lmysqlclient -lz -lcrypt -lnsl -lm -lc -lnss_files -lnss_dns -lresolv
   ubuntu系统 mysql 包路径能不样~家指定自己路径就以不然报改完wq保存退出。

  然修改 bin/named/main.c

  查找 xxdb_init();

   注释文 xxdb_init();

  添加 mysqldb_init();

  然查找查找 xxdb_clear();

  再面添加mysqldb_clear();

  修改完wq 保存退出,然开始编译安装

  ./configure --prefix=/usr/local/named --enable-threads 开启线程处理能力(./configure --prefix=/usr/local/ 编译前配置)

  make(编译)

  make install (安装编译好的源码包)

  安装完,需手工建立配置文。不像 rpm deb包样有默认文。

  cd /usr/local/named/etc(作到次步发现在local下无named和etc,自己建立named和etc)

  生成 rndc 控制命令key文

  ../sbin/rndc-confgen > etc/rndc.conf

  #### 从 rndc.conf 文提 named.conf key 生成 named.conf 文

  cd /usr/local/named/etc

  tail -10 rndc.conf | head -9 | sed 's/# //g' > named.conf

  #### 此时,named.conf 容:

key "rndc-key" {
algorithm hmac-md5;
secret "O0SuB34RK+E3r+m5Fbh2eA==";
};
controls {
inet 127.0.0.1 port 953
 allow { 127.0.0.1; } keys { "rndc-key"; };
};#### dig 命令直接生成 named.root 文,这个文标准东东,
#### 有,本地 dns 不能解就总部去问

  cd /usr/local/named/etc

  dig > named.root

  配置named.conf

key "rndc-key" {
    algorithm hmac-md5;
    secret "SNMYFWAAVeCB/udiejFdGw==";
};
controls {
    inet 127.0.0.1 port 953
        allow { 127.0.0.1; } keys { "rndc-key"; };
};
include "named.conf.options";
zone "." {
type hint;
file "/usr/local/named/etc/named.root";
};
zone "localhost" {
    type master;
    file "/usr/local/named/etc/db.local";
};
zone "127.in-addr.arpa" {
    type master;
    file "/usr/local/named/etc/db.127";
};
zone "0.in-addr.arpa" {
    type master;
    file "/usr/local/named/etc/db.0";
};
zone "255.in-addr.arpa" {
    type master;
    file "/usr/local/named/etc/db.255";
};
zone "xueku.org.cn" IN {
 type master;
 database "mysqldb edgora ludy localhost root 123";
};这些 db.local db.127 db.0 db.255 网配置,其实没什么。

  #### 述容配置自己

  #### 数据库名(edgora),表名(ludy),MYSQL主机(localhost),

  #### MYSQL户(root),MYSQL密码(123)

#### 当然,提条 mysql 建库。

  这里介绍,bind9.4以新加功能allow-query-cache。

  感觉allow-query-cache未设置allow-recursion以代allow-recursion功能,有继承关系。如果想禁止户递归查询求,还需 allow-query-cache 选项关闭,否则户仍然能 cache 查数据

  这里 配置 named.conf.options 容如

options {
    directory "/usr/local/named/etc";
    allow-query { any; };
    allow-recursion { any; };
    allow-query-cache {any;};
    datasize 2098;
};

  这样设置非常不安全,因任何人都以利服务器做DNS这样知道,造成严重载。所以家以建立acl规则指定户使DNS服务器。因测试就不这么做,给家个例子。

  例子:

acl "trusted"{
192.168.6.0/24;
options {
    directory "/usr/local/named/etc";
    allow-query { any; };
    allow-recursion { trusted; };
    allow-query-cache {trusted;};
    datasize 2098;
};4.安装phpmyadmin

  tar zxvf phpmyadmin.gz

  mv phpmyadmin /var/www

  mysql有点不信任自己记得代码,所有phpmyadmin比较安全,简单。

  找 /libraries/config.default.php文(config.default.php复制phpmyadmin目录,然更名config.inc.php),该文有如项目(2-8)须自行配置,windows字板(不记事本,这UTF8编码)进行编辑,linux直接vim编辑.

查找 $cfg['PmaAbsoluteUri'] 修改传空间phpMyAdmin网址

  如:$cfg['PmaAbsoluteUri'] = 'http://123.123.123.123/phpmyadmin

  查找 $cfg['Servers'][$i]['host'] = 'localhost';(通常默认,有例,以不修改)

  查找 $cfg['Servers'][$i]['auth_type'] = 'config';

  自己机子里调试config;如果网络空间cookie,这里们既然面已经添加网址,就修改成cookie ,这里建议使cookie.

  查找 $cfg['Servers'][$i]['user'] = 'root'; // MySQL user(mysql户名,自己机里root;)

  查找 $cfg['Servers'][$i]['password'] = ''; // MySQL password (mysql户密码,自己服务器般都mysql户root密码)

  查找 $cfg['Servers'][$i]['only_db'] = ''; // If set to a db-name, only(只有个数据就设置;如果本机或想架设服务器,那么建议留空) .查找 $cfg['DefaultLang'] = 'zh'; (这里选择语言,zh代表简体文意思,这里不知道填gbk否)

  设置完毕保存

  如果出现“配置文现需绝密短语密码(blowfish_secret)”那么$cfg['blowfish_secret'] = ' ';等号里面设置网站cookie,例如:$cfg['blowfish_secret'] = '任意字符';这因“$cfg['Servers'][$i]['auth_type'] = 'cookie'原因。

  哎phpmyadmin麻烦点,手见量
http://123.123.123.123/phpmyadmin



  相信家建立数据库就不说吧,输入root 密码 123

  进去设置mysql安全吧。然建立个数据库



  好`然插入表,因时间问题就不说。直接插代码,表名ludy

CREATE TABLEludy (
    name varchar(255) default NULL,
    ttl int(11) default NULL,
    rdtype varchar(255) default NULL,
    rdata varchar(255) default NULL
    ) TYPE=MyISAM;

  ####以向解析示范以直接倒入

INSERT INTO mydomain VALUES ('mydomain.com', 259200, 'SOA', 'mydomain.com. www.mydomain.com.
200505101 28800 7200 86400
28800');
INSERT INTOludy VALUES ('xueku.org.cn', 259200, 'NS', 'ns1.edgora.cn.');
INSERT INTOludy VALUES ('xueku.org.cn', 259200, 'MX', '10 mail.xueku.org.cn.');
INSERT INTOludy VALUES ('ns1.edgora.cn', 259200, 'A', '123.123.123.123');
INSERT INTOludy VALUES ('xueku.org.cn', 259200, 'A', '123.123.123.123');
INSERT INTOludy VALUES ('www.xueku.org.cn', 259200, 'A', '123.123.123.123');

5.启动 bind测试否常工作

root@edgora:/usr/local/named/etc# ../sbin/named -g
04-Jul-2008 02:58:03.821 starting BIND 9.5.0 -g
04-Jul-2008 02:58:03.822 found 1 CPU, using 1 worker thread
04-Jul-2008 02:58:03.827 loading configuration from '/usr/local/named/etc/named.conf'
04-Jul-2008 02:58:03.828 listening on IPv6 interfaces, port 53
04-Jul-2008 02:58:03.831 binding TCP socket: address in use
04-Jul-2008 02:58:03.832 listening on IPv4 interface lo, 127.0.0.1#53
04-Jul-2008 02:58:03.856 binding TCP socket: address in use
04-Jul-2008 02:58:03.856 listening on IPv4 interface eth0, 75.125.197.202#53
04-Jul-2008 02:58:03.906 binding TCP socket: address in use
04-Jul-2008 02:58:03.963 default max-cache-size (33554432) applies
04-Jul-2008 02:58:03.990 automatic empty zone: 254.169.IN-ADDR.ARPA
04-Jul-2008 02:58:03.991 automatic empty zone: 2.0.192.IN-ADDR.ARPA
04-Jul-2008 02:58:03.991 automatic empty zone: 255.255.255.255.IN-ADDR.ARPA
04-Jul-2008 02:58:03.991 automatic empty zone: 0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.IP6.ARPA
04-Jul-2008 02:58:03.991 automatic empty zone: 1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.IP6.ARPA
04-Jul-2008 02:58:03.991 automatic empty zone: D.F.IP6.ARPA
04-Jul-2008 02:58:03.991 automatic empty zone: 8.E.F.IP6.ARPA
04-Jul-2008 02:58:03.991 automatic empty zone: 9.E.F.IP6.ARPA
04-Jul-2008 02:58:03.991 automatic empty zone: A.E.F.IP6.ARPA
04-Jul-2008 02:58:03.992 automatic empty zone: B.E.F.IP6.ARPA
04-Jul-2008 02:58:04.005 default max-cache-size (33554432) applies: view _bind
04-Jul-2008 02:58:04.025 /usr/local/named/etc/named.conf:7: couldn't add command channel 127.0.0.1#953: address in use
04-Jul-2008 02:58:04.026 ignoring config file logging statement due to -g option
04-Jul-2008 02:58:04.046 zone 0.in-addr.arpa/IN: loaded serial 1
04-Jul-2008 02:58:04.047 zone 127.in-addr.arpa/IN: loaded serial 1
04-Jul-2008 02:58:04.048 zone 255.in-addr.arpa/IN: loaded serial 1
04-Jul-2008 02:58:04.057 zone localhost/IN: loaded serial 1
04-Jul-2008 02:58:04.059 running好没有误`嘿嘿``测试吧。自己DNS设置成123.123.123.123 打开IE www.xueku.org.cn

能打开OK。 host -t ns xueku.org.cn 得 ns1.edgora.cn好切常,现就等bind9世界各地DNS同步,默认DNS就以解析域名啦。有点仓促,呵呵如果有误谢谢指点。nslookup xueku.org.cn以测试。。

  这里 谢谢``帮助人` 呵呵``让学不少东西。当然想同步快点TTL修改点 修改 3600吧呵呵``时同步次。再告诉家个好测试命令

  向别人学习呵呵。

dig @203.119.27.1 xueku.org.cn
; <<>> DiG 9.3.5rc2 <<>> @203.119.27.1 xueku.org.cn
; (1 server found)
;; global options: printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 1310
;; flags: qr rd; QUERY: 1, ANSWER: 0, AUTHORITY: 2, ADDITIONAL: 0
;; QUESTION SECTION:
;xueku.org.cn.           IN   A
;; AUTHORITY SECTION:
xueku.org.cn.      21600 IN   NS   ns.edgora.cn.
xueku.org.cn.      21600 IN   NS   ns1.edgora.cn.
;; Query time: 93 msec
;; SERVER: 203.119.27.1#53(203.119.27.1)
;; WHEN: Tue Jul 01 19:41:27 2008
;; MSG SIZE rcvd: 72
dig @ns1.edgora.cn www.xueku.org.cn
; <<>> DiG 9.3.5rc2 <<>> @ns1.edgora.cn www.xueku.org.cn
; (1 server found)
;; global options: printcmd
;; connection timed out; no servers could be reached

  因还没有同步所以报错了。


页首
 用户资料  
 
5 楼 
 文章标题 : Re: 求助 ubuntu 9.04 server下用MYSQL和BIND9搭建DNS的方法
帖子发表于 : 2010-03-28 13:14 
头像

注册: 2010-01-23 23:38
帖子: 163
送出感谢: 0 次
接收感谢: 0 次
自己去godaddy或者其他国外域名商地方注册一个域名,然后注册自己的DNS服务器,比如
代码:
ns1.yourname.com
ns2.yourname.com

这个是免费的,这样你就不需要再去买什么ns1.edgora.cn

另外,搞不懂为什么你要搞MySQL,搞的这么复杂···


_________________
Burst.net VPS、独立主机代购


页首
 用户资料  
 
6 楼 
 文章标题 : Re: 求助 ubuntu 9.04 server下用MYSQL和BIND9搭建DNS的方法
帖子发表于 : 2010-03-29 14:41 

注册: 2010-03-17 20:49
帖子: 5
送出感谢: 0 次
接收感谢: 0 次
因为是拿来学习的,没有办法,我们教授就这样要求的。


页首
 用户资料  
 
7 楼 
 文章标题 : Re: 求助 ubuntu 9.04 server下用MYSQL和BIND9搭建DNS的方法
帖子发表于 : 2010-03-29 23:38 

注册: 2010-03-17 20:49
帖子: 5
送出感谢: 0 次
接收感谢: 0 次
懂的朋友能不能提供些意见什么的,现在BIND能正常工作,用windows去测试,正向解析出的IP地址不对,现在头都大了,希望懂的朋友支持下!


页首
 用户资料  
 
8 楼 
 文章标题 : Re: 求助 ubuntu 9.04 server下用MYSQL和BIND9搭建DNS的方法
帖子发表于 : 2010-04-28 16:55 

注册: 2010-03-17 20:49
帖子: 5
送出感谢: 0 次
接收感谢: 0 次
以上问题经过自己的反复研究测试已经全部解决,有需要技术性文档的朋友可以找我要。


页首
 用户资料  
 
9 楼 
 文章标题 : Re: 求助 ubuntu 9.04 server下用MYSQL和BIND9搭建DNS的方法
帖子发表于 : 2010-06-29 0:42 

注册: 2010-06-06 11:45
帖子: 1
送出感谢: 0 次
接收感谢: 0 次
yjl6015007, yjl6015007, 你好。我现在在使用mysql-bind,基本的配置都弄好了,但是遇到问题了。
我现在想配置一台辅助服务器,作为主服务器的备份,按照bind本身的配置应该是slave型的zone,但是使用mysql-bind之后呢?
请问您现在会配置么?谢谢您的回复~~


页首
 用户资料  
 
显示帖子 :  排序  
发表新帖 回复这个主题  [ 9 篇帖子 ] 

当前时区为 UTC + 8 小时


在线用户

正在浏览此版面的用户:没有注册用户 和 2 位游客


不能 在这个版面发表主题
不能 在这个版面回复主题
不能 在这个版面编辑帖子
不能 在这个版面删除帖子
不能 在这个版面提交附件

前往 :  
本站点为公益性站点,用于推广开源自由软件,由 DiaHosting VPSBudgetVM VPS 提供服务。
我们认为:软件应可免费取得,软件工具在各种语言环境下皆可使用,且不会有任何功能上的差异;
人们应有定制和修改软件的自由,且方式不受限制,只要他们自认为合适。

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
简体中文语系由 王笑宇 翻译