因特网的目录服务,由RFC 1034和RFC 1035定义。主机名(www.fuck.com)对人类友好,IP地址对路由器友好。
DNS提供了主机名和IP地址转换的目录服务,DNS是:
- 由分层DNS服务器实现的分布式数据库。
- 应用层协议:让一个主机能够查询分布式数据库。
- 基于UDP协议,53号端口。
- 一般为其他应用层协议所使用,HTTP,SMTP,FTP。
浏览器请求www.fuck.com会发生的事情:
- 主机运行着DNS服务。
- 浏览器将主机名传送给DNS服务
- DNS服务发送请求给DNS服务器
- DNS服务器返回主机名对应的IP地址
- 浏览器发起与IP地址在80端口的TCP连接。
DNS提供的服务:
- 主机名到IP的转换。
- 主机别名host aliasing。
- 邮件服务器别名mai server aliasing,规范的邮件服务器名可能非常难记,web服务器和邮件服务器的主机名可以是同一个。
- 负载分配。一个主机名对应一个IP地址集合,利于这个主机名服务器的负载分配。
DNS工作原理
浏览器访问amazon.com
点击查看【processon】DNS服务器层次结构
根服务器
13个,大部分位于北美,每个其实是服务器网络,不是一台。顶级域服务器
com、org、net、edu、gov。
uk、fr、ca、jp、cn
Verisign Global Registry Services公司维护com顶级域服务器。
Educause公司维护edu顶级域服务器权威服务器
本地DNS服务器
local DNS server,不属于域名层次结构。
每个ISP都有一台本地DNS服务器,主机与ISP相连,ISP就会返回本地DNS服务器给你,本地DNS服务器负责主机和域名层次结构中服务器的代理。
在理工大学内的一台主机cis.poly.edu访问gaia.cs.umass.edu
大学本地DNS服务器地址dns.poly.edu
过程如下。
递归查询和迭代查询
上图中的:
本地DNS->根DNS
本地DNS->TLD DNS
本地DNS->权威DNS
是迭代查询。
请求主机->本地DNS是递归查询。
下面是递归查询。
DNS缓存(cache)
每个DNS服务器会将返回的DNS报文保存在服务器本地,提高命中率。
DNS记录和报文
DNS记录:RR
DNS服务器中存储了资源记录(RR,Resource Record),它包含了地址到IP的映射。每个DNS报文中包含了一条或多条RR,其格式如下:
(Name,Value,Type,TTL),TTL是记录生存时间,过了就被删除。
Type=A,是一条主机名映射IP地址的记录,即通过主机名能找到IP地址。
如(a.b.c.com, 110.12.1.2, A)
Type=NS,是一条域名映射到该域名DNS服务器的记录,即通过域名能找到域名DNS服务器。
如(foo.com, dns.foo.com, NS)
Type=CNAME,是一条别名映射到主机规范域名的记录,即通过别名能找到主机规范域名。
如(foo.com, relay1.bar.foo.com, CNAME)
Type=MX,是一条别名映射到邮件服务器规范域名的记录,即通过别名能找到邮件服务器规范域名,这是使邮件服务器能和域名相同的基础。
如(foo.com, mail.bar.foo.com, MX)
DNS报文
只有查询报文、回答报文,且格式相同。
nslookup程序可以发起任务DNS查询。如在windows 的cmd中执行nslookup baidu.com,查询百度域名的服务器ip地址。
点击查看【processon】
DNS数据库插入记录:注册域名过程
假设新公司注册域名 networkutopia.com,注册登记机构(registrar)验证它的唯一性,你要提供2个权威服务器,有一个辅助的,其实就是提供你的域名DNS服务器主机名和IP地址。例如:
dns1.networkutopia.com 212.212.212.1
dns2.networkutopia.com 212.212.212.2
registrar向顶级DNS服务器插入如下2条记录:
(networkutopia.com,dns1.networkutopia.com,NS),域名映射主机名
(dns1.networkutopia.com,212.212.212.1,A),主机名映射IP
你的权威服务器要插入如下2条记录:
(www.networkutopia.com,212.212.212.1,A),web服务器主机名映射IP
(networkutopia.com,mail.networkutopia.com,MX),域名映射邮件服务器主机名
因特网名字和地址分配机构Internet Corporation for Assigned Names andNumbers,ICANN是负责给注册机构授权的,www.internic.net可以找到授权机构列表。
DNS攻击
1、对域名服务器DDos攻击。应对办法:服务器有请求分组过滤,有本地DNS服务器缓存。
2、中间人攻击,截获请求,返回伪造回答,重定向到攻击者的web站点。
3、对主机DDos攻击,用被攻击主机名伪造DNS请求,被攻击主机收到大量DNS响应。