DNS简介

2022-06-27

DNS(Domain Name System,域名系统)和URL(uniform resource locator,统一资源定位符)

通俗地来讲,DNS是一种将域名(example,www.baidu.com)和IP地址关联起来的分布式数据库系统。
而URL是用来表示 互联网中指定资源的位置 的。(通俗地可以理解为网址)
URL的基本结构如下:

  1. Scheme:表示提供服务的协议类型,除了https/http外,还有ftp,ssh,etc
  2. host: 表示主机
  3. port:端口,表示主机的某个应用程序
  4. path:表示想访问的资源的路径
  5. Query: 表示访问资源所需的参数条件

域名(domain name)

域名是URL的一部分,上面的 https://www.example.com:8080/test?arg1=123&arg2=456 中, www.example.com 就是域名。

子域名(subdomain name)

承接上面的例子, www.example.comexample.com 的子域名。

子目录和子域名的区别

比如你向权威机构申请了一个域名 wsxk.example.com,你想让这个域名上运行你的各种服务(ftp,http,etc),这些服务不能放在同一个网址上。
此时有2个选择:

  1. 使用子域名,比如 http_server.wsxk.example.com放的是http服务,ftp_server.wsxk.example.com放的是ftp服务
  2. 使用子目录,比如 wsxk.example.com/http_server, wsxk.example.com/ftp_server

子域名有个问题:你如果废弃了子域名的服务,仍然保留子域名,会带来安全隐患,具体体现为,attacker可以用你的子域名来申请attcker的服务。因为购买一个域名,在技术上说,是你购买了对应的DNS区域控制权。当子域名指向一个您已不再使用的网页代管服务,而他人使用您的子域名申请代管服务时。正因您已将 DNS 纪录指向正确网站,他们就能利用您的域名建立网站。

DNS结构

域名只是方便人们记忆的,对于计算机来说,想要查询某个站点的资源,需要得到IP地址,DNS的作用就在于此。
DNS其实是一个树状结构,先看图

  • 根DNS服务器:域名系统的最上级,存放的是顶级域服务器的目录
  • 顶级域服务器: 存放的是权威DNS服务器的目录
  • 权威DNS服务器: 存放的是具体网址和对于ip的服务器。

域名系统采用分级的策略将各个域名划分到不同的区域当中。
举个例子,www.baidu.com,com是一级域名,baidu是com下的域名(二级域名),www是baidu下的域名(三级域名)

DNS查询路径

直接借图

  1. 用户输入网址,查询本地 DNS。本地 DNS 是一系列 DNS 的合集,比如 ISP 提供的 DNS、公司网络提供的 DNS。本地 DNS 是一个代理,将 DNS 请求转发到 DNS 网络中。如果本地 DNS 中已经存在需要的记录,也就是本地 DNS 缓存中找到了对应的 DNS 条目,就会直接返回,而跳过之后的步骤。

  2. 客户端请求根 DNS 服务器。如果本地 DNS 中没有对应的记录,那么请求会被转发到根 DNS 服务器。根 DNS 服务器只解析顶级域,以“www.lagou.com”为例,根 DNS 服务器只看 com 部分。
  3. 根 DNS 服务器返回顶级 DNS 服务器的 IP。
  4. 客户端请求顶级 DNS 服务器,顶级 DNS 服务器中是具体域名的目录。
  5. 顶级 DNS 服务器返回权威 DNS 服务器的 IP。
  6. 客户端请求权威 DNS 服务器。在权威 DNS 服务器上存有具体的 DNS 记录。以 lagou 为例,权威 DNS 服务器中可能有和 lagou.com 相关的上百条甚至更多的 DNS 记录,会根据不同的 DNS 查询条件返回。
  7. 权威 DNS 服务器返回 DNS 记录到本地 DNS 服务器。
  8. 本地 DNS 服务器返回具体的 DNS 记录给客户端。

DNS记录(常见)

A记录

www.example.com.     IN     A     139.18.28.5

A记录是域名和ipv4地址的映射

AAAA记录

AAAA记录是域名和ipv6地址的映射

CNAME记录

a.example.com.          IN     CNAME   b.example.com.

CNAME记录记录了一个域名的别名,比如你访问a.example.com,实际上访问的还是b.example.com的ip地址

MX记录(Mail Exchanger Record)

IN MX mail.lagou.com

MX记录用于邮件系统
凡是@lagou 的邮件都会发送到 mail.lagou.com 中,而 mail.lagou.com 的 IP 地址可以通过查询 mail.lagou.com 的 A 记录和 AAAA 记录获得。

NS记录(name server)

NS记录描述dns服务器的地址,从 DNS 的存储结构上说,Name Server 中含有权威 DNS 服务的目录。也就是说,NS 记录指定哪台 Server 是回答 DNS 查询的权威域名服务器

a.com.     IN      NS      ns1.a.com.
a.com.     IN      NS      ns2.a.com.

reference

https://blog.csdn.net/weixin_52834435/article/details/123837248

https://news.gandi.net/zh-hans/2021/08/how-to-use-subdomains-for-your-website/

https://blog.csdn.net/xiangjiaonigebanana/article/details/100763865