DNS域名解析服务

一:DNS 系统的作用及类型
DNS 系统在网络中的作用就是维护一个地址数据库,其中记录了各种主机域名与 IP
址的对应关系,以便为客户程序提供正向或反向的地址查询服务,即正向解析与反向解析。
正向解析:根据域名查 IP 地址,即将指定的域名解析为相对应的 IP 地址。域名的 正向解析是 DNS 服务器最基本的功能,也是最常用的功能。

反向解析:根据 IP 地址查域名,即将指定的 IP 地址解析为相对应的域名。域名的 反向解析不是很常用,只在一些特殊场合才会用到,比如可用于反垃圾邮件的验证。

实际上,每一台 DNS 服务器都只负责管理一个有限范围(一个或几个域)内的主机域
名和 IP 地址的对应关系,这些特定的 DNS 域或 IP 地址段称为 zone (区域)。根据地址解
析的方向不同, DNS 区域相应地分为正向区域(包含域名到 IP 地址的解析记录)和反向区
域(包含 IP 地址到域名的解析记录)。
根据所管理的区域地址数据的来源不同, DNS 系统可以分为不同,DNS 系统可以分为不同的类型。在同一台 DNS服务器中,相对于不同的区域来说,也拥有不同的身份。常见的几种类型如下。
缓存域名服务器:只提供域名解析结果的缓存功能,目的在于提高查询速度和效率,
但是没有自己控制的区域地址数据。构建缓存域名服务器时,必须设置根域或指定
其他 DNS 服务器作为解析来源。
主域名服务器:维护某一个特定 DNS 区域的地址数据库,对其中的解析记录具有
自主控制权,是指定区域中唯一存在的权威服务器、官方服务器。构建主域名服务
器时,需要自行建立所负责区域的地址数据文件。
从域名服务器:与主域名服务器提供完全相同的 DNS 解析服务,通常用于 DNS
服务器的热备份。对客户机来说,无论使用主域名服务器还是从域名服务器,查询
的结果都是一样的。关键区别在于,从域名服务器提供的解析结果不是由自己决定
的,而是来自于主域名服务器。构建从域名服务器时,需要指定主域名服务器的位
置,以便服务器能自动同步区域的地址数据库。
二:BIND 的安装和控制
2.1:安装 BIND 软件
CentOS 系统中,系统光盘自带了 BIND 服务的安装文件,主要包括以下几个
软件包。
bind-9.9.4-37.el7.x86_64.rpm
bind-utils-9.9.4-37.el7.x86_64.rpm
bind-libs-9.9.4-37.el7.x86_64.rpm
bind-chroot-9.9.4-37.el7.x86_64.rpm
各软件包的主要作用如下。
bind :提供了域名服务的主要程序及相关文件。
bind-utils :提供了对 DNS 服务器的测试工具程序,如 nslookup 等。
bind-libs :提供了 bind bind-utils 需要使用的库函数。
bind-chroot :为 BIND 服务提供一个伪装的根目录(将 /var/named/chroot/ 文件夹
作为 BIND 服务的根目录),以提高安全性。
默认已安装 bind-utils bind-libs ,因此只需要安装 bind bind-chroot 即可。
2.2:BIND 服务控制
BIND 软件包安装完毕以后,会自动增加一个名为 named 的系统服务,通过 systemctl
工具可以控制 DNS 域名服务的运行。例如,执行以下操作可以查询 named 服务的运行状
态。
[root@localhost ~]# systemctl status named
● named.service - Berkeley Internet Name Domain (DNS)
Loaded: loaded (/usr/lib/systemd/system/named.service; disabled; vendor preset: disabled)
Active: inactive (dead)
三:BIND 服务的配置文件
使用 BIND 软件构建域名服务时,主要涉及两种类型的配置文件:主配置文件和区域数
据文件。其中,主配置文件用于设置 named 服务的全局选项、注册区域及访问控制等各种
运行参数;区域数据文件用于存放某个 DNS 区域的地址解析记录(正向记录或反向记
录)
1:主配置文件
主配置文件 named.conf 通常位于 /etc/ 目录下,在 named.conf 文件中,主要包括全局
配置、区域配置两个部分,每一条配置记录的行尾以分号 “;” 表示结束,以 “#” 号或 “//” 开始的
部分表示注释文字(大段注释可以使用 “/* …… */” 的格式)。
3.1.1: 全局配置部分
全局配置参数包括在形如 “options { };” 的大括号中,如可以设置监听的地址和端口、区
域数据文件存放的目录、允许哪些客户机查询等。
3.1.2: 区域配置部分
区域配置参数使用 “zone …… { };” 的配置格式,一台 DNS 服务器可以为多个区域提供
解析,因此在 named.conf 文件中也可以有多个 zone 配置段。区域类型按照解析方向可分
为正向区域、反向区域。
2: 区域数据配置文件
区域数据配置文件通常位于 /var/named/ 目录下,每个区域数据文件对应一个 DNS 解析
区域,文件名及内容由该域的管理员自行设置。
1:TTL 配置及 SOA 记录部分
第一行的 TTL 配置用于设置默认生存周期,即缓存解析结果的有效时间。 SOA 记录部
分用于设置区域名称、管理邮箱,以及为从域名服务指定更新参数。
$TTL            86400                            //有效解析记录的生存周期
@      IN       SOA      bdqn.com. admin.bdqn.com.(            //SOA 标记 域名 管理邮箱
     2011030501                                //更新序列号 , 可以是 10 位以内的整数
     3H                                               //刷新时间 , 重新下载地址数据的间隔
    15M                                            //重试延时 , 下载失败后的重试间隔
    1W                                             //失效时间 , 超过该时间仍无法下载则放弃
    1D                                             //无效解析记录的生存周期
)
2: 地址解析记录部分
地址解析记录用来设置 DNS 区域内的域名、 IP 地址映射关系,包括正向解析记录和反
向解析记录。反向解析记录只能用在反向区域数据文件中。
@           IN          NS             ns1.bdqn.com.
IN           MX        10              mail.bdqn.com.
ns1         IN           A              58.119.74.203
www       IN           A              173.16.16.1
mail        IN           A              173.16.16.4
ftp           IN          CNAME        www     
上述配置内容中,用到以下四种常见的地址解析记录。
NS Name Server ,域名服务器):记录当前区域的 DNS 服务器的主机地址。
MX Mail Exchange ,邮件交换):记录当前区域的邮件服务器的主机地址,数字
10 表示(当有多个 MX 记录时)选择邮件服务器的优先级,数字越大,优先级越
低。
A Address ,地址):记录正向解析条目。例如, “www IN A 173.16.16.1” 表示域
www.bdqn.com 对应的 IP 地址是 173.16.16.1
CNAME Canonical Name ,别名):记录某一个正向解析条目的其他名称。例如,
“ftp IN CNAME www” 表示域名 ftp.bdqn.com www.bdqn.com 的别名。
其中, NS MX 记录行首的 “@” 符号可以省略(默认继承 SOA 记录行首的 @ 信息),但
是必须保留一个空格或 Tab 制表符。
在反向区域数据文件中,不会用到 A 记录,而是使用 PTR 指针( Point )记录。例如,
对于反向区域 16.16.173.in-addr.arpa ,添加的反向解析记录可以是以下形式。
1         IN             PTR           www.bdqn.com.
4         IN             PTR           mail.bdqn.com.
三:  使用 BIND 构建域名服务器
缓存域名服务器通常架设在公司的局域网内,主要目的是提高域名解析的速度,减少对
互联网访问的出口流量。例如,在一个小型企业的内部网络(图 3.1 )中,可单独建立一台
(或集成在网关主机中)缓存域名服务器,为各部门的员工计算机提供 DNS 解析服务。
1 .建立主配置文件 named.conf
若使用范本文件创建 named.conf ,应注意修改或删除默认的监听设置、查询控制,以
便能够为局域网段的客户机提供服务。另外, logging view 配置部分一般用不到,可以先
注释以避免其干扰。
[root@localhost ~]# vi /etc/named.conf
options {
                        listen-on port 53 { 192.168.1.5; };
                        directory "/var/named";
                        dump-file "/var/named/data/cache_dump.db"; //设置域名缓存数据库文件位置
                        statistics-file "/var/named/data/named_stats.txt"; // 设置状态统计文件位置
                        memstatistics-file "/var/named/data/named_mem_stats.txt";
                        query-source port 53;
                        allow-query { 192.168.1.0/24; };
                        recursion yes;
};
zone "." IN {                                                       //正向 "." 根区域
type hint;                                                           //类型为根区域
file "named.ca";                                                //区域数据文件为 named.ca
};
上述配置内容中, dump-file statistics-file 等配置项用于指定缓存数据库文件、状态统
计文件的位置。添加了 “zone '.' IN { };” 部分的根区域设置,尽管缓存服务器并没有自主控制
的区域数据,但可以向根服务器进行迭代查询,并将最终获得的解析结果反馈给客户。
有时候为了提高解析效率,也可以不向根区域查询,而是将来自客户端的查询请求转发
给国内电信运营商的 DNS 服务器(如北京的 202.106.0.20 202.106.148.1 ),缓存服务器
收到返回的查询结果后再传递给客户端。只要去掉 “zone '.' IN {……};” 的设置,并在全局配
置中正确设置 forwarders 参数即可实现该功能,具体操作如下:
[root@localhost ~]# vi /etc/named.conf
options {
              …… // 省略部分内容
              forwarders { 202.106.0.20; 202.106.148.1; };
};
2:确认根域的区域数据文件 named.ca
根区域的区域数据文件默认位于文件 /var/named/named.ca 中,该文件记录了 Internet
13 台根域服务器的域名和 IP 地址等相关信息。
3:启动 named 服务
执行 “systemctl start named” 命令,启动 named 服务,并通过 netstat 命令确认 named
服务的端口监听状态。若服务启动失败或发现没有正常监听 UDP 53 端口,可以根据错误提
示信息(或者 /var/log/messages 文件中的日志记录)排除错误,然后重启服务即可。
[root@localhost ~]# systemctl start named
[root@localhost ~]# netstat -anpu | grep named
udp           0               0 192.168.1.5:53          0.0.0.0:*             11687/named
udp           0               0 0.0.0.0:53                  0.0.0.0:*             11687/named
4:验证缓存域名服务器
四:构建主域名服务器
主域名服务器通常架设在 Internet 环境中,提供某一个域或某几个域内的主机名与 IP
地址的查询服务。为了分担域名查询的压力、提供区域数据的备份,有时还会另外架设一台
从域名服务器,与主域名服务器同时提供服务
1: 确认本机的网络地址、主机映射、默认 DNS 服务器地址
将主域名服务器的 IP 地址设为 173.16.16.5 ,主机名设为 ns1.bdqn.com 。另外,为了
提高域名解析效率,建议将两个 DNS 服务器的地址映射直接写入 /etc/hosts 文件中,并在
/etc/resolv.conf 文件中指定两个 DNS 服务器的地址,操作如下:
[root@ns1etc]# tail -2 /etc/hosts
173.16.16.5                ns1.bdqn.com                  ns1
173.16.16.6                ns2.bdqn.com                  ns2
[root@ns1etc]# tail -2 /etc/resolv.conf
nameserver 173.16.16.5
nameserver 173.16.16.6
2:建立主配置文件 named.conf
新 创 建 的 named.conf 主 配 置 文 件 只 需 要 提 供 bdqn.com 域 的 正 向 解 析 和
173.16.16.0/24 网段的反向解析,因此相应地添加这两个区域即可。根区域、回环域等其他
配置内容可以省略。建立主配置文件的操作如下:
[root@ns1 ~]# vi /etc/named.conf
options {
             listen-on port 53 { 173.16.16.5; };
             directory "/var/named";
             allow-query { 173.16.16.0/24; };
};
zone "bdqn.com" IN {
             type master;                                                            //类型为主区域
             file "bdqn.com.zone";                                              //区域数据文件为 bdqn.com.zone
             allow-transfer { 173.16.16.6; };                               //允许从服务器下载正向区域数据
};
zone "16.16.173.in-addr.arpa" IN {
             type master;
             file "173.16.16.arpa";                                             //区域数据文件为 173.16.16.arpa
             allow-transfer { 173.16.16.6; };                              //允许从服务器下载反向区域数据
};
当不需要建立从域名服务器时,上述配置内容中的 “allow-transfer ……” 部分可以不添加;
当不需要提供反向解析时, “zone "16.16.173.in-addr.arpa" ……” 部分也可以去掉。
3:  建立正、反向区域数据文件
根据 named.conf 中的 zone 区域设置,分别建立正向区域数据文件 bdqn.com.zone
反 向 区 域 数 据 文 件 173.16.16.arpa , 操 作 如 下 。 配 置 内 容 可 以 参 考 区域 数 据 文 件
/var/named/named.localhost
[root@ns1~]# cd /var/named/
// 切换到区域文件的默认存放位置
[root@ns1 named]# vi bdqn.com.zone
// 创建正向区域数据文件
$TTL 86400
@ SOA bdqn.com. admin.bdqn.com. (
                2011030301
                4H
                30M
                12H
                1D
)
@            IN              NS                ns1.bdqn.com.
                IN              NS                ns2.bdqn.com.
                IN              MX      10      mail.bdqn.com.
ns1          IN               A                   173.16.16.5
ns2          IN               A                   173.16.16.6
mail         IN               A                   173.16.16.2
www        IN               A                   173.16.16.1
study       IN               A                   173.16.16.3
*              IN               A                   173.16.16.1
[root@ns1 named]# vi 173.16.16.arpa                 //创建反向区域数据文件
$TTL 86400
@ SOA bdqn.com. admin.bdqn.com. (
                2011030301
                4H
                30M
                12H
                1D
)
                IN                NS                 ns1.bdqn.com.
                IN                NS                 ns2.bdqn.com.
1              IN                PTR               www.bdqn.com.
2              IN                PTR               mail.bdqn.com.
3              IN                PTR               study.bdqn.com.
5              IN                PTR               ns1.bdqn.com.
6              IN                PTR               ns2.bdqn.com.
因为区域数据配置文件是手动创建的,默认的属主与属组均为 root 用户,而 named
务默认以名为 “named” 的用户身份运行。 named 用户要对区域数据文件有读取权限。否则,
BIND 服务将无法读取所创建的区域数据配置文件,具体操作如下:
[root@ns1 named]# chown :named bdqn.com.zone
[root@ns1 named]# chown :named 173.16.16.arpa
[root@ns1 named]# ls -ld bdqn.com.zone 173.16.16.arpa
-rw-r-----. 1 root named 152 May 16 02:24 173.16.16.arpa
-rw-r-----. 1 root named 399 May 16 02:22 bdqn.com.zone
4:启动 named 服务或重载配置
执行如下的 “systemctl start named” 命令以启动 named 服务,如果之前 named 服务已
经在运行,也可以通过 “systemctl reload named” 重载配置。
[root@localhost named]# systemctl reload named
5:验证主域名服务器
在客户端将 DNS 服务器指向 173.16.16.5 (主域名服务器的 IP 地址),使用 nslookup
命令验证 DNS 查询结果。例如,以下操作使用 Windows 10 客户机分别验证了正向解析、
泛域名解析和反向解析的查询结果。
C:\Users\Administrator> nslookup study.bdqn.com // 验证正向域名解析
  • 16
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值