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地址。
树状结构最顶层称为根域,用“.”表示,相应服务器称为根服务器,整个域名空间解析权都归根服务器所有,但根服务器无法承担庞大的负载,采用“委派”机制,在根域下设置了一些顶级域,然后将不同顶级域解析权分别委派给相应的顶级域服务器,如将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
www
缓存域名服务器:
只提供域名解析结果的缓存功能,目的在于提高查询速度和效率,
但是没有自己控制的区域地址数据。构建缓存域名服务器时,必须设置根域或指定
其他 DNS 服务器作为解析来源。
主域名服务器:管理和维护所负责解析的域内解析库的服务器
从域名服务器:
从主服务器或从服务器"复制"(区域传输)解析库副本
序列号:解析库版本号,主服务器解析库变化时,其序列递增
刷新时间间隔:从服务器从主服务器请求同步解析的时间间隔
重试时间间隔:从服务器请求同步失败时,再次尝试时间间隔
过期时长:从服务器联系不到主服务器时,多久后停止服务
通知机制:主服务器解析库发生变化时,会主动通知从服务器
IPv4的根名称服务器:全球共13个负责解析根域的DNS服务器,美国10个,英国1,瑞典1,日本1
IPv6的根名称服务器:全球共25个,中国1主3从,美国1主2从
递归查询:一般客户机和本地DNS服务器之间属于递归查询,即当客户机向DNS服务器发出请求后,若DNS服务器本身不能解析,则会向另外的DNS服务器发出查询请求,得到最终的肯定或否定的结果后转交给客户机。此查询的源和目标保持不变,为了查询结果只需要发起一次查询。(不需要自己动手)
迭代查询:一般情况下(有例外)本地的DNS服务器向其它DNS服务器的查询属于迭代查询,如:若对方不能返回权威的结果,则它会向下一个DNS服务器(参考前一个DNS服务器返回的结果)再次发起进行查询,直到返回查询的结果为止。此查询的源不变,但查询的目标不断变化,为查询结果一般需要发起多次查询。(需要自己动手)
递归和迭代都能得到结果
递归只需要问一次
迭代需要问多次
访问www.baidu.com服务器
① 先看我主机的hosts文件,如果有直接访问,如果没有就去找你设置缓存的dns
② 如果缓存服务器有,直接反馈结果(递归),如果没有就需要迭代查询,直接去找根域服务器
③ 由于根域服务器只能解析根,无法解析www.baidu.com 但是根域服务器让你去找一级域服务器
④ 一级域发现自己也解析不了,让你去找二级域
⑤ 二级域发现这台服务在自己的管理范围内,直接反馈结果给缓存服务器
⑥ 缓存服务器再交给客户
① 通过hosts 文件(优先级最高) 分散管理
文件格式:
ip地址 域名
② 安装 dns 服务相关的软件来实现dns解析
集中管理:内网 bind
DNS服务器软件:bind,powerdns,dnsmasq,unbound,coredns
bind:服务器
bind-libs:相关库
bind-utils: 客户端
bind-chroot: 安全包,将dns相关文件放至 /var/named/chroot/
分布式的管理:外网 一级管一级
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地址的对应关系
在新创建配置文件里面进行设置
SOA 记录类型:
A 正向解析(将域名地址翻译成ip地址)
NS 域名服务器
CNAME 别名
PTR 反向解析(将ip地址解析成域名)
解析
如果是当前主机想使用此dns解析
dig www.pj.com @192.168.44.10 使用192.168.44.10服务器来解析
##
检查启动文件格式
named-checkconf
named-checkzone pj.com /var/named/pj.com.zone
rndc是一个远程管理bind的工具,通过这个工具可以在本地或者远程了解当前服务器的运行状况,也可以对服务器进行关闭、重载、刷新缓存、增加删除zone等操作。
设置备胎dns,也就是有至少两个dns
我们拿192.168.44.10为主 192.168.44.20为从
主的主配置文件
主的从配置文件
主的数据库文件配置
检查一下
再添加一个DNS
从的主配置文件配置
从的从服务器的配置文件
验证一下
192.168.44.10 里面的数据库文件进行了修改
192.168.44.20里面解析还是之前的
主 来解析
从 来解析
从只会定时向主汇报更新,如果想快速的,这就需要主主动去寻找从
效果:
DNS分离解析即将内外网的相同域名解析为不同的IP地址。现实网络中一些电商网站为了让用户有更好的体验效果解析速度更快,就把来自不同运营商的用户解析到相对应的服务器这样就大大提升了访问速度。
比如:有两台服务器A和B,其中A在北京,B在上海,我们当然希望北京的用户访问北京的服务器,上海的用户访问上海的服务器,但是服务器对外的地址只有一个,比如www.baidu.com,对内而言我们希望实现分离解析,我们需要一台服务器C,在用户发访问A或B的之前,判断他们属于哪个城市,然后给他们分配服务器.
分离解析的作用:
1.能够区分客户机的来源
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 解析
格式: dig www.pj.com @192.168.44.10
使用192.168.44.10 服务器来解析
① 内容分发网络(Content Delivery Network,CDN)是建立并覆盖在承载网上,由不同区域的服务器组成的分布式网络。
② CDN将源站资源缓存到分属各地域的边缘服务器,利用全球调度系统使用户能够就近获取,有效降低访问延迟,降低源站压力,提升服务可用性。
③ CDN通过广泛的网络节点分布,提供快速、稳定、安全、可编程的全球内容分发加速服务,支持将网站、音视频、下载等内容分发至接近用户的节点,使用户可就近取得所需内容,提高用户访问的响应速度和成功率。
资源分类:
静态资源:不需要服务器二次处理的(图片 text 视频)
动态资源:需要服务器进行二次处理的资源(java php python)
5开头代表服务端错误
4开头代表客户端错误
200 代表正确
304 跳转缓存