域名系统(DNS)应知应会

163 阅读2分钟

本文已参与「新人创作礼」活动,一起开启掘金创作之路。

基本概述

域名系统DNS是因特网使用的命名系统,用来把便于人们记忆的,具有特定含义的主机名(如 www.baidu.com )转化为便于机器处理的IP地址。DNS系统采用C/S模型,协议运行在UDP上,使用53好端口。

层次域名空间

因特网采用层次树状结构的命名方法,任何一个连接到因特网的主机或路由器,都有一个唯一的层次结构名称,即域名

命名规则:

  • 标号中的英文不区分大小写
  • 不能出现除了-以外的其他任何标点符号
  • 每个符号不超过63个字符,多标号组成的完整域名不超过255个字符
  • 域名级别左低右高

域名分类:

  • 国家顶级域名nTLD,如.cn,.uk等
  • 通用顶级域名gTLD,如.com,.net等
  • 基础结构域名:只有特殊的反向解析域名arpa,又称反向域名

域名服务器

因特网的域名系统被设计成一个联机分布式的数据库系统,并采用C/S模型,根据不同层级分为以下服务器:

  • 根域名服务器
  • 顶级域名服务器
  • 授权域名服务器(权限域名服务器)
  • 本地域名服务器

域名解析过程

主要分为正向解析(域名->IP),反向解析(IP->域名)。

查询方式:

  • 递归查询。此方法对根域名服务器造成的负载过大,实际中几乎不用。
  • 递归迭代相结合。主机对本地域名服务器使用递归查询,本地域名服务器向根域名服务器使用迭代查询。

查询过程:

  1. 客户机先向其本地域名服务器发布DNS请求报文
  2. 本地域名服务器采用迭代的查询(在查询本地没有缓存记录的情况下),它先向根域名服务器查询
  3. 根域名服务器告诉本地域名服务器,下一次应该查询的顶级域名服务器的IP地址
  4. 本地域名服务器向顶级域名服务器发起查询
  5. 顶级域名服务器告诉本地域名服务器,下一次应查询的权限域名服务器IP地址
  6. 本地域名服务器向权限域名服务器发起查询
  7. 权限域名服务器告诉本地域名服务器所查询的IP地址
  8. 本地域名服务器把查询结果告诉客户机