DNS(Domain Name Server)域名解析服务php
www.baidu.com 称为FQDN(Full Qualified Domain Name)彻底限定域名又叫作主机名mysql
baidu.com(域名) .com(域明) sql
Nsswitch:为多种须要进行解析的机制提供一个名称解析的平台;如端口--服务(80--http、23--telete、ssl--2二、https--44三、php--9000、mysql--3306等),root--rootID等数据库
注:Nsswitch仅仅提供了一个平台,而不是本身进行解析缓存
Nsswitch框架经过/etc/nsswitch.conf配置文件进行展现安全
如:hosts: files dns 表示进行域名解析时先找/etc/hosts文件,若是没有在查找DNS服务器服务器
通常来讲应用程序经过Nsswitch品台调用libnss_files.so和libnss_DNS.so这两个库进行域名解析框架
stub resolve(名称解析器)这个程序会在Nsswitch.conf文件中根据配置找files和dns进行解析分布式
例:ide
ping www.baidu.com
stub resolve 会先根据nsswitch.conf中的files找/etc/hosts文件
IANA(互联网地址分配机构)
ICANN(管理顶级的域,名称)
IANA和ICANN有本身的DNS服务器,并且它采起向下受权和分布式数据库进行DNS的管理
. 表明根域,全球共有13台根服务器 a.root-server.net -- m.root-server.net(亚洲只有日本有一台)
.net .org .com .cn 这些属于顶级域
baidu 163 google 这些属于二级域名
www 通常为主机名,全球叫www的主机名太多了
顶级域又有:
国家域: .cn , .hk , .jp等
组织域: .com,.org, .net等
反向域:将ip 转换为FQDN
注:. .com .net 这些DNS服务器为了安全通常来讲不给任何人进行DNS查询(不进行递归),且通常来讲上级只知道它的直接下级是谁,而下级只知道根
递归: A找B,B在找C,B从C出获得结果在返回给A
迭代: A找B,B让A找C,A去找C获得结果
而对DNS查询来讲:从客户端到DNS服务器(本地NS)为递归,而从本地NS日后为迭代
例:st.ibm.com. 要找 www.baidu.com.的IP
st先去找本地的NS
本地NS收到st的请求后去找.
.将.com的IP告诉st本地的NS
st本地的NS去找.com
.com将baidu的NS的IP告诉st的NS
st本地的NS去找baidu的NS
baidu的NS知道本身管理着一台叫www的主机,从而将www.baidu.com.的ip和ttl返回给st的NS
st的NS将www.baidu.com的IP返回给st.ibm.com这个主机
DNS服务器:
接受本地客户端的查询请求(进行递归操做)
接受外部客户端请求本地管理的客户端的IP(即外部客户端请求本地NS的权威答案)
注:只有本地NS知道本地管理的服务器的IP(即权威答案)
而权威答案有分为:确定答案(本地有你要找的主机)+ttl;否认答案(本地没有你找的主机)+ttl(防止不断的强求问本地NS有没有它找的主机)
接受外部的非权威答案(本地主机请求的不是本地的NS,而是其余外部的NS)
主从DNS:主DNS服务器--进行数据修改
从服务器:请求主DNS服务器进行数据同步
此外还有
缓存DNS服务器:只缓存DNS解析,不提供任何权威答案
转发器:不提供任何权威答案,也不进行DNS解析缓存,只进行请求的转发
如:有一个主机要请求
www.baidu.com的ip,但它既不能上网也连不到本地的NS,这是只能先将DNS解析请求转发的转发器,再由转发器将请求转发到本地NS,获得结果后在将结果转发给这台主机
数据库中DNS资源的记录格式
Name TTL IN RRT(资源记录类型) Value
资源记录类型又分为
A: FQDN--> IPV4
AAAA: FQDN-->IPV6
PTR(pointer):IP-->FQDN 反向解析
例
www.zxl.com. 600 IN A 1.1.1.1 这是一个正向解析的A记录
1.1.1.1 600 IN PTR www.zxl.com 这是一个反向解析
NS(Name Server)管理一个或者多个域: zone name --> FQDN
注:每一个NS类型的记录都要有一个A记录
例:
baidu.com. 600 IN NS ns.baidu.com
ns.baidu.com. 600 IN A 2.2.2.2
MX(mail exchange)邮件记录:zone name -->FQDN
注:MX记录也要有A记录,且MX记录有优先级(0--99),数字越小级别越高(即最早找这台主机)
例:
google.com. 600 IN MX 10(优先级为10) mail.google.com.
mail.google.com 600 IN A 3.3.3.3
SOA(start of authority):标示一个区域中主从服务器之间如何同步数据及起始受权对象是谁
Zone Name TTL IN SOA FQDN 管理员邮箱( 版本号
刷新时间
重试时间
过时时间
否认答案的TTL)
例:
baidu.com. 600 IN SOA ns1.baidu.com. admin.baidu.com(
2017022001
1H
5M
1W
1D)
版本号(2017022001):从服务器每隔一段时间检查本身与主服务器的版本号,若是不一致就对数据进行跟新
Refresh(1H):刷新时间,告诉从服务器每隔多久检查一次版本号
Retry(5M):重试时间,若是从服务器超过刷新时间仍然没法访问主服务器,则从服务器每隔多长时间再从新访问一次主服务器
expire(1W):过时时间,过时时间超事后,从仍然链接不上主,则从转换为主
nagative answer ttl(1D):否认答案的ttl,防止告诉对方本地没有它要找的主机后,一直不断的进行询问
邮箱格式:admin@baidu.com 要写成 admin.baidu.com
ttl单位: M(分钟) H(小时) D(天) W(周) 默认为秒
CNAME(正式名称|别名记录): FQDN-->FQDN
例:
www1.baidu.com 600 IN CNAME www.baidu.com
表示www2的正式名称为www,www有一个别名叫www2
DNS的创建(创建两个区域文件)
正向区域文件
baidu.com. 600 IN SOA ns1.baidu.com admin.baidu.com( 2017022101
1H
5M
1W
1D)
www.baudu.com. 600 IN A 192.168.139.1
www(简写) 600 IN A 192.168.139.1
反向区域文件
139.168.192.in-addr.arpa 600 IN SOA ns1.baidu.com admin.baidu.com( 2017022101
192.168.139.0网段的反写 1H
5M
1W
1D)
1.139.168.192.in-addr.arpa 600 IN PTR www.baidu.com
1(简写) 600 IN PTR www.baidu.com
注:A、AAAA、MX只适用于正向,PTR只适合于反向,NS能够正向也能够反向,SOA必须为开始
区域传送:主DNS的记录一旦发生改变,马上通知从DNS服务器进行数据同步(无论是否是刚刚同步完)
区域传送类型
axfr(彻底区域传送):从服务器上什么记录也没有,将主的全部记录都传送过去
ixfr (增量区域传送):从服务器只传送主服务器上发生改变的记录
区域类型
主区域:master
从区域:slave
提示区域:hint(定义根在哪里)
转发区域:forward