RHCE第六天之DNS域名解析服务器详解

news2024/10/7 14:26:46

文章目录

    • 一、 域名解析服务器介绍
    • 二、DNS域名解析的过程
    • 三、搭建DNS服务器的详细配置
    • 四、实验练习

一、 域名解析服务器介绍

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

DNS系统使用的是网络的查询,那么自然需要有监听的port。DNS使用的是53端口,在/etc/services(搜索domain)这个文件中能看到。通常DNS是以UDP这个较快速的数据传输协议来查询的,但是没有查询到完整的信息时,就会再次以TCP这个协议来重新查询。所以启动DNS时,会同时启动TCP以及UDP的port53。

1、因特网的域名结构

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

域名只是逻辑概念,并不代表计算机所在的物理地点。域名可分为三大类:
(1)国家顶级域名:采用ISO3166的规定。如:cn代表中国,us代表美国,uk代表英国,等等。国家域名又常记为ccTLD(country code top-level domains,cc表示国家代码contry-code)。
(2)通用顶级域名:最常见的通用顶级域名有7个,即:com(公司企t业),ne(网络服务机构),org(非营利组织),int(国际组织),gov(美国的政府部门),mil(美国的军事部门)。
(3)基础结构域名(infrastructure domain):这种顶级域名只有一个,即arpa,用于反向域名解析,因此称为反向域名。

2、域名服务器的类型划分

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

(2)顶级域名服务器:负责管理在该顶级域名服务器注册的二级域名。
(3)权限域名服务器:负责一个“区”的域名服务器。
(4)本地域名服务器:本地域名服务器不属于域名服务器的层次结构,但是它对域名系统非常重要。当一个主机发出DNS查询请求时,这个查询请求报文就发送给本地域名服务器。

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

二、DNS域名解析的过程

在这里插入图片描述
过程描述:
1、在浏览器中输入www . qq .com 域名,操作系统会先检查自己本地的hosts文件是否有这个网址映射关系,如果有,就先调用这个IP地址映射,完成域名解析。
2、如果hosts里没有这个域名的映射,则查找本地DNS解析器缓存,是否有这个网址映射关系,如果有,直接返回,完成域名解析。
3、如果hosts与本地DNS解析器缓存都没有相应的网址映射关系,首先会找TCP/IP参数中设置的首选DNS服务器,在此我们叫它本地DNS服务器,此服务器收到查询时,如果要查询的域名,包含在本地配置区域资源中,则返回解析结果给客户机,完成域名解析,此解析具有权威性。
4、如果要查询的域名,不由本地DNS服务器区域解析,但该服务器已缓存了此网址映射关系,则调用这个IP地址映射,完成域名解析,此解析不具有权威性。
5、如果本地DNS服务器本地区域文件与缓存解析都失效,则根据本地DNS服务器的设置(是否设置转发器)进行查询,如果未用转发模式,本地DNS就把请求发至13台根DNS,根DNS服务器收到请求后会判断这个域名(.com)是谁来授权管理,并会返回一个负责该顶级域名服务器的一个IP。本地DNS服务器收到IP信息后,将会联系负责.com域的这台服务器。这台负责.com域的服务器收到请求后,如果自己无法解析,它就会找一个管理qq.com的DNS服务器地址给本地DNS服务器。当本地DNS服务器收到这个地址后,就会找qq.com域服务器,重复上面的动作,进行查询,直至找到www . qq .com主机。
6、如果用的是转发模式,本地DNS服务器就会把请求转发至上一级DNS服务器,由上一级服务器进行解析,上一级服务器如果不能解析,或找根DNS或把请求转至上上级,以此循环。找到最后把结果返回给本地DNS服务器,由此DNS服务器再返回给客户机。

注:从客户端到本地DNS服务器是属于递归查询,而DNS服务器之间使用的交互查询就是迭代查询。

常见的DNS服务器地址:

114.114.114.114是国内移动、电信和联通通用的DNS,手机和电脑端都可以使用,干净无广告,解析成功率相对来说更高,国内用户使用的比较多,而且速度相对快、稳定,是国内用户上网常用的DNS。
8.8.8.8是GOOGLE公司提供的DNS,该地址是全球通用的,相对来说,更适合国外以及访问国外网站的用户使用。

DNS解析方式:
正向解析:将FQDN----->IP
反向解析:将IP----->FQDN

三、搭建DNS服务器的详细配置

提供DNS服务的软件叫bind,服务名是named。

[root@localhost ~]# yum install bind -y
[root@localhost ~]# rpm -ql bind
/etc/named.conf        # bind主配置文件
/etc/named.rfc1912.zones   # 定义zone的文件
/etc/rndc.conf        # rndc配置文件
/usr/sbin/named-checkconf   # 检测/etc/named.conf文件语法
/usr/sbin/named-checkzone   # 检测zone和对应zone文件的语法
/usr/sbin/rndc        # 远程dns管理工具
/usr/sbin/rndc-confgen    # 生成rndc密钥
***\*/var/named/named.ca      #\**** ***\*根解析库\****
/var/named/named.localhost  # 本地主机解析库
/var/named/slaves       # 从ns服务器文件夹

DNS服务的主配置文件:

[root@localhost ~]# vim /etc/named.conf 
options {
定义监听端口,如果所有地址都监听,则只写端口
    listen-on port 53 { 127.0.0.1; };
    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";分配统计目录
    allow-query   { localhost; };只允许本地主机进行查询
     recursion yes;允许递归
logging {
指定日志记录分类和他们的目标位置
    channel default_debug {
        file "data/named.run";
        severity dynamic;
    };
};

zone "." IN {
定义区域
    type hint;	 #master主域名服务器;slave从域名服务器;hint根域名服务器

    file "named.ca";
};
包含其他的配置文件
include "/etc/named.rfc1912.zones";
include "/etc/named.root.key";

四、实验练习

搭建DNS服务器:准备两台机器

1.实现DNS正向解析:可以解析
dns.rhce.com
www.rhce.com
dhcp.rhce.com
ftp.rhce.com
ntp.rhce.com
以及www.rhce.com的别名web.rhce.com

实验步骤:
①安装DNS服务软件包

yum install bind -y

②配置DNS主配置文件

listen-on port 53 { 192.168.233.154; };  #修改成物理网卡的IP
allow-query     { 192.168.233.0/24; };   #允许哪些主机来访问
# 区域配置
zone "rhce.com" IN {
 type master;
        file "rhce.zone";
};

在这里插入图片描述
③写解析文件
主配置文件里面定义的解析文件目录是/var/named
注意文件名是rhce.zone

[root@qingyuxin ~]# vim /var/named/rhce.zone 

$TTL 1D
@       IN      SOA     dns.rhce.com.   test.163.com. (
                                                       0
                                                       1D
                                                       1H
                                                       1W
                                                       3H )
         IN     NS      dns.rhce.com.
 mail.rhce.com.
dns.rhce.com.   IN      A       192.168.15.130
www.rhce.com.   IN      A      192.168.15.132

;ftp -> ftp.rhce.com. 

ftp     IN      A      192.168.15.133
dhcp    IN      A      192.168.15.134
ntp     IN      A      192.168.15.135

在这里插入图片描述
说明:

@代表zone的意思,现在@代表rhce.com.; SOA代表资源记录的名称为起始授权记录;test.163.com.表示有问题找该管理员;0代表序列号;1D代表更新频率为1天;1H代表失败重新尝试时间为1小时;1W代表失效时间为1周;3H代表缓存时间为3小时
;代表注释

④检测配置文件语法是否正确并重启服务

[root@qingyuxin ~]# named-checkconf /etc/named.conf
[root@qingyuxin ~]# named-checkzone rhce.com /var/named/rhce.zone
zone rhce.com/IN: loaded serial 0
OK
[root@qingyuxin ~]# systemctl restart named

⑤查看域名解析结果
在这里插入图片描述

  1. 配置反向解析: 对应的IP和解析成下面的域名
    dns.rhce.com
    www.rhce.com
    dhcp.rhce.com
    ftp.rhce.com
    ntp.rhce.com
    以及www.rhce.com的别名web.rhce.com
    实验步骤:
    ①配置DNS主配置文件
    向/etc/named.conf文件新增反向解析的配置
zone "15.168.192.in-addr.arpa" IN{ #以.in-addr.arpa结尾的是反向解析配置
        type master;
        file "15.168.192.zone";
};

②在/var/named目录下写解析文件
注意文件名是15.168.192.zone

[root@qingyuxin ~]# vim /var/named/15.168.192.zone 

$TTL 1D
@       IN      SOA     dns.rhce.com.   test.163.com (
                                                     0
                                                     1D
                                                     1H
                                                     1W
                                                     3H)
         IN     NS      dns.rhce.com.
;只需要一条A记录,其他的为反解析的内容  
dns.rhce.com.   IN      A       192.168.15.130

130             IN      PTR     dns.rhce.com.
131             IN      PTR     mail.rhce.com.
132             IN      PTR     www.rhce.com.
;cname: change name

web     IN      CNAME   www

在这里插入图片描述

③重启服务并检测是否能够反解析

systemctl restart named

在这里插入图片描述

3.配置主从同步(区域传送)
要求从dns和从主DNS同步区域解析文件,
可以实现增量传送(1.修改主DNS区域解析文件的serial值比从DNS的大: 验证是否会重新同步
2.修改主DNS区域解析文件的serial值比从DNS的小:验证是否会重新同步)
实验步骤:
主服务器192.168.15.130
① 在主配置文件/etc/named.conf中新增一条信息

 allow-transfer {192.168.15.0/24;};  #限定区域传送

在这里插入图片描述
主DNS区域解析文件的serial值是0
在这里插入图片描述
②重启DNS服务

[root@qingyuxin ~]# systemctl restart named

从DNS服务器 192.168.15.136
①安装DNS服务软件包

yum install bind -y

②配置DNS主配置文件/etc/named.conf

listen-on port 53 { 192.168.233.233; };
allow-query     { 192.168.233.0/24; };
zone "rhce.com" IN {
        type slave;
        masters { 192.168.233.154; };
        file "slaves/rhce.zone";
};

在这里插入图片描述
在这里插入图片描述
③重启服务并测试

systemctl restart named

查看从主服务器上面备份下来的解析文件
在这里插入图片描述
主从复制成功
④将从服务器的dns改成主服务器的地址
在这里插入图片描述
使用nslookup命令需要装包

yum install bind-utils

在这里插入图片描述
域名解析成功

将主服务器的dns服务停掉后,从服务器依然能够进行域名解析。

4.批量解析:解析:10.rhce.com -> 192.168.15.10
11.rhce.com -> 192.168.15.11
12.rhce.com -> 192.168.15.12
13.rhce.com -> 192.168.15.13
14.rhce.com -> 192.168.15.14
15.rhce.com -> 192.168.15.15
实验步骤:
① 主服务器,正向解析格式

[root@qingyuxin ~]# vim /var/named/rhce.zone
$GENERATE       10-20 $.rhce.com.       IN      A       192.168.15.$

②重启服务并测试
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/154307.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Node转换Excel成JSON

目前想使用Cocos Creator做一个文字游戏,类似于我的人生重开模拟器。 那么其中最重要的一点就是关于数据的存储了。在我的人生重开模拟器中大部分事件和天赋的数据是存储在excel表格当中的,当然如果要使用Cocos Creator,因为我不准备布置服务…

JDBC核心技术_第8章:数据库连接池

目录8.1 JDBC数据库连接池的必要性8.2 数据库连接池技术8.3 多种开源的数据库连接池8.3.1 C3P0数据库连接池8.3.2 DBCP数据库连接池8.3.3 Druid(德鲁伊)数据库连接池8.1 JDBC数据库连接池的必要性 在使用开发基于数据库的web程序时,传统的模…

【蓝桥杯系列】2020省赛真题之回文日期

⭐️前面的话⭐️ 本篇文章介绍来蓝桥杯真题之回文日期的题解,展示语言java。 📒博客主页:未见花闻的博客主页 🎉欢迎关注🔎点赞👍收藏⭐️留言📝 📌本文由未见花闻原创&#xff0c…

ArcGIS基础实验操作100例--实验81创建点群最小边界几何

本实验专栏参考自汤国安教授《地理信息系统基础实验操作100例》一书 实验平台:ArcGIS 10.6 实验数据:请访问实验1(传送门) 高级编辑篇--实验81 创建点群最小边界几何 目录 一、实验背景 二、实验数据 三、实验步骤 &#xff0…

MySQL是怎么保证高可用的?

在上一篇文章中,我和你介绍了 binlog 的基本内容,在一个主备关系中,每个备库接收主库的 binlog 并执行。 正常情况下,只要主库执行更新生成的所有 binlog,都可以传到备库并被正确地执行,备库就能达到跟主库一致的状态,这就是最终一致性。 但是,MySQL 要提供高可用能力…

Python中zipfile压缩包模块的使用

本文主要介绍了Python中zipfile压缩包模块的使用,zipfile 模块提供了创建、读取、写入、添加及列出 ZIP 文件的工具,本文做一个简单的总结。 简介 ZIP 文件格式是一个常用的归档与压缩标准,zipfile 模块提供了创建、读取、写入、添加及列出 …

如何通过QA质量管理提高软件质量?

1、构建了质量检查系统 为了保证软件开发质量,一般来说QA检查单按照检查阶段划分为:需求分析、系统设计、系统实现、系统测试、交付验收、系统运维。 QA质量管理:CoCode项目管理 QA质量管理——QA检查单​ 为了进一步提高检查效果&…

【笔记:第4课】学习开发一个RISC-V上的操作系统 - 汪辰 - 2021春

文章目录前言来源正文小结前言 创作开始时间:2023年1月10日22:41:26 如题,学习一下RISC-V。 来源 https://www.bilibili.com/video/BV1Q5411w7z5?p4&vd_source73a25632b4f745be6bbcfe3c82bb7ec0 正文 操作系统:POSIX 标准。 LLVM有…

ArcGIS基础实验操作100例--实验80随机采样统计

本实验专栏参考自汤国安教授《地理信息系统基础实验操作100例》一书 实验平台:ArcGIS 10.6 实验数据:请访问实验1(传送门) 高级编辑篇--实验80 随机采样统计 目录 一、实验背景 二、实验数据 三、实验步骤 (1&…

2022年度总结——一切都在慢慢变好

人生天地之间,若白驹过隙,忽然而已,每个人都希望留下自己的足迹。——题记日月两盏灯,春秋一场梦。回想一年前的现在我在干什么呢?去年的寒假我刚步入大学一个学期,迷茫彷徨,怅然若失&#xff0…

Promise处理异步的并行和串行

一、异步的“并行” 同时处理,相互之间没啥依赖 // 执行FN1返回一个promise实例,实例中管理了一个异步编程的代码,当定时器到时间后,才会把实例的状态改为成功 const fn1 () > {return new Promise(resolve > {setTimeou…

nginx使用!

一:概述 Nginx (“engine x”) 是一个高性能的 HTTP 和反向代理服务器,特点是占有内存少,并发能力强,事实上 Nginx 的并发能力确实在同类型的网页服务器中表现较好,中国大陆使用 Nginx 网站用户有:百度、京…

NTN(二) Timing Advance

微信同步更新欢迎关注同名modem协议笔记 地面移动系统的传播延迟通常小于 1 毫秒。 相比之下,NTN 中的传播延迟要长得多,延迟从几毫秒到数百毫秒不等,具体取决于星载或机载平台的高度以及 NTN 中的payload类型。 因此对NTN系统,处…

Java 脚本引擎的使用

1. 前言 Java 6 版本就已经引入了 Rhino 引擎用以支持脚本代码运行,而从 Java 8 开始 Nashorn 取代 Rhino 成为 Java 内嵌的 JavaScript 引擎。Nashorn 引擎允许开发人员将 JavaScript 代码嵌入到 Java 中执行,这个特性在复杂的配置系统中有比较大的应用…

javascript reduce()方法

相信挺多人对这个方法还是那么的陌生,其实也能理解,毕竟它能做到的事情还有其他的方法能做到。下面就说一下我个人的理解吧!!!reduce()方法:用法:array.reduce(function(total,currentData,curr…

管理bug的工具

一、国内的bug管理软件: 1、禅道 禅道是第一款国产开源项目管理软件。它的核心管理思想基于敏捷方法scrum,内置了产品管理和项目管理,同时又根据国内研发现状补充了测试管理、计划管理、发布管理、文档管理、事务管理等功能。在一个软件中就…

nodejs+vue+element+eachers构建开源项目大型连续剧(5)前端请求封装,完成用户注册。

在前端项目开发中,一个好的请求封装可以给我们带来诸多便利,减少了代码重复,优化了问题处理等。那接下来我们一起学习一下怎么做到对一个请求的简单封装吧。主要通过对axios请求的二次封装,实现页面的请求以及必要的优化。 一、引…

Word处理控件Aspose.Words功能演示:在 C# 中将 Word DOC DOCX 转换为 Markdown

Aspose.Words 是一种高级Word文档处理API,用于执行各种文档管理和操作任务。API支持生成,修改,转换,呈现和打印文档,而无需在跨平台应用程序中直接使用Microsoft Word。此外, Aspose API支持流行文件格式处…

每个Java程序员都必须知道的四种负载均衡算法

前言 一般来说,我们在设计系统的时候,为了系统的高扩展性,会尽可能的创建无状态的系统,这样我们就可以采用集群的方式部署,最终很方便的根据需要动态增减服务器数量。但是,要使系统具有更好的可扩展性&…

【UE4 第一人称射击游戏】32-添加击杀AI的提示功能(使用到控件蓝图的动画功能)

上一篇:【UE4 第一人称射击游戏】31-更好的UI界面本篇效果:可以看到在击杀AI后,右上角有击杀提示信息步骤:新建一个控件蓝图命名为“KillPopup”双击打开“KillPopup”,拖入一个图像控件,锚点设置为右上角&…