1 名字解析介绍和DNS
当前TCP/IP网络中的设备之间进行通信,是利用和依赖于IP地址实现的。但数字形式的IP地址是很难记忆的。当网络设备众多,想要记住每个设备的IP地址,可以说是“不可能完成的任务”。那么如何解决这一难题呢?我们可以给每个网络设备起一个友好的名称,如:www.magedu.org,这种由文字组成的名称,显而易见要更容易记忆。但是计算机不会理解这种名称的,我们可以利用一种名字解析服务将名称转化成(解析)成IP地址。从而我们就可以利用名称来直接访问网络中设备了。除此之外还有一个重要功能,利用名称解析服务可以实现主机和IP的解耦,即:当主机IP变化时,只需要修改名称服务即可,用户仍可以通过原有的名称进行访问而不受影响。
实现此服务的方法是多样的。如下面所述:
本地名称解析配置文件:hosts
Linux: /etc/hosts
windows: %WINDIR%/system32/drivers/etc/hosts
122.10.117.2 www.magedu.org
93.46.8.89 www.google.com
DNS:Domain Name System 域名系统,应用层协议,是互联网的一项服务。它作为将域名和IP地址相互映射的一个分布式数据库,能够使人更方便地访问互联网
基于C/S架构,服务器端:53/udp, 53/tcp
BIND:Bekerley Internet Name Domain,由 ISC (www.isc.org)提供的DNS软件实现DNS域名结构
- 根域
- 一级域名:Top Level Domain: tld
com, edu, mil, gov, net, org, int,arpa
三类:组织域、国家域(.cn, .ca, .hk, .tw)、反向域
- 二级域名:magedu.com
- 三级域名:study.magedu.com
- 最多可达到127级域名
ICANN(The Internet Corporation for Assigned Names and Numbers)互联网名称与数字地址分配机构,负责在全球范围内对互联网通用顶级域名(gTLD)以及国家和地区顶级域名(ccTLD)系统的管理、以及根服务器系统的管理
1.1 DNS服务工作原理
1.2 DNS查询类型
- 递归查询:最终结果,负责到底
- 迭代查询:最好结果,不负责到底
1.3 名称服务器
Name Server,域内负责解析本域内的名称的DNS服务器
IPv4的根名称服务器:全球共13个负责解析根域的DNS服务器,美国10个,荷兰1,瑞典1,日本1
IPv6的根名称服务器:全球共25个,中国1主3从,美国1主2从
1.4 解析类型
- FQDN --> IP 正向解析
- IP --> FQDN 反向解析
注意:正反向解析是两个不同的名称空间,是两棵不同的解析树
1.5 完整的查询请求经过的流程
Client -->hosts文件 --> Client DNS Service Local Cache --> DNS Server (recursion
递归) --> DNS Server Cache -->DNS iteration(迭代) --> 根--> 顶级域名DNS-->二级域名
DNS…
2 DNS 服务相关概念和技术
2.1 DNS服务器的类型
主DNS服务器
从DNS服务器
缓存DNS服务器(转发器)
2.1.1 主DNS服务器
管理和维护所负责解析的域内解析库的服务器
2.1.2 从DNS服务器
从主服务器或从服务器“复制”(区域传输)解析库副本
- 序列号:解析库版本号,主服务器解析库变化时,其序列递增
- 刷新时间间隔:从服务器从主服务器请求同步解析的时间间隔
- 重试时间间隔:从服务器请求同步失败时,再次尝试时间间隔
- 过期时长:从服务器联系不到主服务器时,多久后停止服务
- 通知机制:主服务器解析库发生变化时,会主动通知从服务器
2.2 区域传输
完全传输:传送整个解析库
增量传输:传递解析库变化的那部分内容
2.3 解析形式
正向:FQDN( Fully Qualified Domain Name) --> IP
反向: IP --> FQDN
2.4 负责本地域名的正向和反向解析库
正向区域
反向区域
2.5 解析答案
肯定答案:存在对应的查询结果
否定答案:请求的条目不存在等原因导致无法返回结果
权威答案:直接由存有此查询结果的DNS服务器(权威服务器)返回的答案
非权威答案:由其它非权威服务器返回的查询答案
2.6 各种资源记录
区域解析库:由众多RR组成:
资源记录:Resource Record, RR
记录类型:A, AAAA, PTR, SOA, NS, CNAME, MX
- SOA:Start Of Authority,起始授权记录;一个区域解析库有且仅能有一个SOA记录,必须位于解析库的第一条记录
- A:internet Address,作用,FQDN --> IP
- AAAA:FQDN --> IPv6
- PTR:PoinTeR,IP --> FQDN
- NS:Name Server,专用于标明当前区域的DNS服务器
- CNAME : Canonical Name,别名记录
- MX:Mail eXchanger,邮件交换器
- TXT:对域名进行标识和说明的一种方式,一般做验证记录时会使用此项,如:SPF(反垃圾邮件)记录,https验证等,如下示例:
_dnsauth TXT 2012011200000051qgs69bwoh4h6nht4n1h0lr038x
2.6.1 资源记录定义的格式
name [TTL] IN rr_type value
注意:
- TTL可从全局继承
- 使用 “@” 符号可用于引用当前区域的名字
- 同一个名字可以通过多条记录定义多个不同的值;此时DNS服务器会以轮询方式响应
- 同一个值也可能有多个不同的定义名字;通过多个不同的名字指向同一个值进行定义;此仅表示通过多个不同的名字可以找到同一个主机
面试题:
1. 我的网站域名需要更改,如何使其更快的生效?
2. 更改TTL值为多少比较合适呢?是如何生效的?
2.6.2 SOA记录
name: 当前区域的名字,例如“magedu.org.”
value: 有多部分组成
注意:
- 当前区域的主DNS服务器的FQDN,也可以使用当前区域的名字
- 当前区域管理员的邮箱地址;但地址中不能使用@符号,一般用.替换
例如:admin.magedu.org
- 主从服务区域传输相关定义以及否定的答案的统一的TTL
范例:
magedu.org. 86400 IN SOA ns.magedu.org. nsadmin.magedu.org. (
2015042201 ;序列号
2H ;刷新时间
10M ;重试时间
1W ;过期时间
1D