[Linux] dns域名解析服务

一、DNS

1.1 DNS简介

域名解析:(英文:Domain Name System,缩写:DNS)是互联网的一项服务。它作为将域名和IP地址相互映射的一个分布式数据库,能够使人更方便地访问互联网。DNS使用udp53和tcp53。当前,对于每一级域名长度的限制是63个字符,域名总长度则不能超过253个字符。

TCP 53号端口:连接DNS服务器

UDP 53号端口:解析DNS

1.2 DNS 数据结构分布 

树状结构最顶层称为根域,用“.”表示,相应服务器称为根服务器,整个域名空间解析权都归根服务器所有,但根服务器无法承担庞大的负载,采用“委派”机制,在根域下设置了一些顶级域,然后将不同顶级域解析权分别委派给相应的顶级域服务器,如将com域的解析权委派给com域服务器,以后但凡根服务器收到以com结尾的域名解析请求,都会转发给com域服务器,同样道理,为了减轻顶级域的压力,又下设了若干二级域,二级域又下设三级域或主机。

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

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

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

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

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

 1.3 服务器的类型

(1)主域名服务器负责维护一个区域的所有域名信息,是特定的所有信息的权威信息源,数据可以修改。构建主域名服务器时,需要自行建立所负责区域的地址数据文件。

(2)从域名服务器当主域名服务器出现故障、关闭或负载过重时,从域名服务器作为备份服务提供域名解析服务。从域名服务器提供的解析结果不是由自己决定的,而是来自于主域名服务器。构建从域名服务器时,需要指定主域名服务器的位置,以便服务器能自动同步区域的地址数据库。

1.4 DNS 域名解析方式


正向解析:根据域名查找对应的IP地(域名 --------> IP) 
反向解析:根据IP地址查找对应的域名(IP---------->域名)

 1.5 DNS查询方式

递归查询

主机通常使用递归查询进行本地域名服务器查询。 其查询过程为:首先检查本地 DNS 是否有对应的寰球域名,如果有关联主机域名,则直接解析。如果无法访问根域名服务器,则从根域名服务器转发到顶级域名服务器,再转发到子域名服务器(如果有二级域名,则从二级域名转发到子域名服务器),从子域名服务器转发到 转发给主机,并根据主机名逐步转发给客户端,以便解析相应的 IP 地址。

迭代查询

从本地 DNS 服务器到根 DNS 服务器的查询是迭代查询。 查询过程:首先还要访问本地主机的 DNS 缓存,如果有缓存,则直接解析。如果没有,则先访问根域名服务器,根域名服务会回复相应的顶级域名服务器。接下来,客户端访问顶级域服务器,顶级域服务器回复给相应的子域服务器(如果有二级域名,则有另一个访问二级域名的过程)。然后,客户端访问相应的子域服务器,子域服务器回复相应的主机。然后,客户端访问主机,根据主机名解析相应的 IP 地址,并回复客户端,完成解析过程。

1.6 映射文件

hosts 文件包含 IP 地址和主机名之间的映射,以及主机的别名。

默认情况下,系统首先在 hosts 文件中查找解析记录。

hosts 文件优先于 /etc/nsswitch.conf 文件中指定的 DNS 服务器。

hosts 文件只对当前主机有效。

hosts 文件可减少 DNS 查找过程,加快访问速度。

Linux中有关DNS的映射文件

vim  /etc/hosts

 二、DNS域名解析器

2.1构建DNS域名解析器的目的

bind是开源软件,用于内网划分DNS,不同于外网,内网的DNS是不需要注册,是方便内部进行使用和访问的有效手段

2.2bind服务的安装

yum install bind bind-utils -y

2.3bind服务程序介绍 

    绑定服务程序的区域配置文件(/etc/named.rfc1912.zones)用于存储域名和 IP 地址之间的对应关系。该文件定义了存储域名和 IP 地址解析规则的文件位置和服务类型,但不包含域名和 IP 地址之间对应关系的具体信息。有三种服务类型:提示(根区)、主区(一级区)和从区(二级区),常用的主区和从区指的是主服务器和从服务器。

2.4查看需要修改的配置文件所在路径

rpm -qc bind

 三、搭建DNS域名解析器具体步骤

3.1 搭建正向解析

第一步:修改DNS
systemctl stop firewalld
setenforce 0
vim /etc/sysconfig/network-scripts/ifcfg-ens33  
systemctl restart network

第二步:修改主机配置文件
vim  /etc/named.conf
options {
(也可以使用//注释掉)        listen-on port 53 { any; }; 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; };
................................................
}

 第三步:写区域配置文件
vim /etc/named.rfc1912.zones

第四步:复制模板文件并重命名
cd   /var/namedcp -a named.localhost clx.com.zone
 第五步:编辑数据库文件,解析记录对应关系
vim clx.com.zone
$TTL 1D    // SOA代表有效解析记录的生存周期
@       IN SOA  master.clx.com.  admin.clx.com. (   //@符号表示当前的DNS区域名0       ; serial  //更新序列号,可以是 10 位以内的整数1D      ; refresh //刷新时间,重新下载地址数据的间隔1H      ; retry   //重试延时,下载失败后的重试间隔1W      ; expire  //失效时间,超过该时间仍无法下载则放弃3H )    ; minimum //无效解析记录的生存周期NS      master
master  A       192.168.136.133  //记录当前主机ip
www     A       192.168.136.120  //正向解析域名
ftp     A       192.168.136.110  //正向解析域名

 第六步:重启服务测试结果
systemctl restart named

四、主从DNS域名服务器的配置 

第一步:关闭防火墙 核心防护 安装bind
systemctl stop firewalld.service 
setenforce 0
yum install bind bind-utils.x86_64 -y
第二步:修改第一台虚拟机(打算作主服务器的那台)的区域配置
vim /etc/named.rfc1912.zones 
allow-transfer {192.168.136.11;};   //允许的主机IP

第三步:设置从服务器的配置
vim /etc/named.conf

第四步:添加从服务器的配置文件
vim /etc/named.rfc1912.zones
zone "clx.com" IN {type slave;    //从服务器类型设置file "clx.com.zone";  //主机提供masters { 192.168.136.133; };  //文件存放在/var/named/slaves下
};

第五步:保存后退出启动服务(有错误,看日志排错) 
 systemctl  start named
第六步:测试
echo "nameserver 192.168.136.11" > /etc/resolv.conf 
#将DNS指向自己
host www.clx.com
host ftp.clx.com

总结:

1. 了解域名的组成部分

2. 了解域名解析中递归查询和迭代解析的原理

3. 学习配置正向和反向域名解析

4. 成功配置主从域名解析服务器

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

SQLite3 数据库学习(一):数据库和 SQLite 基础

参考引用 SQL 必知必会SQLite 权威指南(第二版)关系型数据库概述 1. 数据库基础 1.1 什么是数据库 数据库(database):保存有组织的数据的容器(通常是一个文件或一组文件) 可以将其想象为一个文…

C语言仅凭自学能到什么高度?

今日话题,C语言仅凭自学能到什么高度?学习C语言的决定我确实非常推荐,毕竟它是编程领域的“通用工具”,初学者可以尝试并在发现编程的乐趣后制定长期学习计划。至于能够达到何种高度,这实在无法准确回答。即使是经验丰…

NtripShare Mos地铁自动化监测终端盒子硬件设计

自动化监测产品到目前为止做了接近一年,在软件层面上,控制终端软件、平台软件、网平差算法都已解决,硬件盒子始终是心里过不去的坎,最终还是没有耐住性子自己做了一把。 选型如下: 1、主板:瑞芯微RK3568主板。 2、外…

主流接口测试框架对比,究竟哪个更好用

公司计划系统的开展接口自动化测试,需要我这边调研一下主流的接口测试框架给后端测试(主要测试接口)的同事介绍一下每个框架的特定和使用方式。后端同事根据他们接口的特点提出一下需求,看哪个框架更适合我们。 需求 1、接口编写…

Windows系统下使用docker部署redis

使用虚拟机部署redis,虚拟机很占用电脑资源,所以选择使用docker对redis进行部署。 一、安装docker 安装链接:https://docker.p2hp.com/ 二、配置redis.conf文件 下载配置文件:https://download.redis.io/redis-stable/redis.con…

rabbitMq创建交换机,以及路由键绑定队列教程

创建交换机: 创建队列: 创建路由,绑定到交换机: 补充: 创建新用户后,记得点进用户中,那两个set都点击一下; 还有配置代码连接的时候,连的端口为5672,可不…

【JavaEE】Servlet(创建Maven、引入依赖、创建目录、编写及打包、部署和验证、smart Tomcat)

一、什么是Servlet? Servlet 是一种实现动态页面的技术. 是一组 Tomcat 提供给程序猿的 API, 帮助程序猿简单高效的开发一个 web app 1.1 Servlet能干什么? 🚕允许程序猿注册一个类, 在 Tomcat 收到某个特定的 HTTP 请求的时候, 执行这个类…

Azure 机器学习 - 机器学习中的企业安全和治理

目录 限制对资源和操作的访问网络安全性和隔离数据加密数据渗透防护漏洞扫描审核和管理合规性 在本文中,你将了解可用于 Azure 机器学习的安全和治理功能。 如果管理员、DevOps 和 MLOps 想要创建符合公司策略的安全配置,那么这些功能对其十分有用。 通过…

Linux必备基础命令,JAVA程序员必备

目录 一、了解基本的左侧栏什么意思​编辑 二、ls,ll(list,查找目录内容) 三、cd(change directory,切换目录) 小技巧,我们在查找东西的时候,可以使用tab进行智能补全。 四、touch(建立文件…

R程序 示例4.3.2版本包 在centos进行编译部署

为了在CentOS上下载和编译R语言4.3.2包,可以按照以下步骤进行操作: 1.首先,需要安装一些必要的依赖项。可以使用以下命令安装它们: sudo yum install -y epel-release sudo yum install -y gcc gcc-c gcc-gfortran readline-dev…

RTSP/Onvif安防平台EasyNVR批量禁用/启用通道接口的详细操作步骤

TSINGSEE青犀视频安防监控平台EasyNVR可支持设备通过RTSP/Onvif协议接入,并能对接入的视频流进行处理与多端分发,包括RTSP、RTMP、HTTP-FLV、WS-FLV、HLS、WebRTC等多种格式。在智慧安防等视频监控场景中,EasyNVR可提供视频实时监控直播、云端…

Python爬虫过程中DNS解析错误解决策略

在Python爬虫开发中,经常会遇到DNS解析错误,这是一个常见且也令人头疼的问题。DNS解析错误可能会导致爬虫失败,但幸运的是,我们可以采取一些策略来处理这些错误,确保爬虫能够正常运行。本文将介绍什么是DNS解析错误&am…

RAFT3D 代码复现

代码地址 https://github.com/princeton-vl/RAFT-3D 配置环境 1.创建环境 conda create -n raft3d python3.8 conda activate raft3d2.安装库 conda install pytorch1.8.0 torchvision0.9.0 torchaudio0.8.0 cudatoolkit11.1 -c pytorch -c conda-forgesudo apt-get insta…

linux查看端口占用情况

lsof命令 lsof(list open files)命令可以列出当前系统中打开的所有文件,包括网络端口。可以使用lsof命令查看某个端口被哪个进程占用。 具体的命令为:sudo lsof -i :端口号,其中端口号为需要查询的端口号。 netstat命令 使用netstat命令&a…

使用责任链模式实现登录风险控制

责任链模式 责任链模式是是设计模式中的一种行为型模式。该模式下,多个对象通过next属性进行关系关联,从而形成一个对象执行链表。当发起执行请求时,会从首个节点对象开始向后依次执行,如果一个对象不能处理该请求或者完成了请求…

DefaultListableBeanFactory

DefaultListableBeanFactory 是一个完整的、功能成熟的 IoC 容器,如果你的需求很简单,甚至可以直接使用 DefaultListableBeanFactory,如果你的需求比较复杂,那么通过扩展 DefaultListableBeanFactory 的功能也可以达到&#xff0c…

金蝶云星空和管易云接口打通对接实战

金蝶云星空和管易云接口打通对接实战 对接系统:金蝶云星空 金蝶K/3Cloud结合当今先进管理理论和数十万家国内客户最佳应用实践,面向事业部制、多地点、多工厂等运营协同与管控型企业及集团公司,提供一个通用的ERP服务平台。K/3Cloud支持的协同…

时序数据库 TDengine + 高级分析软件 Seeq,助力企业挖掘时序数据潜力

作为一款制造业和工业互联网(IIOT)高级分析软件,Seeq 支持在工艺制造组织中使用机器学习创新的新功能。这些功能使组织能够将自己或第三方机器学习算法部署到前线流程工程师和主题专家使用的高级分析应用程序,从而使单个数据科学家…

sqlserver查询时去除1900-01-01

在下图示例中“chk_date”字段在数据中显示的是默认时间,如何将这个时间在SQL查询时设为空? cast(nullif(a.chk_date,) as datetime) 确认日期 以上是我的方法。 select chk_date as 日期 from Ixa_payment_req 运行结果是:1900-01-01 00:0…

【移远QuecPython】EC800M物联网开发板的SIM卡初始化和网络状态检测

【移远QuecPython】EC800M物联网开发板的SIM卡初始化和网络状态检测 文章目录 SIM卡初始化导入库获取SIM状态 网络检测导入库等待网络就绪 函数打包附录:列表的赋值类型和py打包列表赋值BUG复现代码改进优化总结 py打包 SIM卡初始化 导入库 import sim获取SIM状态…