DNS学习
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了DNS学习相关的知识,希望对你有一定的参考价值。
DNS基础学习
DNS
DNS是工作在应用层上的一种协议 当我们在浏览器的文本框内输入一个网站时 其实访问的是一个服务器(可能是一台pc 或者其他类似的设备) 但是仅靠这个网站名 我们不知道他背后的ip地址 就无法建立http协议(建立前需三次握手 三次握手的建立是依靠ip的)从而就无法浏览网页 而dns协议可以帮我们把域名(所谓的网站名 例如www.baidu.com)解析为对应的ip 方便我们浏览网页
DNS解析
一次完整的DNS查询请求
step1:查询本地的hosts文件
windows 在 C:\Windows\System32\drivers\etc 下
Linux在/etc/hosts中
如果没有对应的匹配 就会进入下一个阶段寻找
step2:查询本地的dns local cache
step3:查询 dns server
如果是dns负责解析的域 查询数据库 返回请求
step4:如果不是dns server 负责的域 从根服务器开始递归查询
DNS服务器
主dns服务器:
维护负责解析域的数据库的那台服务器,读写操作均可进行
从dns服务器:
从主dns服务器复制的一份解析库,但只可进行读操作
复制的实施方式:
复制依据以下的几个参数进行
序列号:数据库的版本号;主服务器数据库内容发生变化时,版本号递增
刷新时间间隔:从服务器多久到主服务器查询一次序列号更新状况
重试时间间隔:retry,从主服务器请求同步解析失败时,再次发起尝试请求时间间隔
过期时长:从服务器始终联系不到主服务器时,多久之后放弃从主服务器同步数据,停止提供服务
否定答案的缓存时长
主服务器通知从服务器随时更新数据
区域和域
域名-->ip
正向解析库
正向解析库和正向解析功能结合起来就是一个正向解析区域
ip-->域名
反向解析库
正向解析库和反向解析功能结合起来就是一个反向解析区域
一个域至少包含这两个区域(正反向解析区域)
但是域不一定比区域大 (三级域和顶级区域相比较)
区域数据库文件:
资源记录RR:
记录有类型:A.AAA.PTR.SOA.,NS,CNAME,.,MX
SOA:起始授权记录,一个区域解析库有且只能有一个,且须放在第一条
NS:域名服务记录,一个区域解析库可以有多个,其中一个为主
A:地址记录 域名-->IPV4
AAAA:地址记录 域名-->IPV6
CNAME:别名记录:
PTR:ip-->域名 反向解析
MX:邮件交换器
优先级:0-09 数字越小优先级越高
区域数据库文件:
资源记录RR:
记录有类型:A.AAA.PTR.SOA.,NS,CNAME,.,MX
SOA:起始授权记录,一个区域解析库有且只能有一个,且须放在第一条
NS:域名服务记录,一个区域解析库可以有多个,其中一个为主
A:地址记录 域名-->IPV4
AAAA:地址记录 域名-->IPV6
CNAME:别名记录:
PTR:ip-->域名 反向解析
MX:邮件交换器
优先级:0-09 数字越小优先级越高
资源记录的定义格式
语法:name 【TTL】 IN RR—TYPE value
·SOA:name:当前区域的名字:例如“xiaoyu.com”
value:有多部分组成
1)当前区域的区域名称(也可以使用主DNS服务器名称)
2)当前区域管理员的邮箱地址:地址中的@一般用点号来代替
3)(主从服务协调属性的定义以及否定答案的TTL)
例如:xiaoyu.com 86600 IN SOA xiaoyu.com admin.xiaoyu.com (digit)
NS:
name:当前区域的区域名称
value:当前区域的某dns服务器的名字,例如:ns.xiaoyu.com
一个区域可以有多个ns记录
例如:
xiaoyu.com 86400 IN NS ns xiaoyu.com
MX:
name:当前区域的区域名称
value:当前区域的某邮件交换器的主机名字,
MX记录可以有多个,但每个记录的value之前应该由一个数字表示优先级
例如:
xiaoyu.com IN MX 10 xiaoyu.com
A:
name:某域名
value:某个IP地址,
例如:www.xiaoyu.com IN A 1.1.1.1
www.xiaoyu.com IN A 2.2.2.2
PTR
name:IP地址,有特定格式,IP反过来写,而且加特定后缀,
例如:1.2.3.4 的记录应该写成 4.3.2.1In-addr.arpa.
例如:4.3.2.1.in-addr.arpa. IN PTR www.xiaoyu.com
注意:
1)TTL可以从全局继承
2)@表示当前区域的名称
3)相邻的两个记录name相同时,后面的可以省略
4)对于正想区域来说,MX,NS等类型的记录value为FQDN,此时应该有一个A记录
DNS配置正向和反向区域
配置解析一个正向区域
以xiaoyu.com域为例:
step 1 定义区域
在主配置文件中或主配置文件辅助配置文件中实现
zone "zone_name" IN {
type {master|slave|hint|forward}
对应的 主服务器 | 从服务器 | 根服务器| 转发服务器
file “ZONE_NAME.zone” 指定文件存放位置
如果相对路径 就在/var/named下放至
也可指定绝对路径
};
step2 建立区域数据文件
在/var/named/目录下建立区域数据文件
step3 让服务器重载配置文件个区域数据文件
rndc reload
step4:测试
配置解析一个反向区域
以xiaoyu.com域为例:
step 1 定义区域
在主配置文件中或主配置文件辅助配置文件中实现
zone "zone_name" IN {
type {master|slave|hint|forward}
对应的 主服务器 | 从服务器 | 根服务器| 转发服务器
file “ZONE_NAME.zone” 指定文件存放位置
如果相对路径 就在/var/named下放至
也可指定绝对路径
ps:反向区域的名字
反写的网段地址:in-addr.arpa
例:80.168.192.in-addr.arpa.
};
step2 建立区域数据文件(主要记录为PTR)
在/var/named/目录下建立区域数据文件
step3 让服务器重载配置文件个区域数据文件
rndc reload
step4:测试
以上是关于DNS学习的主要内容,如果未能解决你的问题,请参考以下文章
Kotlin学习之旅解决错误:kotlin.NotImplementedError: An operation is not implemented: Not yet implemented(代码片段