DNS 和 CDN
同比:历史同期数据进行比较
环比:相邻两个月比较
----------------
DNS(Domain name service):域名解析服务,核心是基于一个软件来实现的BIND(Berkeley Internet name Domain)。
域名:www.baidu.com(主机名,FQDN Full Qualified Domain Name完全限定域名,不是域名),域名指的是一个域,而不是一个主机,baidu.com是域名。
解析有两种,正向解析和反向解析
DNS:名称解析,又叫名称转换(因为背后有查询过程,在数据库中),就是实现FQDN<—>IP,
nsswitch:提供名称解析平台(淘宝),可以让别人完成名称解析,负责名称解析的则是一个一个的店铺。
实现名称解析有两种机制:
libnss_files——对应文件libnss_files.so,一种库文件
libnss_dns——对应文件libnss_dns.so,一种库文件
通过nsswitch的平台来调用这两种库。nsswitch平台对应的文件为/etc/nsswitch.conf。
nsswitch配置文件中有一行是hosts:files dns,根据这个顺序去寻找对应的文件,files:/etc/hosts,dns:DNS服务
底层是stub resolvers:名称解析器
hosts:IP FQDN Alias(别名)
主机越来越多,所以出现了一个机构IANA:它是一个*机构,对于其他国家不安全,所以转交给了一个民间组织,叫ICANN。直接管理*域
一个人想要找第一个jerry,第一次来不能直接找,因为不知道有没有jerry所在的这个市,那怎么办?每个层级结构会直接管理自己的直接下级,问它就行了啊。他的上级是他的权威管理,下级是不知道上级的,但是每个人都知道根在什么位置。
*域:TLD(Top Level Domain),一共有三类:组织域(.com/.org/.net),国家域(.cn/.jp),反向域 (IP–>FQDN)
一个主机找另外一个主机时,可以找根,找到之后缓存下来。可以建一个公共服务器,全部缓存在这个服务器中。
递归:缺陷:根就会忙死,所以根是不会给任何人递归的。
st1发出了一次请求,ns发出了三次请求,st1是递归,ns是迭代。得到结果后,ns给本地缓存一份,然后给st1发送一份。那么这个缓存应该保存多长时间?st2得到结果之后,是非权威答案,只有直接上级才是权威答案,缓存多长时间由magedu决定。
ns服务器不仅帮助本地的查询外边的主机,还可以帮助外边的查询本地的主机。
DNS:DNS查询是一个分布式数据库,上级仅知道其直接下级,下级只知道根的位置。
DNS服务器:接受本地客户查询请求(递归),外部客户端请求:请求权威答案(肯定答案或者否定答案)
配置在/etc/resolves中的主机,一定是可以给你权威答案的,如果它给不了,他就要出去替你找,所以不可以是.com等等
DNS的主从:
主DNS服务器:数据修改
辅助DNS服务器:请求数据同步(防止主DNS服务器意外宕掉),定期请求主服务器,检查数据是否一致,如果主服务器真的挂了,辅助DNS服务器会每隔一段时间在次检查一下,如果一直不在线,DNS辅助服务器就会自杀。
辅助服务器的请求数据的配置参数:serial number、refresh、retry、expire、nagative answer TTL。
缓存DNS服务器:只提供缓存功能,但是不提供DNS解析。
数据库中的每一条目称为资源记录(Resource Record,RR)
资源记录的格式:
Name [TTL值] IN(InterNet) 资源记录类型(RR Type) Value
www.baidu.com IN A 1.1.1.1
1.1.1.1 IN PTR www.baidu.com
资源记录类型:
#这条记录必须出现在第一条,用于标识本区域内DNS服务器是如何完成数据同步的
SOA(Start Of Authority)
起始授权机构记录,NS用于标识多台域名解析服务器,SOA记录用于在众多NS记录中标识那一台是主服务器。
ZoneName TTL IN SOA FQDN(主) mailaddress(erial number
refresh刷新时间
retry重试时间
expire过期时间
nagative answer TTL否定回答缓存时间)
@(ZoneName) 600 IN SOA ns1.baidu.com。 mail.baidu.com.(
2019112217
1H
5M
1W
1D)
NS(Name server):zone Name(区域名称)——>FQDN
域名解析服务器记录,用来指定该域名有哪几个DNS服务器进行解析
baidu.com. 600 IN NS ns.baidu.com.
ns.baidu.com. 600 IN A 1.1.1.1
A(address)记录:FQDN——>IPV4
AAAA(address)记录:FQDN——>IPV6
PTR(pointer)记录:IP——>FQDN
反向解析
MX(Mail Exchanger):zone Name——>FQDN
建立电子邮箱服务,将指向邮箱服务器地址
ZoneName TTL IN MX pri(优先级) Value
baidu.com 600 IN MX 10 mail.baidu.com
(优先级从0~99,数字越小优先级越高)
mail.baidu.com 600 IN A 1.1.1.1
CNAME(Canonical name正式名称):FQDN——>FQDN
将别名指向正式名称
www2.baidu.com IN CNAME www.baidu.com
显性URL转发记录和隐形URL转发记录:
相当于重定向,显性的能看出来,隐形的看不出来
正向解析和反向解析:都是一张表,只不过要分开
域和区域:
域(Domain):逻辑概念
区域(Zone):物理概念
域和区域之间没有必然的包含关系,这个级别的域来自于上一个级别的区域的表,所以没有必然关系。正向解析和反向解析都是分开工作的。
向.com申请了baidu.com:
baidu.com IN NS ns.baidu.com
ns.baidu.com IN A 192.168.15.10
baidu.com——>192.168.15.0/24
www 192.168.15.20
mail 192.168.15.30
建立两个区域文件:
正向区域文件:
@(baidu.com) IN SOA #第一条必须是这个
www.baidu.com. IN A 192.168.15.10简写为:www IN A 192.168.15.10(注意不简写一定要加那个点,简写一定不要加点)
反向区域文件:
0.168.192.in-addr-arpa. IN SOA #第一天条必须是这个
10.15.168.192.in-addr.arpa. IN PTR www.baidu.com.(不能简写,默认补齐的是区域名,如果不写,默认补齐的就是0.168.192.in-addr-arpa.)
1 IN PTR www.baidu.com
主服务器更新完成数据更新之后,通知从服务器(虽然没到时间),这个数据传送的过程叫区域传送。
区域传送类型:
完全区域传送:(那一台新的来,一个条目也没有) axfr
增量区域传送:(主服务器更新一条,只同步一条) ixfr
区域类型(传送数据时候的类型):
主区域:master
从区域:slave
提示区域:hint(定义根在什么地方)
转发区域:forward(你也别找根了,也别找.com了,直接转发至相关域)
--------------------
bind的配置文件:
/etc/named.conf——定义bind进程的工作属性,区域的定义
/var/named——区域数据文件
bind-chroot:修改默认的根
DNS:监听的协议及端口:53/UDP、53/TCP,查询的请求都是用的UDP的,因为UDP不用三次握手,速度快,一般从服务器从主服务器上传输数据时候,为了保证数据的完整性需要用到TCP的53,953/TCP,rndc,