介 绍

Internet发展至今,在网的服务器和个人主机数量庞大,每个用户通过记忆IP地址访问网络资源并不现实了。

目前大家访问互联网进行上网浏览信息时,正常是通过域名进行访问(例如:www.baidu.com),而实际上网络中的计算机之间只能基于IP地址来相互访问识别对方的身份,而且要想在互联网中传输数据,也必须基于外网的IP地址来完成。这里就出现了DNS域名系统技术来帮我们简化此过程,以此来降低用户访问网络资源的门槛。为什么呢?因为它相对于IP地址,域名更容易被理解并记忆,这样大家便可以通过域名来访问互联网中各项服务了。

简单来说,就是能够接受用户输入的域名或IP地址,然后自动查找与之匹配的IP地址或域名,即将域名解析为IP地址(正向解析),或将IP地址解析为域名(反向解析)。这样我们只需要在浏览器中输入域名就能打开想要访问的网站了。目前,DNS域名解析技术的正向解析也是我们最常使用的一种工作模式。

层次结构

鉴于互联网中的域名和IP地址对应关系数据库太过于庞大,DNS域名解服务器采用了类似目录树的层次结构来记录域名与IP地址之间的对应关系,从而形成了一个分布式的数据库系统,如下图。
DNS域名解析服务(正向解析、反向解析、主从服务器)_第1张图片

域名后缀一般分为国际域名和国内域名,常见的域名后缀有.com(商业组织)、.org(非盈利组织)、.gov(政府部门)、.net(网络服务商)、.edu(教研机构)、.pub(公共大众)、.cn(中国国家顶级域名)等。

三种类型

DNS域名系统技术作为互联网基础设施中的重要一环,为了提供不间断、稳定且快速的域名查询服务,保证互联网的正常运转,提供了以下三种类型的服务器:

  • 主服务器: 在特定区域内具有唯一性,负责维护该区域内的域名与IP地址之间的对应关系;

  • 从服务器: 从主服务器中获得域名与IP地址的对应关系并进行维护,以防主服务器宕机等情况;

  • 缓存服务器: 通过向其他域名解析服务器查询获得域名与IP地址的对应关系,并经常查询的域名信息保存到服务器本地,以此来提高重复查询的效率。

主服务器是用于管理域名和IP地址对应关系的真正服务器,从服务器帮助主服务器“打下手”,分散部署在各个国家、省市或地区,以便让用户就近查询呢域名,从而减轻主服务器的负载压力。缓存服务器不太常用,一般部署在企业内网的网关位置,用于加速用户的域名查询请求。

DNS域名解析服务采用了分布式的数据结构来存放海量的“区域数据”信息,在执行用户发起的域名查询请求时,具有递归查询迭代查询两种方式。所谓的递归查询,是指DNS服务器在收到用户发起的请求时,必须向用户返回一个准确的查询结果。如果DNS服务器本地没有存储与之对应的信息,则该服务器需要询问其他服务器,并将返回的查询结构提交给用户。而迭代查询则是指,DNS服务器在收到用户发起的请求时,并不直接回复查询结果,而是告诉另一台DNS服务器的地址,用户再向这台DNS服务器提交请求,这样依次反复,直到返回查询结果。

DNS域名解析服务(正向解析、反向解析、主从服务器)_第2张图片

实验环境

  1. rhel6.5操作系统
  2. DNS服务器IP地址:192.168.100.5
  3. rhel6.5的镜像光盘挂载至/mnt/cdrom/

实验内容

  1. 正向解析
  2. 反向解析
  3. 主从服务器

部署bind服务

  1. 安装bind软件包
    rpm -ivh /mnt/cdrom/Packages/bind-9.8.2-0.17.rc1.el6_4.6.x86_64.rpm

    2.bind服务程序的主要配置文件

    在bind服务程序中有三个重要的配置文件:

    1. 主配置文件(/etc/named.conf):主要用来定义bind服务程序的运行;
    2. 区域配置文件(/etc/named.rfc1912.zone):用来保存域名和IP地址对应关系的所在位置;
    3. 数据配置文件目录(/var/named):用来保存域名和IP地址真实的对应关系的数据配置文件。

1. 正向解析

在DNS域名解析服务中,正向解析是指根据域名(主机名)查找到对应的IP地址。

  1. 修改主配置文件
    vim /etc/named.conf

DNS域名解析服务(正向解析、反向解析、主从服务器)_第3张图片

  1. 修改区域配置文件
    vim /etc/named.rfc1912.zones

zone "test.com" IN {
type master;
file "test.com.zone";
allow-update { none; };
};

DNS域名解析服务(正向解析、反向解析、主从服务器)_第4张图片

  1. 编辑数据配置文件,从/var/named目录中复制一份正向解析模板文件(named.localhost),在复制时加上-p参数,保留原始文件的权限等信息
[root@localhost named]# cd /var/named
[root@localhost named]# ls
data  dynamic  named.ca  named.empty  named.localhost  named.loopback  slaves
[root@localhost named]# cp -p named.localhost test.com.zone
  1. 把域名和IP地址的对应数据填写数据配置文件中并保存
vim test.com.zone

$TTL 1D //生存周期为1天
@ IN SOA test.com. admin.test.com. (
0 ; serial //更新序列号
1D ; refresh //更新时间
1H ; retry //重试延时
1W ; expire //失效时间
3H ) ; minimum //无效解析记录的缓存时间
NS test.com. // 域名服务器记录
A 192.168.100.5 // 地址记录
AAAA ::1
IN MX 5 test.com. //邮箱交换记录
www IN A 192.168.100.2 //地址记录(www.test.com.)
mail IN A 192.168.100.3 //地址记录(mail.test.com.)

  • IN A 8.8.8.8 //以上都没有解析成功就使用泛域名地址
  1. 开启named服务并重启使其生效
chkconfig named on
service named restart
  1. 检验解析结果
    注意:需要先将网卡中的DNS地址参数修改为本机IP地址(192.168.100.5),这样子才可以正常使用本机提供的DNS服务。
    这里我们通过nslookup命令检查能否从DNS服务器中查询到域名与IP地址的解析记录,进而确定检测DNS服务器是否已经正常为用户提供服务。

DNS域名解析服务(正向解析、反向解析、主从服务器)_第5张图片

2.反向解析

在DNS域名解析服务中,反向解析的作用是将用户提交的IP地址解析为对应的域名信息,它一般用于对某个IP地址上绑定的所有域名进行整体屏蔽,屏蔽由某些域名发送的垃圾邮件。也可以判断某虚拟主机上运行了多少个网站。

  1. 编辑区域配置文件
vim /etc/named.rfc1912.zones

zone "100.168.192.in-addr.arpa" IN {
type master;
file "test.com.arpa";
allow-update { none; };
};

DNS域名解析服务(正向解析、反向解析、主从服务器)_第6张图片

  1. 编辑数据配置文件,从/var/named目录中复制一份反向解析模板文件(test.com.arpa),在复制时加上-a参数,保留原始文件的权限等信息
[root@localhost ~]# cd /var/named
[root@localhost named]# ls
data     named.ca     named.localhost  slaves         test.com.zone
dynamic  named.empty  named.loopback   test.com.arpa
[root@localhost named]# cp -a named.localhost test.com.arpa
  1. 把IP地址的对应数据填写数据配置文件中并保存

$TTL 1D
@ IN SOA test.com. admin.test.com. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS ns.test.com.
A 192.168.100.5
AAAA ::1
ns A PTR ns.test.com.
3 PTR mail.test.com.
2 PTR www.test.com.

  1. 重启named服务使其生效
service named restart
  1. 检验解析结果
    注意:需要先将网卡中的DNS地址参数修改为本机IP地址(192.168.100.5),这样子才可以正常使用本机提供的DNS服务。
    这里我们通过nslookup命令检查能否从DNS服务器中查询到域名与IP地址的解析记录,进而确定检测DNS服务器是否已经正常为用户提供服务。

DNS域名解析服务(正向解析、反向解析、主从服务器)_第7张图片

3. 主从服务器

在DNS域名解析服务中,从服务器可以从主服务器中获取指定的区域数据文件,从而起到备份解析记录与负载均衡的作用,因此通过部署从服务器可以减轻主服务器的负载压力,还可以提升用户的查询效率。

主服务器

  1. 修改主配置文件
    vim /etc/named.conf

DNS域名解析服务(正向解析、反向解析、主从服务器)_第8张图片

  1. 修改区域配置文件
    vim /etc/named.rfc1912.zones

// named.rfc1912.zones:
//
// Provided by Red Hat caching-nameserver package
//
// ISC BIND named zone configuration for zones recommended by
// RFC 1912 section 4.1 : localhost TLDs and address zones
// and http://www.ietf.org/internet-drafts/draft-ietf-dnsop-default-local-zones-02.txt
// (c)2007 R W Franks
//
// See /usr/share/doc/bind*/sample/ for example named configuration files.
//

zone "test.com" IN {
type master; //类型为主服务器
file "test.com.zone";
allow-transfer { 192.168.100.6; }; //允许从服务器更新区域信息的请求,此处IP为从服务器地址
};

zone "100.168.192.in-addr.arpa" IN {
type master; //类型为主服务器
file "test.com.arpa";
allow-transfer { 192.168.100.6; }; //允许从服务器更新区域信息的请求,此处IP为从服务器地址
};

  1. 重启服务使其生效
service named restart

从服务器

  1. 修改主配置文件
    vim /etc/named.conf

DNS域名解析服务(正向解析、反向解析、主从服务器)_第9张图片

  1. 修改区域配置文件
    vim /etc/named.rfc1912.zones

// named.rfc1912.zones:
//
// Provided by Red Hat caching-nameserver package
//
// ISC BIND named zone configuration for zones recommended by
// RFC 1912 section 4.1 : localhost TLDs and address zones
// and http://www.ietf.org/internet-drafts/draft-ietf-dnsop-default-local-zones-02.txt
// (c)2007 R W Franks
//
// See /usr/share/doc/bind*/sample/ for example named configuration files.
//

zone "test.com" IN {
type slave; //类型为从服务器
masters {192.168.100.5;}; //主服务器地址
file "slaves/test.com.zone"; //同步数据配置文件后保存到slaves目录下
};

zone "100.168.192.in-addr.arpa" IN {
type slave; //类型为从服务器
masters {192.168.100.5;}; //主服务器地址
file "slaves/test.com.arpa"; //同步数据配置文件后保存到slaves目录下
};

  1. 重启服务使其生效
service named restart

检验解析结果

DNS域名解析服务(正向解析、反向解析、主从服务器)

DNS域名解析服务(正向解析、反向解析、主从服务器)_第10张图片