LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 2934|回复: 15

DNS--redhat9 :终于干了你:看后不会都难:《配置篇》

[复制链接]
发表于 2005-3-19 19:12:11 | 显示全部楼层 |阅读模式
首先强调一点: 尽信书不如无书--正是由于我太相信书和”精华“帖子,耽搁了我72小时可惜
于高手:在给别人讲解时敬请多注意环境,将心比心置入新手的环境中,不要每次回答就发
        个链接,去看"链接”去就了事,熟不知别人早已看了七八篇精华和基础教程了。
。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
                               正文
        假设你已经看了基础教程,或基本懂一点。不懂也没关系,下面有。
首先:指出十贴有8贴以及我这手里买的参考书都存在的错误--只针对redhat9 (新手)
  1:重启dns服务不是service named restart : 即使你如此操作100编,你会发现你的设置  
     还是没有改变,正确是: service named reload (或/etc/init.d/named reload)
  2: redhat9 与众不同,除了有named.conf 还有named.custom (后者可以不配置)
     named.conf注意:zone "file" 这个file 文件名随意,不一定非要*.zone,只是大家习惯
     include "file" 注意摆放位置,要在前面,所以你会看到与其他帖子named.conf不同现象
    如:include "/etc/named.custom";   (注意,很多帖子中没说,include相当与引用)
            include "/etc/rndc.key";
            zone  "0.0.127.in-addr.arpa" {
            。。。。
  3:对于named.conf 中zone定义的文件(假如hello.zone), 这个文件不会自动产生,怎么办?
      简单:在/var/named目录下已经有2个模板了,cp 模板 hello.zone 就OK了,注意对应
      域名cp域名 ,然后再编辑,下面有。
  4: 对于@$ORIGIN(一定要大写) 很多人误用,特别是新手,注意解析域名的
       zone文件开头写法:2种,很多帖子和书都介绍的不清楚,容易引起歧异误导新手。
      先解释概念: 看到@就往这行上面的行看,如果没有$ORIGIN ,就是默认的域,既
      是这个×.zone文件在named.conf被指向的域,建议不要和 $ORIGIN同时使用。
      $ORIGIN 意思是“ 源头”,即域,是为下面内容所用的,等下下面详解。
  5 :domain 、zone 和 domain name的区别:
      domain 和 zone 意思一样 :域的意思:例如www.163.com  域为:163.com(没点
      domain name  意思就是 www.163.com
        所以/etc/resolv.conf中 domain  就是 163.com 而不是www.163.com或163.com.
  6:*.zone和named.conf文件中 IN 到底要不要:可要可不要 ,不影响
       IN的意思: 用internet方式解释域名和IP ,等于废话。除非你自己不用TCPIP协议。
  7:  如何判断你配置成功与否 :必须按照下面介绍的步骤检验完都无错就是OK
          1>重启dns  : service named reload
          2>named-checkconf   (必须主机登陆,telnet,su等登陆都不执行)
               此命令检测named.conf语法是否有错,并不能保证dns配置成功
       3>假如1.2没错(否则解决完2再次步) 检测命令有3种以上,介绍2种流行适用
          host <你要解析的IP或域名>  成功就OK  
          或 nslookup <你要解析的IP或域名> 成功就OK
           也可以浏览/var/log/messages 文件,不过对于3错误在次文件中不会留有记录
   。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
                            次文--配置开始   1:配置机器名(机器名-internet上就是域名,局域网就是主机名意思)
配置DNS的服务器环境: 假如有2台电脑 ,一台redhat主机,一台windows 机子
      A :服务器 IP-172.20.20.1   主机名 dns.hello.tm
         B :  网内机 IP-172.20.20.20  域名 www.hello.tm  <随便什么域名,不是主机名
     我们想解析dns.hello.tm 即在windows的机子ping dns.hello.tm 可以ping通。
   以下开始配置主机, 对于网内机只需要设置本地连接属性中DNS的IP填上A的IP
             注意配置的顺序,以及各配置文件的关联,只列出其中需要修改的关键内容
       1>/etc/hosts: 127.0.0.1        localhost ....
                 172.20.20.1    dns.hello.tm
       2> /etc/sysconfig/network   
                 HOSTNAME=dns.hello.tm  .......
             修改保存后必须 执行命令 hostname  dns.hello.tm <立刻修改主机名>
       3> /etc/resolv.conf   《很多人对此文件不理解。》
            nameserver 172.20.20.1 《在第一行好,named程序会读此文件>
                  domain     hello.tm <这里是域名,不是dns.hello.tm ,也不需要点,可以不要>
                  可以有最多3个nameserver 行 <DNS会从上往下尝试解析,直到成功>
      4> /etc/host.conf    <此文件规定解析顺序,除了DNS可以解析,还有hosts.lmhost==)
                  order hosts,bind  <此处,bind 就是DNS意思,建议hosts放前面>
                  multi on               <允许一个主机名可以解析多个IP ,最好要>
      5> /etc/named.custom
                zone  "."           {
                         type hint;
                          file  "named.ca";
                 };

                 options {
                      directory "/var/named/";
                };
             不动,不要修改,好像第一次没有,如果有,注意named.conf里面要被include引用
    6> /etc/named.conf     ...............................named.conf 内容.................................                                    
controls {
        inet 127.0.0.1 allow { localhost; } keys { rndckey; };
};

include "/etc/named.custom";

include "/etc/rndc.key";

zone  "0.0.127.in-addr.arpa" {
        type master;
        file  "0.0.127.in-addr.arpa.zone";
};

zone  "localhost" {
        type master;
        file  "localhost.zone";
};

zone  "hello.tm" {                 《这里是手动新增加的 ,注意;和 {
       type master;                  
       file "hello.tm.zone";             《这里hello.tm.zone随便都可以,建议这样命名
};


zone  "20.20.172.in-addr.arpa" 《 注意 in-addr.arpa ,这其实是反向解析的根域
       type master;                            《下面的zone文件,只讲解正向域名文件含义
       file "172.20.20.zone";                《反面的你应该跟着学就OK
};


..................................结束named.conf........ ................ ................

       7>  hello.tm.zone  <重点讲解。里面很多误区以及概念
                           注意我们需要解析2域名
                          1: dns.hello.tm   --IP --   172.20.20.1
                                       2: www.hello.tm --IP--     172.20.20.20
      

    ...........................hello.tm.zone  原文件内容...................
         
    $TTL 86400
$ORIGIN hello.tm.
hello.tm.  IN   SOA     dns.hello.tm.   root.dns.happy.tm. (
                        1 ; serial
                        28800 ; refresh
                        7200 ; retry
                        604800 ; expire
                        86400 ; ttl
                        )

        IN      NS       dns.hello.tm.

dns     IN        A       172.20.20.1
www            A       172.20.20.20

..........................结束--hello.tm.zone.............................................
  
         下面具体解释里面的含义

      解释 》     ...........................hello.tm.zone  原文件内容...................
          .............为了容易看清我标注行数....................
$TTL 86400         《1天的意思;不要改动
$ORIGIN hello.tm.        《这里有2种写法:另一种是没有次行记录,但下行开始的hello.tm. 就要改为@  ,请注意 .
hello.tm.  IN   SOA     dns.hello.tm.   root.dns.hello.tm. (
                      1 ; serial        《3行可改动的是开头 hello.tm. ;SOA后面
⑷                      28800 ; refresh       《dns.hello.tm. 这里是此域的主DNS名字
⑷                       7200 ; retry            《即是指定主域名服务器,还有次域名服务器等。
⑷                        604800 ; expire      《root.dns...是管理员信箱,linux内部信箱就是这样
⑷                        86400 ; ttl         《其中root. 这个.就是@意思。改变是由于@含义被占用
⑷                        )                           《4行就不用介绍了,默认即可。

        IN      NS       dns.hello.tm.   《5行开头空格最好,这里和第2行呼应
                                                  如果是第一种写法,空格,第2种就@ ,或域 ,不是域名哦
dns     IN        A       172.20.20.1《5行的IN 可以省略, NS必须要
www            A       172.20.20.20  《NS意思 解析当前域的 DNS服务器
                                                                            《6行 :注意解析2种写法,就好比路径
                                     《2种写法一样,用相对的,注意dns 后面没点
                                      《7行同样,至于CNAME,MX 还是等你成功后再搞,到时也是轻松如意,
..........................结束--hello.tm.zone.............................................      
   
好了。这是我4天众览10余篇“精华帖子"和"字字"嚼书的结果,相信你一定少走很多弯路
哎,本来计划DNS和SMB只要2天的,结果5天,哎,影响后面的进程。
有不懂的可以联系我QQ; 16998938
发表于 2005-3-19 19:57:23 | 显示全部楼层
好贴,顶一下,建议加钻!呵呵
回复 支持 反对

使用道具 举报

发表于 2005-3-20 00:20:25 | 显示全部楼层
好帖,兄弟辛苦了。。。

精华中。。
回复 支持 反对

使用道具 举报

发表于 2005-3-20 00:28:07 | 显示全部楼层
我想问一下,我在REDHAT9下面的DNS做A记录 例如: 211 IN A  www,就会在/var/log/message 文件报错,DNS无法启动,报告所这条A记录语法有问题,把IN去掉,就可以运行?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-3-20 15:59:25 | 显示全部楼层
Post by supermandel
我想问一下,我在REDHAT9下面的DNS做A记录 例如: 211 IN A  www,就会在/var/log/message 文件报错,DNS无法启动,报告所这条A记录语法有问题,把IN去掉,就可以运行?

别急。。。。
你大概是反向解析 ,反向解析上面我没说 ,补充一下
211 IN A  WWW
首先明确: 正向解析 用A  (address ,地址的意思,IN 表示 所有解析是internet方式,,
     IN可不要, 比如 www.sina.com是 internet上域名,也许还有其他式,  
      只所以可不要原因就好比你向别人自我介绍,本人性别男,还用说么,一看就知道。)  
  ,反向解析用 PTR (pointer 好像是指针,指向的意思)
你把反向,正向用到一起里当然语法错误了。 看相关基础的书或帖子吧,
语法      www    A    192.0.0.211  ---正向解析文件中,举例(注意没点)
               211     PTR  www.hello.tm.  (注意有点)
    IN 用起来比较正式些,就好比美国英语与英国英语。
回复 支持 反对

使用道具 举报

发表于 2005-3-20 22:09:13 | 显示全部楼层
确切的说让named知道你作了zone文件的修改有两种方法:
1. 修改zone文件的serial 标识,然后service named restart !一般我们用yyyymmddnn 的方式标识。比修改前的版本号大就可以了
2. rndc reload ,  让rndc重读配置文件,也就是service named reload 执行的操作!
回复 支持 反对

使用道具 举报

发表于 2005-3-23 15:42:44 | 显示全部楼层
建议论坛加论坛收藏功能,我就不用在此发跟帖了...
回复 支持 反对

使用道具 举报

发表于 2005-6-3 15:14:16 | 显示全部楼层
我都找你的做了,可是还是不成功,可以帮忙吗
回复 支持 反对

使用道具 举报

发表于 2005-6-3 15:15:21 | 显示全部楼层
“0.0.127.in-addr.arpa.zone”文件怎么写啊
回复 支持 反对

使用道具 举报

发表于 2005-6-11 19:42:31 | 显示全部楼层
精中之精
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表