Linux的DNS域名解析服务

news2024/11/6 3:09:08

一.DNS基础

1.1 DNS简介

        DNS域名系统 (Domain Name System 缩写为:DNS)是因特网的一项核心服务,它作为可以将 域名 和 IP地址 相互映射的一个分布式数据库,能够使人更加方便的访问互联网,而不用去记住能够被机器直接读取的IP数串。

         实际上,每一台 DNS 服务器都只负责管理一个有限范围(一个或几个域)内的主机域名和 IP 地址的对应关系,这些特定的 DNS 域或 IP 地址段称为 zone(区域)。根据地址解析的方向不同,DNS 区域相应地分为正向区域(包含域名到 IP 地址的解析记录)和反向区域(包含 IP 地址到域名的解析记录)。

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

UDP 53号端口:解析DNS

DNS作用:将域名转换成ip地址的协议

正向解析: 根据域名查找对应的IP地址(A记录)

反向解析: 根据IP地址查找对应的域名(反垃圾邮件的验证)(P记录)

分离解析: 同一个dns服务器,同一个域名情况下,不同网段进行访问会解析出不同的IP地址。

1.2 DNS 数据结构分布

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

例如:www.baidu.com.

.(最右边)    根域

.com          顶级域(一级域)

.baidu        二级域

www          主机名

解析:

根的dns服务器只能解析   主机名+根域

顶级域的dns服务器只能解析   主机名+顶级域+根域

二级域的dns服务器只能解析   主机名+二级域+一级域+根域

根. 根域名DNS服务器:专门负责根域名

一级DNS服务器:专门负责一级域名的解析(一般代表一种类型的组织机构或国家地区)

.com(工商 企业)

.net(网络供应商)

.edu(教育机构)

.cn(中国国家域名)

.org(团体组织)

.gov (政府部门)

二级DNS服务器:专门负责二级域名的解析

.net.cn

.edu.cn

.com.cn

子域名DNS服务器:专门负责子域名的解析 也称为三级域名

.ina.com.cn

.pku.edu.cn

主机站点

tts9

tts6

mail

www

1.3 DNS系统类型

缓存域名服务器:

        只提供域名解析结果的缓存功能,目的在于提高查询速度和效率,

但是没有自己控制的区域地址数据。构建缓存域名服务器时,必须设置根域或指定

其他 DNS 服务器作为解析来源。

主域名服务器:管理和维护所负责解析的域内解析库的服务器

从域名服务器:

从主服务器或从服务器"复制"(区域传输)解析库副本

序列号:解析库版本号,主服务器解析库变化时,其序列递增

刷新时间间隔:从服务器从主服务器请求同步解析的时间间隔

重试时间间隔:从服务器请求同步失败时,再次尝试时间间隔

过期时长:从服务器联系不到主服务器时,多久后停止服务

通知机制:主服务器解析库发生变化时,会主动通知从服务器

IPv4的根名称服务器:全球共13个负责解析根域的DNS服务器,美国10个,英国1,瑞典1,日本1

IPv6的根名称服务器:全球共25个,中国1主3从,美国1主2从

1.4 查询方式

递归查询:一般客户机和本地DNS服务器之间属于递归查询,即当客户机向DNS服务器发出请求后,若DNS服务器本身不能解析,则会向另外的DNS服务器发出查询请求,得到最终的肯定或否定的结果后转交给客户机。此查询的源和目标保持不变,为了查询结果只需要发起一次查询。(不需要自己动手)

迭代查询:一般情况下(有例外)本地的DNS服务器向其它DNS服务器的查询属于迭代查询,如:若对方不能返回权威的结果,则它会向下一个DNS服务器(参考前一个DNS服务器返回的结果)再次发起进行查询,直到返回查询的结果为止。此查询的源不变,但查询的目标不断变化,为查询结果一般需要发起多次查询。(需要自己动手)

递归和迭代都能得到结果

递归只需要问一次

迭代需要问多次

1.5 一次dns解析过程

访问www.baidu.com服务器

① 先看我主机的hosts文件,如果有直接访问,如果没有就去找你设置缓存的dns

② 如果缓存服务器有,直接反馈结果(递归),如果没有就需要迭代查询,直接去找根域服务器

③ 由于根域服务器只能解析根,无法解析www.baidu.com 但是根域服务器让你去找一级域服务器

④ 一级域发现自己也解析不了,让你去找二级域

⑤ 二级域发现这台服务在自己的管理范围内,直接反馈结果给缓存服务器

⑥ 缓存服务器再交给客户

1.6 实现方式

① 通过hosts 文件(优先级最高)  分散管理

文件格式:

ip地址   域名

② 安装 dns 服务相关的软件来实现dns解析

 集中管理:内网  bind

DNS服务器软件:bind,powerdns,dnsmasq,unbound,coredns

  • bind:服务器

  • bind-libs:相关库

  • bind-utils: 客户端

  • bind-chroot: 安全包,将dns相关文件放至 /var/named/chroot/

分布式的管理:外网   一级管一级

1.7 本地名称解析配置文件

Linux:   /etc/hosts

windows :   c:/windows/system32/drivers/etc/hosts


[root@localhost ~]#vim /etc/nsswitch.conf
#修改dns的优先级
hosts:      files dns myhostname
#修改 files和 dns的先后  优先级就不同。如果files在前面,那么file优先级就比较高

1.查看优先级

2. 在配置文件里面设置域名和地址对应

3.使用优先级高的ip

4.进入 /etc/nsswich.conf 调换优先级

二:正向解析资源记录及配置

① 先安装软件

bind  安装包的名字

named   程序的名字

        named程序的主要文件:

/etc/named.conf   主配置文件

/etc/named.rfc1912.zones   子配置文件  域名配置文件

/var/named/数据库文件     定义了域名和ip地址的对应关系

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

③ 域名配置文件 /etc/named.rfc1912.zones

④ 配置正向区域数据文件

在新创建配置文件里面进行设置

SOA 记录类型:

A  正向解析(将域名地址翻译成ip地址)

NS   域名服务器

CNAME   别名

PTR   反向解析(将ip地址解析成域名)  

⑤ 关闭防火墙和防护,启动 named 服务

⑥ 正向解析

6.1 查看dns是否生效

解析

如果是当前主机想使用此dns解析

6.2 dig   解析域名

dig    www.pj.com    @192.168.44.10    使用192.168.44.10服务器来解析

6.3 检查文件格式  

##
检查启动文件格式

named-checkconf

named-checkzone  pj.com   /var/named/pj.com.zone

三.反向解析

① 在正向解析的基础上

修改区域配置文件

② 复制正向解析文件到指定位置

③ 修改数据库文件

④ 重新启动

4.1 rndc  指令

rndc是一个远程管理bind的工具,通过这个工具可以在本地或者远程了解当前服务器的运行状况,也可以对服务器进行关闭、重载、刷新缓存、增加删除zone等操作。 

⑤ 开始反向解析

四.主从服务

设置备胎dns,也就是有至少两个dns

我们拿192.168.44.10为主  192.168.44.20为从

① 192.168.44.10 主的配置

主的主配置文件

主的从配置文件

主的数据库文件配置

检查一下

② 192.168.44.20 从的配置

再添加一个DNS

从的主配置文件配置

从的从服务器的配置文件

验证一下

③ 测试:

④ 主从同步小问题:

192.168.44.10 里面的数据库文件进行了修改

192.168.44.20里面解析还是之前的

主 来解析

从 来解析

4.1 分析

从只会定时向主汇报更新,如果想快速的,这就需要主主动去寻找从

4.2 解决方法:

效果:

五. 分离解析

5.1 了解分离解析

DNS分离解析即将内外网的相同域名解析为不同的IP地址。现实网络中一些电商网站为了让用户有更好的体验效果解析速度更快,就把来自不同运营商的用户解析到相对应的服务器这样就大大提升了访问速度。

比如:有两台服务器A和B,其中A在北京,B在上海,我们当然希望北京的用户访问北京的服务器,上海的用户访问上海的服务器,但是服务器对外的地址只有一个,比如www.baidu.com,对内而言我们希望实现分离解析,我们需要一台服务器C,在用户发访问A或B的之前,判断他们属于哪个城市,然后给他们分配服务器.

分离解析的作用:

1.能够区分客户机的来源

2.为不同类别的客户机提供不同的地址解析
 

5.2 方案:

① 服务器设置

② 从配置文件

③ 数据库文件配置

pj.com.yang   对应 192.168.44.0 段

pj.com.peng  对应 10.0.0.0 段

④ 对应网卡配置

ens33网卡对应192.168.44.0 段

ens36网卡对应10.0.0.0 段

⑤ 重启网卡,然后开启服务

⑥ 测试:

在 win 7 里解析 ,效果应该是 10.0.0.10 解析 

win 10 这里我们用linux测试,效果一样。对应的是 192.168.44.1 解析

六 域名解析工具

6.1 nslookup

6.2 dig

格式: dig  www.pj.com   @192.168.44.10   

        使用192.168.44.10 服务器来解析

6.3 host

七. CDN 内容分发网络

① 内容分发网络(Content Delivery Network,CDN)是建立并覆盖在承载网上,由不同区域的服务器组成的分布式网络。
② CDN将源站资源缓存到分属各地域的边缘服务器,利用全球调度系统使用户能够就近获取,有效降低访问延迟,降低源站压力,提升服务可用性。
③ CDN通过广泛的网络节点分布,提供快速、稳定、安全、可编程的全球内容分发加速服务,支持将网站、音视频、下载等内容分发至接近用户的节点,使用户可就近取得所需内容,提高用户访问的响应速度和成功率。

资源分类:

静态资源:不需要服务器二次处理的(图片  text  视频)

动态资源:需要服务器进行二次处理的资源(java  php  python)

5开头代表服务端错误

4开头代表客户端错误

200 代表正确

304 跳转缓存

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

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

相关文章

企业数据中台整体介绍及建设方案:文件全文51页,附下载

关键词:数据中台解决方案,数据治理,数据中台技术架构,数据中台建设内容,数据中台核心价值 一、什么是数据中台? 数据中台是指通过数据技术,对海量数据进行采集、计算、存储、加工,…

DNS域名解析以及操作流程

dns:将域名转化为IP地址的过程,域名方便人们记忆,ip地址过长,且都是数字,不方便记忆,所以才出现了域名。 怎么实现访问域名等于访问ip地址 1.老方法:写入文件里 /etc/hosts 左边 IP地址 右边域名 格式例…

XSS的利用(包含:蓝莲花、beef-xss)

0x00、环境搭建 dvwa靶场 操作指南和最佳实践:使用 DVWA 了解如何防止网站漏洞_dvwa源代码-CSDN博客 xss漏洞接收平台 下载:GitHub - firesunCN/BlueLotus_XSSReceiver 将解压后的BlueLotus_XSSReceiver原代码放置 phpstudy 安装目录的WWW文件夹下 访问平台:http://127…

N-137基于springboot,vue运动会报名管理系统

开发工具:IDEA 服务器:Tomcat9.0, jdk1.8 项目构建:maven 数据库:mysql5.7 系统分前后台,项目采用前后端分离 前端技术:vueAvueElementUI 服务端技术:springbootmybatis 本项…

XCTF:MISCall[WriteUP]

使用file命令,查看该文件类型 file d02f31b893164d56b7a8e5edb47d9be5 文件类型:bzip2 使用bzip2命令可对该文件进行解压 bzip2 -d d02f31b893164d56b7a8e5edb47d9be5 生成了一个后缀为.out的文件 再次使用file命令,查看该文件类型 file…

WARNING: IPv4 forwarding is disabled. Networking will not work.

今天用docker部署容器,发现一个问题,docker-compose up启动成功,但无法正常访问接口。 查找问题步骤: 1、直接在服务器运行jar包,发现可以正常启动,也能正常访问接口,排除jar包本身问题以及防…

Google推出Telecom Jetpack库,让Android通话应用创建更简单

Google推出Telecom Jetpack库,让Android通话应用创建更简单 Telecom Jetpack库的最新Alpha版本已经推出。该库提供了多个API,以简化Android开发者创建语音和/或视频通话应用程序的过程,支持常见功能,例如接听/拒绝、音频路由等等…

在机械行业中,直线导轨和弧形导轨哪个应用范围更广泛?

弧形导轨和直线导轨是两种常见的导轨类型,直线导轨主要被用于高精度或快速直线往复运动场所,而弧形导轨是一种专门设计用于曲线运动的导轨系统,那么在机械行业中,直线导轨和弧形导轨哪个应用范围更加广泛呢? 直线导轨主…

python如何安装numpy

1. 根据python版本下载相应版本的numpy保存至D:\Program Files (x86)\Python\Python37\Scripts\ numpy下载地址 2. winR,输入cmd,打开命令行窗口,定位到python的安装目录 3. 输入python -m pip install numpy或定位到目录:D:\P…

【STC8A8K64D4开发板】第2-9讲:比较器

学习目的学习比较器的作用和原理。掌握比较器的应用流程包括配置、启动以及中断服务函数的编写。 比较器原理 STC8A8K64D4单片机片内集成了比较器(Comparator),比较器有两个输入端IN(正端输入端)和(负端输…

代码随想录算法训练营第25天 | 216.组合总和III 17.电话号码的字母组合

目录 216.组合总和III 💡解题思路 回溯三部曲 💻实现代码 17.电话号码的字母组合 💡解题思路 # 数字和字母如何映射 # 回溯法来解决n个for循环的问题 💻实现代码 216.组合总和III 题目链接:216.组合总和III …

深度学习笔记(四)——TF2构建基础网络常用函数+简单ML分类网络实现

文中程序以Tensorflow-2.6.0为例 部分概念包含笔者个人理解,如有遗漏或错误,欢迎评论或私信指正。 截图和程序部分引用自北京大学机器学习公开课 TF2基础常用函数 1、张量处理类 强制数据类型转换: a1 tf.constant([1,2,3], dtypetf.floa…

鸿蒙开发环境搭建-高频环境问题解决

1.Node版本问题 由于SDK的部分工具依赖Node.js运行时,推荐使用配套API版本的Node.js,保证工程的兼容性。 匹配关系见下表: API LevelNode.js支持范围API Level≤914.x(≥14.19.1)、16.xAPI Level>914.x&#xff0…

软件测试之项目立项与需求评审

📢专注于分享软件测试干货内容,欢迎点赞 👍 收藏 ⭐留言 📝 如有错误敬请指正!📢软件测试面试题分享: 1000道软件测试面试题及答案📢软件测试实战项目分享: 纯接口项目-完…

ASP .net core微服务实战(杨中科)

背景: 主要是思考下,我们为什么要用微服务? 微服务我现在理解是:提供了我们一种模块化的手段,一个服务负责一种类型的业务,是一种面对复杂问题进行拆分的方式,但是也会引入一些中间件&#xf…

基于爬虫和Kettle的豆瓣电影的采集与预处理

一:爬虫 1、爬取的目标 将豆瓣电影网上的电影的基本信息,比如:电影名称、导演、电影类型、国家、上映年份、评分、评论人数爬取出来,并将爬取的结果放入csv文件中,方便存储。 2、网站结构 图1豆瓣网网站结构详…

Vue3:vue-cli项目创建及vue.config.js配置

一、node.js检测或安装: node -v node.js官方 二、vue-cli安装: npm install -g vue/cli # OR yarn global add vue/cli/*如果安装的时候报错,可以尝试一下方法 删除C:\Users**\AppData\Roaming下的npm和npm-cache文件夹 删除项目下的node…

Vue入门六(前端路由的概念与原理|Vue-router简单使用|登录跳转案例|scoped样式)

文章目录 前要:前端路由的概念与原理1)什么是路由2)SPA与前端路由3)什么是前端路由4)前端路由的工作方式 一、Vue-router简单使用1)什么是vue-router2) vue-router 安装和配置的步骤① 安装 vue-router 包②…

为什么企业容易陷入“自嗨式营销”,媒介盒子分析

互联网时代,各类信息都传播的非常快,同时信息技术的成熟也让许多企业可以监测广告效果,比如曝光、互动、转化等都可以通过数据体现,然而很多企业在营销过程中却发现,大部分的钱、精力、人力等都被浪费了。出现这种情况…

Android开发基础(三)

Android开发基础(三) 本篇将介绍Android权限管理。 Android权限管理 Android权限管理主要是为了保护用户的隐私和设备的安全性; 在Android系统中,应用在请求权限时必须进行明确的申请,根据权限的保护级别&#xff0…