DNS分布均衡(Load balance)的实现
在上级数据库中写两条记录(同一个名字对应对个IP时),DNS会自动将请求基于轮循方式,分给每个DNS服务器
例如:
第一次将请求给第一个DNS,第二次将请求给第二个DNS,... 依次循环
注:客户端连接第一个主机连接不上时,将请求都给第二个主机,linux还可以给第三个DNS服务器
第一个找不到时,不会再让第二个DNS、第三个DNS去找(因为根域都找不到)
DNS分布式特点
基于授权将功能分散出去,让多个主机分别处理
数据放在多个位置,导致数据在多处存储不一致,数据访问的不确定结果
一致性:任何时候,每个主机返回数据是一致的
分区容错性:DNS,一个主机不在线时,另一个主机允许继续提供服务(分布式系统都应该满足)
结果可用性:DNS,任何时候,无论有多少个主机宕机,都能得到结果(不确定结果)
E.g DNS域名分布式
满足分区容错性,结果可用性
牺牲一致,但最终结果一致
缓存定义、作用、多级缓存
缓存:进程内存中维护的一段内存空间
hash:名称<Domain>-----值<IP>
查询:O(1)
失效前,一直都在使用缓存
缓存的作用
缓存时长:TTL
长:长时间内,都能快速解析。别人修改无从得知
短:数据实时一致,服务器压力、负荷大,带宽消耗多
多级缓存
客户端<程序提供的缓存>------》DNS<本地:提供缓存>-----》迭代得出结果
.CN域名属中国国别域名,CNNIC是注册局,CN含义为中国。注册时要求实名。.COM域名属国际通用域名,ICANN是注册局,含义为公司,但任何人都可注册,且不强制实名。 区别如下: 1、访问范围与使用范围 com和.cn域名均可全球访问,并允许企业和个人注册,.com的使用范畴和基础人群更大一些。 2、注册管理地点 .cn域名注册管理是在中国,成功后必须要提供真实有效的资料,审核通过后才能正常使用;.com域名注册管理在美国,并不强制要求提供资料。 3、国家范围 .cn为中国国别域名,.com为国际域名。 4、注册要求 .cn注册必须实名,.com则不一定实名。 5、域名顶级类别 .com 是国际顶级域名;而.cn 是国家级顶级域名 6、使用角度 .com 是立即注册就立即成功,就直接可以做解析使用 ;而.cn 只能公司注册,需要提供公司的相关证件审核通过才算注册成功,而且注册成功了之后默认是锁定状态,需要提供备案号或者绑定海外空间解锁申请给域名商才能解锁做解析。
一次完整的解析请求
1)本地主机发起递归,运营商缓存DNS迭代
2) 本地主机发起递归,本地缓存DNS迭代
一、区域解析库:由众多RR组成
资源记录:Resource Record ---RR 详细记录所有主机名和IP对应的关系
记录类型:A,AAAA,PTR,SOA,NS ,CNAME,MX
SOA:Start Of Authority 起始授权记录-----一个区域解析库有且仅能有一个SOA记录,而必须为解析库的第一条记录
在解析库第一条
只能有一个SOA记录
A:internet Address 作用FQDN--->IP
AAAA :FQDN---> IPv6
PTR:PoinTeR(指针) ,IP --->FQDN
NS : Name Server ---专用于标明当前区域的负责人DNS服务器
CNAME:Canonical Name 别名记录
MX:Mail eXchanger 邮件交换器---标明当前域内用于接收邮件的主机
二、资源记录定义的格式:
语法:name [TTL] IN RR_TYPE vlaue
1)TTL: 可从全局继承,解析结果的缓存时长,单位是"s" 秒;IN:internet
2)@ 可用于引用当前区域的名字
3)相邻多个资源记录,name相同时,可以省略name
4)每个NS,MX记录对应一个A记录
2.1、SOA记录(起始授权记录)
name-----当前区域的名字(正、反) 例如:"magedu.com."
value-----由多部分组成
当前区域的主DNS服务器的FQDN,也可以使用当前区域的名字
主DNS名或区域名(@)
当前区域管管理员邮件地址(不能用@,需.替代):linux@magedu.com. -----》linux.magedu.com.
(主从DNS服务器协调属性及否定答案的统一TTL值)
(
serial <=10位 ; 表示序列号 而分号表示注释
refresh ; 刷新
retry ; 重试
expire ; 过期
TTL ; 否定答案的TTL
)
默认s
出现在解析库中任何一个名字,都需要最后加一个点结尾,必不可少的
例如: magedu.com. 86400 IN SOA ns.magedu.com. nsadmin.magedu.com. ( 20170916 ; serial 10M ; refresh 5M ; retry 1W ; expire 1D ; TTL )
2.2、NS 记录
name-----当前区域名字
value-----当前区域某DNS服务器的名字,例如:ns.magedu.com.
注:一个区域可以有多个NS记录,需要多条记录来实现
相邻的两个资源记录的name相同时,后续的可省略
对NS记录而言,任何一个ns记录后面的服务器名字,都应该在后续有一个A记录
E.g:
magedu.com. [86400] IN NS ns1.magedu.com.
magedu.com. [86400] IN NS ns2.magedu.com.
magedu.com. [86400] IN NS ns3.magedu.com.
或简写
magedu.com. [86400] IN NS ns1.magedu.com.
[86400] IN NS ns2.magedu.com.
[86400] IN NS ns3.magedu.com.
2.3、MX记录
name-----当前区域的名 value------当前区域的某邮件服务器(smtp服务器)的主机名,
一个区域内,MX记录可有多个;但是每个记录的value之前应该有一个数字[0-99:优先级递减]表示此服务器的优先级:数字越小优先级越
注:对MX记录而言,任何一个MX记录后面的服务器名字,都应该在后续有一个A记录
E.g: magedu.com. [86400] IN MX 10 mx1.magedu.com. magedu.com. [86400] IN MX 20 mx2.magedu.com.
2.4、A记录
name-----某主机的FQDN
value-----主机名对应主机的IP地址
E.g
www.magedu.com. [86400] IN A 1.1.1.1
www.magedu.com. [86400] IN A 1.1.1.2
注:
a)轮循:同一个名字有多个不同的值,通过多条记录定义多个不同的值
第一次请求:解析为1.1.1.1,第二次请求:解析为1.1.1.2,... 依次循环
b)同一个值有多个不同的定义名字,仅代表通过不同的名字可以找到同一个主机
mx1.magedu.com. [86400] IN A 1.1.1.3
mx2.magedu.com. [86400] IN A 1.1.1.3
c)泛域名解析:避免用户写错名称时,给错误答案。通过泛域名解析进行解析至某特定地址
*.magedu.com. [86400] IN A 1.1.1.4
magedu.com. [86400] IN A 1.1.1.4
2.5、PTR记录
name----IP,有特定格式:把IP地址反过来写,1.2.3.4 --要写作-> 4.3.2.1;而有特定后缀:in-add.arpa.
完整写法 4.3.2.1.in-addr.arpa.
value FQDN
例如:
4.3.2.1.in-addr.arpa. [86400] IN PTR www.magedu.com.
注:可省略网络地址及后缀,主机地址需要反写
4.3.2 [86400] IN PTR www.magedu.com.
2.6、CNAME记录
name 别名
value 正式名字的FQDN
E.g :
web.magedu.com. [86400] IN CNAME www.magedu.com.
一个主机有多个名字时,用别名实现
E.g :
magedu.com. [86400] IN A 1.1.1.1
web.magedu.com. [86400] IN CNAME www.magedu.com
mail.magedu.com. [86400] IN CNAME www.magedu.com
pop3.magedu.com. [86400] IN CNAME www.magedu.com
https://blog.51cto.com/4593973/2147681
配置参考:https://blog.51cto.com/13501622/2092851