因特网的目录服务,由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服务器层次结构

    应用层协议_DNS - 图1

    根服务器

    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
过程如下。
image.png

递归查询和迭代查询

上图中的:
本地DNS->根DNS
本地DNS->TLD DNS
本地DNS->权威DNS
是迭代查询。
请求主机->本地DNS是递归查询。
下面是递归查询。
image.png

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响应。