DNS的基本概念及作用
DNS是Domain Name System的缩写,中文的含义是域名系统。其作用是将人们易于记忆的域名与人们不容易记忆的IP地址进行转换。执行此项功能的主机被称为DNS服务器。
例如:在Internet中www.aa.com是一个域名,其IP地址是192.168.0.3.显而易见前者比后者容易记忆。但是用户必须确保用到的域名已经在DNS服务器中做好了相应的IP地址映射工作。
DNS的结构
其中根域是有多台DNS服务器构成,是树的*,它表示未命名的等级。在DNS域名中使用时,他的尾部用”.”表示,以指定该名称位于层次结构的最高层或根。在这种情况下DNS域名被认为是完整名称并指向名称树种的确切位置。以这种方式表示的被称为完全合格域名FQDN。例如“Ly.edu.cn.”
*域:通常有三个字母组成,指示国家或单位类型。常见的*域有:com,edu,org,gov,net等
二级域:是在Internet上使用而注册到个人或单位的长度可变的名称,它必须基于相应的*域。
子域:单位可以创建的其他名称,这些名称从已注册的二级域名中派生,并可将其按部门或地理位置设置。
DNS的组成
在概念上可以把DNS分为三个部分
域名空间:这是标识一组主机并提供它们的有关信息的树结构的详细说明。树上的每一个节点都有它控制下的主机的有关信息的数据库
域名服务器:这是保持并维护域名空间中数据的程序。每个域名服务器含有一个域名空间子集的完整信息,并保存其他有关部分的信息
解析器:解析器是简单的程序或子程序库,它从服务器中提取信息以响应对域名空间中主机的查询。
DNS服务器的类型
主DNS服务器(某个区域是主区域master).
辅助DNS服务器(说明某个区域是从区域slave),可以从主服务器中转移一整套域信息。
缓存服务器等
DNS区域类型
maser标准主区域:创建新的查找数据库,存储主机名和IP地址的解析记录。
slave标准辅助区域:是标准主区域的数据库的只读拷贝,使用它可减轻主服务器的工作负荷,DNS使用区域传送从主域名服务器发送记录到辅助的域名服务器上。
hint:线索区域
forward:转发区域
DNS查询
DNS性质:DNS是一个分布式数据库系统,它提供将域名转换成IP地址信息。
名称解析:将域名转换成IP地址的方法,即查询转换的过程。
查询:递归查询(逐级的一个过程),和迭代查询(一个服务器请求多次)
名称解析分类:
正向解析:DNS将域名转换成IP地址的过程。
反向解析:DNS将IP地址转换成域名的一个过程。
DNS资源记录类型
FQDN-->IP A记录,AAAA记录 正向解析
IP-->FQDN PTR指针记录 反向解析
SOA:Start Of Authority :起始授权记录,由此开始下面是区域,
NS:Nameserver 后面要加主机名称 标识区域的负责人
CNAME:别名记录,正式记录
MX:Mail exchanger 邮件交换器 只存在正向(A)记录中
DNS的安装过程
下面是安装bind97的一个简单操作
#yum list all | grep bind 查看当前系统上的bind的详细信息。
#rm –e bind-libs bind-utils 删除以前安装的bind
#yum install bind97 bind97-libs bind97-utils 使用yum安装bind97
DNS的配置过程
安装过DNS后,现在我们开始配置DNS的主配置文件/etc/named.conf ,可以把原先的配置文件删除,自己建立一个具体内容如下
options{
directory “/var/named”; 定义DNS服务数据所在的文件目录
};全局配置项
zone “.” IN{ 区域
type hint;
file “named.ca” ;
};
zone “localhost” IN { 正向解析
type master
file “localhost.zone”
};
zone “0.0.127” IN{ 反向解析
type master
file “named.local”
};
配置好主配置文件之后,接下来建立正向解析的文件localhost.zone 和反向解析的文件named.local.
vim localhost.zone
$TTL 600
localhost. IN SOA localhost. admin.localhost. (
2012071001 主服务器数据库上的版本号,也就是序列号
50M 复制间隔时间
20M 重试时间
3D 过期时间
1D) 否定回答时间
localhost. IN NS localhost.
localhost. IN A 127.0.0.1
vim named.local
$TTL 600
@ IN SOA localhost. admin .localhost.(
2012071001 主服务器数据库上的版本号,也就是序列号
50M 复制间隔时间
20M 重试时间
3D 过期时间
1D) 否定回答时间
@ IN NS localhost.
1 IN PTR localhost.
修改文件的属组权限
#chown :named /etc/named.conf
#chmod 640 /etc/named.conf
#cd /var/named
#chown :named named.local localhost.zone
#chmod 640 named.local localhost.zone
检查配置文件以及区域的语法错误
#named-checkconf 检查配置文件的语法错误
#named-checkzone localhost localhost.zone
#named-checkzone 0.0.127.in-addr.arpa named.local
到此为止简单的DNS已经配置成功,接下来只需重启服务即可
#service named start 效果如下图
主从配置过程
现在我们就假设我们有两台DNS服务器A和B,A作为主服务器,B 作为从服务器
主机A的IP为 172.16.99.1 域名ns1.magedu.com
主机B的IP为172.16.200.1 域名为ns2.magedu.com
其中还有mail.magedu.com,pop3.magedu.com
首先配置主DNS服务器,在上面的配置基础上,我们只需要在/etc/named.conf文件中添加如下区域即可。
上图中的allow-transfer表示允许传送,后面跟允许传送的主机IP
然后分别创建magedu.com.zone和16.172.zone两个文件
vim magedu.com.zone,文件内容具体如下图
vim 16.172.zone 文件具体内容如下图
然后使用named-checkzone检查区域错误。
测试建立的DNS服务器,测试结果如下图
配置从DNS服务器
主服务器配置基本上一样,但是从DNS服务器不用配置区域文件而是从主DNS服务器上复制而来,因此只需把主配置文件中的区域类型修改成slave即可,具体配置如下图:
然后service named start 启动服务,查看/var/named/slaves 目录下生成两个文件,如下图所示
查看自动生成的文件magedu.com.zone 如下图所示
由此可知主从配置成功
DNS子域授权
由于DNS分布式的层级结构,把一个大名称空间划分成许多小的名称空间,并逐级委托给某一个小空间的小服务器来实现名称解析的应用,当DNS服务器繁忙时,可以授予子域进行名称解析,以减少服务器压力。
在这里我们只讲解正向区域的DNS子域授权。
假使我们有两台主机A和B,A作为主DNS服务器,B作为子域授权服务器
A的IP地址为172.16.99.1,B的IP地址为172.16.8.1
配置主机A
主机A的主配置文件/etc/named.conf 和主从配置中A的配置一样,在这里就不再讲述了,接下来只需编辑区域文件,在magedu.com.zone中添加如下内容即可
tech.magedu.com IN NS ns.tech.mageduc.om
ns.tech.magedu.com IN A 172.16.8.1
然后重启服务
配置主机B
配置DNS的主配置文件/etc/named.conf,先按照上述配置DNS过程把DNS服务能够启动起来,然后在主配置文件中添加如下区域,并创建区域文件即可,具体内容如下图
编辑区域文件
vim tech.magedu.come.zone具体内容如下图
vim 172.16.zone,具体内容如下图
如果有些请求BDNS服务器不能解析,则可以转发给主机A进行解析,此时只需在主机B中的主配置文件/etc/named.conf中添加区域
zone “magedu.com” IN {
type forward;
forward none;
forwarders { 172.16.100.1; } ; 指定转发给谁
};
本文转自 沐木小布丁 51CTO博客,原文链接:http://blog.51cto.com/sxhxt/925858