为了更好的实现dns的解析功能,使用主从dns服务器来解析,是很好的方式,这样可以实现冗余,也可以实现一点负载。
  首先建立一个主DNS服务器,他的配置文件主要有/etc/named.conf、/vat/named/localhost.zone、/var/named/named.ca、/var/named/named.local
当然还有对应区域的配置文件的详细信息,首先介绍一下主dns 的主配置文件/etc/named.conf
一个主配置文件至少应该有options、zone "."、zone "localhost.zone"、zone "named.local"几个分区,如下图所示
DNS主从类型的架设_主从类型架设
接下来就是要解析的域名的区域了,比如我申请了一个域名就是a27.com
那么就在dns主配置文件中添加如下的配置
DNS主从类型的架设_主从dns的配置_02
简单介绍一下这个配置文件中的信息,首先是options 里面是介绍工作目录的,也就是我们下面各个区域的配置文件放置的位置。
其次是zone "."这个区域,这个是一个根区域,是我们解析其他的地址的最重要的区域,然后就是本机的区域,分别是localhost.zone和named.local这两个区域,通过这两个区域就是可以解析出localhost 是127.0.0.1同时还可以方向解析,下面的zone "a27.com" 和zone "0.168.192.in-addr.arpa"就是我们要解析申请的域名,而0.168.192.in-addr.arpa是反向解析的,其中每个区域的type是区域类型,file是该区域的配置文件的类型。
在主dns服务器上的a27.com.zone的配置中,内容如下
$TTL 86400
@       600     IN      SOA     ns1.a27.com.    admin.a27.com. (
                                                2011081801  ;序列号
                                                1H    ;刷新时间
                                                10M  ;重试时间
                                                7D  ;从dns的“殉情”时间
                                                1D )  ;否定回答时间
                IN              NS                      ns1.a27.com.
                IN              NS                        ns2.a27.com.
                IN              MX   10                   mail.a27.com.
ns1.a27.com.        IN              A               192.168.0.90
ns2.a27.com.        IN              A               192.168.0.151
www1.a27.com.   IN              A               192.168.0.90
www2.a27.com.   IN              A               192.168.0.90
ftp.a27.com.         IN              A               192.168.0.90
这里面首先添加一条soa记录,这条记录包括主服务器的名称,管理员的邮箱,以及下面的序列号、刷新时间、重试时间、从服务器的宕机时间、拒绝回答的时间,接着是NS 记录,NS记录是域名到服务器名的一个映射关系,最后面的是添加A记录,这个是FQDN和IP之间的映射关系。
在192.168.zone中添加如下配置信息
$TTL 86400
@       600     IN      SOA     ns1.a27.com.    admin.a27.com. (
                                                2011081801
                                                1H
                                                10M
                                                7D
                                                1D )
                IN              NS              ns1.a27.com.
                IN              NS              ns2.a27.com.
                IN              MX   10         mail.a27.com.
90              IN              PTR             ns1.a27.com.
151             IN              PTR             ns2.a27.com.
90              IN              PTR             www1.a27.com.
90              IN              PTR             www2.a27.com.
90              IN              PTR             ftp.a27.com.
这个里面大部分和a27.com.zone中的配置一样,就是这个是反向解析的,需要添加IP到FQDN的映射关系,也就是PTR记录
在named.local文件中,有如下的内容,
$TTL 86400
@ 600 IN  SOA localhost. admin.localhost. (
       2011081801
       1H
       10M
       7D
       1D )
  IN  NS  localhost. 
1  IN  PTR  localhost.
这个里面主要实现从127.0.0.1能解析到本地主机
而在localhost.zone文件安中配置也很简单
如下所示:
DNS主从类型的架设_主从类型架设_03
 
这样主dns的配置就算是完成了,接下来就是从dns的配置了,从dns只需要配置四个配置文件,而其他的区域的配置文件可以自动同步。
主要的配置文件有/etc/named.conf 、/var/named/named.ca、/var/named/localhost.zone、/var/named/named.local这样就可以实现从主dns那里同步信息了
从dns的/etc/named.conf的配置信息如下:
 options {
        directory "/var/named";
};
zone "." IN {
        type hint;
        file "named.ca";
};
zone "localhost" IN {
options {
        directory "/var/named";
};
zone "." IN {
        type hint;
        file "named.ca";
};
zone "localhost" IN {
        type master;
        file "localhost.zone";
};
zone "0.0.127.in-addr.arpa" IN {
        type master;
        file "named.local";
};
zone "a27.com" IN {
        type slave;                       //设置为slave类型
        file "slaves/a27.com.zone";    
        masters { 192.168.0.90; };   //指定主dns服务器的地址
};
zone "0.168.192.in-addr.arpa" IN {
        type slave;
        file "slaves/192.168.zone";
        masters { 192.168.0.90; };
};
其他的配置文件和上面组配置文件一样,但是这个时候可以把/etc/resolv.conf文件的servername    改为 127.0.0.1就能实现同步了
而我们也可以启动从dns服务器之后,查看/var/named/slaves 下会出现主配置文件中提及到的两个配置文件,这就说明他从主dns那里学习到了
如图所示
DNS主从类型的架设_职场_04
当我们使用vim打开这两个文件的时候,会和主dns服务器中的配置是相同的
当然我们也可以查看日志文件,可以看到详细的过程
tail -20 /var/log/messages
Aug 18 23:04:11 ns3 named[6108]: running
Aug 18 23:04:11 ns3 named[6108]: zone 0.168.192.in-addr.arpa/IN: sending notifies (serial 2011081801)
Aug 18 23:04:11 ns3 named[6108]: zone a27.com/IN: sending notifies (serial 2011081801)
可以看到主从服务器之间采用notify的机制进行同步信息的。
 
接下来说说主从信息同步的过程
首先介绍主从服务器的同步过程。触发同步过程的原因有4种:1.从域名服务器刚刚启动;2.主域名服务器的Serial值增大;3.执行了rndc reload命令;4.到了主从服务器的同步更新时间。
  主从域名服务器开始同步
  1. 主服务器向从服务器发送notify消息
  2. 从服务器收到主服务器发送notify消息,向主服务器返回一个notify response消息。
  3. 从服务器向主服务器发送SOA query消息。
  4. 主服务器向从服务器返回SOA response消息。
  5. 从服务器收到SOA response消息后,比对自身的Serial值,如果发现主服务器的Serial值大于自身的Serial值,那么就发送Zone transfer request消息。
  6. 主服务器返回Zone transfer response消息。
  7. 主服务器执行Zone transfer。
以上是一个简单的实现主从域名解析的架构,以后工作中遇到的也就是基于这种方式来实现负载,冗余的,还会结合acl和视图,视图和acl将在后面介绍
  • 收藏
  • 评论
  • 举报
提问和评论都可以,用心的回复会被更多人看到 评论
发布评论
相关文章