`
wangminshe89
  • 浏览: 675110 次
文章分类
社区版块
存档分类
最新评论

从源代码包安装BIND9

 
阅读更多

从源代码包安装BIND9

Posted on 2004年10月3日 16:56

ISC BIND 是 DNS 在 Unix 和 Linux 下的具体实现,BIND 9 更是重新编写大部分 BIND 结构代码的新一代版本,BIND 9 的主要特点有:

  • DNS安全
    DNSSEC (signed zones)
    TSIG (signed DNS requests)
  • IPv6
    Answers DNS queries on IPv6 sockets
    IPv6 resource records (DNAME, etc.)
    Experimental IPv6 Resolver Library
  • 实现了 DNS 协议新扩展的功能
    IXFR, DDNS, Notify, EDNS0
    Improved standards conformance
  • 视图功能(Views)
    一台服务器可以提供DNS名字空间的多个视图
  • 支持多处理器
  • 增强了代码的可移植性

BIND 9的当前最新版本是 BIND 9.3.0,下面我们介绍如何从源代码安装 BIND 9。

1、从源代码安装BIND要求你的Unix或Linux系统上装有支持ANSI C的编译器,如果没有,你可以使用GNU提供的gcc

2、到 www.isc.org 网站下载你需要的版本的BIND源代码包

3、下载到你的系统后,将源代码安装包放到 /usr/src 目录中(你也可以放到别的目录,我习惯用这个目录放置源代码包)准备安装

4、解压源代码包:
$ cd /usr/src
$ tar xvfz bind-9.3.0.tar.gz (9.3.0是bind的版本号)
如果你的 tar 命令不支持z选项(用于解压gz后缀的压缩包),你可以分两步做:
$ gunzip bind-9.3.0.tar.gz
$ tar xvf bind-9.3.0.tar
这样源代码就解压到 bind-9.3.0目录中了。

5、开始编译:
$ cd bind-9.3.0
$ ./configure

正像单词的意思一样,configure 是编译前对源代码进行针对具体操作系统的编译参数配置,有很多选项可以选择,大家可以用 --help 选项来查看所有可用的选项,这里介绍几个最常用的选项:
--prefix=/usr/local/bind 设置bind的安装目录,默认是/usr/local。
有的人喜欢将bind安装在单独的目录就可以如此设置
--sysconfdir=/etc/bind 设置named.conf配置文件放置的目录,默认是"$prefix/etc"
--localstatdir=/var设置 run/named.pid 放置的目录,默认是"$prefix/var"
--with-libtool将BIND的库文件编译为动态共享库文件,这个选项默认是未选择的。
如果不选这个选项,那么编译后的named命令会比较大,lib目录中的库文件都是.a后缀的
如果选上这个选项,那么编译后的named命令会很小,lib目录中的库文件则是.so后缀
--enable-threads 如果你的系统有多个CPU,那么可以使用这个选项

如果 ./configure 没有报错的话,那么就可以开始编译源代码了。
$ make

编译需要一小会时间,编译完成后则开始安装BIND,安装需要 root 用户权限,所以要先转换成root用户。
$ su -
# make install

这样BIND9就已经安装完成了,但要让BIND能正常工作,还需要做一些配置。下面介绍配置最简单的 bind cache server。由于本文是希望让 DNS 的初学者能尽快的配置出服务器,因此未详细解释一些细节。推荐初学者详读《dns and bind》。

named.conf 文件是 BIND 的配置文件,配置如下:

=============
named.conf
=============
options {
directory "/var/bind";
listen-on-v6 { none }; // 禁止IPv6的功能
listen-on { 127.0.0.1; }; // 如果你有多个网卡,而你只想监听特定的一个网卡,就可以使用这个选项
pid-file "/var/run/named.pid"; // 设置 named 进程运行时记录PID号的文件
};

zone "." IN {
type hint;
file "named.cache";
};

zone "localhost" IN {
type master; // 区的类型设置为 master
file "localhost.zone"; // 区数据文件的位置
allow-update { none; }; // 不允许动态更新本区的数据
notify no; // 由于不允许动态更新,那么就不需要更新通知的功能
};

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

下面是三个 zone 所需要的区配置文件:

=============
named.cache
=============
这个文件记录了所有根 dns 服务器的信息,是由 www.internic.net 维护的,一般好几年才变动一次。你可以到 ftp://ftp.rs.internic.net/domain/named.cache 去下载,这里就不列出来了。

=============
localhost.zone
=============
$TTL 1W
@ IN SOA ns.localhost. root.localhost. (
2004100501 ; Serial
28800 ; Refresh
14400 ; Retry
604800 ; Expire - 1 week
86400 ) ; Minimum

IN NSns
localhost. IN A 127.0.0.1

=============
127.zone
=============
$ORIGIN 127.in-addr.arpa.
$TTL 1W
@ 1D IN SOA localhost. root.localhost. (
2004100501 ; Serial
3H ; Refresh
15M ; Retry
1W ; Expire
1D ) ; Minimum

1D IN NSlocalhost.
* 1D IN PTRlocalhost.

这样所有的配置文件就搞定了。不过如果你希望你的 named 进程能够更安全一些,那么你可以将 named 进程用专门的一个用户(比如:named 用户)来运行,而不是用权限最大的 root 用户来运行。操作步骤如下:

1、创建 named 用户,记得将用户的 shell 设置为无法登陆的类型。
2、chown root /etc/bind/named.conf
chmod 644 /etc/bind/named.conf
3、chown named /var/bind/*
chmod 644 /var/bind/*
5、启动 named 进程时使用 -u named 选项。

这样子一个最简单的 cache server 就配置好了。记得启动 named 进程后,查看一下 syslog 看看是否有出错信息,然后用 nslookup 或 dig 命令测试看看。

分享到:
评论

相关推荐

    Bind源代码包安装

    Bind源代码包安装,可以用于bind安装的参考文件

    jakarta.xml.bind-api-2.3.3-API文档-中文版.zip

    赠送源代码:jakarta.xml.bind-api-2.3.3-sources.jar; 赠送Maven依赖信息文件:jakarta.xml.bind-api-2.3.3.pom; 包含翻译后的API文档:jakarta.xml.bind-api-2.3.3-javadoc-API文档-中文(简体)版.zip; Maven...

    jakarta.xml.bind-api-2.3.3-API文档-中英对照版.zip

    赠送源代码:jakarta.xml.bind-api-2.3.3-sources.jar; 赠送Maven依赖信息文件:jakarta.xml.bind-api-2.3.3.pom; 包含翻译后的API文档:jakarta.xml.bind-api-2.3.3-javadoc-API文档-中文(简体)-英语-对照版.zip...

    arx培训含源代码

    包含一个ppt及源代码.源代码中包含常见的选择集,自定义实体及其反应器等等。

    Linux内核源代码情景分析 (上下册 高清非扫描 )

    丛书名: Linux内核源代码情景分析 出版社:浙江大学出版社 目录 第1章 预备知识 1.1 Linux内核简介. 1.2 Intel X86 CPU系列的寻址方式 1.3 i386的页式内存管理机制 1.4 Linux内核源代码中的C语言代码 1.5 Linux...

    jakarta.xml.bind-api-2.3.2-API文档-中文版.zip

    赠送源代码:jakarta.xml.bind-api-2.3.2-sources.jar; 赠送Maven依赖信息文件:jakarta.xml.bind-api-2.3.2.pom; 包含翻译后的API文档:jakarta.xml.bind-api-2.3.2-javadoc-API文档-中文(简体)版.zip; Maven...

    jakarta.xml.bind-api-2.3.2-API文档-中英对照版.zip

    赠送源代码:jakarta.xml.bind-api-2.3.2-sources.jar; 赠送Maven依赖信息文件:jakarta.xml.bind-api-2.3.2.pom; 包含翻译后的API文档:jakarta.xml.bind-api-2.3.2-javadoc-API文档-中文(简体)-英语-对照版.zip...

    d2hackit_v2.0_beta_0920 源代码

    d2hackit_v2.0_beta0920 源代码 另外还包含bind、lifesaver两个插件源代码

    bind-9.8.0-P2.tar.gz

    DNS 最新版源代码 bind-9.8.0-P2.tar.gz

    bind rewrite

    使用 detoured 把 bindrewrite.dll 载入 将要执行的exe, bindrewrite.dll 负责把 bind() 调用的地址/端口重写掉, 具体使用方法参考 run.bat 包含源代码

    jaxb-api-2.3.1-API文档-中文版.zip

    赠送源代码:jaxb-api-2.3.1-sources.jar; 赠送Maven依赖信息文件:jaxb-api-2.3.1.pom; 包含翻译后的API文档:jaxb-api-2.3.1-javadoc-API文档-中文(简体)版.zip; Maven坐标:javax.xml.bind:jaxb-api:2.3.1; ...

    java源码博客-javascript-plugin:制作JS小部件的博客源代码:全栈方法

    这是博客的源代码示例 内容 此仓库包含一个5.0项目,其中包含与上述博客相关的所有代码。 Javasciprt插件源 插件源代码。 其中由两个文件组成: 用于生成javascript代码的ERB模板 另一个用于生成CSS代码的ERB模板 您...

    JQuery权威指南源代码

    bind方法绑定事件 映射方式绑定不同的事件 切换事件hover 切换事件toggle 移除事件unbind 其他事件one 其他事件trigger 文本框中的事件应用 列表框中事件应用 列表中的导航菜单应用 网页选项卡应用 删除...

    jakarta.rar

    包含jakarta.activation-api-1.2.1-1.2.2、jakarta.annotation-api-1.3.5、jakarta.validation-api-2.0.1-2.0.2、jakarta.xml.bind-api-2.3.2-2.3.3,全量包

    jQuery权威指南-源代码

    jQuery从众多的Ajax框架中脱颖而出,已经成为Web开发领域的事实标准。《jQuery权威指南》除了理论知识丰富而全面外,它还有一个最大的特点就是注重实战,每个知识点都有一个完整的案例,包括需求分析、代码实现和...

    jaxb-api-2.3.0-API文档-中英对照版.zip

    赠送源代码:jaxb-api-2.3.0-sources.jar; 赠送Maven依赖信息文件:jaxb-api-2.3.0.pom; 包含翻译后的API文档:jaxb-api-2.3.0-javadoc-API文档-中文(简体)-英语-对照版.zip; Maven坐标:javax.xml.bind:jaxb-api...

    ASP.NET 2.0+SQL Server 2005全程指南-源代码

    8.2.3 Eval0方法和Bind()方法绑定数据 8.3 本章小结 第9章 GridView及其他数据控件的应用 9.1 GridView控件的应用 9.1.1 GridView控件的概述 9.1.2 使用GridView控件的绑定列绑定数据 9.1.3 使用GridView...

    linux 网络编程源代码

    第一章 概论 ..................................................................................................................1 1.1 网络的历史.............................................................

    linux安装rides.doc

    首先,需要下载 Redis 的源代码包,下载地址为 http://download.redis.io/releases/redis-3.2.9.tar.gz。下载完成后,需要解压缩并给主目录权限。使用以下命令: ``` tar -zxvf redis-3.2.9.tar.gz ``` 二、编译和...

    jackson-databind-2.9.1-API文档-中文版.zip

    赠送源代码:jackson-databind-2.9.1-sources.jar; 赠送Maven依赖信息文件:jackson-databind-2.9.1.pom; 包含翻译后的API文档:jackson-databind-2.9.1-javadoc-API文档-中文(简体)版.zip; Maven坐标:...

Global site tag (gtag.js) - Google Analytics