DNS是十分重要的Internet基础设施,可以认为DNS是Internet的基石。基于Internet的各种Web服务、Email服务、路由服务都依赖或者可能依赖DNS,在以IPV6为基础的下一代互联网中,由于IPV6地址长达128位,更为复杂。因此部署一套能与IPV6紧密结合的域名系统尤为重要。
一 DNS原理和解析过程
DNS服务器所提供的服务是完成将主机名和域名转换为IP地址的工作。当网络上的 一台客户机访问某一服务器上的资源时,用户在浏览器地址栏中输入的是便于识记的主机名和域名。而网络上的计算机之间实现连接却是通过每台计算机在网络中拥有的惟一的IP地址来完成的,这样就需要在用户容易记忆的地址和计算机能够识别的地址之间有一个解析,DNS服务器便充当了地址解析的重要角色。
DNS是域名系统(Domain Name System)的缩写,是一种组织域层次结构的计算机和网络服务命名系统。当用户在应用程序中输入DNS名称时,DNS服务可以将此名称解析为与此名称相关的IP地址信息。
用户在使用网络服务时喜欢在浏览器的地址栏中输入使用主机名和域名组成的名称,如www.hust.edu.cn,因为,这样的名 称更容易被用户记住。但是,计算机在网络上是使用IP地址来通信的。为了能够实现网络计算机之间通信,DNS服务器所提供的服务就是将用户所使用的计算机 或服务名称映射为IP地址。
DNS服务的工作过程:
当DNS客户机需要查询程序中使用的名称时,它会查询DNS服务器来解析该名称。客户机发送的每条查询消息都包括3条信息,以指定服务器应回答的问题。
● 指定的 DNS 域名,表示为完全合格的域名 (FQDN) 。
● 指定的查询类型,它可根据类型指定资源记录,或作为查询操作的专门类型。
● DNS域名的指定类别。
对于DNS 服务器,它始终应指定为Internet类别。例如,指定的名称可以是计算机的完全合格的域名,如hosta.hello.company.com,并且指定的查询类型用于通过该名称搜索地址资源记录。系统将把DNS查询当作客户机向服务器提出的两部分问题,如“对于名为 hostname.hello.company.com 的计算机,你有没有地址资源记录?”当客户机从服务器接收应答时,它读取并解释应答的地址资源记录,以了解它通过名称提问的计算机的IP地址。
DNS查询以各种不同的方式进行解析。客户机有时也可通过使用从以前查询获得的缓存信息就地应答查询。DNS 服务器可使用其自身的资源记录信息缓存来应答查询,也可代表请求客户机来查询或联系其他 DNS 服务器,以完全解析该名称,并随后将应答返回至客户机。这个过程称为递归。
另外,客户机自己也可尝试联系其他的DNS服务器来解析名称。如果客户机这么做,它会使用基于服务器应答的和附加的查询,该过程称作迭代。
总之,DNS 的查询过程按两部分进行:首选,名称查询从客户机开始并传送至解析程序(DNS客户服务)进行解析;其次,不能就地解析查询时,可根据需要查询DNS服务器来解析名称。DNS 查询的过程如下图所示。
二 IPv6 DNS解析系统
对于IPV6 DNS系统的设计要求同时支持IPv4/6双栈查询,能同时在IPv4/6网络上监听,并根据查询要求返回相应的IPv4/6地址,能支持IPv4/6的查询源地址校验进行访问控制。
在具体实现上,采取Linux系统下部署BIND9服务能够有效的满足上述要求,具体配置如下
1)服务器操作系统:CentOS5.2(Linux2.6内核)
2)DNS解析服务:BIND-9.5.0
BIND4.9.5以及8.1以后版本都支持AAAA记录查询,BIND9以后的版本还支持A6,DNAME 的DNS记录查询,目前我们主要用到其AAAA记录查询功能。
配置文件:named.conf
options {
listen-on-v6 { any; }; //启用IPv6地址监听
}
allow-query {
202.114.0/19; //IPv4 Access Control Lists
…
2001:250:4000::/48; //IPv6 Access Control Lists
2001:da8:3000::/48;
};
Zone配置文件:hust.hosts
$ttl 1D
@ IN SOA hust.edu.cn. root.hust.edu.cn. (
…
www.hust.edu.cn. IN A 202.114.0.245 //IPv4地址A记录
www6.hust.edu.cn. IN AAAA 2001:250:4000:2000::80
//IPv6地址的AAAA记录
…
)
三 安全
在安全方面,本系统的BIND版本为最新版本,对于近期披露的DNS Cache Poisoning 漏洞可以起到有效的防止作用。并结合防火墙以及DNS 访问控制列表可以实现稳定安全的DNS服务。
防火墙采用Linux下的Iptables配置,将除53端口之外的其他端口全部封闭,以免DNS服务器受到其他干扰。下载本文