小心你的DNS配置文件
Solaris网络系统下DNS服务的配置文件是非常重要的网络配置文件,如果它们出现错误,轻则导致网络不畅,重则导致网络瘫痪,本文针对几例DNS配置文件引起故障的排除介绍此类故障的一般解决方法。
在如今的校园网络系统中,中心服务器操作系统绝大多数选用Solaris系统,DNS服务也相应地运行在Solaris系统下,虽然Solaris系统比较安全,但是也会出现这样那样的故障。本文从Solaris系统的DNS服务配置文件着手,对DNS服务配置文件进行典型分析,在解决故障的过程得到一些网络管理的教训和经验。
named.ca文件改动导致校园网络访问故障
故障现象
某天值班时有大批用户报告校园网络仅能访问CERNET联网单位网络,所有其它网络均无法访问。由于故障较严重,影响全校网络用户的正常使用,所以立即加以重视。
故障分析
1)检查CERNET免费列表
由于现在CERNET有免费列表的存在,所以首先怀疑是路由器上的访问控制列表配置有误,但是仔细查看后确认并没有错误。
2)进行ping测试
ping一些CERNET联网单位以外的网络,如
www.cisco.com
。发现返回内容为unknown host
www.cisco.com
,意为解析不了思科网站的IP地址,这意味着DNS服务器解析域名有故障。
3)试用其它ISP的DNS服务器
由于我们使用的是自己的DNS服务器,现在将机器的DNS服务器配为电信ISP提供的域名解析服务器地址,故障解决,说明本校DNS服务器解析有故障。
4)查看DNS服务器域名解析配置文件
由于已经将故障定位到DNS服务器本身,所以赶快登录DNS服务器查找故障。考虑到DNS服��器能够解析CERNET联网单位网络,说明DNS服务运行正常,估计应该是DNS配置文件被改动。于是仔细查找配置文件错误,终于发现named.ca文件的内容被改动为:
; formerly TERP.UMD.EDU
. 3600000 NS D.ROOT-SERVERS.NET.
D.ROOT-SERVERS.NET. 3600000 A 128.8.10.90
将named.ca文件内容恢复为如下所示的正确内容后故障解决:
; formerly NS.INTERNIC.NET
. 3600000 IN NS A.ROOT-SERVERS.NET.
A.ROOT-SERVERS.NET. 3600000 A 198.41.0.4
; formerly NS1.ISI.EDU
. 3600000 NS B.ROOT-SERVERS.NET.
B.ROOT-SERVERS.NET. 3600000 A 128.9.0.107
; formerly C.PSI.NET
. 3600000 NS C.ROOT-SERVERS.NET.
C.ROOT-SERVERS.NET. 3600000 A 192.33.4.12
; formerly TERP.UMD.EDU
. 3600000 NS D.ROOT-SERVERS.NET.
D.ROOT-SERVERS.NET. 3600000 A 128.8.10.90
; formerly NS.NASA.GOV
. 3600000 NS E.ROOT-SERVERS.NET.
E.ROOT-SERVERS.NET. 3600000 A 192.203.230.10
; formerly NS.ISC.ORG
......................
故障原因
DNS工作原理
DNS服务器中主要存放着计算机的域名和IP地址相关联的数据库,由若干分布式数据库组成,它的主要任务是将一组名字分散至各个域,每个域负责这个域中名字的一个子集,并可以再建子域,这种层次结构如同一棵倒立的树,最高的为根域。每个域有一个名字服务器,该名字服务器的数据库���除了存有它所负责的下级域的IP地址转换信息外,还能提供不属于它负责范围内的其它根域名服务器的IP地址信息。
DNS服务器在收到传来的网址以后,首先查询本地的数据库,看看数据库中有没有和该网址对应的记录,如果有的话,它就把该网址翻译成对应的IP地址返回给用户;如果没有找到,则DNS服务器完成对下一个DNS服务器的查询,这种查询叫递归查询;如果由DNS服务器在响应的报文中指定下一个DNS服务器的IP地址,DNS工作站将自动完成对下一个DNS服务器的查询,这种查询叫转寄查询。
以上属于正常的域名解析服务工作原理,但是本例中根域D.ROOT-SERVERS.NET恰恰因为某种原因设置为只负责解析本域所属的数据库记录,而并不进行针对其它域的转寄查询。如此将named.ca文件内容改为只包含教育网根域记录后,再加之用户端受CERNET免费列表所限,使得用户端只能上CERNET联网单位网络了。
domainhost文件改动导致邮件服务器
收发信故障
故障现象
某天不断有用户反映在学校开设的E-mail邮箱收不到国外和某些国内网站的邮件,严重影响了全校师生员工正常的对外教学、科研信息联系。
故障分析
1)进行国内的收发信测试
首先我们进行测试,发现可以收到部分的国内邮件,比如sina邮箱用户就可以正常收发邮件;但是接收不了chinaren邮箱用户发来的邮件,chinaren邮箱却可以正常接收本校邮箱用户发去的邮件。
2)进行国际的收发信测试
继续对国外邮箱做测试(申请了yahoo邮箱和hotmail邮箱,发现它们均可以正常接收本校邮箱用户发过去的邮件,本校邮箱用户却接收不了它们发送来的邮件。
3)检查邮件服务器配置
我们分析既然可以和sina邮��实现正常的邮件收发,就说明我们的邮件服务器基本工作正常,再次检查确认邮件服务器的配置无误。
4)检查垃圾邮件列表
我们开始怀疑是自己的邮件服务器被列入国际封杀的垃圾邮件列表,经查询核实并没有被列入。
5)分析国际的退信信息
于是我们仔细分析yahoo邮箱和hotmail邮箱的退信,发现均有如下所示的错误信息:
Unable to deliver message to the following address(es).
xxx@mail.hytc.edu.cn(此例中的学校邮箱)
Sorry, I couldn't find any host by that name. (#4.1.2)
I'm not going to try again; this message has been in the queue too long.
从信息“I couldn't find any host by that name.”可以分析出应该是国外的邮件服务器不可以解析得到我们mail.hytc.edu.cn邮件服务器的地址。
6)检查DNS服务配置文件
这样我们就将故障原因定位到DNS服务上,开始仔细查询DNS服务配置文件,当检查到hytcdomainhost文件时,我们发现文件内容:
IN MX sfa.hytc.edu.cn.(定义邮件服务器邮件服务器名称)
sfa IN A 192.168.0.1(转换主机名sfa对应的IP地址为192.168.0.1)
mail IN CNAME sfa.hytc.edu.cn(定义主机sfa的别名为mail)
注意最后一行结尾处正确情况下应该有“.”号,此处缺少了“.”,应该是被改动了,将“.”号加入到结尾处,邮件服务器开始正常工作。
故障原因
DNS资源记录类型
DNS服务器domainhost配置文件中资源记录类型主要有如下几种:
NS——标明域的名字服务器
A——转换主机名到IP地址
PTR——转换IP地址到主机名
MX——标明发给此域的邮件应传送到的服务器
CNAME——定义主机别名
在定义这些资源记录时按DNS服务配置要求在域名的最后一定要加“.”符号,否则就为不规范的记录,在进行相应的DNS解析服务��就会产生一定的错误影响。
本例中就是因为hytcdomainhost文件中mail IN CNAME sfa.hytc.edu.cn记录结尾处的“.”被去掉,导致邮件接收故障。近一步分析为何有的邮件服务器发来的邮件可以正常接收而相当多的国际邮件无法接收,我们发现是因为绝大部分国际邮件服务器发送邮件时要求严格,而许多国内服务器要求则相对宽松一些,如此才导致此种故障现象的。
named.conf文件修改导致邮件服务器
产生大量国际流量
故障现象
近几天DNS服务器流量异常,平均每天产生500M左右的国际流量,按照CERNET的1元/M的收费策略就是500元钱/天的费用。
故障分析
我们从CERNET处查询到DNS服务器的流量列表,进行分析。发现每天500M左右的国际流量基本都是Dns_in类型的数据包,且查看DNS服务器相关的log文件发现有一IP地址近几天大量向我们的DNS服务器发出解析请求,这就表明有校园网外用户在利用我们的DNS服务器做大量的国际恶意递归查询服务,导致我们的DNS服务器每天产生大量的国际流量。
在named.conf文件中的options选项中进行如下设置后解决故障:
options {
directory "/var/named";
pid-file "/var/named/named.pid";
allow-recursion { 192.168.1/24;};
};
此处allow-recursion{ }就是来限制DNS的使用范围,192.168.1/24表示只有192.168.1的这个C类地址网段(即校园网内地址范围)用户可以使用该DNS服务器进行递归查询服务服务。
故障原因
于是我们在DNS服务器中查看named.conf文件,就发现原先配置的禁止校园网外用户使用该服务器进行递归查询服务内容已被删去,这就导致校园网外用户可以使用我们的DNS服务器进行递归查询服务。黑客就是这样修改named.conf文件,然后进行恶意攻��,使得我们的DNS服务器做大量的国际递归解析查询工作,从而导致此种故障的。
在Internet上,DNS服务器虽然受到的攻击没有WWW、MAIL服务器的多,但是造成的影响相对来说更大,可以导致用户访问网络中断、邮件服务器无法正常工作等特大网络故障。从网络管理人员的角度出发,就应该加强服务器的安全防范管理,对DNS配置文件权限采取严格控制措施,以防发生不测。