从源代码包安装BIND9
Posted on 2004年10月3日 16:56ISC 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安装的参考文件
赠送源代码: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-sources.jar; 赠送Maven依赖信息文件:jakarta.xml.bind-api-2.3.3.pom; 包含翻译后的API文档:jakarta.xml.bind-api-2.3.3-javadoc-API文档-中文(简体)-英语-对照版.zip...
包含一个ppt及源代码.源代码中包含常见的选择集,自定义实体及其反应器等等。
丛书名: 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-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-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_beta0920 源代码 另外还包含bind、lifesaver两个插件源代码
DNS 最新版源代码 bind-9.8.0-P2.tar.gz
使用 detoured 把 bindrewrite.dll 载入 将要执行的exe, bindrewrite.dll 负责把 bind() 调用的地址/端口重写掉, 具体使用方法参考 run.bat 包含源代码
赠送源代码: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; ...
这是博客的源代码示例 内容 此仓库包含一个5.0项目,其中包含与上述博客相关的所有代码。 Javasciprt插件源 插件源代码。 其中由两个文件组成: 用于生成javascript代码的ERB模板 另一个用于生成CSS代码的ERB模板 您...
bind方法绑定事件 映射方式绑定不同的事件 切换事件hover 切换事件toggle 移除事件unbind 其他事件one 其他事件trigger 文本框中的事件应用 列表框中事件应用 列表中的导航菜单应用 网页选项卡应用 删除...
包含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从众多的Ajax框架中脱颖而出,已经成为Web开发领域的事实标准。《jQuery权威指南》除了理论知识丰富而全面外,它还有一个最大的特点就是注重实战,每个知识点都有一个完整的案例,包括需求分析、代码实现和...
赠送源代码: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...
8.2.3 Eval0方法和Bind()方法绑定数据 8.3 本章小结 第9章 GridView及其他数据控件的应用 9.1 GridView控件的应用 9.1.1 GridView控件的概述 9.1.2 使用GridView控件的绑定列绑定数据 9.1.3 使用GridView...
第一章 概论 ..................................................................................................................1 1.1 网络的历史.............................................................
首先,需要下载 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-sources.jar; 赠送Maven依赖信息文件:jackson-databind-2.9.1.pom; 包含翻译后的API文档:jackson-databind-2.9.1-javadoc-API文档-中文(简体)版.zip; Maven坐标:...