|
|
首先强调一点: 尽信书不如无书--正是由于我太相信书和”精华“帖子,耽搁了我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 |
|