小阿轩yx-DNS域名解析服务

2026-05-13 23:28:12260 阅读量

小阿轩yx-DNS域名解析服务

DNS 服务介绍

DNS是英文Domain Name System的缩写,翻译过来就是域名解析系统。

相关服务:日本服务器

它作为将域名和IP地址相互映射的一个分布式数据库,能够使人更方便地访问互联网。

  • 协议:UDP协议
  • 架构:C/S

DNS 系统的作用

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

  • 正向解析:根据域名查找对应的IP地址,域名的正向解析是 DNS 服务器最基本的功能,也是最常用的功能
  • 反向解析:根据IP地址查找对应的域名,即将指定的 IP 地址解析为相对应的域名。域名的
    反向解析不是很常用,只在一些特殊场合才会用到,比如可用于反垃圾邮件的验证

DNS 域名解析服务的应用场景

A.公司内部

DNS 系统的介绍

Internet 域名空间的最顶层是根域(.) 

  • 全球有 13 台根服务器

                a、b、c、d、e、f、g、h、i、j、k、l、m(A)是IPV4的地址

                        (一台在日本、两台在欧洲、剩下的都在美国本土)

                        m. root-servers.net.       518400        IN      A  202.12.27.33服务器在日本

                        k. root-servers.net.        518400        IN      A  193.0.14.129服务器在欧洲英国伦敦

                        i. root-servers.net.        518400        IN       A 192.30.148.17服务器在欧洲瑞典

                a、b、c、d、e、f、g、h、i、j、k、l、m(AAAA)是IPV6的地址

  • 1 个主根域名服务器
  • 12 个辅根域名服务器

DNS 根域下面是顶级域

由 Internet 域名注册授权机构管理。共有 3 种类型的顶级域

  • 国际顶级域名:采用 3 个字符的代号,如 .com、 .edu、.org
  • 国家或地区域名:采用 2 个字符的国家或地区代号,如.cn 为中国、.kr 为韩国、.us 为美国
  • 新通用顶级域名:也叫新顶级域名、新顶域,如xin、 .top、 .xyz、.vip
DNS 域名组织类型举例
com商业公司www.xuanzishare.com
edu教育机构www.harvard.edu
net网络公司www.csdn.net
gov非军事政府机构www.whitehouse.gov
mil军事政府机构www.navy.mil
org非盈利组织www.linux.org
xx国家/地区www.cas.cn

DNS域名解析查询过程

DNS查询方式

  • 递归查询(主机向本地域名服务器查询采用递归查询)

在该模式下,DNS服务器接收到客户机请求,必须使用一个准确的查询结果回复客户机。如果DNS服务器本地没有存储查询DNS信息,那么该服务器会询问其他服务器,并将返回的查询结果提交给客户机。

  • 迭代查询(本地域名服务器向域名服务器查询采用迭代查询)

DNS另外一种查询方式为迭代查询,当客户机发送查询请求时,DNS服务器并不直接回复查询结果,而是告诉客户机另一台DNS 服务器地址,客户机再向这台DNS 服务器提交请求,依次循环直到返回查询的结果为止。

常见DNS服务器地址

  • Google 谷歌公司:8.8.8.8(主),8.8.4.4 (备)
  • 国内电信DNS:114.114.114.114
  • 阿里巴巴公司:223.5.5.5 (主),223.6.6.6 (备)

DNS系统类型

缓存域名服务器

也称为DNS高速缓存服务器

  • 通过向其他域名服务器查询获得域名 -> IP地址记录
  • 将客户端域名查询结果缓存到本地,提高重复查询时的速度和效率。

主域名服务器

  • 特定DNS区域的权威服务器,具有唯一性
  • 负责维护该区域内所有域名->IP地址的映射记录
  • 需要自行建立所负责区域的地址数据文件

从域名服务器

  • 也称为辅助域名服务器,是对主域名服务器的热备份
  • 其维护的域名->IP地址记录来源于主域名服务器
  • 需要从主域名服务器自动同步区域地址数据库

BIND 软件安装

BIND(Berkeley Internet Name Daemon)

  • BIND是应用最广泛的DNS服务程序
  • 官方站点:https://www.isc.org/

安装bind程序所需的包有:

  • bind:主程序包,提供域名解析服务的主要程序和相关配置文件
  • bind-utils:提供 DNS 域名解析使用的各种测试工具,如:nslookup
  • bind-libs:提供 bind、bind-utils 实现功能的各种库函数
  • bind-chroot:安装 bind 服务时提供的一个伪装目录(/var/named/chroot),提高配置文件和区域数据文件的安全性

/etc/named.conf – /var/named/chroot/etc/named.conf

1、安装BIND软件

[root@localhost ~]# systemctl stop firewalld
[root@localhost ~]# systemctl disable firewalld
[root@localhost ~]# setenforce 0
[root@localhost ~]# sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/sysconfig/selinux 

[root@localhost ~]# yum -y install bind bind-utils bind-libs bind-chroot

BIND 服务的配置文件

1、BIND服务器端程序

  • 主要执行程序:/usr/sbin/named
  • 默认监听端口:53
  • 主配置文件:/etc/named.conf
  • DNS解析记录的数据文件路径:/var/named/

2、BIND服务控制

  • systemctl [status|start|stop|restart] named.service

构建缓存域名服务器 

BIND服务主配置文件 named.conf
[root@localhost ~]# vim /etc/named.conf

全局配置部分

  • 设置DNS服务器的全局参数
  • 包括监听地址和端口、区域数据文件存放的目录等
  • 使用options { …… }; 的配置段
options {
    # 全局的选项和设置
    listen-on port 53 { 192.168.1.5; };
    # 监听 DNS 查询的 53 端口
    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;
};

区域配置部分

  • 设置本服务器提供域名解析的特定DNS区域
  • 包括域名、服务器角色、数据文件名等
  • 使用zone “区域名” IN { …… }; 的配置段
zone "." IN {
    # 定义 hyx.cloud 区域
    type hint;
    # 将此区域定义为主区域
    file "hyx.com.zone";
    # 指向包含 hyx.cloud 区域数据的文件
    allow-transfer { 192.168.60.12; };
    # 允许区域传输到指定的 IP 地址
};

zone "16.16.173.in-addr.arpa" IN {
    # 定义 16.16.173.in-addr.arpa 的反向查找区域
    type master;
    # 将此区域定义为主区域
    file "173.16.16.arpa";
    # 指向包含反向查找区域数据的文件
    allow-transfer { 192.168.60.12; };
    # 允许区域传输到指定的 IP 地址
};
全局 TTL 配置项及 SOA 记录
  • $TTL(Time To Live,生存时间)
  • SOA(Start Of Authority,授权信息开始)
  • 分号 “;” 开始的部分表示注释信息
$TTL    86400		
# 有效解析记录的生存周期
@  IN  SOA  bdqn.com. admin.bdqn.com.(	
# SOA标记、区域名称  管理邮箱地址
2011030501		
# 更新序列号,可以是10位以内的整数
3H 			
# 刷新时间,重新下载地址数据的间隔
15M			
# 重试延时,下载失败后的重试间隔
1W 			
# 失效时间,超过该时间仍无法下载则放弃,从服务器更新参数
1D 			
# 无效解析记录的生存周期
)
正向解析记录
  • NS 域名服务器(Name Server)记录
  • MX 邮件交换(Mail Exchange)记录
  • A 地址(Address)记录,只用在正向解析区域中
  • CNAME 别名(Canonical Name)记录
 @        	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
反向解析记录
  • PTR 指针(Point)记录
  • 记录的第一列指定 IP 地址中的主机地址部分
1	IN	PTR	www.bdqn.com. 
4	IN	PTR	mail.bdqn.com. 
对配置文件进行语法检查

named-checkconf 工具

named-checkconf  [主配置文件]

[root@localhost ~]# named-checkconf -z /etc/named.conf
# -z 尝试加载主配置文件中对应的区域数据库文件
zone bdqn.com/IN: loading from master file bdqn.com.zone failed: file not found
……	//省略部分内容

 named-checkzone 工具

 named-checkzone  <域名> <区域数据文件>

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

DNS 服务配置

主服务器配置

vim /etc/sysconfig/network-scripts/ifcfg-ens33
# 先修改 网络配置文件中,DNS 地址
DNS1=192.168.254.11
DNS2=192.168.254.12

# 安装 bind 软件
[root@localhost ~]# mkdir /media/cdrom
[root@localhost ~]# mount /dev/cdrom /media/cdrom/
[root@localhost ~]# cd /media/cdrom/Packages/
[root@localhost Packages]# rpm -ivh bind-9.9.4-72.el7.x86_64.rpm 
# 错误:依赖检测失败:python-ply 被 bind-32:9.9.4-72.el7.x86_64 需要
[root@localhost Packages]# rpm -ivh python-ply-3.4-11.el7.noarch.rpm
[root@localhost Packages]# rpm -ivh bind-9.9.4-72.el7.x86_64.rpm
# 安装 bind 包
[root@localhost Packages]# cp /etc/named.conf /etc/named.conf.bak
# 备份配置文件
[root@localhost Packages]# vim /etc/named.conf

named.conf

options {
    # 全局的选项和设置
    listen-on port 53 { 192.168.254.13; };
    # 监听 DNS 查询的 53 端口
    directory "/var/named";
    # 指定区域文件存储的目录
    allow-query { 192.168.254.0/24; 192.168.70.0/24; };
    # 允许来自指定 IP 段的 DNS 查询
};

zone "hyx.cloud" IN {
    # 定义 hyx.cloud 区域
    type master;
    # 将此区域定义为主区域
    file "hyx.cloud.zone";
    # 指向包含 hyx.cloud 区域数据的文件
    allow-transfer { 192.168.254.13; };
    # 允许区域传输到指定的 IP 地址
};

zone "16.16.173.in-addr.arpa" IN {
    # 定义 16.16.173.in-addr.arpa 的反向查找区域
    type master;
    # 将此区域定义为主区域
    file "173.16.16.arpa";
    # 指向包含反向查找区域数据的文件
    allow-transfer { 192.168.254.13; };
    # 允许区域传输到指定的 IP 地址
};
[root@localhost ~]# cd /var/named/
[root@localhost named]# vim hyx.cloud.zone
# :r named.localhost
# 导入模板文件

localhost.cloud.zone

$TTL 86400
@  IN  SOA  hyx.cloud.  admin.hyx.cloud. (
                                        0       ; serial
                                        1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum
@      IN  NS          ns1.hyx.cloud.
       IN  NS          ns2.hyx.cloud.
       IN  MX     10   mail.hyx.cloud.
ns1    IN  A           192.168.254.11
ns2    IN  A           192.168.254.13
www    IN  A           173.16.16.1
mail   IN  A           173.16.16.2
study  IN  A           173.16.16.3
ftp    IN  A           173.16.16.4
web    IN  CNAME       173.16.16.1
*      IN  A           173.16.16.1

173.16.16.arpa

$TTL 86400
@  IN  SOA  hyx.cloud.  admin.hyx.cloud. (
                                        0       ; serial
                                        1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum
@      IN  NS          ns1.hyx.cloud.
       IN  NS          ns2.hyx.cloud.
       IN  MX     10   mail.hyx.cloud.
ns1    IN  A           192.168.254.11
ns2    IN  A           192.168.254.13
mail   IN  A           173.16.16.2
1      IN  PTR         www.hyx.cloud.
2      IN  PTR         mail.hyx.cloud.
3      IN  PTR         study.hyx.cloud.
4      IN  PTR         ftp.hyx.cloud.
[root@hyx named]# named-checkconf -z /etc/named.conf
# 检查主配置文件
[root@hyx named]# named-checkzone hyx.cloud  /var/named/hyx.cloud.zone 
zone hyx.cloud/IN: loaded serial 0
OK
# 检查区域配置文件
[root@hyx named]# named-checkzone hyx.cloud  /var/named/173.16.16.arpa 
zone hyx.cloud/IN: loaded serial 0
OK
# 检查区域配置文件
systemctl enable named
systemctl start named
systemctl status named
[root@hyx named]# netstat -anpt | grep named

缓存服务器配置

前置配置与主服务器一致,仅修改 named.conf 配置文件即可

options {
        listen-on port 53 { 192.168.254.11; };
        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.254.0/24; };
        recursion  yes;
};

zone "." IN {
        type hint;
        file "named.ca";
};

构建主域名服务器

  1. 主、从域名服务器均位于 Internet 中,所负责的 DNS 区域为“bdqn.com”
  2. 主服务器的 IP 地址为 173.16.16.5,主机名为 ns1.bdqn.com
  3. 从服务器的 IP 地址为 173.16.16.6,主机名为 ns2.bdqn.com
  4. 在 bdqn.com 区域中,除了 NS 记录以外,提供的解析记录还包括以下内容

                网站服务器 www.bdqn.com,IP 地址为 173.16.16.1。

                邮件服务器 mail.bdqn.com,IP 地址为 173.16.16.2。

                在线培训服务器 study.bdqn.com,IP 地址为 173.16.16.3                

     5.参考上述各服务器的地址映射关系,为 173.16.16.0/24 网段提供反向解析。

     6.设置 bdqn.com 域的泛域名解析,对应的 IP 地址为 173.16.16.1。

     7.客户机将首选 DNS 服务器、备用 DNS 服务器分别设为 173.16.16.5 和 173.16.16.6, 使用其中的任何一个服务器,都能够正常查询 bdqn.com 区域中的主机地址

1、确认本机的网络地址、主机映射、默认DNS服务器地址  
#DNS2的配置
[root@localhost ~]# hostnamectl set-hostname ns2.bdqn.com
[root@localhost ~]# bash
[root@ns2 ~]# vim /etc/hosts
192.168.10.101 ns1.bdqn.com  ns1
192.168.10.102 ns2.bdqn.com  ns2

#(2)安装bind服务
[root@localhost ~]# systemctl stop firewalld
[root@localhost ~]# systemctl disable firewalld
[root@localhost ~]# setenforce 0
[root@localhost ~]# sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/sysconfig/selinux 
[root@localhost ~]# yum -y install bind bind-utils bind-libs bind-chroot
2、修改主配置文件 
[root@ns1 ~]# vim /etc/named.conf

options {
        listen-on port 53 { any; };
        listen-on-v6 port 53 { ::1; };
        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";
        recursing-file  "/var/named/data/named.recursing";
        secroots-file   "/var/named/data/named.secroots";
        allow-query     { any; };
};

#zone "." IN {
#       type hint;
#       file "named.ca";
#};


view "LAN" {
        match-clients { 192.168.10.0/24; };
        zone "bt.com" IN {
        type master;
        file "lan.bt.com.zone";
        };
};

view "WAN" {
        match-clients { any; };
        zone "bt.com" IN {
        type master;
        file "wan.bt.com.zone";
        };
};

#include "/etc/named.rfc1912.zones";
#include "/etc/named.root.key";

内部区域文件设置

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

[root@ns1 named]# vim lan.bt.com.zone 
$TTL 1D
@       IN SOA  bt.com.   admin.bt.com. (
                                        0       ; serial
                                        1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum
@    IN  NS  ns1.bt.com.
ns1  IN  A   192.168.10.101
www  IN  A   192.168.10.102
mail IN  A   192.168.10.103
ftp  IN  A   192.168.10.104

 外部区域文件设置

[root@ns1 named]# vim wan.bt.com.zone 
$TTL 1D
@       IN SOA  bt.com.  admin.bt.com. (
                                        0       ; serial
                                        1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum
@    IN NS  ns1.bt.com.
ns1  IN A   173.16.16.101
www  IN A   173.16.16.102
mail IN A   173.16.16.103
ftp  IN A   173.16.16.104

[root@ns1 named]# chown named lan.bt.com.zone wan.bt.com.zone 

语法检测

[root@ns1 named]# named-checkconf -z /etc/named.conf 
zone bt.com/IN: loaded serial 0
zone bt.com/IN: loaded serial 0

[root@ns1 named]# named-checkzone bt.com /var/named/lan.bt.com.zone 
zone bt.com/IN: loaded serial 0
OK

[root@ns1 named]# named-checkzone bt.com /var/named/wan.bt.com.zone 
zone bt.com/IN: loaded serial 0
OK

构建从域名服务器

确认本机的网络地址、主机映射、默认 DNS 服务器地址

建立主配置文件named.conf

[root@ns2~]# vi /etc/named.conf
options {
directory "/var/named";
};

zone "bdqn.com" IN {
type slave; //类型为从区域
masters { 173.16.16.5; }; //指定主服务器的 IP 地址
file "slaves/bdqn.com.zone"; //下载的区域文件保存到 slaves/目录
};

zone "16.16.173.in-addr.arpa" IN {
type slave;
masters { 173.16.16.5; };
file "slaves/173.16.16.arpa";
}

启动事务

[root@ns1 named]# systemctl start named

[root@ns1 named]# netstat -anptu | grep named
客户端验证

使用nslookup命令进行测试

1、外网客户端

[root@localhost ~]# yum -y install bind-utils
[root@localhost ~]# nslookup
> www.bt.com
Server:		173.16.16.1
Address:	173.16.16.1#53

Name:	www.bt.com
Address: 173.16.16.101

 2、内网客户端

[root@localhost ~]# yum -y install bind-utils
[root@localhost ~]# nslookup
> www.bt.com
Server:		192.168.1.1
Address:	192.168.1.1#53

Name:	www.bt.com
Address: 192.168.1.5
3、启动named服务,查看区域数据文件是否下载成功
[root@ns2 ~]# systemctl start named
[root@ns2 ~]# ll /var/named/slaves/
总用量 8
-rw-r--r--. 1 named named 544 7月   3 10:00 192.168.10.arpa
-rw-r--r--. 1 named named 488 7月   3 09:58 bdqn.com.zone

4、验证从域名服务器
将客户端的DNS服务器修改为192.168.10.102

[root@localhost ~]# nslookup www.bdqn.com
Server:        192.168.10.102
Address:       192.168.10.102#53

Name:    www.bdqn.com
Address: 192.168.10.106

 小阿轩yx-DNS域名解析服务

本文地址:https://www.idc504.com/news/9_27744.html