Chinaunix首页 | 论坛 | 博客
  • 博客访问: 226725
  • 博文数量: 36
  • 博客积分: 3044
  • 博客等级: 中校
  • 技术积分: 356
  • 用 户 组: 普通用户
  • 注册时间: 2010-02-20 18:31
文章分类

全部博文(36)

文章存档

2010年(36)

分类: LINUX

2010-03-07 20:42:00

版权声明:原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任.http://U16.cublog.cn 
 
     DNS 全称"域名服务系统",作用为完成域名与IP地址的转换,其守护进行为named,DNS查询分为递归查询和迭代查询.

迭代查询:如果主机要解析一个域名,它首先会找本地的服务器,如果本地的不知道就会去问根,根会将结果返回给本地主机,让本地主机自己去找该域名服
务器...这就是互联网上常用的迭代查询...

递归查询:主机要解析
,首先会去问本地域名服务器,本地域名服务器知道.com域的服务器,而.com域名服务器知道baidu.com域名服务器
,就这样一级一级网上查询,最终找到的域名服务器,这样服务器之间的查询叫做递归查询...

主要配置文件/etc/named.conf,此文件不存在,需要手动去建./var/named/named.ca,此文件是根域,全球共有13台根域服务器...当请求查询的域名找不
到时就会直接去问根域名服务器.../var/named/named.local,此文件是方向DNS解析时用到的配置文件,/var/named/localhost.zone,此文件是本地域名解析时的配置文件../var/named/slaves这个是辅助DNS向主DNS拷贝文件会放到此目录中...

    方案一 ..下面我们开始配置主DNS服务器,默认情况下会装bind-util和binutils还有bind-libs我们只需装上bind和caching-nameserver包就 可以了...具
体过程如下...
[root@station195 ~]# mkdir    /media/cdrom;mount  /dev/cdrom   /media/cdrom;cd   /media/cdrom/Server
[root@station195 ~]# rpm   -ivh   bind-9.3.6-4.P1.el5.i386.rpm
[root@station195 ~]# rpm   -ivh   caching-nameserver-9.3.6-4.P1.el5.i386.rpm 

           我们这没安装bind-chroot的包,这个包的主要功能是将你服务器上的成员限制在一个很小的范围内,即使服务器被黑客攻破了,他也不会具备权限
,起到安全的作用,如果你安装了这个包,你的根目录就变成了/var/named/chroot/etc   和/var/named/chroot/var/named,这个和我们此次试验有区别的....

然后编辑/etc/named.conf文件写入下面几行假设我们建的域zzu.com,这儿很重要的一点是named.conf文件所属组一定为named,切忌.否则后面服务你
无法启动,会提示你权限不够...我们服务器IP为192.168.0.195...辅助DNS IP:192.168.0.196 上海那边DNSIP:192.168.0.197

实验环境:现在我们来模拟一个环境.我在北京这边有个主DNS服务器域名zzu.com,有个辅助DNS服务器,本地还有个子域bj.zzu.com,我们把本地子域直
接和主域放在一台机器上做,在上海那边还有个子域sh.zzu.com,主域上有的A记录www,mail(别名pop3,smtp)本地子域上的A记录ftp,www.上海那边的域A记录www,tec,DNS要求记录和查询日志,只给内网用户递归..主域名服务器和辅助域名服务器能实现区域传送...

[root@station195 ~]# vim  /etc/resolv.conf
search zzu.com
nameserver    192.168.0.195
[root@station195 ~]#vim   /etc/named.conf
options  {
              directory   "/var/named";
              listen-on  port  53  {  127.0.0.1;192.168.0.195;  };
};
logging {
channel "query" {
          file "/var/log/bind9/query.log" versions 10 size 1M;
           severity dynamic;
           print-severity yes;
           print-category yes;
           print-time yes;
};
channel "error" {
          file "/var/log/bind9/error.log" versions 10 size 1M;  #做日志记录的,bind9目录本身不存在需自己创建,属主和属组都为named.意思是使用file来记录日志,滚动数目为10,每个最大为1M.级别为dynamic.
           severity error;
           print-severity yes;
           print-category yes;
           print-time yes;
};
category queries { query; };
category default   { error; };
};
zone   "localhost"   IN  {
               type   master;
               file   "localhost.zone";
};
zone    "0.0.127.in-addr.arpa"   IN  {
               type   master;
               file     "named.local";
};
zone    "."   IN  {
                  type   hint;
                  file    "named.ca";
};
zone    "zzu.com"   IN  {
              type    master;
              file    "zzu.com.zone";
              allow-transfer { 192.168.0.196; };
};
zone  "bj.zzu.com"  IN  {
               type   master;
               file    "bj.zzu.com.zone";
};
zone  "0.168.192.in-addr.arpa"  IN  {
               type   master;
               file    "192.168.0.zone";
};

编辑完后修改named.conf文件所属组
[root@station195 ~]# chown  :named    /etc/named.conf
这儿的语法要求很严谨,不能出一点错误.
[root@station195 ~]# cd    /var/named,进入/var/named目录中,执行下面命令.
[root@station195 ~]# cp  -p  localhost.zone   zzu.com.zone(注意这个/var/named目录里面文件所属组都为named,切忌这一点,所以我们拷贝时使用-p
参数,将其所属主和属主权拷贝过来)先说正向区域
[root@station195 ~]# vim   /var/named/zzu.com.zone (这里我们假设有mail服务器和web服务器)
$TTL   86400
$ORIGIN   zzu.com.
@      86400       IN     SOA     ns.zzu.com.       root.zzu.com.  (
                                                               2010022801   ;serial 序列号
                                                                 1H             ;refresh  刷新时间          
                                                                 1M             ;retry  重新连接间隔       
1W             ;expiry 过期时间
                                                                 1D  )          ;minimum否定记录上传时间
@                        IN       NS                          ns.zzu.com.
ns                        IN        A                          192.168.0.195
www                    IN        A                          1.1.1.1
mail                     IN        A                          2.2.2.2    
pop3                    IN        CNAME                   mail
smtp                    IN        CNAME                   mail
@                        IN         MX    10                      mail
如果做反向DNS区域
[root@station195 ~]# cp   -p    /var/named/named.local    /var/named/192.168.0.zone
[root@station195 ~]# vim    192.168.0.zone
$TTL    86400
@         86400      IN    SOA       ns.zzu.com.            root.ns.zzu.com. (
                                             
                                                             2010022801   ;serial 序列号
                                                              1H             ;refresh  刷新时间                          
                                                              1M             ;retry    重新连接时间
                                                                 1W             ;expiry 过期时间
                                                                 1D  )          ;minimum否定记录
@                                              IN      NS                ns.zzu.com.
195                                            IN     PTR               ns.zzu.com.
200                                            IN     PTR               tec.zzu.com.
201                                            IN     PTR               mkt.zzu.com.

然后修改/etc/resolv.conf,修改DNS指向..
[root@station195 ~]# vim   /etc/resolv.conf  (写入下面两行...)
serarch   zzu.com
nameserver     192.168.0.195
DNS服务器基本上配置完成..重启服务后.下面我们进行测试的工作...解析有三个命令可以用,分别是host   dig    nslookup  根据情况自己选择一个进行
测试工作...
测试结果全部成功...

方案二..下面我们来配置辅助DNS服务器
辅助DNS配置和主DNS前几个步骤一样,这儿不在演示了...直接编辑/etc/named.conf,我们辅助DNS的IP:192.168.0.196
#vim  /etc/resolv.conf
slave-nameserver  192.168.0.196
#vim  /etc/named.conf
options  {
              directory   "/var/named";
              listen-on  port  53  {  127.0.0.1;192.168.0.196;  };
};
zone   "localhost"   IN  {
               type   master;
               file   "localhost.zone";
};
zone    "0.0.127.in-addr.arpa"   IN  {
               type   master;
               file     "named.local";
};
zone    "."   IN  {
                  type   hint;
                  file    "named.ca";
};
zone    "zzu.com"   IN  {
              type    slave;
              masters  {  192.168.0.195;  }
              file    "slaves/zzu.com.zone";
};
zone  "0.168.192.in-addr.arpa"  IN  {
               type   slave;
               masters  {  192.168.0.195;  }   #这儿地址第一个字节和最后一个字节与花括号之间至少一个空格,最后不能掉了分号,语法相当严谨...
               file    "slaves/192.168.0.zone";
};
该权限不能忘了...
[root@station195 ~]# chown   :named   /etc/named.conf
[root@station195 ~]# service named restart
[root@station195 ~]# cd   /var/named;ls  -l   slaves/
-rw-r--r-- 1 named named 525 Mar  2 16:47 zzu.com.zone
拷贝过来了...我们可以查看此文件...显示的结果和主DNS一样....还有大家需要注意的是serierial值会自动加1。
sh-dns-server:
[root@station197 ~]# vim /etc/named.conf 
options  {
              directory   "/var/named";
              listen-on  port  53  {  127.0.0.1;192.168.0.197;  };
             forwarders { 192.168.0.195; };#因为是子域所以我们要做转发..
};
zone   "localhost"   IN  {
               type   master;
               file   "localhost.zone";
};
zone    "0.0.127.in-addr.arpa"   IN  {
               type   master;
               file     "named.local";
};
zone    "."   IN  {
                  type   hint;
                  file    "named.ca";
};
zone    "sh.zzu.com"   IN  {
              type    master;
              file    "sh.zzu.com.zone";
};
zone  "0.168.192.in-addr.arpa"  IN  {
               type   master;
               file    "192.168.0.zone";
};
[root@station197 ~]# vim /var/named/sh.zzu.com.zone
$TTL  86400
$ORIGIN  sh.zzu.com.
@    86400         IN     SOA    ns.sh.zzu.com.    root.sh.zzu.com. (     #记住这儿完整域名后面得有个点.
                                                       2010022801
                                                           1H
                                                           1M
                                                           1W
                                                           1D)
@       IN       NS                               ns.sh.zzu.com.
ns      IN        A                                192.168.0.197
www     IN        A                                5.5.5.5
tec     IN        A                                   6.6.6.6
 
如果做反向的就拷贝named.local文件..
[root@station197 named]# cp  -p   named.local   192.168.0.zone
然后编辑这个文件即可.这儿主要针对正向来做...
强调一点的是各个服务器的DNS都指向自己.每次修改过配置文件后都要重启动服务..
#service   named  restart  或   #rndc  reload (使用此命令,必须你的DNS服务处于开启状态..)
下面我们来进行解析测试工作....
[root@station195 bind9]# nslookup
(解析自己OK)
Server:  192.168.0.195
Address: 192.168.0.195#53
Name: 

Address: 1.1.1.1
[root@station195 bind9]# nslookup mail.zzu.com
Server:  192.168.0.195
Address: 192.168.0.195#53
Name: mail.zzu.com
Address: 2.2.2.2
[root@station195 bind9]# nslookup
(解析子域OK)
Server:  192.168.0.195
Address: 192.168.0.195#53
Non-authoritative answer:
Name: 

Address: 5.5.5.5
[root@station195 bind9]# nslookup
(解析子域OK)
Server:  192.168.0.195
Address: 192.168.0.195#53
Name: 

Address: 3.3.3.3
去辅助DNS解析...
[root@station196 ~]# nslookup
(解析父域OK)
Server:  192.168.0.196
Address: 192.168.0.196#53
Name: 

Address: 1.1.1.1
[root@station197 ~]# nslookup
(解析自己没问题)
Server:  192.168.0.197
Address: 192.168.0.197#53
Name: 

Address: 5.5.5.5
[root@station197 ~]# nslookup
(解析父域OK)
Server:  192.168.0.197
Address: 192.168.0.197#53
Non-authoritative answer:
Name: 

Address: 1.1.1.1

我们可以看见,解析结果全部成功了,仅仅做个DNS是非常简单的,但是要想把它管理号也是很不容易的,比方说我们想让不同的机器解析的地址不一样,还
的使用view来声明.这儿不再演示了,如果不了解的朋友可以给我留言.我会给你详细的解释..
 
 

 
阅读(2386) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~