Linux入门——DNS(2)

在上篇博客中笔者简单的搭建了一个正解和反解的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 {
type slave;              #表明他是从服务器
masters { 192.168.75.9; };      #主服务器是谁
file "slaves/ANGGE.COM.ZONE";    #从主服务器获得文件存放在哪
};

关闭防火墙,清空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

 

posted @ 2018-09-25 10:09  正在来的4号  阅读(159)  评论(0编辑  收藏  举报