DNS 部署

DNS 域名解析服务

​ 相较于由数字构成的 IP 地址,域名更容易被理解和记忆,所以我们通常更习惯通过域名的方式来访问网络中的资源

​ 但是,网络中的计算机之间只能基于 IP 地址来相互识别对方的身份,而且要想在互联网中传输数据,也必须基于外网的 IP 地址来完成

​ 为了降低用户访问网络资源的门槛,DNS(Domain Name System,域名系统) 技术应运 而生。这是一项用于管理和解析域名与 IP 地址对应关系的技术

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

鉴于互联网中的域名和 IP 地址对应关系数据库太过庞大,DNS 域名解析服务采用了类似目录树的层次结构来记录域名与 IP 地址之间的对应关系,从而形成了一个分布式的数据库系统

如图所示

​ DNS 域名解析服务采用的目录树层次结构

​ 域名后缀一般分为国际域名和国内域名。原则上来讲,域名后缀都有严格的定义,但在实际使用时可以不必严格遵守。目前最常见的域名后缀有.com(商业组织)、.org(非营利组 织)、.gov(政府部门)、.net(网络服务商)、.edu(教研机构)、.pub(公共大众)、.cn(中国国家顶级域名)等

​ 当今世界的信息化程度越来越高,大数据、云计算、物联网、人工智能等新技术不断涌 现,全球网民的数量据说也超过了 35 亿,而且每年还在以 10%的速度迅速增长。这些因素导致互联网中的域名数量进一步激增,被访问的频率也进一步加大。假设全球网民每人每天只访问一个网站域名,而且只访问一次,也会产生 35 亿次的查询请求,如此庞大的请求数量肯定无法被某一台服务器全部处理掉。DNS 技术作为互联网基础设施中重要的一环,为了为网民提供不间断、稳定且快速的域名查询服务,保证互联网的正常运转

提供了下面三种类型 的服务器
在这里插入图片描述

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

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

由此可见,当用户向就近的一台 DNS 服务器发起对某个域名的查询请求之后(这里以 www.linuxprobe.com 为例),其查询流程大致如图所示

​ 向 DNS 服务器发起域名查询请求的流程

当用户向网络指定的 DNS 服务器发起一个域名请求时,通常情况下会有本地由此 DNS 服务器向上级的 DNS 服务器发送迭代查询请求;如果该 DNS 服务器没有要查询的信息,则会进一步向上级DNS服务器发送迭代查询请求,直到获得准确的查询结果为止。其中最高级、 最权威的根 DNS 服务器总共有 13 台分布在世界各地

安装bind服务

yum install bind-chroot -y

​ bind 服务程序的配置并不简单,因为要想为用户提供健全的 DNS 查询服务,要在本地保存相关的域名数据库,而如果把所有域名和 IP 地址的对应关系都写入到某个配置文件中,估 计要有上千万条的参数,这样既不利于程序的执行效率,也不方便日后的修改和维护。因此 在 bind 服务程序中有下面这三个比较关键的文件

  • 主配置文件 [ /etc/named.conf ] : 来定义 bind 服务程序的运行

  • 区域配置文件 [ /etc/named.rfc1912.zones ] : 用来保存域名和 IP 地址对应关系的所在位置

  • 数据配置文件目录 [ /var/named ] : 该目录用来保存域名和 IP 地址真实对应关系的数据配置文件

配置

​ 在 Linux 系统中,bind 服务程序的名称为 named。首先需要在/etc 目录中找到该服务程序 的主配置文件,然后把 第 13 行和第 21 行的地址均修改为 any,分别表示服务器上的所有 IP 地址均可提供 DNS 域名解析服务,以及允许所有人对本服务器发送 DNS 查询请求

vim /etc/named.conf

 12 options {
    
    
 13         listen-on port 53 {
    
     any; };								# 第 13 行 
 14         listen-on-v6 port 53 {
    
     ::1; };
 15         directory       "/var/named";
 16         dump-file       "/var/named/data/cache_dump.db";
 17         statistics-file "/var/named/data/named_stats.txt";
 18         memstatistics-file "/var/named/data/named_mem_stats.txt";
 19         recursing-file  "/var/named/data/named.recursing";
 20         secroots-file   "/var/named/data/named.secroots";
 21         allow-query     {
    
     any; };								# 第 21 行

​ 如前所述,bind 服务程序的 **区域配置文件(/etc/named.rfc1912.zones)**用来保存域名和 IP 地址对应关系的所在位置。在这个文件中,定义了域名与 IP 地址解析规则保存的文件位置以及服务类型等内容,而没有包含具体的域名、IP 地址对应关系等信息

服务类型有三种,分别为 hint(根区域)、master(主区域)、slave(辅助区域),其中常用的 master 和 slave 指的就是主服务器和从服务器

将域名解析为 IP 地址的正向解析参数和将 IP 地址解析为域名的反向解析参数分别如图 13-3 和图 13-4 所示

​ 下面的实验中会分别修改 bind 服务程序的主配置文件、区域配置文件与数据配置文件。 如果在实验中遇到了 bind 服务程序启动失败的情况,而您认为这是由于参数写错而导致的, 则可以执行 named-checkconf 命令和 named-checkzone 命令,分别检查主配置文件与数据配置 文件中语法或参数的错误

正向解析实验

正向解析是指根据域名(主机名)查找到对应的 IP 地址。也 就是说,当用户输入了一个域名后,bind 服务程序会自动进行查找,并将匹配到的 IP 地址返 给用户。这也是最常用的 DNS 工作模式

编辑区域配置文件

vim /etc/named.rfc1912.zones

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

我们可以将该文件中的原有信息全部清空,只保留自己的域名解析信息

编辑数据配置文件

我们可以从/var/named 目录中复制一份正向解析的模板文 件(named.localhost),然后把域名和 IP 地址的对应数据填写数据配置文件中并保存。在复制 时记得加上-a 参数,这可以保留原始文件的所有者、所属组、权限属性等信息,以便让 bind 服务程序顺利读取文件内容

cd /var/named/

ls -al named.localhost 
-rw-r-----. 1 root named 152 Jun 21  2007 named.localhost

cp -a named.localhost wangj.com.zone

编辑数据配置文件。在保存并退出后文件后记得重启 named 服务程序,让新的解析数据生效

vim wangj.com.zone

$TTL 1D #生存周期为 1 天
@ IN SOA wangj.com. root.wangj.com. (
        0;serial #更新序列号
        1D;refresh #更新时间
        1H;retry #重试延时
        1W;expire #失效时间
        3H);minimum # 无效解析记录的缓存时间
NS ns.wangj.com. # 域名服务器记录
ns IN A 192.168.25.143 # 地址记录(ns.wangj.com.)
IN MX 143 mail.wangj.com. # 邮箱交换记录
mail IN A 192.168.25.143 # 地址记录(mail.wangj.com.)
www IN A 192.168.25.143 # 地址记录(www.wangj.com.)
bbs IN A 192.168.25.20 # 地址记录(bbs.wangj.com.)

检验解析结果。为了检验解析结果,一定要先把 Linux 系统网卡中的 DNS 地址 参数修改成本机 IP 地址,这样就可以使用由本机提供的 DNS 查询服务了。nslookup 命令用 于检测能否从 DNS 服务器中查询到域名与 IP 地址的解析记录,进而更准确地检验 DNS 服务 器是否已经能够为用户提供服务

systemctl restart network

nslookup
> www.wangj.com
Server:		192.168.25.2
Address:	192.168.25.2

Non-authoritative answer:
Name:	www.wangj.com
Address: 39.107.68.91

Guess you like

Origin blog.csdn.net/weixin_45791800/article/details/121704046