Linux的DNS域名解析服务

一.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-checkconfnamed-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.hqwc.cn/news/344081.html

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

相关文章

依赖注入的优缺点与最佳实践

1 什么是依赖注入 依赖注入,全称Dependency Injection,简称DI。 在我们深入探讨之前,先来聊聊“依赖”和“注入”这两个比较术语的词。打个比方,你可以把“依赖”想象成电器设备的外接电线,而“注入”就像是把这根电…

专业课120+总分380+海南大学838信号与系统考研经验分享-电子信息,信息与通信,人工智能,生物医学

今年专业课120,总分380顺利被海大录取,总结一下这一年来的复习经验,希望对大家复习有借鉴。特别提醒这两年专业课海南大学838信号与系统难度比较大,还考察了IDTFT,DTFT等,对离散域的考察颇多,不…

简单二分图判定与最大匹配算法

前言 二分图,又称二部图,英文名叫 Bipartite graph。 通俗一点就是一个无向图如果能划成两个非空点集,且两部分内部没有边,则这是一张二分图。 如果从颜色的角度来说,就是把节点染成黑色/白色,并且使得没…

Python--函数

函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段。 函数能提高应用的模块性,和代码的重复利用率。你已经知道Python提供了许多内建函数,比如print()。但你也可以自己创建函数,这被叫做用户…

LeetCode刷题.14(不用算法解决1557. 可以到达所有点的最少点数目)

给你一个 有向无环图 , n 个节点编号为 0 到 n-1 ,以及一个边数组 edges ,其中 edges[i] [fromi, toi] 表示一条从点 fromi 到点 toi 的有向边。 找到最小的点集使得从这些点出发能到达图中所有点。题目保证解存在且唯一。 你可以以任意顺…

电脑桌面便签在哪里设置?Win10电脑桌面便签设置指南

很多上班族在使用Win10电脑办公时,需要随时记录工作事项。例如,需要参加一场紧急会议但时间不确定,或者在电话沟通时需要记下重要的信息,甚至可能是需要快速记录工作计划、想法或者临时安排的场景。在这些情况下,如果有…

opencv拉流出现missing picture in access unit with size 4错误解决

0、应用场景问题 我们使用opencv作为拉流客户端,获取画面后进行图像处理并推流(使用ffmpeg库)。 opencv解码同样使用ffmpeg库。 我们要求opencv能根据业务不断进行拉流操作,等效的逻辑代码如下: while(1) {printf(&…

【Spring 篇】基于注解的Spring事务控制详解

嗨,亲爱的读者朋友们!欢迎来到这篇关于基于注解的Spring事务控制的博客。如果你曾为事务处理而头痛,那么这里将为你揭开事务的神秘面纱。我们将一步步深入探讨Spring事务的世界,用简单易懂的语言、充满情感色彩的文字,…

paddleocr的基本使用

paddleocr是paddlepaddle专门做ocr的库,我们简单用一下 参考 PaddleOCR—图片文字识别提取—快速使用教程_paddleocr使用教程-CSDN博客 目录 1 安装 1.1 前言 1.2 安装paddleocr 1.3 安装paddlepaddle 1.4 安装cuda 1.5 安装cudnn 1.6 配置 zlibwap…

C/C++--ProtoBuf使用

一.什么是ProtoBuf 1.序列化和反序列化概念 序列化:把对象转变为字节序列的过程,称为系列化。 反序列化:把字节序列的内容恢复为对象的过程,称为反序列化。 2.什么情况下需要序列化和反序列化 存储数据:将内存中的对象…

Jmeter接口自动化02--JMeter的安装和使用

p02 高清B站视频链接 2.1 Windows环境 首先需要安装JDK,然后再部署JMeter。注意,JMeter对JDK的版本是有要求的,一般至少要JDK8,这也是目前开发过程中使用频繁的版本。 1. 安装JDK 从官网下载JDK:https://www.oracl…

Transformer详解【学习笔记】

文章目录 1、Transformer绪论2、Encoders和Decoder2.1 Encoders2.1.1 输入部分2.1.2 多头注意力机制2.1.3 残差2.1.4 LayNorm(Layer Normalization)2.1.5 前馈神经网路 2.2 Decoder2.2.1 多头注意力机制2.2.2 交互层 1、Transformer绪论 Transformer在做…