DNS域名解析详解

一.DNS系统作用

DNS端口:53
正向解析:通过域名解析IP地址
反向解析:通过IP地址查找对应的域名
TCP的53端口用于连接DNS服务器
UDP的53端口用于解析DNS

二.DNS分布式数据结构

在这里插入图片描述

名词解释

根域
位于域名空间最顶层,一般用一个“.”表示

顶级域
一般代表一种类型的组织机构或国家地区,
如net(网络供应商)、.com(工商企业)、,org(团体组织)、.edu(教育机构)、.gov(政府部门)、.cn(中国国家域名)

二级域
用来标明顶级域内的一个特定的组织,国家顶级域下面的二级域名由国家网络部门统一管理.
如 .cn 顶级域名下面设置的二级域名: .com.cn、.net.cn、.edu.cn

子域
二级域下所创建的各级域统称为子域,各个组织或用户可以自由申请注册自己的域名

主机
主机位于域名空间最下层,就是一台具体的计算机
如 www、mail都是具体的计算机名字,可用www.sina.com.cn.、mail.sina.com.cn.来表示,这种表示方式称为 EODN(完全合格域名,是指包含了所有域的主机名,其中包括根域),也是这台主机在域名中的全名

三.DNS工作原理

1.迭代查询

在这里插入图片描述

客户端发送DNS请求给根域服务器,根域服务器根据对应顶级域回复给客户端,客户端根据对应的顶级域发送给顶级服务器,然后解析出二级域发送给客户端,客户端根据对应的二级域发送给二级域服务器,二级域解析出对应的子域,客户端根据子域发送给对应的子域服务器,子域解析出对应的主机IP地址。

2.递归查询

在这里插入图片描述

客户端发送DNS请求到根域,根域收到后把解析请求发送给顶级域,顶级域收到后解析然后把请求发送给二级域,二级域解析后出域名,子域收到后根据域名解析出IP地址,后返回发送给二级域,二级域收到后把IP地址发送给顶级域,顶级域收到后发送给根域,最后根域把解析出来的IP地址发送给客户端。

四.实验

1.正向解析

步骤

1.安装bind软件
yum install -y bind
2.查看bind的配置文件
rpm -qc bind
3.修改第一个配置文件 /etc/named.conf
options {
        listen-on port 53 { any; };              #大括号中修改为any,ip地址使用提供服务的本地IP即可
        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; };             #大括号中修改为any,允许使用本DNS解析服务器的网段,
4.修改第二个配置文件  /etc/named.rfc1912.zones
zone "xjx.com" IN {             #正向解析xjx.com区域
        type master;            #类型为主区域
        file "xjx.com.zone";   #指定区域数据文件为xjx.com.zone
        allow-update { none; }; 
};
5.修改第三个配置文件
cd /var/named
cp -p named.localhost xjx.com.zone
vim  xjx.com.zone
$TTL 1D
@       IN SOA  xjx.com. admin.xjx.com. (                #当前dns区域名     
                                        0       ; serial
                                        1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum
        NS      xjx.com.         #记录当前服务器区域名称
        A       192.168.72.15    #记录本机IP地址
www IN A 192.168.72.16          #记录正向解析的IP地址
mail IN A 192.168.72.17
ftp  CNAME www                  #CNAME使用别名,ftp为www的别名
* IN A 192.168.72.110           #泛域名解析。*代表任何主机
5.修改DNS配置文件
 vim /etc/resolv.conf
 地址修改为提供DNS域名解析的服务器地址。
 6.关闭防火墙
 systemctl stop firewalld
 setenforce 0 
 systemctl start named  
 7.使用nsloopup/host/dig 解析域名
 

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2.反向解析

1.正向解析时的第一个配置文件不需要在修改 /etc/named.conf
2. 修改/etc/named.rfc1912.zones
zone "72.168.192.in-addr.arpa" IN {     #反向添加网段地址
        type master;
        file "xjx.com.zone.local";      #添加反向文件
        allow-update { none; };
3.cd /var/named
cp -p named.localhost xjx.com.zone.local
vim  xjx.com.zone.local
$TTL 1D
@       IN SOA  xjx.com. admin.xjx.com. (
                                        0       ; serial
                                        1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum
        NS      xjx.com.
        A       192.168.72.15
15  IN PTR   www.xjx.com.
16  IN PTR mail.xjx.com.
4.systemctl restart named 
5.nslookup 检查

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

五.构建主、从域名服务器

1.构建主域名服务器正向、反向解析

正向解析
###修改主配置文件
vim /etc/named.conf
options{
###监听53端口,ip地址使用提供服务的本地IP,也可用any表示所有  
listen-on port 53 { any; };         ***
###ipv6行如不使用可以注释掉或者删除
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";
###允许使用本DNS解析服务的网段,也可用any代表所有
allow-query  { any;  ***
......
}; 


###正向解析“. "根区域
zone "." IN {
###类型为根区域
type hint;
###区域数据文件为named.ca,记录了13台根域服务器的域名和IP地址等信息
file "named.ca"; 
###包含区域配置文件里的所有配置
include "/etc/named.rfc1912.zones";


###修改区域配置文件,添加正向区域配置
vim /etc/named.rfc1912.zones
###文件里有模版,可复制粘贴后修改
###正向解析"xjx.com"区域(自定义域名,格式为XXX.tom)  
zone "xjx.com" IN {         ***
###类型为主区域
type master;
###指定区域数据文件为xjx.com.zone
file "xjx.com.zone";     ***
allow-transfer { 192.168.72.25; };   ***
};


###配置正向区域数据文件
cd /var/named/
###并保留源文件的权限和属主的属性复制
cp -p/-a named.localhost xjx.com.zone   ***
vim /var/named/xjx.com.zone
###有效解析记录的生存周期
$TTL 1D
###“@”符号表示当前的DNS区域名
@     IN SOA xjx.com. admin.tsy.com.(   ***
###更新序列号,可以是10位以内的整数(主从服务器该数值不可一样)
0       ; serial
###刷新时间,重新下载地址数据的间隔(一天)
1D      ; refresh
###重试延时,下载失败后的重试间隔(一小时)
1H      ; retry 
###失效时间,超过该时间仍无法下载则放弃(一周)
1w      ; expire 
#无效解析记录的生存周期(三小时)
3H      ; minimum)

###记录当前区域的DNS服务器的名称
          NS       xjx.com.      ***
###记录主机IP地址
          A        192.168.72.15  ***
###MX为邮件交换记录,数字越大优先级越低
IN   MX   10       admin.xjx. com.   ***
###记录正向解析www.tsy.com对应的IP
www  IN   A        192.168.72.15    ***
mail IN   A        192.168.72.16    ***
#CNAME使用别名,ftp 是www的别名
ftp  IN   CNAME    www           ***
###泛域名解析,“*"代表任意主机名
*    IN   A        192.168.72.110     ***


反向解析
###修改主配置文件
vim /etc/named.conf
options{
###监听53端口,ip地址使用提供服务的本地IP,也可用any表示所有
listen-on port 53 { any; };   ***
###ipv6行如不使用可以注释掉或者删除
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";
###允许使用本DNS解析服务的网段,也可用any代表所有
allow-query  { any;      ***
......
}; 


###反向解析“. "根区域
zone "." IN {
###类型为根区域
type hint;
###区域数据文件为named.ca,记录了13台根域服务器的域名和IP地址等信息
file "named.ca"; 
###包含区域配置文件里的所有配置
include "/etc/named.rfc1912.zones";


###修改区域配置文件,添加反向区域配置
vim /etc/named.rfc1912.zones
###文件里有模版,可复制粘贴后修改
###反向解析"xjx.com"区域(自定义域名,格式为XXX.tom)    ***
zone "72.168.192.in-addr.arpa" IN {    ***
###类型为主区域
type master;    ***
###指定区域数据文件为xjx.com.zone.local
file "xjx.com.zone.local";     ***
allow-transfer { 192.168.72.25; };   ***
};


###配置反向区域数据文件
cd /var/named/
###并保留源文件的权限和属主的属性复制
cp -p/-a named.localhost xjx.com.zone.local     ***
vim /var/named/xjx.com.zone.local               ***
###有效解析记录的生存周期
$TTL 1D
###“@”符号表示当前的DNS区域名
@     IN SOA xjx.com. admin.tsy.com.(          ***
###更新序列号,可以是10位以内的整数(主从服务器该数值不可一样)
20230419       ; serial
###刷新时间,重新下载地址数据的间隔(一天)
1D      ; refresh
###重试延时,下载失败后的重试间隔(一小时)
1H      ; retry 
###失效时间,超过该时间仍无法下载则放弃(一周)
1w      ; expire 
#无效解析记录的生存周期(三小时)
3H      ; minimum)

###记录当前区域的DNS服务器的名称
          NS       xjx.com.       ***
###记录主机IP地址
          A        192.168.72.15   ***
###记录反向解析www.tsy.com对应的IP
15   IN   A        www.xjx.com    ***
16   IN   A        news.xjx.com   ***
###关闭防火墙,启动服务
systemctl stop firewalld
setenforce 0
systemctl start named

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2.构建从服务器的正向、反向解析

正向解析
###修改主配置文件
vim /etc/named.conf
options{
###监听53端口,ip地址使用提供服务的本地IP,也可用any表示所有   
listen-on port 53 { any; };   ***
###ipv6行如不使用可以注释掉或者删除
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";
###允许使用本DNS解析服务的网段,也可用any代表所有
allow-query  { any;  ***
......
}; 


###正向解析“. "根区域
zone "." IN {
###类型为根区域
type hint;
###区域数据文件为named.ca,记录了13台根域服务器的域名和IP地址等信息
file "named.ca"; 
###包含区域配置文件里的所有配置
include "/etc/named.rfc1912.zones";


###修改区域配置文件,添加正向区域配置
vim /etc/named.rfc1912.zones  ***
###文件里有模版,可复制粘贴后修改
###正向解析"xjx.com"区域(自定义域名,格式为XXX.tom)  ***
zone "xjx.com" IN {               ***
###类型为从区域
type slave;     ***
###定义主服务器的IP地址
masters { 192.168.72.15; };  ***
###指定区域数据文件为slaves/目录下的xjx.com.zone
file "slaves/xjx.com.zone"; ***
};


----------------------------------------------------------------

反向解析
###修改主配置文件
vim /etc/named.conf  
options{
###监听53端口,ip地址使用提供服务的本地IP,也可用any表示所有
listen-on port 53 { any; };       ***
###ipv6行如不使用可以注释掉或者删除
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";
###允许使用本DNS解析服务的网段,也可用any代表所有
allow-query  { any; ***
......
}; 


###反向解析“. "根区域
zone "." IN {
###类型为根区域
type hint;
###区域数据文件为named.ca,记录了13台根域服务器的域名和IP地址等信息
file "named.ca"; 
###包含区域配置文件里的所有配置
include "/etc/named.rfc1912.zones";


###修改区域配置文件,添加反向区域配置
vim /etc/named.rfc1912.zones
###文件里有模版,可复制粘贴后修改
###反向解析"xjx.com"区域(自定义域名,格式为XXX.tom)
zone "72.168.192.in-addr.arpa" IN {  ***
###类型为从区域
type slave;  ***
###定义主服务器的IP地址
masters { 192.168.72.15; };
###指定区域数据文件为xjx.com.zone.local
file "slaves/xjx.com.zone.local";   ***
};
###关闭防火墙,启动服务
systemctl stop firewalld
setenforce 0
systemctl start named

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐