fedora12下BIND架设DNS服务器
基础信息
1.要架设的DNS服务器类型
A.带转发功能的高速缓存域名服务器
B.主域名服务器
C.辅助域名服务器
D.子域名服务器
2.DNS相关概念
A记录
NS记录
MX记录
CNAME记录
IP地址
自定义网址
域别名
WHOIS目录
DNS基础知识
DNS
DNS是 Domain Name System 的缩写,用于管理和识别域名。主要功能是为域的一个或多个IP地址提供名称
以便于记忆网址等。
域名:
简称是与一个或多个IP地址关联的易于记忆的名称(www.welltest.com/mail.welltest.com)
www.welltest.com
welltest.com 是域名
com 是顶级域名
welltest 是com的一个子部分,代表第二级域名
www 是子域(也称为第三级域名或 CNAME)
域名注册商
新网 www.xinnet.com
万网 www.net.cn
顶级域名
顶级域名是域名的最后一部分,也就是最后一个点号后面的字母
www.welltest.com 中的com为顶级域名
www.welltest.org 中的org为顶级域名
第二级域名
是仅次于顶级域名的
第二级域名 域名
welltest welltest.com
welltest welltest.org
第三级域名
也称为子域名和CNAME。在网址中,子域名会写在域名前面
子域名 网址
www http://www.welltest.com
mail http://mail.welltest.com
A记录
A记录也称主机记录 是重要的DNS记录。A记录会将域名或者子域名与某个IP地址链接
A记录和IP地址不一定是一一对应关系。多个A记录可以对应一个IP地址,即一台服务器可以提供多个网站服务
另外,一个A记录也可以对应多个IP地址。这有助于提高容错性和负载均衡
=====================================================================================
IP 对应主机名称 说明
10.1.18.34 linux.welltest.com 主机名称为linux.welltest.com
www.welltest.com 其它的三个主机名称为主机别名
mail.welltest.com
ftp.welltest.com
=====================================================================================
NS记录
引用如下描述(网中人)
DNS的NS记录,是用来做授权的,向下授权。
假設你註冊的 domain 叫 abc.com ,而你有 ns1 與 ns2 兩台 server 。
那,你必需從 .com 的權威伺服器授權給你,其設定或類似如此:
$ORIGIN com.
abc IN NS ns1.abc.com.
abc IN NS ns2.abc.com.
ns1.abc IN A 1.2.3.4
ns1.abc IN A 1.2.3.5
然後,你的 ns1 或 ns2 都可是權威伺服器了(各自的 SOA 設為自己即可)。
在 abc.com 的 db 中,最少還應類似如下的設定:
$ORIGIN abc.com.
@ IN NS ns1.abc.com.
@ IN NS ns2.abc.com.
ns1 IN A 1.2.3.4
ns2 IN A 1.2.3.5
不過,既然 SOA 是自己的話,那事實上,我可以改變 ns 或增加 ns 授權:
$ORIGIN abc.com.
@ IN NS ns1.abc.com.
@ IN NS ns2.abc.com.
@ IN NS ns3.abc.com.
ns1 IN A 1.2.3.4
ns2 IN A 1.2.3.5
ns3 IN A 1.2.3.6
假如你有 sub-zone 要授權,事實上也是利用 ns 啦:
$ORIGIN abc.com.
sub1 IN NS ns1.sub1.abc.com.
sub1 IN NS ns2.sub1.abc.com.
ns1.sub1 IN A 4.3.2.1
ns2.sub1 IN A 4.3.2.2
然而,不同版本的 resolver ,對最終的 ns 判定是不一樣的:
bind9 是以 abc.com 的權威主機的 ns 為依據,若找不到,那就沒結果。
而之前的版本,則可退而求次,以 com. 裡關於 abc.com 的 ns 為答案。
MX记录
邮件交换记录 (MX) 会将电子邮件定向到某个域的服务器,按照优先级排列。
CNAME记录
规范名称记录是A记录的别名。对于每条CNAME记录,可以选择别名和主机
简单理解正解反解
由hostname寻找出IP的过程叫 正解
由IP寻找出hostname的过程叫 反解
Zone
简单的说一个正解或者一个反解得设定就是一个zone
SRV 记录
SRV 记录:一般是为Microsoft的活动目录设置时的应用。DNS可以独立于活动目录,但是活动目录必须有DNS的帮助才能工作。为了活动目录能够正常的工作,DNS服务器必须支持服务定位(SRV)资源记录,资源记录把服务名字映射为提供服务的服务器名字。
活动目录客户和域控制器使用SRV资源记录决定域控制器的IP地址。
安装配置
相关信息
域名:welltest.com
DNS:dns.welltest.com 10.1.18.34
邮件:mail.welltest.com 10.1.18.34
网址:www.welltest.com
安装
[root@linux ~]# yum install bind*
查看已安装相关信息
[root@linux ~]# rpm -qa bind*
bind-devel-9.6.1-13.P2.fc12.i686
bind-libs-9.6.1-13.P2.fc12.i686
bind-utils-9.6.1-13.P2.fc12.i686
bind-sdb-9.6.1-13.P2.fc12.i686
bindfs-1.8.3-3.fc12.i686
bind-dyndb-ldap-0.1.0-0.4.a1.fc12.i686
bind-chroot-9.6.1-13.P2.fc12.i686
bind-9.6.1-13.P2.fc12.i686
bind-to-tinydns-0.4.3-6.fc12.i686
配置:带转发功能的高速缓存域名服务器
修改/etc/named.conf文件如下
[root@linux ~]# vi /etc/named.conf
options {
directory "/var/named";
dump-file "/var/named/data/cache_dump.db";
forward only;
forwarders { 61.177.7.1;10.0.139.112;};
};
logging {
channel default_debug {
file "data/named.run";
severity dynamic;
};
};
启动named服务
[root@linux ~]# service named restart
修改/etc/named.conf所属用户和群组,以及权限
[root@linux ~]# chown named:named /etc/named.conf
[root@linux ~]# chmod 770 /etc/named.conf
修改/var/named文件夹
[root@linux ~]# chown named:named /etc/named.conf
[root@linux ~]# chmod 770 /etc/named.conf
防火墙开放DNS
修改/etc/resolv.conf
[root@linux ~]# vi /etc/resolv.conf
nameserver 10.1.18.34
检查
[root@linux ~]# tail -n 15 /var/log/messages |grep named
Dec 29 13:59:12 linux named-sdb[1820]: adjusted limit on open files from 1024 to 1048576
Dec 29 13:59:12 linux named-sdb[1820]: found 1 CPU, using 1 worker thread
Dec 29 13:59:12 linux named-sdb[1820]: using up to 4096 sockets
Dec 29 13:59:12 linux named-sdb[1820]: SDB ldap zone database module loaded.
Dec 29 13:59:12 linux named-sdb[1820]: SDB postgreSQL DB zone database module loaded.
Dec 29 13:59:12 linux named-sdb[1820]: SDB sqlite3 DB zone database module loaded.
Dec 29 13:59:12 linux named-sdb[1820]: SDB directory DB zone database module loaded.
Dec 29 13:59:12 linux named-sdb[1820]: loading configuration from '/etc/named.conf'
Dec 29 13:59:12 linux named-sdb[1820]: using default UDP/IPv4 port range: [1024, 65535]
Dec 29 13:59:12 linux named-sdb[1820]: using default UDP/IPv6 port range: [1024, 65535]
Dec 29 13:59:12 linux named-sdb[1820]: listening on IPv4 interface lo, 127.0.0.1#53
Dec 29 13:59:12 linux named-sdb[1820]: listening on IPv4 interface eth0, 10.1.18.34#53
Dec 29 13:59:12 linux named-sdb[1820]: command channel listening on 127.0.0.1#953
Dec 29 13:59:12 linux named-sdb[1820]: command channel listening on ::1#953
Dec 29 13:59:12 linux named-sdb[1820]: running
客户端设置
DNS:10.1.18.34
客户端测试
配置:主域名服务器
修改/etc/named.conf文件如下
[root@linux ~]# vi /etc/named.conf
options {
directory "/var/named";
dump-file "/var/named/data/cache_dump.db";
statistics-file "/var/named/data/named_stats.txt";
memstatistics-file "/var/named/data/named_mem_stats.txt";
allow-query { any; };
recursion yes;
dnssec-enable yes;
dnssec-validation yes;
dnssec-lookaside . trust-anchor dlv.isc.org.;
//forward only;
forwarders { 61.177.7.1;10.0.139.112;};
allow-transfer { none;};
};
logging {
channel default_debug {
file "data/named.run";
severity dynamic;
};
};
zone "." IN {
type hint;
file "named.ca";
};
include "/etc/pki/dnssec-keys//named.dnssec.keys";
include "/etc/pki/dnssec-keys//dlv/dlv.isc.org.conf";
zone "welltest.com" IN {
type master;
file "named.welltest.com";
allow-update { none; };
};
zone "1.10.in-addr.arpa" IN {
type master;
file "named.10.1";
allow-update { none; };
};
zone "localhost" IN {
type master;
file "named.localhost";
allow-update { none; };
};
zone "1.0.0.127.in-addr.arpa" IN {
type master;
file "named.127.0.0";
allow-update { none; };
};
修改
/var/named/named.10.1
/var/named/named.127.0.0
/var/named/named.localhost
/var/named/named.welltest.com
[root@linux ~]# vi /var/named/named.10.1
$TTL 1D
@ IN SOA linux.welltest.com. root.linux.welltest.com. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
@ IN NS linux.welltest.com.
34 IN PTR linux.welltest.com.
[root@linux ~]# vi /var/named/named.127.0.0
$TTL 1D
@ IN SOA localhost. root.localhost. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
@ IN NS localhost.
1 IN PTR localhost.
[root@linux ~]# vi /var/named/named.localhost
$TTL 1D
@ IN SOA localhost. root.localhost. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
@ IN NS localhost.
localhost. IN A 127.0.0.1
[root@linux ~]# vi /var/named/named.welltest.com
$TTL 1D
@ IN SOA linux.welltest.com. root.linux (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
@ IN NS linux.welltest.com.
linux IN A 10.1.18.34
@ IN MX 10 linux
www IN CNAME linux
mail IN CNAME linux
重新启动
[root@linux ~]# service named restart
检查
[root@linux ~]# tail -n 15 /var/log/messages |grep named
Dec 29 15:47:51 linux named-sdb[2788]: automatic empty zone: 0.IN-ADDR.ARPA
Dec 29 15:47:51 linux named-sdb[2788]: automatic empty zone: 127.IN-ADDR.ARPA
Dec 29 15:47:51 linux named-sdb[2788]: automatic empty zone: 254.169.IN-ADDR.ARPA
Dec 29 15:47:51 linux named-sdb[2788]: automatic empty zone: 2.0.192.IN-ADDR.ARPA
Dec 29 15:47:51 linux named-sdb[2788]: automatic empty zone: 255.255.255.255.IN-ADDR.ARPA
Dec 29 15:47:51 linux named-sdb[2788]: 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
Dec 29 15:47:51 linux named-sdb[2788]: 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
Dec 29 15:47:51 linux named-sdb[2788]: automatic empty zone: D.F.IP6.ARPA
Dec 29 15:47:51 linux named-sdb[2788]: automatic empty zone: 8.E.F.IP6.ARPA
Dec 29 15:47:51 linux named-sdb[2788]: automatic empty zone: 9.E.F.IP6.ARPA
Dec 29 15:47:51 linux named-sdb[2788]: automatic empty zone: A.E.F.IP6.ARPA
Dec 29 15:47:51 linux named-sdb[2788]: automatic empty zone: B.E.F.IP6.ARPA
Dec 29 15:47:51 linux named-sdb[2788]: command channel listening on 127.0.0.1#953
Dec 29 15:47:51 linux named-sdb[2788]: command channel listening on ::1#953
Dec 29 15:47:51 linux named-sdb[2788]: zone 1.10.in-addr.arpa/IN: loaded serial 0
Dec 29 15:47:51 linux named-sdb[2788]: zone 1.0.0.127.in-addr.arpa/IN: //.1.0.0.127.in-addr.arpa/NS '1.0.0.127.in-addr.arpa' has no address records (A or AAAA)
Dec 29 15:47:51 linux named-sdb[2788]: zone 1.0.0.127.in-addr.arpa/IN: loaded serial 0
Dec 29 15:47:51 linux named-sdb[2788]: zone welltest.com/IN: loaded serial 0
Dec 29 15:47:51 linux named-sdb[2788]: zone localhost/IN: loaded serial 0
Dec 29 15:47:51 linux named-sdb[2788]: running
C.辅助域名服务器
修改主域名服务器配置文件/etc/named.conf
[root@linux ~]# vi /etc/named.conf
options {
directory "/var/named";
dump-file "/var/named/data/cache_dump.db";
statistics-file "/var/named/data/named_stats.txt";
memstatistics-file "/var/named/data/named_mem_stats.txt";
allow-query { any; };
recursion yes;
dnssec-enable yes;
dnssec-validation yes;
dnssec-lookaside . trust-anchor dlv.isc.org.;
//forward only;
forwarders { 61.177.7.1;10.0.139.112;};
allow-transfer { none;};
};
logging {
channel default_debug {
file "data/named.run";
severity dynamic;
};
};
zone "." IN {
type hint;
file "named.ca";
};
include "/etc/pki/dnssec-keys//named.dnssec.keys";
include "/etc/pki/dnssec-keys//dlv/dlv.isc.org.conf";
zone "welltest.com" IN {
type master;
file "named.welltest.com";
allow-transfer { 辅助域名服务器IP; };
};
zone "1.10.in-addr.arpa" IN {
type master;
file "named.10.1";
allow-transfer { 辅助域名服务器IP; };
};
zone "localhost" IN {
type master;
file "named.localhost";
};
zone "1.0.0.127.in-addr.arpa" IN {
type master;
file "named.127.0.0";
};
[root@linux ~]# service named restart
修改辅助域名服务器配置文件/etc/named.conf
[root@linux ~]# vi /etc/named.conf
options {
directory "/var/named";
dump-file "/var/named/data/cache_dump.db";
statistics-file "/var/named/data/named_stats.txt";
memstatistics-file "/var/named/data/named_mem_stats.txt";
allow-query { any; };
recursion yes;
dnssec-enable yes;
dnssec-validation yes;
dnssec-lookaside . trust-anchor dlv.isc.org.;
//forward only;
forwarders { 61.177.7.1;10.0.139.112;};
allow-transfer { none;};
};
logging {
channel default_debug {
file "data/named.run";
severity dynamic;
};
};
zone "." IN {
type hint;
file "named.ca";
};
include "/etc/pki/dnssec-keys//named.dnssec.keys";
include "/etc/pki/dnssec-keys//dlv/dlv.isc.org.conf";
zone "welltest.com" IN {
type slave;
file "named.welltest.com";
masters { 10.1.18.34; };
};
zone "1.10.in-addr.arpa" IN {
type slave;
file "named.10.1";
masters { 10.1.18.34; };
};
zone "localhost" IN {
type master;
file "named.localhost";
};
zone "1.0.0.127.in-addr.arpa" IN {
type master;
file "named.127.0.0";
};
修改辅助域名服务器 /var/named/named.localhost /var/named/named.127.0.0
D.子域名服务器
[root@linux ~]# vi /var/named/named.welltest.com
$TTL 1D
@ IN SOA linux.welltest.com. root.linux (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
@ IN NS linux.welltest.com.
linux IN A 10.1.18.34
@ IN MX 10 linux
www IN CNAME linux
mail IN CNAME linux
参考内容
1.http://www.google.com/support/a/bin/answer.py?hl=cn&answer=48090
2.http://linux.vbird.org/