在上篇博客中笔者简单的搭建了一个正解和反解的DNS服务器,这篇博客主要介绍各种DNS服务器的搭建,包括子域委派,主从同步,转发,以及自己模拟搭建的根服务器
子域委派
子域委派是为了简化 DNS 的管理任务,即委派一组权威名称服务器来管理每个区域。采用这样的分布式结构,当域名称空间不断扩展时,各个域的管理员可以有效地管理各自的子域。简单来说就是了方便管理 提高DNS的解析性能,实现通信负载平衡。
1.子域和父域在一个文件里。
2.子域和父域在同一个机器上。不用委派,直接创建
3.子域和父域不在同一个机器上,要子域委派
#在父域的操作
[root@centos6 named]# vim /etc/named.conf #文件较长我们只写更改的地方
options {
listen-on port 53 { any; }; #监听那个ip再用53号端口
// listen-on-v6 port 53 { ::1; }; #注释掉,在这个文件里双斜杠是注释;
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; }; #允许谁成为我的从 DNS
recursion yes; #这是是否递归查询; dnssec-enable no;
dnssec-validation no;
[root@centos6 named]# vim /etc/named.rfc1912.zones
zone "angge.com" IN { #添加这一段
type master;
file "angge.com.zone";}[root@centos6 named]# cd /var/named/
[root@centos6 named]# ls
angge.com.zone data dynamic named.ca named.empty named.localhost named.loopback slaves[root@centos6 named]# cp -p named.localhost angge.com.zone
[root@centos6 named]# vim angge.com.zone
$TTL 1D
@ IN SOA angge.com. rname.invalid. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
angge.com. NS angge.com.
angge.com. A 192.168.75.6
www.angge.com. A 7.7.7.7
bj NS ns1.bj.angge.com.
ns1.bj A 192.168.75.7
关闭防火墙,清空SElinux,重启服务
[root@centos6 named]# iptables -F
[root@centos6 named]# setenforce 0
[root@centos6 named]# service named restart
停止 named: [确定]
启动 named: [确定]
#在子域的操作
在/etc/named.conf里和父域一样,只需关闭转发 recursion no
[root@localhost named]# vim /etc/named.rfc1912.zones #添加这样一个zone
zone "bj.angge.com" IN {
type master;
file "bj.angge.com.zone";
};[root@localhost named]# cp -p named.localhost bj.angge.com.zone
[root@localhost named]# vim /var/named/bj.angge.com.zone
$TTL 1D
@ IN SOA bj.angge.com. rname.invalid. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
bj.angge.com. NS ns1.bj.angge.com.
ns1 A 192.168.75.7
www A 2.2.2.2
}
关闭防火墙,清空SElinux,重启服务
#在客户端
[root@localhost named]# dig www.bj.angge.com @192.168.75.6
[root@localhost named]# dig www.angge.com @192.168.75.6
DNS主从
配置一个域的从服务器一般是为了进行备份以及负载均衡使用,例如在生产环境中,我们给一个域配置的主DNS服务器崩溃了或者被恶意攻击了,那么这个时候如果没有配置从DNS服务器的话,我们的DNS服务器就不能提供DNS服务了,也就无法解析服务器上配置的域名了,或者说主服务器的访问量特别大,此时我们配置从服务器来达到负载均衡的效果,因此我们通常在配置了一个主DNS服务器以后,还需要为其配置多个从DNS服务器。
#主服务器配置
[root@centos6 named]# vim /etc/named.conf
options {
listen-on port 53 { any; };
// listen-on-v6 port 53 { ::1; };
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 { 192.168.75.10; }; #这里仅允许192.168.75.10成为我的从服务器,如果仍用any则任何人都可成为我的从服务器,并不安全
recursion no; dnssec-enable no;
dnssec-validation no;[root@centos6 ~]# vim /etc/named.rfc1912.zones
};
zone "angge.com" IN {
type master;
file "angge.com.zone";
};[root@centos6 ~]# vim /var/named/angge.com.zone
$TTL 1D
@ IN SOA ns1.angge.com. asdfsadf. (
20180918 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS angge.com.
angge.com. A 192.168.75.9
etc A 1.1.1.1
www A 2.2.2.2
关闭防火墙,清空SElinux,重启服务
#从DNS配置
[root@centos6 ~]# vim /etc/named.conf
listen-on port 53 { any; };
//listen-on-v6 port 53 { ::1; };
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 no; dnssec-enable no;
dnssec-validation no;[root@centos6 ~]# vim /etc/named.rfc1912.zones
zone "angge.com" IN {
#表明他是从服务器
#主服务器是谁
#从主服务器获得文件存放在哪
};
关闭防火墙,清空SElinux,重启服务,我们会在/var/named/slaves/获得主服务器的zone文件ANGGE.COM.ZONE
[root@centos6 named]# cat /var/named/slaves/ANGGE.COM.ZONE
$ORIGIN .
$TTL 86400 ; 1 day
angge.com IN SOA ns1.angge.com. asdfsadf. (
20180918 ; serial
86400 ; refresh (1 day)
3600 ; retry (1 hour)
604800 ; expire (1 week)
10800 ; minimum (3 hours)
)
NS ns1.angge.com.
$ORIGIN angge.com.
* A 8.8.8.8
etc A 1.1.1.1
ns1 A 192.168.75.9
www A 2.2.2.2
客户端测试
DNS模拟根的实现
在上篇博客中笔者说过DNS是一种分布式、分层次的主机名管理架构,是倒状的树状形状。如果我们要模拟根的实现并成功解析出www.angge.com这这个域名则我们需要.服务器.com服务器.angge.com服务器,同时还需要一台转发dns服务器,合测试端,至少5台机器,这里我们在同时实现主从则需要六台机器
1.除客户端以外,所有机器安装bind,并都清空防火墙和关闭selinux。
所有安装bind的主机配置name.conf,修改2个any,2个no,除缓存服务器以外,都把递归设置为no。
2.除.以外,所有机器修改named.ca,内容如下
[root@centos6 ~]# vim /var/named/named.ca #即删除别的只保留这两行并修改
. 518400 IN NS a.root-servers.net.
a.root-servers.net. 3600000 IN A 192.168.75.6
3.配置.
a. name.conf中删除name.ca的项目
b. rfc1912文件
zone "." IN {
type master;
file "root.zone";
};
c. vim /var/named/root.zone
$TTL 1D
@ IN SOA ns. admin. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS ns.
ns. A 192.168.75.6
com. NS ns.com.
ns.com. A 192.168.75.8
d.关闭防火墙,清空SElinux,重启服务,
4.配置com
a. vim /etc/named.rfc1912文件
zone "com" IN {
type master;
file "com.zone";
};
b. vim /var/named/com.zone
$TTL 1D
@ IN SOA ns.com. rname.invalid. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS ns.com.
ns A 192.168.75.8
angge.com. NS ns1.angge.com.
angge.com. NS ns2.angge.com.
ns1.angge.com. A 192.168.75.9
ns2.angge.com. A 192.168.75.10
c.关闭防火墙,清空SElinux,重启服务
5.配置主angge.com
a. vim/etc/named.rfc1912文件
zone "angge.com" IN {
type master;
file "angge.com.zone";
};
b. vim /var/named/angge.com.zone
$TTL 1D
@ IN SOA ns1.angge.com. rname.invalid. (
2018091301 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS ns1.angge.com.
NS ns2.angge.com.
ns1 A 192.168.75.9
ns2 A 192.168.75.10
www A 1.1.1.1
ftp A 2.2.2.2
* A 10.10.10.10
c.关闭防火墙,清空SElinux,重启服务
6.配置从angge.com
a. rfc1912文件
zone "angge.com" IN {
type slave;
masters { 192.168.75.7; };
file "slaves/ANGGE.COM.ZONE";
};
b. 关闭防火墙,清空SElinux,重启服务
7.client修改/etc/resolv.conf
nameserver 192.168.75.6 #指向缓存服务器
a.dig www.angge.com
b.nslookup
>lll.angge.com
测试,可以反复的给主、从增加防火墙策略来测试查询www.magedu.com可以自动在主从间切换
iptables -A INPUT -p udp --dport 53 -j REJECT
iptables -F 删除
注意:测试时要清空caching-server上的缓存 rndc flush
hasidhkh