Bind
Bind 的全名是 Berkeley Internet Name Domain,最初的时候是由加州大学柏克莱分校所发展出来的 BSD UNIX 中的一部份,目前则由 ISC 组织来负责维护与发展。是目前最常用的开源 DNS 服务器软件之一,广泛应用于互联网和企业内部网络中。
安装
可以使用以下命令安装并启动 bind9 。
- Ubuntu/Debian
- CentOS/RedHat
sudo apt-get install bind9
dpkg -L bind9
sudo systemctl enable --now named
sudo yum install bind
rpm -ql bind
sudo systemctl enable --now named
named.conf 配置说明
Bind 的主配置文件为 /etc/named.conf
包含4个部分:
- options
- "." 根域的内容
- localhost 的正反解
- 其他 domain 的正反解
options
该配置文件中只能有一个 options,在这里面用于配置全局项。其中下例中的 directory 指令定义区域数据文件的存放目录。
options {
directory "/var/named";
};
"." 根域
zone "." IN {
type hint;
file named.ca;
}
只有根区域"."才会设置为hint类型,它提示dns服务器根据其区域数据文件named.ca中的内容去获取根域名地址。
"localhost"域名
(用于解析localhost为127.0.0.1)和127.0.0.1的方向查找区域。
zone "localhost" IN {
type master;
file "named.localhost";
allow-update { none; };
};
zone "1.0.0.127.in-addr.arpa" IN {
type master;
file "named.loopback";
allow-update { none; };
};
当然,反向查找区域可以定义为域而不是直接定义成主机。例如:
zone "0.0.127.in-addr.arpa" IN {
type master;
file "named.loopback";
allow-update { none; };
};
/etc/named*的属组都是named,且权限要为640。
chown root:named /etc/named.conf
chmod 640 /etc/named.conf
然后使用/usr/sbin/named-checkconf命令来检查下/etc/named.conf文件的配置是否正确,如果不返回任何信息,则表示配置正确。
named-checkconf
其他 domain
zone关键字后面接的是域和类,域是自定义的域名。 IN是internet的简称,是bind 9中的默认类,可以省略。 type定义该域的类型是"master | slave | stub | hint | forward"中的哪种, file定义该域的区域数据文件(区域数据文件的说明见下文),因为这里是相对路径db.longshuai.com,它的相对路径是相对于/var/named的,也可以指定绝对路径/var/named/db.longshuai.com。
zone "longshuai.com" IN{
type master;
file "db.longshuai.com"
};
Bind可以将配置分散在多个文件中。在named.conf中,可以使用include语句来引用其他配置文件,例如:
include "/path/to/other/file.conf";