DNS概述
DNS——Domain Name System域名系统
internet上主机/路由器的识别问题:IP地址,但是IP地址的数字对人来说难以使用和识别;而域名(www.baidu.com)更适应人的习惯。
域名和IP地址之间如何映射?——域名解析系统DNS。
DNS是多层命名服务器构成的分布式数据库。
DNS是应用层协议:完成名字的解析;属于Internet核心功能。
DNS服务
- 域名向IP地址的翻译
- 主机别名
- 邮件服务器别名
- 负载均衡:web服务器
分布式层次式数据库
为什么不使用集中式DNS?——集中式不可伸缩
- 单点失败问题:一个结点down整个Internet无法运作。
- 流量问题:全球几十亿主机,若同时请求服务...
- 距离问题
- 维护性问题
- 根域名服务器
- 顶级域名服务器
- 权威域名服务器
想要查询一个域名的地址可能需要多次查询
DNS根域名服务器
本地域名解析服务器无法解析域名时,访问根域名服务器;
根域名服务器:
- 如果不知道映射,访问权威域名服务器
- 获得映射
- 向本地域名服务器返回映射
全球有13个根域名服务器,大多分布在北美。而中国没有。
TLD顶级域名服务器
负责com, org, net, edu等顶级域名;cn, uk, fr等国家顶级域名。
权威域名服务器
组织的域名服务器,提供组织内部服务器的解析服务。
本地域名解析服务器
不严格属于层级体系;但每个ISP有一个本地域名服务器(默认域名解析服务器)。
当主机进行DNS查询时,查询被发送到本地域名服务器。本地域名服务器作为代理,将查询转发给(层级式)域名解析服务器系统。
迭代查询
被查询服务器返回域名解析服务器的名字——“我不认识这个域名,但是你可以问题这个服务器”。
e.g. Cis.poly.edu的主机想获得gaia.cs.umass.edu的IP地址:
递归查询
将域名解析的任务交给所联系的服务器——“你别让我再问其他服务器,我问了你你就给我答案”。
随堂练习:
DNS记录缓存和更新
只要域名解析服务器获得<域名,IP地址>,就缓存这一映射。但一段时间后,缓存条目失效。
本地域名服务器一般会缓存顶级域名服务器的映射,因此根域名服务器不经常被访问。
DNS记录
资源记录RR
name | value | type |
主机域名 | IP地址 | A |
该权威域名解析服务器的主机域名 | 域 | NS |
某一真实域名的别名 | 真实域名 | CNAME |
邮箱地址@符号后的域名(主机域名) | 邮件服务器 | MX |
DNS协议与消息
DNS协议:查询和回复(query/reply)
消息头部:
Identification:16位查询编号,回复使用相同的编号。
Flags: 查询或回复;期望递归;递归可用;权威回答
如何注册域名
- 向域名管理机构提供权威域名解析服务器的名字和IP地址
- 域名管理机构向向对应顶级域名服务器插入两条记录(A和NS)
- 在自己的权威域名解析服务器中加入A记录、MX记录