1 什么是DNS
Domain Name System(域名系统),它是一个应用层的服务。它作为将域名和IP地址相互映射的一个分布式数据库,能够使人更方便地访问互联网。当前,对于每一级域名长度的限制是63个字符,域名总长度则不能超过253个字符
在计算机网络中,每个主机/路由器都拥有唯一的一个地址IP地址,然而,对于用户来说,IP显然没有那么好记,所以有了域名。
看起来好像很简单,只是把IP翻译成域名。但是考虑到全球几十上百亿的主机需要不间断的的使用DNS,那么就不是一个简单的问题了
2 DNS服务的功能
域名和IP映射
主机别名
邮件服务器别名
负载均衡:Web服务器
3 为什么不使用集中式而是分布式数据库
单点失败问题:整个互联网都在不断地使用DNS服务查询,一旦挂了,那互联网就崩了
流量问题
距离问题
维护性问题
4 分布式层次数据库
它是分布式的,而且也是分层的
5 DNS根域名服务器
6 TLD和权威域名解析服务器
7 本地域名解析服务器
不严格属于层级体系
每个ISP都有一个本地域名服务器
当主机进行DNS查询时,查询被发送到本地域名服务器,本地服务器作为代理,将查询转发给域名解析服务器系统
8 DNS查询示例
8.1 迭代查询
8.2 递归查询
一台一台的服务器递归查询到ip,然后返回
9 DNS记录缓存和更新
只要域名解析服务器获得域名IP映射,就会缓存这一映射,一段时间后,缓存会失效
本地域名服务器一般会缓存顶级域名服务器的映射,所以根域名服务器一般很少被访问
10 DNS数据库记录
DNS的记录也成为资源记录RR(resource records)
RR format:name,value,type,ttl
Type=A
name:主机域名
value:IP地址
Type=NS
name:域
value:该域权威域名解析服务器的主机域名
Type=CNAME
name:某一真实域名的别名
value:真实域名
Type=MX
name:某一真实域名的邮件服务器别名
value:和name对应的邮件服务器真实域名
11 DNS协议消息