当前位置: 首页 > article >正文

Linux学习——4_DNS域名解析服务器

DNS域名解析服务器

DNS简介

DNS(Domain Name System)是互联网上的一项服务,它作为将域名和IP地址相互映射的一个分布式数据库,能够使人更方便的访问互联网。

DNS使用的是53端口,

通常DNS是以UDP这个较快速的数据传输协议来查询的,但是没有查询到完整的信息时,就会再次以TCP这个协议来重新查询所以启动DNS时,会同时启动TCP以及UDP的port53。

因特网的域名结构

由于因特网的用户数量较多,所以因特网在命名时采用的是层次树状结构的命名方法。任何一个连接在因特网上的主机或路由器,都有一个唯一的层次结构的名字,即域名(domain name)。“域”(domain)是名字空间中一个可被管理的划分

国家顶级域名:采用ISO3166的规定。如:cn代表中国,us代表美国,uk代表英国,等等。国家域名又常记为ccTLD(country code top-level domains,cc表示国家代码contry-code)。

通用顶级域名:最常见的通用顶级域名有7个,即:com(公司企业),net(网络服务机构),org(非营利组织),int(国际组织),gov(美国的政府部门),mil(美国的军事部门)。

基础结构域名(infrastructure domain):这种顶级域名只有一个,即arpa,用于反向域名解析,因此称为反向域名。

域名服务器的类型划分

根域名服务器:最高层次的域名服务器,也是最重要的域名服务器。所有的根域名服务器都知道所有的顶级域名服务器的域名和IP地址。不管是哪一个本地域名服务器,若要对因特网上任何一个域名进行解析,只要自己无法解析,就首先求助根域名服务器。所以根域名服务器是最重要的域名服务器。假定所有的根域名服务器都瘫痪了,那么整个DNS系统就无法工作。需要注意的是,在很多情况下,根域名服务器并不直接把待查询的域名直接解析出IP地址,而是告诉本地域名服务器下一步应当找哪一个顶级域名服务器进行查询。

现如今全球一共投放13个根服务器

根服务器主要用来管理互联网的主目录,全世界只有13台。1个为主根服务器,放置在美国。其余12个均为辅根服务器,其中9个放置在美国,欧洲2个,位于英国和瑞典,亚洲1个,位于日本。所有根服务器均由美国政府授权的互联网域名与号码分配机构ICANN统一管理,负责全球互联网域名根服务器、域名体系和IP地址等的管理。 这13台根服务器可以指挥Firefox或互联网 Explorer这样的Web浏览器和电子邮件程序控制互联网通信。换句话说——攻击整个因特网最有力、最直接,也是最致命的方法恐怕就是攻击根域名服务器了。

在与现有IPv4根服务器体系架构充分兼容基础上,由我国下一代互联网国家工程中心领衔发起的“雪人计划”于2016年在美国、日本、印度、俄罗斯、德国、法国等全球16个国家完成25台IPv6(互联网协议第六版)根服务器架设,事实上形成了13台原有根加25台IPv6根的新格局,为建立多边、民主、透明的国际互联网治理体系打下坚实基础。中国部署了其中的4台,由1台主根服务器和3台辅根服务器组成,打破了中国过去没有根服务器的困境。

顶级域名服务器:负责管理在该顶级域名服务器注册的二级域名。

权限域名服务器:负责一个“区”的域名服务器。

本地域名服务器:本地域名服务器不属于域名服务器的层次结构,但是它对域名系统非常重要。当一个主机发出DNS查询请求时,这个查询请求报文就发送给本地域名服务器。

主从DNS服务器:为了提高域名服务器的可靠性,DNS域名服务器都把数据复制到几个域名服务器来保存,其中的一个就是主DNS服务器(Master name server),负责解析至少一个域。其他的是辅助(从)DNS服务器(Slave name server):负责解析至少一个域,是主DNS服务器的辅助。当主域名服务器出故障时,辅助域名服务器可以保证DNS的查询工作不会中断。主域名服务器定期把数据复制到辅助域名服务器中,而更改数据只能在主域名服务器中进行。这样就保证了数据的一致性。

DNS域名解析的过程

[root@localhost ~]# nslookup 
> set type=ns
> .
Server:         114.114.114.114
Address:        114.114.114.114#53

Non-authoritative answer:
.       nameserver = i.root-servers.net.
.       nameserver = k.root-servers.net.
.       nameserver = m.root-servers.net.
.       nameserver = a.root-servers.net.
.       nameserver = h.root-servers.net.
.       nameserver = g.root-servers.net.
.       nameserver = d.root-servers.net.
.       nameserver = b.root-servers.net.
.       nameserver = f.root-servers.net.
.       nameserver = e.root-servers.net.
.       nameserver = j.root-servers.net.
.       nameserver = c.root-servers.net.
.       nameserver = l.root-servers.net.

Authoritative answers can be found from:
> set type=a
> b.root-servers.net.
Server:         114.114.114.114
Address:        114.114.114.114#53

Non-authoritative answer:
Name:   b.root-servers.net
Address: 170.247.170.2
> server 170.247.170.2
Default server: 170.247.170.2
Address: 170.247.170.2#53
> set type=ns
> com.
Server:         170.247.170.2
Address:        170.247.170.2#53

Non-authoritative answer:
*** Can't find com.: No answer

Authoritative answers can be found from:
com     nameserver = a.gtld-servers.net.
com     nameserver = b.gtld-servers.net.
com     nameserver = c.gtld-servers.net.
com     nameserver = d.gtld-servers.net.
com     nameserver = e.gtld-servers.net.
com     nameserver = f.gtld-servers.net.
com     nameserver = g.gtld-servers.net.
com     nameserver = h.gtld-servers.net.
com     nameserver = i.gtld-servers.net.
com     nameserver = j.gtld-servers.net.
com     nameserver = k.gtld-servers.net.
com     nameserver = l.gtld-servers.net.
com     nameserver = m.gtld-servers.net.
a.gtld-servers.net      internet address = 192.5.6.30
a.gtld-servers.net      has AAAA address 2001:503:a83e::2:30
b.gtld-servers.net      internet address = 192.33.14.30
b.gtld-servers.net      has AAAA address 2001:503:231d::2:30
c.gtld-servers.net      internet address = 192.26.92.30
c.gtld-servers.net      has AAAA address 2001:503:83eb::30
d.gtld-servers.net      internet address = 192.31.80.30
d.gtld-servers.net      has AAAA address 2001:500:856e::30
e.gtld-servers.net      internet address = 192.12.94.30
e.gtld-servers.net      has AAAA address 2001:502:1ca1::30
f.gtld-servers.net      internet address = 192.35.51.30
f.gtld-servers.net      has AAAA address 2001:503:d414::30
> server 192.5.6.30
Default server: 192.5.6.30
Address: 192.5.6.30#53
> set type=ns
> bilibili.com
Server:         192.5.6.30
Address:        192.5.6.30#53

Non-authoritative answer:
*** Can't find bilibili.com: No answer

Authoritative answers can be found from:
bilibili.com    nameserver = ns3.dnsv5.com.
bilibili.com    nameserver = ns4.dnsv5.com.
ns3.dnsv5.com   internet address = 1.12.0.17
ns3.dnsv5.com   internet address = 1.12.0.18
ns3.dnsv5.com   internet address = 1.12.14.17
ns3.dnsv5.com   internet address = 1.12.14.18
ns3.dnsv5.com   internet address = 101.227.168.52
ns3.dnsv5.com   internet address = 108.136.87.44
ns3.dnsv5.com   internet address = 163.177.5.75
ns3.dnsv5.com   internet address = 220.196.136.52
ns3.dnsv5.com   has AAAA address 2402:4e00:1470:2::f
ns3.dnsv5.com   internet address = 35.165.107.227
ns4.dnsv5.com   internet address = 1.12.0.16
ns4.dnsv5.com   internet address = 1.12.0.19
ns4.dnsv5.com   internet address = 1.12.14.16
ns4.dnsv5.com   internet address = 1.12.14.19
ns4.dnsv5.com   internet address = 112.80.181.106
ns4.dnsv5.com   internet address = 117.135.128.152
ns4.dnsv5.com   internet address = 124.64.205.152
ns4.dnsv5.com   internet address = 13.37.58.163
ns4.dnsv5.com   has AAAA address 2402:4e00:111:fff::8
ns4.dnsv5.com   internet address = 49.7.107.152
> 

DNS服务器配置

关于服务端

软件安装包bind
服务名称named
主配置文件/etc/named.conf
数据目录/var/named
端口tcp/53 udp/53

DNS服务的安装于启用

安装
[root@localhost ~]# dnf install bind -y
启用
[root@localhost ~]# systemctl start named
开放服务
172.25.254.129
[root@localhost ~]# vim /etc/resolv.conf 
[root@localhost ~]# cat /etc/resolv.conf 
# Generated by NetworkManager
search localdomain
nameserver 172.25.254.129
172.25.254.133
[root@localhost ~]# vim /etc/resolv.conf 
[root@localhost ~]# cat /etc/resolv.conf 
# Generated by NetworkManager
search localdomain
nameserver 172.25.254.129

DNS企业级高级配置

高速缓存DNS

高速缓存dns是一个非权威的dns,在dns服务器中本身并没有数据

当客户需要解析域名时首先查询缓存中是否有数据,如果没有就会从指定的dns服务器中缓存

高速缓存dns可以大大节省内网在做地址解析上所需要花费的时间

高速缓存配置参数

[root@localhost ~]# vim /etc/named.conf 

测试

DNS的正向解析

DNS正向解析作用

当客户设定当前dns服务器为dns解析服务器时,正向解析即为客户提供A记录

客户提供域名,dns服务器负责把域名解析成对应IP

实施方法
编写zones文件设定要维护的域
[root@localhost named]# vim /etc/named.rfc1912.zones 

根据zones文件中指定生成A记录文件
[root@localhost named]# vim timinglee.org.zone 
[root@localhost named]# cat timinglee.org.zone 
$TTL 1D
@       IN SOA  dns.timinglee.org. root.timinglee.org.  (
                                        0       ; serial
                                        1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum
        NS      dns.timinglee.org.
dns     A       172.25.254.129
www     A       172.25.254.111
测试实验结果
[root@localhost named]# dig bbs.timinglee.org

[root@localhost named]# dig www.timinglee.org

当更改完毕DNS服务的配置文件后一定要重启服务后更改内容才能生效

重启服务的命令为:

systemctl restart namd

如果重启服务失败基本可以确定为配置文件的内容更改的有问题可以使用的查看命令为:

journalctl -xeu named.service 

状态码状态码含义
NOERROR查询成功
REFUSED查询被拒绝
SERVFAIL查询失败
NXDOMAIN查询无此结果
规范域名
[root@localhost ~]# vim /var/named/timinglee.org.zone 
[root@localhost ~]# cat /var/named/timinglee.org.zone 
$TTL 1D
@       IN SOA  dns.timinglee.org. root.timinglee.org.  (
                                        0       ; serial
                                        1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum
        NS      dns.timinglee.org.
dns     A       172.25.254.129
www     CNAME   node1.a.timinglee.org.
node1.a A       172.25.254.111
node1.a A       172.25.254.222
[root@localhost ~]# systemctl restart named
测试
[root@localhost named]# dig www.timinglee.org

邮件解析记录 
[root@localhost ~]# vim /var/named/timinglee.org.zone 
[root@localhost ~]# cat /var/named/timinglee.org.zone 
$TTL 1D
@       IN SOA  dns.timinglee.org. root.timinglee.org.  (
                                        0       ; serial
                                        1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum
        NS      dns.timinglee.org.
dns     A       172.25.254.129
www     CNAME   node1.a.timinglee.org.
node1.a A       172.25.254.111
node1.a A       172.25.254.222
timinglee.org MX 1     172.25.254.129.
[root@localhost ~]# systemctl restart named
测试
[root@localhost named]# dig -t mx timinglee.org

DNS的反向解析 

DNS反向解析的作用

当客户设定当前dns服务器为dns解析服务器时,正向解析即为客户提供PRT记录

客户提供域名,dns服务器负责把域名解析成对应IP

实施方法
1.编写zones文件设定要维护的域
[root@localhost ~]# vim /etc/named.rfc1912.zones 

[root@localhost named]# vim 172.25.254.ptr 
[root@localhost named]# pwd
/var/named

测试
[root@localhost named]# dig -x 172.25.254.111

DNS多向解析方案

配置实验环境

第一台虚拟机双网卡,网络适配器2仅主机模式

第二台虚拟机仅主机模式

实施方法

1.注释在主配置文件中默认的zone语句块

2.添加view语句来限制访问数据走向

view net-172 {
    match-clients { 172.25.254.0/24; };
    zone "." IN {
    type hint;
    file "named.ca";
    };
    include "/etc/named.rfc1912.zones";
};
view net-192 {
    match-clients { 192.168.0.0/24; };
    zone "." IN {
    type hint;
    file "named.ca";
    };
    include "/etc/named.rfc192.zones";
};

主从DNS服务器

配置实验环境

新建一台主机作为辅助DNS主机,并配置好网络和软件仓库

在新建主机中安装DNS服务并保证服务可以被访问

对辅助DNS进行配置
[root@localhost ~]# vim /etc/named.conf 

[root@localhost ~]# vim /etc/named.rfc1912.zones 

 

启动服务并测试
[root@localhost ~]# systemctl restart named
[root@localhost ~]# dig -t A www.easylee.org @172.25.254.200
解决数据实时同步问题

主从dns经过上述设定后存在数据同步延迟,在主dns中更改数据后要等到下个同步周期的时间到来才能进行同步

1.在主dns中设置数据更改后主动通知对象

[root@localhost ~]# vim /etc/named.rfc1912.zones
zone "easylee.org" IN {
    type master;
    file "easylee.org.zone";
    allow-update { none; };
    also-notify { 172.25.254.200; };
};

更改A记录文件测试结果

[root@localhost ~]# vim /var/named/easylee.org.zone
$TTL 1D
@     IN SOA     dns.easylee.org. root.easylee.org. (
                                   2023032901 ;
                1D     ; refresh
                1H     ; retry
                1W     ; expire
                3H )   ; minimum
NS         dns.easylee.org.
dns         A          172.25.254.100
www         CNAME      node.a.easylee.org.
node.a       A         172.25.254.200
node.a       A         172.25.254.202
easylee.org. MX 5      172.25.254.111.

http://www.kler.cn/a/428573.html

相关文章:

  • PAT (Basic Level) Practice 乙级1041-1045
  • LAYA3.0 组件装饰器说明
  • DDD - 整洁架构_解决技术设计困局
  • Python----Python高级(正则表达式:语法规则,re库)
  • 用edge浏览器追剧音量太小?安装音量增强器可解忧
  • 小哆啦解题记:如何计算除自身以外数组的乘积
  • Leetcode Hot 100【堆】215. 数组中的第K个最大元素
  • 探索HTML5与CSS3的流式布局:构建响应式网页设计的新纪元
  • go返回多个errors
  • Linux驱动开发(11):SPI子系统–OLED屏实验
  • YOLO系列发展历程:从YOLOv1到YOLO11,目标检测技术的革新与突破
  • Java Web 7 请求响应(Postman)
  • pyside6学习专栏(一)常用控件的使用(非QML方式)
  • dockerfile部署前后端(vue+springboot)
  • 16asm -指令
  • 2024/12/8 Windows安装Oracle19c
  • 锁相关的问题(死锁、互斥锁、自旋锁、读写锁、悲观锁、乐观锁)
  • Mac 录制电脑系统内的声音的具体方法?
  • threadcache实现细节(二)
  • Linux-V4L2摄像头应用编程
  • 安卓调试环境搭建
  • RTCMultiConnection 跨域问题解决
  • js循环导出多个word表格文档
  • OD B卷【恢复数字序列】
  • TCP客户端服务器端通信(线程池版)
  • 【机器学习】基于SVM、逻辑回归和CNN的手写数字识别:性能对比与应用分析