关于dns服务工作的原理,和配置的细节理解。
dns服务器相关
1,dns原理,也就是迭代,和递归查询。将域名解析为ip的过程。
一次完整的查询请求经过的流程:
Client -->hosts文件 -->DNS Service Local Cache -->
DNS Server (recursion) --> Server Cache --> iteration(迭代) --> 根
--> 顶级域名DNS-->二级域名DNS…
2,bind搭建步骤
安装相关的3个包。
vim named.conf 将查询改为any
vim named.rfc.conf 之类的文档,添加一个区。
touch 区文件 ,cp -p named.localhost
3,SOA 记录理解。
任何DNS系统返回第一个域名记录就是SOA(Start of Authority),在域名配置中,SOA记录格式如下:
@ IN SOA nameserver.place.dom. postmaster.place.dom. (
1 ; serial number
3600 ; refresh [1h]
600 ; retry [10m]
86400 ; expire [1d]
3600 ) ; min TTL [1h]
使用“dig”时的返回格式为:
nameserver.place.dom. 7200 IN SOA ns1.he.net. postmaster.place.dom. 1 3600 600 68400 3600
其中的每个部分解释如下:
nameserver.place.dom 表示该域中主dns服务的fqdn,后面加点表示绝对名称。
postmaster.place.dom 表示该域中的管理员的电子邮件地址。
@表示该域名称的替代符,以上的@表示 place.dom.。
serial number(序列号):是域名记录的版本,每更改一次域名的任何DNS记录,
版本号就会自动加一,这时secondary dns就会知道DNS记录发生更改,以便重新同步。
refresh(刷新时间):告诉secondary dns多久应该查询primary dns,
看看DNS记录是否有更新。每次查询时,secondary dns会向primary dns请求SOA记录。
如果记录中的serial number跟secondary dns已有的序列号不一样,
则会向primary dns请求传送域名的当前的DNS记录。
retry(重试时间):如果想primary dns请求传送域名当前的DNS记录失败后,
间隔重试时间后再次重试请求。一般来说,retry小于refresh。
expire(过期时间):在过期时间之前,secondary dns会继续请求传送DNS记录,
并且在此时间里,secondary dns会根据已有的记录应答相关的DNS查询。
如果到了过期时间后,secondary dns会停止应答该域名的DNS查询。
min TTL(最小TTL):域名所有记录的最小生存时间值。当用户DNS查询到记录后,
将存在缓存中,直到至少过了这个时间才将缓存刷新重新查询。
有的DNS服务器还会有Negative caching TTL,就是当用户DNS查询到无此域名记录(NXDOMAIN)时,
将把这个“没有此域名的记录”的声明保存在缓存中的时间。
4,NS记录的理解。
NS记录
(1)NS记录是域名DNS服务器里面的一种记录类型,
可以针对每个域名或子域名来设定他的NS记录,
当设定后,相当于把他的解析权交给了对应的DNS。
(2)NS记录的用途:CDN或负载均衡时使用。
(3)NS记录最主要的作用就是授权,授权自己的域的解析服务器,并且能够向下授权,
授权给不同的子域。迭代查询的过程应该就是不停的查询区域文件中的NS记录,和
对应的NS主机ip地址。
NS Name Server 即DNS的NS记录 是用来做授权的
向下授权 用来指定该域名由哪个DNS服务器来进行解析
举例说明:
.com域中授权abc.com,需要在 .com中的dns服务器上设置 NS记录
$ORIGIN com.
abc IN NS ns1.abc.com.
abc IN NS ns2.abc.com.
ns1.abc IN A 1.2.3.4
ns1.abc IN A 1.2.3.5
然后自己架设的abc.com 域中的dns服务器上加上自己的NS记录。
$ORIGIN abc.com.
@ IN NS ns1.abc.com.
@ IN NS ns2.abc.com.
ns1 IN A 1.2.3.4
ns2 IN A 1.2.3.5
如此,就完成了授权
5,fqdn是什么意思?
FQDN:(Fully Qualified Domain Name)全限定域名:同时带有主机名和域名的名称。(通过符号“.”)
例如:主机名是bigserver,域名是mycompany.com,那么FQDN就是bigserver.mycompany.com。
6,配置反向解析时的文件名形式不固定。
7,鸟哥关于合法的dns授权理解。
就是NS记录的内容,授予权利这个网域的dns主机。合法的授权必须向上层申请。
举个例子来说:我想要自己的领域名称的名字,所以我可以去外面的 ISP 申请注册一个合法的名
字来架设我的 DNS !从此之后,别人就可以经过我的 DNS 正解查询得到我的主机 IP。但是如果
要由 IP 反查回 hostname 的话,我就『一定必需要』请管理我主机所在网域的上层的 DNS 管理
员来设定才行ㄋㄟ!这也是目前比较麻烦的地方,因为正解您可以自行设定, 但是反解则必需要
请上层的管理员设定!如果是向 ISP 申请的 IP ,那就得向 ISP 申请反解名称改换,这个部分
通常很麻烦~
8,使用直接域名解析和泛解析的记录添加示例。
直接域名解析需要再添加一条记录。在www 那条记录下面最好,因为一般都是web服务直接解析。
feng.cn IN A 192.168.0.5 或者
. IN A 192.168.0.5
泛解析就前面加一个*号,表示全部。
*.feng.cn IN A 192.168.0.5
* IN A 192.168.0.5
9,高速缓存dns 只需要安装了 caching-nameserver 软件包即可。设置缓存服务时,
通常设置域名转发器。
10,如何测试正反解是否成功?
正解和反解都是向区文件里添加记录。用dig 测试 正解。dig -x 测试反解,看看query和answer
是否正确。
11,dns系统里面的ip都可跨网段,不必都需要在相同网段里。
12,dns的主从配置,添加slave。
主配置文件中加个 allow-transfer { 192.168.1.77; };
从配置文件中加上 masters { 192.168.1.88; };
13,配置dns主从同步后不成功。查看日志后,/var/log/message 中报错
dumping master file: tmp-1rYIymo1zo: open: permission denied
解决:chown named /var/named
14,关于域中的管理员邮箱地址和MX记录的区别。
SOA中的 第一行配置中括号前为dns域中的管理员邮箱地址。
MX记录指的是指定用来交换或者转发邮件信息的服务器。
15,dns正解的原理容易明白,但是dns反解的原理尚待清晰理解。
总之,正反解格式不同,但是又相近。
16,域名,主机名,用户名,三者必须区分开来。
以linux系统为例,[root@tao-ffy-v4-mail ~]#
上述root 为用户名,@后名接的是就是域中的主机名,这个区域的域名没有显示出来。
一般邮箱的账号格式都是 “用户名@域名“”
关于dns服务工作的原理,和配置的细节理解。的更多相关文章
- Windows中的DNS服务——正向解析&反向解析配置 分类: AD域 Windows服务 2015-07-16 20:21 19人阅读 评论(0) 收藏
坚信并为之坚持是一切希望的原因. DNS服务是AD域不可或缺的一部分,我们在部署AD域环境时已经搭建了DNS服务(windows server 2008 R2域中的DC部署),但是DNS服务的作用还是 ...
- centos的DNS服务工作流程及搭建
1 什么是DNS? DNS(Domain Name Server,域名服务器)即域名解析服务,是进行域名(domain name)和与之相对应的IP地址 (IP address)转换的服务器.DNS ...
- centos DNS服务搭建 DNS原理 使用bind搭建DNS服务器 配置DNS转发 配置主从 安装dig工具 DHCP dhclient 各种域名解析记录 mydns DNS动态更新 第三十节课
centos DNS服务搭建 DNS原理 使用bind搭建DNS服务器 配置DNS转发 配置主从 安装dig工具 DHCP dhclient 各种域名解析记录 mydns DNS动态更 ...
- 简单谈谈DNS的工作原理及实践
DNS协议简介 dns(Domain Name System)是一个全球化的分布式数据库系统,用于存储域名和互联网IP地址的映射关系.dns协议是计算机协议栈应用层中,应用最广泛的协议之一.用户每一次 ...
- DNS的工作原理及解析
DNS协议是互联网核心协议之一.不管是上网浏览,还是编程开发,都需要了解一点它的知识. 一.什么是DNS? DNS( Domain Name System)是“域名系统”的英文缩写,是一种组织成域层次 ...
- DNS解析原理与Bind部署DNS服务
DNS是什么? DNS(Domain Name System,域名系统)是互联网上最核心的带层级的分布式系统,它负责把域名转换为IP地址.反查IP到域名的反向解析以及宣告邮件路由等信息,使得基于域名提 ...
- [转帖]keepalived工作原理和配置、使用
keepalived工作原理和配置.使用 https://www.iteye.com/blog/aoyouzi-2288124 keepalived是什么 keepalived是集群管理中保证集群高可 ...
- dns服务的基本配置
本文环境:CentOS 7 简介 DNS(Domain Name System)即域名服务系统,是Internet上用的最频繁的服务之一,它的本质是一个范围很广的分布式数据库,组织成域层次结构的计算机 ...
- Liunx下配置DNS服务
当Ping 主机名时可以映射出该主机的IP地址,反之亦然.配置并指定DNS服务器可以快速部署集群,不需要每台主机都去修改HOSTS文件即可实现IP与主机名的相互解析.而在Linux下的DNS是用bin ...
随机推荐
- ci框架 自定义配置方法
系统自动在Application文件夹下生成的config.php文件,采用key-value关联数组的形式来存放配置项和值.为了使结构更清晰,手动新建另外一个配置文件myconfig.php,所采用 ...
- 鸿蒙内核源码分析(GN应用篇) | GN语法及在鸿蒙的使用 | 百篇博客分析OpenHarmony源码 | v60.01
百篇博客系列篇.本篇为: v60.xx 鸿蒙内核源码分析(gn应用篇) | gn语法及在鸿蒙的使用 | 51.c.h.o 编译构建相关篇为: v50.xx 鸿蒙内核源码分析(编译环境篇) | 编译鸿蒙 ...
- P4233-射命丸文的笔记【NTT,多项式求逆】
正题 题目链接:https://www.luogu.com.cn/problem/P4233 题目大意 随机选择一条有哈密顿回路的\(n\)个点的竞赛图,求选出图的哈密顿回路的期望个数. 对于每个\( ...
- python3之工程中必须依赖的__init__.py
1. __init__.py 1.1 什么是__init__.py 在Python3工程里,当python3检测到一个目录下存在__init__.py文件时,Python3就会把它当成一个模块(m ...
- Skywalking-09:OAL原理——如何通过动态生成的Class类保存数据
OAL 如何通过动态生成的 Class 类,保存数据 前置工作 OAL 如何将动态生成的 SourceDispatcher 添加到 DispatcherManager // org.apache.sk ...
- 10-Java中共享内存可见性以及synchronized和volatile关键字
Java中共享变量的内存可见性 我们首先来看一下在多线程下处理共享变量时Java的内存模型,如图所示 Java内存模型规定,将所有的变量都存放在主存中,当线程使用变量的时候,会把主内存里面的变量赋值到 ...
- 一个故事,一段代码告诉你如何使用不同语言(Golang&C#)提供相同的能力基于Consul做服务注册与发现
目录 引言 什么是微服务 传统服务 微服务 什么是服务注册与服务发现 为什么要使用不同的语言提供相同的服务能力 服务协调器 服务注册 Golang C#(.NetCore3.1) 服务发现 通过Htt ...
- 踩坑系列《二》NewProxyResultSet.isClosed()Z is abstract 报错踩坑
在运行测试类的时候莫名其妙的报了个 NewProxyResultSet.isClosed()Z is abstract 这个错误,之前出现过这个错误,以为是版本出现了问题 就将版本 0.9.1.2 改 ...
- B站视频:【Creator3】好玩的编队代码 魔性排列停不下来 附源码及出处
这次带来一个有趣的编队代码,简单的算法得到令人惊叹的编队队形,叹为观止,前几天刷视频的时候看到一个有趣的展示,来自youtube大神:Tarodev的队形计算展示< Fun with Forma ...
- 密码学系列之:加密货币中的scrypt算法
目录 简介 scrypt算法 scrypt算法详解 scrypt的使用 简介 为了抵御密码破解,科学家们想出了很多种方法,比如对密码进行混淆加盐操作,对密码进行模式变换和组合.但是这些算法逐渐被一些特 ...