1.名字解析介绍的DNS
当前TCP/IP网络中的设备之间进行通信,是利用和依赖于IP地址实现的,但数字形式的IP地址是很难记忆的。当网络设备众多,想要记住每个设备的IP地址,可以说是很难完成的。那么如何解决这一难题呢?我们可以给每个网络设别起一个友好的名称,如www.ybwen.cn,这种由文字组成的名称,显而易见更容易记忆。但是计算机不会理解这种名称的,我们可以利用一种名字解析服务将名称 转化成(解析)成IP地址。从而我们就可以利用名称来直接访问网络中设备了。除此之外还有一个重要 功能,利用名称解析服务可以实现主机和IP的解耦,即:当主机IP变化时,只需要修改名称服务即可, 用户仍可以通过原有的名称进行访问而不受影响
本地名称解析配置文件:host
DNS:域名系统,应用层协议,是互联网的一项服务
根域: 全球根服务器节点只有13个,10个在美国,1个荷兰,1个瑞典,1个日本
一级域名:Top Level Domain: tld 三类:组织域、国家域(.cn, .ca, .hk, .tw)、反向域 com, edu, mil, gov, net, org, int,arpa
二级域名:ybwen.cn
三级域名:www.ybwen.com
最多可达到127级域名
2.DNS服务工作原理
迭代:根域名服务器不知道结果,但是给了DNS代理解析.com域名服务器的地址,.com域名服务器也不知道你所给出的地址,给你他的下级域地址,最终访问到目标,叫做递归查询。
递归:客户端发送请求给DNS代理解析服务器访问,若DNS服务器本身不能解析,则会向另外的DNS服务器发出查询请求,得到最终的肯定或否定 的结果后转交给客户机。此查询的源和目标保持不变,为了查询结果只需要发起一次查询
3.完整的查询请求经过的流程
Client -->hosts文件 --> Client DNS Service Local Cache --> DNS Server (recursion 递归) --> DNS Server Cache -->DNS iteration(迭代) --> 根--> 顶级域名DNS-->二级域名 DNS…
4.DNS服务相关概念和技术
DNS服务器类型
主DNS服务器
从DNS服务器
缓存DNS服务器(转发器)
主DNS服务器
管理和维护所负责解析的域内解析库的服务器
从DNS服务器
从主服务器或从服务器“复制”(区域传输)解析库副本
序列号:解析库版本号,主服务器解析库变化时,其序列递增
刷新时间间隔:从服务器从主服务器请求同步解析的时间间隔
重试时间间隔:从服务器请求同步失败时,再次尝试时间间隔
过期时长:从服务器联系不到主服务器时,多久后停止服务
通知机制:主服务器解析库发生变化时,会主动通知从服务器
解析形式
正向:FQDN( Fully Qualified Domain Name) --> IP
反向: IP --> FQDN
负责本地域名的正向和反向解析库
正向区域
反向区域
各种资源记录 在
作为DNS服务器必要的三种记录
SOA:Start Of Authority,起始授权记录;一个区域解析库有且仅能有一个SOA记录,必须位于 解析库的第一条记录
NS:Name Server,专用于标明当前区域的DNS服务器
A:internet Address,作用,FQDN --> IP
其它记录
AAAA:FQDN --> IPv6
PTR:PoinTeR,IP --> FQDN
CNAME : Canonical Name,别名记录
MX:Mail eXchanger,邮件交换器
资源记录定义
SOA记录
name: 当前区域的名字,例如“magedu.org.”
value: 有多部分组成
注意:
1. 当前区域的主DNS服务器的FQDN,也可以使用当前区域的名字
2. 当前区域管理员的邮箱地址;但地址中不能使用@符号,一般用.替换 例如:admin.magedu.org
3. 主从服务区域传输相关定义以及否定的答案的统一的TTL
范例
NS记录
name: 当前区域的名字
value: 当前区域的某DNS服务器的名字,例如ns.magedu.org.
注意:
1. 相邻的两个资源记录的name相同时,后续的可省略
2. 对NS记录而言,任何一个ns记录后面的服务器名字,都应该在后续有一个A记录
3.一个区域可以有多个NS记录
范例
A记录
name: 某主机的FQDN,例如:www.magedu.org.
value: 主机名对应主机的IP地址
避免用户写错名称时给错误答案,可通过泛域名解析进行解析至某特定地址
范例
CNAME别名记录
name: 别名的FQDN
value: 真正名字的FQDN
5.DNS软件bind
相关包
bind:服务器
bind-libs:相关库
bind-utils: 客户端 有dig等工具
主配置文件:/etc/named.conf,/etc/named.rfc1912.zones, /etc/rndc.key
解析库文件:/var/named/ZONE_NAME.ZONE 名字由你在named.rfc1912.zones文件中定义的为准
6.实现主DNS服务器
1.在主配置文件中定义区域
2添加库
3.定义区域解析库文件
主配置文件语法检查
解析库文件语法检查
配置生效
6.测试和管理工具
dig命令
dig只用于测试dns系统,不会查询hosts文件进行解析
rndc命令
利用rndc工具可以实现管理DNS功能
rndc监听端口:953/tcp
7.实现从服务器
只有一台主DNS服务器,存在单点失败的问题,可以建立主DNS服务器的备份服务器,即从服务器来实 现DNS服务的容错机制。从服务器可以自动和主服务器进行单向的数据同步,从而和主DNS服务器一 样,也可以对外提供查询服务,但从服务器不提供数据更新服务。
DNS从服务器
1. 应该为一台独立的名称服务器
2. 主服务器的区域解析库文件中必须有一条NS记录指向从服务器
3. 从服务器只需要定义区域,而无须提供解析库文件;解析库文件应该放置于/var/named/slaves/ 目录中
4. 主服务器得允许从服务器作区域传送
5. 主从服务器时间应该同步,可通过ntp进行
6. bind程序的版本应该保持一致;否则,应该从高,主低
定义从区域
为防止从主节点抓取数控要在主服务器/etc/named.conf
allow-transfer { 从服务器IP;};
#只允许从服务器进行区域传输
tcp/53 是用来实现主和从的复制的
udp/53 是用来实现查询解析的,也可以影响主复制的
tcp/953 是为了rndc可以远程管理的,不影响服务
8.实现子域
将子域委派给其它主机管理,实现分布式DNS数据库
主DNS服务器
子域DNS服务器
9.实现DNS转发(缓存)服务器
利用DNS转发,可以将用户的DNS请求,转发至指定的DNS服务,而非默认的根DNS服务器,并将指定 服务器查询的返回结果进行缓存,提高效率。
注意:
1. 被转发的服务器需要能够为请求者做递归,否则转发请求不予进行
2. 在全局配置块中,关闭dnssec功能
第一次访问过后会生成缓存
10智能DNS
GSLB:Global Server Load Balance全局负载均衡 GSLB是对服务器和链路进行综合判断来决定由哪个地点的服务器来提供服务,实现异地服务器群服务 质量的保证 GSLB主要的目的是在整个网络范围内将用户的请求定向到最近的节点(或者区域) GSLB分为基于DNS实现、基于重定向实现、基于路由协议实现,其中最通用的是基于DNS解析方式
CDN工作原理
1. 用户向浏览器输入www.a.com这个域名,浏览器第一次发现本地没有dns缓存,则向网站的DNS 服务器请求 2. 网站的DNS域名解析器设置了CNAME,指向了www.a.tbcdn.com,请求指向了CDN网络中的智能 DNS负载均衡系统 3. 智能DNS负载均衡系统解析域名,把对用户响应速度最快的IP节点返回给用户; 4. 用户向该IP节点(CDN服务器)发出请求 5. 由于是第一次访问,CDN服务器会通过Cache内部专用DNS解析得到此域名的原web站点IP,向原 站点服务器发起请求,并在CDN服务器上缓存内容 6. 请求结果发给用户