DNS概述

Scroll Down

DNS概述

什么是DNS

DNS:Domain Name System

主要解决Internet上主机/路由器的识别问题:

每台主机都有一个唯一标识,就是IP地址,但是IP地址是纯数字,不易于用户使用,日常使用更多的是域名,域名更好识别和更好记忆

域名和IP地址如何进行映射?

那就需要使用域名解析系统DNS

  • 多层命名服务器构成的分布式数据库

  • 应用层协议:完成名字的解析

    ​ Internet核心功能,用应用层协议在应用层实现

    ​ 网络边界复杂

DNS提供的服务

  • 域名向IP地址的翻译
  • 主机别名
  • 邮件服务器别名
  • 负载均衡:Web服务器

为什么不使用集中式的DNS而是使用分布式的DNS?

  • 单点失败问题(如果服务器出问题就导致网络直接瘫痪)
  • 流量问题(流量过大,无法支撑)
  • 距离问题(各地的网络距离导致会时延增长)
  • 维护性问题

分布式层次式数据库

image-20200202232024122

假如客户端需要查询www.amazon.com的IP需要做如下几个步骤

  1. 客户端查询根服务器,找到com域名解析服务器
  2. 客户端查询com域名解析服务器,找到amazon.com域名解析服务器
  3. 客户端查询amazon.com域名解析服务器,获得www.amazon.com的IP地址

但是这种场景下,我们的性能做了一定的牺牲,需要访问三层服务器才能获得域名的具体IP,为了解决这种问题,引入了本地域名解析服务器,如果本地域名解析服务器无法解析域名时,访问根域名服务器

顶级域名服务器

顶级域名服务器(TLD,top-level domain):负责com,org,net,edu等顶级域名和国家顶级域名,例如cn,uk,fr等

权威域名服务器

权威域名服务器:组织的域名解析服务器,提供组织内部服务器的解析服务

本地域名服务器

严格来说不属于层级体系中

每个ISP(Internet服务提供商)有一个本地域名服务器

  • 默认域名解析服务器

当主机进行DNS查询时,查询被发送到本地域名服务器

  • 作为代理,将查询转发给(层级式)域名解析服务器系统

image-20200202232735151

DNS记录缓存和更新

只要域名解析服务器获得域名-IP映射,即缓存这一映射

  • 一段时间过后,缓存条目失效(删除)
  • 本地域名服务器一般会缓存顶级域名服务器的映射,因此根域名服务器不经常被访问

记录的更新机制

DNS记录和消息

DNS记录

资源记录,资源记录是用4个字段来存储的,

RR(Resource records) format(name,value,type,ttl)

Type = A

  • name:主机域名
  • Value:IP地址

Type = NS

  • Name:域(edu.cn)
  • Value:该域权威域名解析服务器的主机域名

Type = CNAME

  • Name:某一真实域名的别名
  • Value:真实域名

Type = MX

  • Value是与name相对应的邮件服务器

DNS协议与消息

DNS协议

  • 查询和回复
  • 消息格式相同

DNS的消息格式:

image-20200202233924180

Identification: 16位查询编号,回复使用相同的编号
flags:

​ • 查询或回复
​ • 期望递归
​ • 递归可用
​ • 权威回答