DNS域名解析服务

前言

DNS(域名解析服务)作为互联网基础设施的核心组件,承担着将易记的域名转换为机器可识别的IP地址的关键任务。其正向解析与反向解析功能,极大简化了网络资源的访问与管理。

2.1BIND域名服务基础

2.1.1DNS系统的作用及类型

DNS系统在网络中的作用就是维护一个地址数据库,其中记录了各种主机域名与IP地址的对应关系,以便为客户程序提供正向或反向的地址查询服务,即正向解析与反向解析。

正向解析:根据域名查IP地址,即将指定的域名解析为相对应的IP地址。域名的正向解析是DNS服务器最基本的功能,也是最常用的功能。

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

实际上,每一台DNS服务器都只负责管理一个有限范围(一个或几个域)内的主机域名和IP地址的对应关系,这些特定的DNS域或IP地址段称为zone(区域)。根据地址解析的反向不同,DNS区域相应地分为正向区域(包含域名到ip地址的解析记录)和反向区域(包含域名到ip地址的解析记录)。根据所管理的区域地址数据的来源不同,DNS系统可以分为不同类型。在同一台DNS服务器中,相对于不同的区域来说,也拥有不同的身份。常见类型如下:

缓存域名服务器:只提供域名解析结果的缓存功能,目的在于提高查询速度和效率,但是没有自己控制的区域地址数据。构建缓存域名服务器时,必须设置根域或指定其他DNS服务器作为解析来源

主域名服务器:维护某一个特定NDS区域的地址数据库,对其中的解析记录具有自主控制权,是指定区域中唯一存在的权威服务器、官方服务器。构建主域名服务器时,需要自行建立所负责区域的地址数据文件。

从域名服务器:与主域名服务器提供完全相同的DNS解析服务,通常用于DNS服务器的热备份。对客户机来说,无论使用主域名服务器还是从域名服务器,查询结果都是一样。关键区别在于,从域名服务器提供的解析结果不是由自己决定,而是来自于主域名服务器。构建从域名服务器时,需要指定主域名服务器位置,以便服务器能自动同步区域的地址数据库。

以上所述主、从服务器的角色只是针对某一个特定的DNS区域来说的。例,同一台DNS服务器可以是“.chinaunix.net”区域的主域名服务器,同时也可以是“.cublog.cn”区域的从域名服务器

2.1.2BIND的安装和控制

BIND不是唯一能够提供服务的DNS服务程序,但它却是应用最为广泛的,BIND可以运行在大多数Linux/UNIX主机中

1.安装BIND软件

在openEuler系统中,系统光盘自带了BIND服务的安装文件。包括的软件包作用如下:

bind:提供了域名服务的主要程序及及相关文件

bind-utils:提供了对DNS服务器的测试工具程序,如nslookup

bind-libs:提供了bind、bind-utils需要使用的库函数

bind-chroot:为BIND服务提供了一个伪装的根目录(将/var/named/chroot/文件夹作为BIND服务的根目录),以提高安全性

使用dnf安装bind服务

命令:dnf  install  bind  -y

2.BIND服务控制

BIND软件包安装完毕以后,会自动增加一个名为named的系统服务,通过systemctl工具可以控制DNS域名服务的运行。

例:查询named的运行状态

命令:systemctl  status  named

2.1.3BIND服务的配置文件

使用BIND软件构建域名服务时,主要涉及两种类型的配置文件:主配置文件和区域配置文件,其中,主配置文件用于设置named服务的全局选项、注册区域及访问控制等各种运行参数:区域数据文件用于存放某个DNS区域的地址解析记录(正向或反向)

1.主配置文件

主配置文件named.conf通常位于/etc/目录下,文件中主要包括全局配置、区域配置两个部分,每一条配置记录的行尾以分号“;”表示结束,以“#”号或“//”开始的部分表示注释文字

(1)全局配置部分

全局配置参数包括在形如“options { };”的大括号中,如可以设置监听的地址和端口、区域数据文件存放的目录、允许哪些客户机查询。

options {

      listen-on  port  53  {  192.168.10.101; };       (监听地址和端口)

      directory  “/var/named”;                                    (区域数据文件的默认存放位置)

       allow-query {  192.168.10.0/24; 173.16.16.0/24;};  (允许使用DNS服务的网段)

};

上述配置内容中,除了directory配置项会保留外,其他的配置项都可以省略。若不指定listen-on配置项,则named默认在所有接口的UDP53端口监听服务;若不指定allow-query配置项,则默认会响应所有客户机的查询请求

(2)区域配置部分

区域配置参数使用“zone ...... { };”的配置格式,一台DNS服务器可以为多个区域提供解析,因此在named.conf文件中也可以有多个zone配置段。区域类型按照解析方向可分为正向区域、反向区域。

zone  “bdqn.com”  IN  {                            (正向“bdqn.com”区域)

       type  master;                                     (类型为主区域)

       file  “bdqn.com.zone”;                        (区域数据文件为bdqn.com.zone)

       allow-transfer  {  192.168.10.102;  };  (允许下载的服务器地址)

};

zone  “10.168.192.in-addr.arpa”  IN {             (反向“192.168.10.0/24”区域)

       type  master;

       file  “192.168.10.arpa”;                           (区域数据文件为192.168.10.arpa)

};

在上述配置内容中,有几个地方需要注意:

a.每个zone区域都是可选的(包括根域、回环域、反向域),具体根据实际需要而定,zone配置部分的“IN”关键字也可以省略

b.反向区域的名称由倒叙的网络地址和“.in-addr.apra”组合而成。例,对于192.168.10.0/24网段,其反向区域名称表示为“10.168.192.in-addr.arpa”

c.file配置项用于指定实际的区域数据文件,文件名称由管理员自行设置。区域设置中的部分参数(如allow-transfer)也可以放在全局配置中

修改完主配置文件以后,可以执行“named-checkconf”命令对named.conf文件进行语法检查。如文件中没有错误,该命令不会给出任何提示;反之,则会给出相应的提示信息,然后根据出错提示修正文件中的错误即可。带“-z”选项的“named-checkconf”命令还可以尝试加载主配置文件中对应的区域数据文件,并检查该文件是否存在问题。

2.区域数据设置文件

区域数据配置文件通常位于/var/named目录下,每个区域数据文件对应一个DNS解析区域,文件名及内容由该区域的管理员自行设置

根域“.”的区域数据文件比较特殊。Internet中所有的NDS服务器都使用同一份根区域数据文件,其中列出了所有根服务器的域名和ip地址。根区域数据文件可以从国际互联网信息中心的官方网址http://www.internic.net/下载

在区域数据文件中,主要包括TTL(生存时间)配置项、SOA(授权信息开始)记录、地址解析记录。文件中的注释信息以“;”开始

(1)TTL配置及SOA记录部分

第一行的TTL配置用于设置默认生存周期,即缓存结果的有效时间。SOA记录部分用于设置区域名称、管理邮箱,以及为域名服务指定更新参数。

$TTL          86400            (有效解析记录的生存周期)

@               IN          SOA           bdqn.com.           admin.bdqn.com.   (            (SOA标记、域名、管理邮箱)

                   2011030501              (更新序列号,可以是10位以内的整数)      

                   3H                                (刷新时间,重新下载地址数据的间隔)

                   15M                             (重试延时,下载失败后的重试间隔)

                    1W                                (失效时间,超时该时间仍无法下载则放弃)

                     1D                                  (无效解析记录的生存周期)

上述配置内容中,时间单位默认为秒(s),也可以使用M(分)、H(时)、W(周)、D(天)等单位。文件中的“@”符号表示当前的DNS区域名,相当于“dbqn.com”或“admin.bdqn.com.”,表示域管理员的电子邮箱地址。SOA记录中的更新序列号用来同步主、从服务器的区域数据,当从服务器判断区域更新时,若发现主服务器中的序列号与本地区域数据中的序列号相同,则不会进行下载。

(2)地址解析记录

地址解析记录用来设置DNS区域内的域名、IP地址映射关系,包括正向解析记录和反向解析记录。

反向解析记录只能用在反向区域文件中。

@         IN           NS            ns1.bdqn.com.

             IN           MX     10  mail.bdqn.com.

ns1       IN            A               192.168.10.101

www     IN            A                192.168.10.102

mail       IN           A                 192.168.10.101

ftp          IN           CNAME        www

上述配置内容中,用到以下四种常见的地址解析记录。

NS(域名服务器):记录当前区域的NDS服务器的主机地址

MX(邮件交换):记录当前区域的邮件服务器的主机地址,数字10表示(当有多个MX记录时)选择邮件服务器的优先级,数字越大,优先级越低。

A(地址):记录正向解析条目。例,“www  IN  A  173.16.16.1”表示域名www.baqn.com对应的IP地址是173.16.16.1

CNAME(别名):记录某一个正向解析条目的其他名称。例,“ftp  IN  CNAME  www”表示域名“ftp.dbqn.com”是www.dbqn.com的别名

其中,NS、MX记录行首的“@”符号可以省略(默认继承SOA记录行首的@信息),但是必须保留一个空格或Tab制表符

在反向区域数据文件中,不会用到A记录,而是使用PTR指针记录。例如,对于反向区域192.168.10.arpa,添加的反向解析记录可以是以下形式。

[root@node01  named]#  cat  192.168.10.arpa

$TTL     86400

@  IN  SOA  bdqn.com.    admin.baqn.com.  (

    2011030501

    3H

    1W

    1D

)

        NS  ns1.bdqn.com.

102  IN  PTR  www.dbqn.com.

101  IN  PTR  main,bdqn.com.

使用PTR记录时,第一列只需要指明对应IP地址的“主机地址”部分即可,如“102”或“101”,系统在查找地址记录时会自动将当前反向区域的网络地址作为前缀。例如,上述文件中的“101  IN  PTR  main.bdqn.com.”表示IP地址为192.168.10.101的主机的域名是mail.bdqn.com.。

在区域数据配置文件中,凡是不以点号“.”结尾的主机地址,系统在查找地址记录时都会自动将当前的域名作为后缀。例如,若当前的DNS域为“bdqn.com”,则在文件中的主机地址“www”相当于"www.bdgn.com”。因此,当使用完整的 FQDN(Fully Qualified Domain Name,完全合格域名/全称域名)地址时,务必记得地址末尾的点号“.”不能省略。
修改完区域数据文件以后,可以执行“named-checkzone”命令对该文件进行语法检查。依次指定区域名称、数据文件名作为参数。如果文件中没有语法错误,系统将给出“0K”的提示信息。例如,若要检查 DNS 区域 bdqn.com 的区域数据文件 bdqn,com.zone,可以执行以下操作。

[root@localhost ~]# cd /var/named/

[root@localhost named]# named-checkzone bdgn.com bdqn.com.zone
zone bdgn.com/IN: loaded serial 2011030501
OK


当一台服务器需要同时承载某个DNS区域内的许多个不同的域名(如IDC 的虚拟主机服务器、提供个人主页空间的网站服务器等)时,可以在区域数据文件的最后一行添加泛域名解析记录,即使用“*”以匹配任意主机名。
 


 
安装BIND
 
- 在大多数Linux系统上,可以使用包管理工具来安装BIND。例如,在CentOS上,可以使用以下命令: sudo yum install bind bind - utils 。在Ubuntu上,使用 sudo apt - get install bind9 bind9 - utils 。
 
配置BIND
 
- 主要配置文件是 named.conf ,通常位于 /etc/bind/ 或 /etc/ 目录下。打开该文件,添加或修改以下内容来定义域名区域:
 
zone "example.com" {
    type master;
    file "example.com.zone";
};
 
 
- 上述配置定义了一个名为 example.com 的域名区域,类型为 master (主服务器),区域数据文件为 example.com.zone 。
 
创建区域文件
 
- 在 /var/named/ 目录下创建 example.com.zone 文件(根据实际域名修改),内容如下:
 
$TTL 86400
@       IN      SOA     ns1.example.com. admin.example.com. (
                2025040901  ; Serial
                3600        ; Refresh
                1800        ; Retry
                604800      ; Expire
                86400 )    ; Minimum TTL

@       IN      NS      ns1.example.com.
ns1     IN      A       192.168.1.100
www     IN      A       192.168.1.101
 
 
- 上述区域文件定义了域名 example.com 的相关记录,包括 SOA (起始授权机构)记录、 NS (域名服务器)记录和 A (地址)记录。将 192.168.1.100 和 192.168.1.101 替换为实际的服务器IP地址。
 
启动BIND服务
 
- 使用以下命令启动BIND服务: sudo systemctl start named 。并设置开机自启: sudo systemctl enable named 。
 
测试域名服务器
 
- 使用 nslookup 或 dig 命令来测试域名服务器是否正常工作。例如, nslookup www.example.com 或 dig www.example.com ,如果配置正确,应该能够得到相应的IP地址。
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值