1.DNS简介
随着互联网在世界范围的快速发展,网络已经日益走进人们的生活。在TCP/IP网络上,每个设备必须分配一个唯一的地址,计算机在网络上通讯时只能识别如"202.96.134.163"之类的数字地址,而人们在使用网络资源的时候,为了便于记忆和理解,更倾向于使用有代表意义的名称,即域名系统DNS,如www.szptt.net.cn代表深圳之窗网站的域名,这就是为什么当我们打开浏览器,在地址栏中输入如"www.szptt.net.cn"的域名后,就能看到我们所需要的页面。这是因为在我们输入域名后,有一台称为"DNS服务器"的计算机自动把我们的域名"翻译"成了相应的IP地址,然后调出那个IP地址所对应的网页,最后再传回给我们的浏览器,我们才能得到结果。
DNS是域名系统(DomainNameSystem)的缩写,在一个TCP/IP架构的网络(例如Internet)环境中,DNS是一个非常重要而且常用的系统,主要的功能就是将人易于记忆的DomainName与人不容易记忆的IPAddress作转换。而上面执行DNS服务的这台网络主机,就可以称之为DNS Server。DNS最常见的版本是BIND--伯克利Internet域名服务器,该服务器称为named。
2.资源记录 每个DNS数据库都由资源记录构成,资源记录包含与特定主机有关的信息。而每个资源记录通常包含5项,大多数情况下用ACSII文本显示,每条记录一行,格式如下:
Domain Time to live Record type Class Record data
各项的含义如下:
(1)域名(Domain):该项给出要定义的资源记录的域名,该域通常用来作为域名查询时的关键字。
(2)存活期(Timeolive):在该存活期过后,该记录不在有效。
(3)类别(Class):该项说明网络类型。目前大部分的资源记录都采用"IN",表明Internet,该域的缺省值为"IN"。
(4)记录数据(Record data):说明和该资源记录相关的信息,通常由资源记录类型来决定。
(5)记录类型(Record type):该项说明资源记录的类型。
3.DNS配置步骤
我们假定用户建立的DNS服务器所管辖的域名为redflag.com,对应的子网IP地址是10.1.14.0,域名服务器的IP地址为10.1.14.61。配置过程如下:
(1)配置启动文件/etc/named.conf
该文件是域名服务器守护进程named启动时读取到内存的第一个文件。在该文件中定义了域名服务器的类型、所授权管理的域以及相应数据库文件和其所在的目录。该文件的内容如下:
options {
directory "/var/named";
notify no;
forwarders{
202.96.134.133;
};
};
zone "." IN {
type hint;
file "named.ca";
};
zone "0.0.127.in-addr.arpa" IN {
type master;
file "named.local";
allow-update { none; };
};
zone "redflag.com" IN {
type master;
file " named.hosts";
allow-update { none; };
};
zone "14.1.10.in-addr.arpa" IN {
type master;
file "named.10.1.14 ";
allow-update { none; };
};
【说明】
(a)"directory"指定了dns记录文件的存放目录是/var/named。
(b)第一个"zone"语句定义了dns服务器的根域名服务器的信息是从 "name.ca"获得。这个记录文件是系统自带的,不用去改动它。
(c)第二个"zone"语句是"回送地址"的数据库文件,文件名是"named.local"。这个记录文件也是系统自带的,不用去改动它。
(d)forwarders {202.96.134.133;},其中202.96.134.133是我这里电信的dns服务器的地址,forwarders参数指明了其后的IP所在的服务器作为备选的dns服务器。也就是说,把本机的dns不能解析的主机发送到这个备选的dns服务器上,让它来进行解析。
(e)第三个"zone"和第四个"zone"定义了"redflag.com"这个域和对应的反向查询域。
(f)"named.hosts"和"named.10.1.14"是域的记录文件。这两个文件也是自己创建的。
(g)在named.conf文件中涉及到的文件名当然也可以自己命名,但是要和/var/named目录下的文件名保持一致。
(h)在行"zone "14.1.10.in-addr.arpa" IN {"行中,网络号一定反序写出。
(2)创建或保留/var/named/named.ca
在Linux系统上通常在/var/named目录下已经提供了一个named.ca,该文件中包含了Internet的顶层域名服务器,但这个文件通常会有变化,所以建议最好从Inter NIC下载最新的版本。该文件可以通过匿名ftp下载。
(3)创建/var/named/named.hosts
该文件指定了域中主机域名同IP地址的映射,内容如下:
$TTL 86400
@ IN SOA a100.redflag.com. root.redflag.com. (
2001110600 ; serial
28800 ; refresh
14400 ; retry
3600000 ; expire
86400 ; minimum
)
IN NS a100.redflag.com.
IN MX 10 a100.redflag.com.
localhost. IN A 127.0.0.1
a100 IN A 10.1.14.61
a101 IN A 10.1.14.62
www IN CNAME a100
【说明】
(a)在文件中所有的记录行(本文件从第10行开始)都要顶行写,前面不能有空格。
(b)行"IN NS a100.redflag.com."说明该域的域名服务器,至少应该定义一个。
(c)行"IN MX 10 a100.redflag.com."是MX记录,该程序专门处理邮件地址的主机部分为"@redflag.com"的邮件,"10"表示优先级别。
(d)类似行"a100 IN A 10.1.14.61"是一系列的"A"记录,表示主机名和IP地址的对应关系建立起来。a100是主机名,10.1.14.61是它的IP地址。
(e)行"www IN CNAME a100"表示一条定义别名的记录。即"www.redflag.com"和"a100.redflag.com"表示同一台主机。
(4) 创建/var/named/named.10.1.14
该文件主要定义了IP地址到主机名的转换。IP地址到主机名的转换是非常重要的,Internet上很多应用,例如NFS、Web服务等都要用到该功能。该文件的内容如下:
$TTL 86400
@ IN SOA a100.redflag.com. root.a100.redflag.com. (
2001110600 ; serial
28800 ; refresh
14400 ; retry
3600000 ; expire
86400 ; minimum
)
IN NS a100.redflag.com.
61 IN PTR a100.redflag.com.
62 IN PTR a101.redflag.com.
【说明】
(a)PTR记录用于定义IP地址名到主机域名的映射。
(b)PTR记录的最后一项必须是一个完整的标识域名,以"."结束。
(5)创建/var/named/named.local
该文件用来说明"回送地址"的IP地址到主机名的映射。该文件的内容如下:
$TTL 86400
@ IN SOA a100.redflag.com. root.a100.redflag.com. (
2001110600 ; serial
28800 ; refresh
14400 ; retry
3600000 ; expire
86400 ; minimum
)
IN NS a100.redflag.com.
1 IN PTR localhost.
【说明】
(a)此文件的内容是特定的,在不同的域的域名服务器上,所要修改的只是SOA记录和NS记录。
(b)"PTR"记录的最后域名为完全标识域名,以"."结束。
(6) 配置文件/etc/resolv.conf
该文件用来告诉解析器调用的本地域名、域名查找的顺序以及要访问域名服务器的IP地址。该文件的内容如下:
domain redflag.com
nameserver 10.1.14.61
search redflag.com
(7)修改/etc/nsswitch.conf
该文件中和域名服务有关的一项是"hosts"。修改如下:
hosts: files dns nisplus nis
(8)启动DNS
/etc/rc.d/init.d/named start或restart
4.DNS测试
DNS测试最常用的是nslookup命令。
(1)检查正向DNS
(a)查找主机
[root@redflag root]#nslookup
>a100.redflag.com
Server: 10.1.14.61
Address: 10.1.14.61#53
Name: a100.redflag.com
Address: 10.1.14.61
该命令用来查找主机a100.redflag.com的IP地址。
如果只输入:
>a100
nslookup应该能够根据文件/etc/resolv.conf中的定义,自动添加redflag.com的域名,然后显示与上面相同的结果。
(b)查找域名信息
[root@redflag root]#nslookup
>set type=ns
>redflag.com
Server: 10.1.14.61
Address: 10.1.14.61#53
redflag.com nameserver = a100.redflag.com.
(2)检查反向DNS
假如要查找IP地址为10.1.14.61的域名,输入:
[root@redflag root]#nslookup
>set type=ptr
>10.1.14.61
Server: 10.1.14.61
Address: 10.1.14.61#53
61.14.1.10.in-addr.arpa name = a100.redflag.com.
(3)检查MX邮件记录
要查找redflag.com域的邮件记录地址,输入:
[root@redflag root]#nslookup
>set type=mx
>redflag.com
Server: 10.1.14.61
Address: 10.1.14.61#53
redflag.com mail exchanger = 10 a100.redflag.com.
(4)检查CNAME别名记录
要查找www.redflag.com主机的别名,输入:
[root@redflag root]#nslookup
>set type=cname
>www.redflag.com
Server: 10.1.14.61
Address: 10.1.14.61#53
www.redflag.com canonical name = a100.redflag.com.
5.小结
域名系统(DNS)是一种用于TCP/IP应用程序的分布式数据库,它提供主机名和IP地址之间的转换以及有关电子邮件的路由信息。本文主要讨论的红旗Linux下DNS的配置和测试,该配置已在红旗Linux操作系统上测试通过。