• 软件测试技术
  • 软件测试博客
  • 软件测试视频
  • 开源软件测试技术
  • 软件测试论坛
  • 软件测试沙龙
  • 软件测试资料下载
  • 软件测试杂志
  • 软件测试人才招聘
    暂时没有公告

字号: | 推荐给好友 上一篇 | 下一篇

架设dns全攻略

发布: 2007-5-25 23:52 | 作者: 未知 | 来源: ChinaUnix.net | 查看: 46次 | 进入软件测试论坛讨论

领测软件测试网
架设dns全攻略

作者cpss  http://cpss.zz.ha.cn
                                                                                       
首先从 http://www.isc.org/products/BIND/   (version 9.2.2)下载bind,并如下将压缩包解开。

tar -xzvpf bind-9.2.2rc1.tar.gz

然后,改变目录至我们解压产生的bind 原代码目录:

cd bind-9.2.2rc1

 

下一步,su成root用户。

我们将bind安装到“/usr/local/”目录。如果没有该目录,就创建一个:

mkdir /usr/local

bind使用autoconf, 所以编译它是很容易的,如下:

./configure --prefix=/usr/local --mandir=/usr/local/share/man

大概几分钟时间,文件就配置好了。然后如下操作:

make

大约20分钟,编译工作可以完成。剩下的工作就是安装(install)了。如下操作:

make install

这也需要几分钟时间。

 

当安装完毕后,bind并不能立即使用,这是因为还有些配置文件没有配置。我们将举些简单的配置作为例子。

在标准安装,有一个 named.conf文件, 一个rndc.conf文件,和一个namedb 目录,该目录包含 localhost.rev文件。我们安装这些到“/usr/local/etc”目录。如果该目录不存在,就先创建一个: 

mkdir /usr/local/etc

同样,我们还需要创建一个“namedb”目录:

mkdir /var/namedb

现在,我们编辑“named.conf”文件。我们以后可以添加更多的内容,但现在它看起来是这样的(我们可以从这里下载named.conf文件):

options {

directory "/var/namedb";    // 工作目录   

 pid-file "named.pid";            // 放pid文件到工作目录,否则pid文件在/var/run目录

};


zone "." {
        type hint;

        file "named.root";

};

 

// 提供loopback地址127.0.0.1的反向地址映射

zone "0.0.127.in-addr.arpa" {

        type master;

        file "localhost.rev";
        notify no;
};

zone "173.76.207.in-addr.arpa" in { type master; file "db.207.76.173";notify no; };

//注意上面和下面形式不同的例子实际上完成的是一样的功能。

zone "bind.com" {

        type master;

        file "bind.com.zone";

        notify no;

        };


其中named.root(有时也称为named.ca,都是指的同一个东西,大家的习惯不同嘛)中包含的是目前全球顶级域名服务器地址信息,该文件有可能会随着时间的推移而变得过时了,需要我们定期去网上更新。这里是internic提供的免费下载的named.root,该文件的信息总是最新的。

下面,我们创建localhost.rev文件。该文件看起来是这样的:

$TTL 3600
@       IN      SOA     user1.bind.com. hostmaster.bind.com.
                                (
                                1       ; Serial ; Increment by one after every change
                                3600    ; Refresh every hour
                                900     ; Retry every 15 minutes
                                3600000 ; Expire 1000 hours
                                3600 )  ; Minimum 1 hour
 
 
        IN      NS      nameserv1.bind.com.
        IN      NS      nameserv2.bind.com.
 
 
1       IN      PTR     localhost.
 

你也可以下载localhost.rev文件,并将下载的文件放置到/var/namedb目录中:

mv localhost.rev /var/namedb

你也可以下载地址解析文件的实例,从分析实例中得到学习。

下面我们创建rndc.conf文件,并用它补充named.conf文件。rndc.conf 文件可以通过程序自动创建。我们先改变目录至/usr/local/etc :

cd /usr/local/etc

然后,我们使用rndc-confgen产生该配置文件。由于Solaris 7的一个bug,我们需要键入一堆字母来产生rndc联系bind使用的key(我在Solaris 8中安装时,是不需要的键入这些讨厌的字母的)。命令格式如下:

/usr/local/sbin/rndc-confgen > rndc.conf

一直键入直到console上提示“stop typing”为止。这将自动产生rndc.conf 文件。rndc.conf文件也包括一些必须加入到named.conf的行。我们可以通过下面命令自动将这些行加到named.conf文件中:

tail -n10 rndc.conf | head -n9 | sed -e s/#\ //g >> named.conf

现在,我们可以准备运行bind了。首先我们先在console上通过命令运行:

/usr/local/sbin/named -gc /usr/local/etc/named.conf &

在出现一些信息后,将最后显示一行为“running”。

使用如下命令:

/usr/local/sbin/rndc status

它将显示我们服务器已经运行了,显示如下:

number of zones: 5

debug level: 0

xfers running: 0

xfers deferred: 0

soa queries in progress: 0

query logging is OFF

server is up and running

bind启动后,我们可以用rndc来控制bind的运行、重新调配置文件,而不再需要野蛮地用kill对付bind了。

现在我们可以去设置dns服务器启动时自动运行,不需要我们开一个窗口去运行它。我们可以在“/etc/rc2.d”目录下做一个启动文件,这样每次服务器启动时bind都会自动启动起来。这个工作比较简单,这里就不再赘述了。

ps :擅自把 cpss 兄的大作贴出来,望 cpss 兄见谅!:)

 sunmarmot 回复于:2003-02-21 01:00:03
嘿嘿!!还有他的高级设置篇在UNIX应用扳子里面......

 cpss 回复于:2003-02-21 09:20:51
由于时间的问题,写的比较简单,献丑了。^_^

 future00 回复于:2003-03-28 17:07:34
我敲入/usr/local/sbin/rndc status时提示:
rndc: connect failed: connection refused
谢谢告诉我是什么原因。

 future00 回复于:2003-03-28 17:08:23
我敲入/usr/local/sbin/rndc status时提示:
rndc: connect failed: connection refused
谢谢告诉我是什么原因。

 future00 回复于:2003-03-28 17:18:03
还有当我执行  /usr/loal/sbin/named -c /usr/local/bind-9.2.2/named.con 时,我用ps -ef |grep named时看不到进程号。
当我执行 /usr/loal/sbin/named -gc /usr/local/bind-9.2.2/named.con 时,又提示:ignoring config file logging statement due to -g option,这时用ps -ef |grep named能看到进程,并且可以正常使用。
请问是什么原因?谢谢!

 cpss 回复于:2003-03-29 12:17:15
只要“-c”应该就可以了。
你执行/usr/loal/sbin/named -c /usr/local/bind-9.2.2/named.conf,如果进程没有起来,你查一下有什么报错,具体问题具体解决。
我以前加“-g”是为了能够直接看到有什么报错信息,平时运行时我是不加这个参数的。

 future00 回复于:2003-03-30 22:40:18
解决好了,
/usr/loal/sbin/named -u bind -c /usr/local/bind-9.2.2/named.conf &
就可以了,我想应该是权限问题所造成的。
谢谢!

 wangdk 回复于:2003-04-05 13:27:07
[color=blue:eb9511c2d8]我谢谢了![/color:eb9511c2d8]

 galaxy1975 回复于:2003-04-07 11:25:17
具体到哪儿下载那个name.root呢,
我的DNS现在好像只能找到.cn的域,其他的都找不到

 Enrique 回复于:2003-04-25 21:39:57
tar -xzvpf bind-9.2.2rc1.tar.gz 
不行呀
solaris不认识这个文件,有没有.tar或者.tar.Z

 B2Sun 回复于:2003-05-08 08:22:25
表主题: 如何在Openbsd中邦定MAC地址防止IP占用上网    

--------------------------------------------------------------------------------
 
大家好,我想用OPENBSD3.2建立一个防火墙 PF 
我想在防火墙中加入地址邦定功能,: MAC和IP地址邦定一起! 
这样就可以搞定限制了别个不会去冒充上网, 
如: IP:192.168.4.1-192.168.4.100 /24这个段可以上网 
而 IP: 192.168.4.101-254 /24这个段不可以上网 
如果没有MAC地址和IP邦定的话,那就很难办了! 如果不能上网的机器在能上网的机器开机之前启动的话,它就可以上网了,这也是我们不想的事情! 
如果 192.168.4.101的机器把自己的IP改为192.168.4.1就可以上网了 
如果 我们做了MAC地址邦定的话,就 是改了IP地址也没有用,不能上网。 
(但还是可以冒充IP!如果可以限制不能改IP地址就好了!)

 myxfc 回复于:2003-06-02 17:18:29
[quote="B2Sun"]表主题: 如何在Openbsd中邦定MAC地址防止IP占用上网    

--------------------------------------------------------------------------------

 sill 回复于:2003-06-03 11:09:33
whoami# /usr/local/sbin/named -gc /usr/local/etc/named.conf
Jun 03 11:00:12.192 starting BIND 9.2.2rc1 -gc /usr/local/etc/named.conf
Jun 03 11:00:12.193 using 1 CPU
Jun 03 11:00:12.203 loading configuration from '/usr/local/etc/named.conf'
Jun 03 11:00:12.204 /usr/local/etc/named.conf:18: unknown option 'zone'
Jun 03 11:00:12.204 /usr/local/etc/named.conf:23: unknown option 'zone'
Jun 03 11:00:12.205 /usr/local/etc/named.conf:56: unknown option 'zone'
Jun 03 11:00:12.205 /usr/local/etc/named.conf:60: unknown option 'zone'
Jun 03 11:00:12.205 /usr/local/etc/named.conf:66: unknown option 'key'
Jun 03 11:00:12.205 /usr/local/etc/named.conf:71: unknown option 'controls'
Jun 03 11:00:12.206 /usr/local/etc/named.conf:75: '}' expected near end of file
Jun 03 11:00:12.206 loading configuration: unexpected token
Jun 03 11:00:12.206 exiting (due to fatal error)


这是我的named.conf的内容:
whoami# cat /usr/local/etc/named.conf
#
#
#
# version of an BIND 9.2.2 named.conf
#

options {
        directory "/var/namedb";
pid-file "named.pid";

// Setting up secondaries is way easier and the rough picture for this
// is explained below.
//
// If you enable a local name server, don't forget to enter 127.0.0.1
// into your /etc/resolv.conf so this server will be queried first.
// Also, make sure to enable it in /etc/rc.conf.

zone "." {
        type hint;
        file "named.root";
};

zone "0.0.127.IN-ADDR.ARPA" {
        type master;
        file "localhost.rev";
        notify no&&
};

// NB: Do not use the IP addresses below, they are faked, and only
// serve demonstration/documentation purposes!
//
// Example secondary config entries.  It can be convenient to become
// a secondary at least for the zone where your own domain is in.  Ask
// your .network administrator for the IP address of the responsible
// primary.
//
// Never forget to include the reverse lookup (IN-ADDR.ARPA) zone!
// (This is the first bytes of the respective IP address, in reverse
// order, with ".IN-ADDR.ARPA" appended.)
//
// Before starting to setup a primary zone, better make sure you fully
// understand how DNS and BIND works, however.  There are sometimes
// unobvious pitfalls.  Setting up a secondary is comparably simpler.
//
// NB: Don't blindly enable the examples below. :-)  Use actual names
// and addresses instead.
//
// NOTE!!! FreeBSD runs bind in a sandbox (see named_flags in rc.conf).
// The directory containing the secondary zones must be write accessible
// to bind.  The following sequence is suggested:
//
//      mkdir /var/namedb/s
//      chown bind.bind /var/namedb/s
//      chmod 750 /var/namedb/s

zone "173.76.207.in-addr.arpa" in { type master; file "db.207.76.173";notify no; };

// Note difference in style from above to below will accomplish the same thing.

zone "bind.com" {
        type master;
        file "bind.com.zone";
        notify no;
        };

key "rndc-key" {
        algorithm hmac-md5;
        secret "IAVtDRkMo5MObnqyB8e8ug==";
};

controls {
        inet 127.0.0.1 port 953
                allow { 127.0.0.1; } keys { "rndc-key"; };
};



我真的不会怎么配置,能给我一个合用的例子吗?谢谢!

 liyongliang12 回复于:2003-07-15 12:01:17
:cry: 请大虾指点:我输入命令named  status时提示
 This may indicate that the remote server is using an older version fo the command protocel controls . This host is not authorized to connect , or the key is invalid.
我的rndc.key文件是这样的:
key "rndc-key" { 
 algorithm hmac-md5; 
 secret "y9xvvfQjdWv9f/Fo7wquBg=="; 
 }; 
 
 controls { 
 inet 127.0.0.1 port 953 
 allow { 127.0.0.1; } keys { "rndc-key"; }; 
 }; 
请大虾帮忙,我配DNS好几天了,老配不好,十分郁闷!!望高人指点迷津!!!先在此谢过了!!

 rollswen 回复于:2003-07-18 15:30:18
我是按照你的方法配置的,当然运行[color=red:95eaf993ad]/usr/local/sbin/named -gc /usr/local/etc/named.conf & [/color:95eaf993ad]后出现一些信息后,将最后显示一行为“running”。 但光标就停在那里,按回车不出现提示符号,只有按CTRL+C 才可以出现提示符号,但BIND进程也SHUT DOWN了;但不用-gc ,用-c就没有问题,请帮我一下,我的系统是TRU64 4。0F

 liuwping 回复于:2003-08-07 09:12:18
我想问问,在 REDHAT9 下不用下楼顶说的什么BIND 软件吧! 那REDHAT ADVANCE SERVER 2。1 呢?

 jfcat 回复于:2003-09-11 17:01:50
我用系统自带的DNS,但里面没有那个named.pid文件

不知道是怎么回事

 yfhe 回复于:2003-09-15 17:37:55
[quote:e6ed95f93b="jfcat"]我用系统自带的DNS,但里面没有那个named.pid文件

不知道是怎么回事[/quote:e6ed95f93b]     

启动named后会自动生成的。默认应该是在目录/var/run/named/下。

 jfcat 回复于:2003-09-16 10:23:38
你是怎么起动的,怎么生成啊

我用上面说的方法起动,显示说没那个文件,然后起动就结束了

能不能详细的讲一下 :shock:

 jfcat 回复于:2003-09-16 10:23:55
你是怎么起动的,怎么生成啊

我用上面说的方法起动,显示说没那个文件,然后起动就结束了

能不能详细的讲一下 :shock:

 jfcat 回复于:2003-09-16 10:29:05
你是怎么起动的

我没那个文件就起动不了

能不能详细讲一下啊

 lcfzgb 回复于:2004-03-22 18:19:46
现在我们可以去设置dns服务器启动时自动运行,不需要我们开一个窗口去运行它。我们可以在“/etc/rc2.d”目录下做一个启动文件,这样每次服务器启动时bind都会自动启动起来。
如何做啊?偶不知道

 dcat1 回复于:2004-08-13 15:36:59

# Aug 13 15:35:02.845 starting BIND 9.2.3rc1 -gc /usr/local/etc/named.conf
Aug 13 15:35:02.846 using 1 CPU
Aug 13 15:35:02.848 loading configuration from '/usr/local/etc/named.conf'
Aug 13 15:35:02.849 listening on IPv4 interface rl0, 192.168.0.11#53
Aug 13 15:35:02.850 listening on IPv4 interface lo0, 127.0.0.1#53
Aug 13 15:35:02.853 command channel listening on 127.0.0.1#953
Aug 13 15:35:02.853 /usr/local/etc/named.conf:39: couldn't add command channel 127.0.0.1#953: address in use
Aug 13 15:35:02.853 ignoring config file logging statement due to -g option
Aug 13 15:35:02.857 dns_rdata_fromtext: localhost.rev:10: near '@date@': not a valid number
Aug 13 15:35:02.858 zone 0.0.127.IN-ADDR.ARPA/IN: loading master file localhost.rev: not a valid number
Aug 13 15:35:02.858 zone 0.168.192.in-addr.arpa/IN: loading master file db.192.168.0: file not found
Aug 13 15:35:02.858 zone md.com/IN: loading master file md.com.zone: file not found
Aug 13 15:35:02.858 running

 dcat1 回复于:2004-08-13 15:38:40

# Aug 13 15:35:02.845 starting BIND 9.2.3rc1 -gc /usr/local/etc/named.conf
Aug 13 15:35:02.846 using 1 CPU
Aug 13 15:35:02.848 loading configuration from '/usr/local/etc/named.conf'
Aug 13 15:35:02.849 listening on IPv4 interface rl0, 192.168.0.11#53
Aug 13 15:35:02.850 listening on IPv4 interface lo0, 127.0.0.1#53
Aug 13 15:35:02.853 command channel listening on 127.0.0.1#953
Aug 13 15:35:02.853 /usr/local/etc/named.conf:39: couldn't add command channel 127.0.0.1#953: address in use
Aug 13 15:35:02.853 ignoring config file logging statement due to -g option
Aug 13 15:35:02.857 dns_rdata_fromtext: localhost.rev:10: near '@date@': not a valid number
Aug 13 15:35:02.858 zone 0.0.127.IN-ADDR.ARPA/IN: loading master file localhost.rev: not a valid number
Aug 13 15:35:02.858 zone 0.168.192.in-addr.arpa/IN: loading master file db.192.168.0: file not found
Aug 13 15:35:02.858 zone md.com/IN: loading master file md.com.zone: file not found
Aug 13 15:35:02.858 running

延伸阅读

文章来源于领测软件测试网 https://www.ltesting.net/


关于领测软件测试网 | 领测软件测试网合作伙伴 | 广告服务 | 投稿指南 | 联系我们 | 网站地图 | 友情链接
版权所有(C) 2003-2010 TestAge(领测软件测试网)|领测国际科技(北京)有限公司|软件测试工程师培训网 All Rights Reserved
北京市海淀区中关村南大街9号北京理工科技大厦1402室 京ICP备2023014753号-2
技术支持和业务联系:info@testage.com.cn 电话:010-51297073

软件测试 | 领测国际ISTQBISTQB官网TMMiTMMi认证国际软件测试工程师认证领测软件测试网