【DNS】

文章目录

  • [DNS域名解析系统(Domain Name System)](#DNS域名解析系统(Domain Name System))

DNS域名解析系统(Domain Name System)

  • DNS的必要性
    • IP地址不好记忆主机,路由器。
    • 一般倾向于一些有意义的字符串来表示Internet上的设备。
    • 由DNS负责转换成二进制的网络地址。

DNS系统需要解决的问题

  • 问题1:如何命名设备?
    • 用有意义的字符串:好记,便于人类记忆,使用。
    • 解决一个平面命名问题:层次化命名。
  • 问题2:如何完成名字到IP地址的转换?
    • 分布式的数据库维护和响应名字查询。
  • 问题3"如何维护:增加或者删除一个域

DNS域名解析系统(Domain Name System)

  • DNS的主要思路
    • 分层的,基于域的命名机制
    • 若干分布式的数据库完成名字到IP地址的转换
    • 运行在UDP之上端口号为53的应用服务
    • 核心的Internet功能,但以应用层协议实现
  • DNS主要目的
    • 实现主机名-IP地址的转换(name/IP translate)
    • 其它目的
      • 主机别名到规范名字的转换:Host aliasing
      • 邮件服务器别名到邮件服务器的正规名字的转换:Mail server aliasing
      • 负载均衡:Load Distribution

问题1:DNS名字空间(The DNS Name Space)

  • DNS域名结构
    • 一个层面命名设备会有很多重名
    • DNS采用层次树状结构的命名方法
    • Internet 根被划为几百个顶级域(top lever domains)
      • 通用的(generic)
        • .com; .edu ; .gov ; .int ; .mil ; .net ; .org
          .firm ; .hsop ; .web ; .arts ; .rec ;
      • 国家的(countries)
        • .cn ; .us ; .nl ; .jp
    • 每个(子)域下面可划分为若干子域(subdomains)
    • 树叶是主机

DNS名字空间(The DNS Name Space)

  • 域名(Domain Name)
    • 从本域往上,直到树根
    • 中间使用"."间隔不同的级别
    • 例如:ustc.edu.cn
    • 域的域名:可以用于表示一个域
    • 主机的域名:一个域上的一个主机

DNS名字空间(The DNS Name Space)

  • 域名的管理
    • 一个域管理其下的子域
      • .jp 被划分为 ac.jp co.jp
        .cn 被划分为 edu.cn com.cn
      • 创建一个新的域,必须征得它所属域的同意
  • 域与物理网络无关
    • 域遵从组织界限,而不是物理网络
      • 一个域的主机可以不在一个网络
      • 一个网络的主机不一定在一个域
    • 域的划分是逻辑的,而不是物理的

问题2:解析问题-名字服务器(Name Server)

  • 一个名字服务器的问题
    • 可靠性问题:单点故障
    • 扩展性问题:通信容量
    • 维护问题:远距离的集中式数据库
  • 区域(zone)
    • 将DNS名字空间划分为互不相交的区域,每个区域都是
      树的一部分
    • 名字服务器:
      • 每个区域都有一个名字服务器:维护着它所管辖区域的权威信息(authoritative record)
      • 名字服务器允许被放置在区 域之外,以保障可靠性

权威DNS服务器:组织机构的DNS服务器, 提供组织机构服务器(如Web和mail)可访问的主机和IP之间的映射。

组织机构可以选择实现自己维护或由某个服务提供商来维护

TLD服务器

  • 顶级域(TLD)服务器:负责顶级域名(如com, org, net,
    edu和gov)和所有国家级的顶级域名(如cn, uk, fr, ca,
    jp )
    • Network solutions 公司维护com TLD服务器
    • Educause公司维护edu TLD服务器

区域名字服务器维护资源记录

  • 资源记录(resource records)
    • 作用:维护 域名-IP地址(其它)的映射关系
    • 位置:Name Server的分布式数据库中
  • RR格式: (domain_name, ttl, type,class,Value)
    • Domain_name: 域名
    • Ttl: time to live : 生存时间(权威,缓冲记录)
    • Class 类别 :对于Internet,值为IN
    • Value 值:可以是数字,域名或ASCII串
    • Type 类别:资源记录的类型---见下页

DNS(Domain Name System)

  • DNS大致工作过程
    • 应用调用 解析器(resolver)
    • 解析器作为客户向Name Server 发出查询报文(封装在UDP段中)
    • Name Server返回响应报文(name/ip)

本地名字服务器(Local Name Server)

  • 并不严格属于层次结构
  • 每个ISP (居民区的ISP、公司、大学)都有一
    个本地DNS服务器
    • 也称为"默认名字服务器"
  • 当一个主机发起一个DNS查询时,查询被送到
    其本地DNS服务器
    • 起着代理的作用,将查询转发到层次结构中

名字服务器(Name Server)

  • 名字解析过程
    • 目标名字在Local Name Server中
      • 情况1:查询的名字在该区域内部
      • 情况2:缓存(cashing)
        当本地名字服务器不能解析名字时,联系根名字服务器顺着根-TLD一直找到权威名字服务器。

递归查询

递归查询:

  • 名字解析负担都放在当前联络的名字服务器上
  • :根服务器的负担太重
    • 解决: 迭代查询(iterated queries)

迭代查询

  • 主机cis.poly.edu 想知道主机 gaia.cs.umass.edu的IP地址
  • 根(及各级域名)服务器返回的不是查询结果,而是下一个NS的地址
  • 最后由权威名字服务器给出解析结果
  • 当前联络的服务器给出可以联系的服务器的名字
  • "我不知道这个名字,但可以向这个服务器请求

DNS协议、报文

DNS协议:查询和响应报文的报文格式相同

提高性能:缓存

  • 一旦名字服务器学到了一个映射,就将该映射缓存起来
  • 根服务器通常都在本地服务器中缓存着
    • 使得根服务器不用经常被访问
  • 目的:提高效率
  • 可能存在的问题:如果情况变化,缓存结果和
    权威资源记录不一致
  • 解决方案:TTL(默认2天)

问题3:维护问题:新增一个域

  • 在上级域的名字服务器中增加两条记录,指向这个新增的子域的域名 和 域名服务器的地址
  • 在新增子域 的名字服务器上运行名字服务器,负责本域
    的名字解析: 名字->IP地址
    例子:在com域中建立一个"Network Utopia"
  • 到注册登记机构注册域名networkutopia.com
  • 需要向该机构提供权威DNS服务器(基本的、和辅助的)的名字
    和IP地址
  • 登记机构在com TLD服务器中插入两条RR记录
  • 在networkutopia.com的权威服务器中确保有
    • 用于Web服务器的www.networkuptopia.com的类型为A的记录
    • 用于邮件服务器mail.networkutopia.com的类型为MX的记
相关推荐
冷心笑看丽美人4 天前
探秘 DNS 服务器:揭开域名解析的神秘面纱
linux·运维·服务器·dns
ZachOn1y5 天前
计算机网络:应用层 —— 应用层概述
计算机网络·http·https·应用层·dns
Chicheng_MA12 天前
Linux DNS 协议概述
linux·dns
不知火猪22 天前
华为云域名网站,域名切换到Cloudflare CDN出现访问报错:DNS 重定向次过多
华为云·cdn·dns·cloudflare
ink191 个月前
DoH(DNS on HTTPS)和DoT(DNS on TLS)协议详解
dns
石牌桥网管1 个月前
DNS Resolver解析服务器出口IP查询
运维·网络·tcp/ip·dns
火山引擎边缘云2 个月前
QCon演讲实录|赵彦奇:HTTPDNS 边缘下沉,性能、成本和稳定性之间的取舍与思考
http·边缘计算·dns
CXDNW2 个月前
【网络面试篇】其他面试题——Cookie、Session、DNS、CDN、SSL/TLS、加密概念
网络·笔记·面试·cdn·dns·cookie
桃酥4032 个月前
day08|计算机网络重难点之 DNS查询过程、CDN是什么,有什么作用?、Cookie和Session是什么?有什么区别?
计算机网络·cdn·dns·cookie·session
UestcXiye2 个月前
《TCP/IP网络编程》学习笔记 | Chapter 8:域名及网络地址
c++·计算机网络·ip·tcp·dns