DNS 域名解析原理(DNS 服务器如何抵御攻击)

 

本文梗概:

  • DNS 是什么,有什么作用
  • 一条 DNS 记录是什么样的
  • DNS 域名解析原理
  • DNS 服务器如何抵御攻击

DNS 是什么,有什么作用

DNS(Domain Name System)是一种应用层协议,用于映射域名和 ip 地址。

为什么要做映射呢?就像可以用身份证号来对应一个人,也可以用电话对应一个人,但打招呼时我们不会说:“138xxxxxx,早上好”,而是会用名字来打招呼。同样的道理,人们在访问网站时希望用更容易被记住的域名,比如 www.baidu.com,而不是 213.22.345.33。但是对于网络设备而言,使用 ip 地址却比域名更友好,因为 ip 地址的格式更规范,更容易被机器理解。

DNS 最重要的作用是提供域名解析服务,除此之外,它的作用还有:

  • 规范主机名:www.baidu.com 可能只是一个别名,它可能会有一个规范主机名 relay1.east.baidu.com,别名比规范主机名更容易记忆,客户端可通过别名获取到规范主机名和 ip 地址
  • 邮件服务器别名:邮件服务器为了让自己的域名更号机,可能也会有一个邮件服务器别名,这个别名允许和 web 服务器一致,比如你开发的邮件服务器和 web 服务器可以都使用 www.enterprise.com 这个域名
  • 负载均衡:DNS 服务器可能会非常繁忙,所以一个域名可能对应若干个 ip 地址,这时会返回一个 ip 地址的集合,由于客户总是向集合里的第一个 ip 地址建立连接并传输数据,因此 DNS 服务器通过控制返回 ip 的顺序来达到负载均衡的目的

一条 DNS 记录是什么样的

与 DNS 记录相关的,最常见到的就是域名解析里的 A 记录和 CNAME 记录了,如下:

DNS 记录就是 DNS 服务器内保存的信息,是一个 4 元祖:

(Name, Value, Type, TTL)

这里比较好理解,Name 是域名,Value 是 ip,Type 是记录的类型,包含上图中的 A 记录和 CNAME 记录,TTL 是过期时间,代表这条记录多久后会失效。

我们可以使用 nslookup -debug www.rottenorange.cn 来查找 www.rottenorange.cn 相关的 DNS 记录:

de@MacBook-Pro ~ % nslookup  -debug www.rottenorange.cn
Server:  26.26.26.53
Address: 26.26.26.53#53

————
QUESTIONS:
www.rottenorange.cn, type = A, class = IN
ANSWERS:
->  www.rottenorange.cn
canonical name = z1ming.github.io.
ttl = 505
->  z1ming.github.io
internet address = 185.199.110.153
ttl = 3320
->  z1ming.github.io
internet address = 185.199.109.153
ttl = 3320
->  z1ming.github.io
internet address = 185.199.108.153
ttl = 3320
->  z1ming.github.io
internet address = 185.199.111.153
ttl = 3320
AUTHORITY RECORDS:
ADDITIONAL RECORDS:
————
Non-authoritative answer:
www.rottenorange.cn canonical name = z1ming.github.io.
Name: z1ming.github.io
Address: 185.199.110.153
Name: z1ming.github.io
Address: 185.199.109.153
Name: z1ming.github.io
Address: 185.199.108.153
Name: z1ming.github.io
Address: 185.199.111.153

可以看到我们搜到了多条 A 类型的记录,对应多个 ip 地址,以及一个权威 DNS 记录 z1ming.github.io.。

Type 枚举有:

  • Type = A:主机名到 ip 地址,如 (relayl.bar.foo.com, 145.37.93.126, A)
  • Type = CNAME:主机名到规范主机名,如 (foo.com, relay1.bai.foo.com, CNAME)
  • Type = NS:域名到权威 DNS 主机名,如 (foo.com, dns.foo.con1, NS)
  • Type = MX:别名为 Name 的邮件服务器的规范主机名,如 (foo.com, mail.bar.foo.com, MX)

DNS 域名解析原理

(图片来源于https://www.cloudflare.com/zh-cn/learning/dns/what-is-dns/)

假设你输入 www.baidu.com,如果都不命中缓存,会经历如下 4 类 DNS 服务器:

  • 本地 DNS 服务器:客户端会先请求本地 DNS 服务器,如果不命中缓存,则请求根服务器
  • 根服务器(DNS Root Nameserver):全球共 400 多台,由 13 个不同的组织管理(大部分是老美),根服务器的列表可以在 https://www.iana.org/domains/root/servers 里查到,如下图[1]。回到正题,请求根服务器会返回顶级域名权威服务器的 ip,对于 www.baidu.com,.com 保存在顶级域名服务器,根服务器返回 .com 所在的顶级域名服务器的 ip 地址
  • 顶级域名服务器(DNS TLD Nameserver):根据返回的 ip 查询顶级域名服务器,它保存了 baidu.com 所在的权威服务器的 ip
  • 权威服务器(DNS Authoritative Nameserver):这里保存了 www.baidu.com 域名对应的 ip,权威服务器将这个 ip 返回给本地 DNS 服务器,本地 DNS 服务器将这个 ip 返回给客户端,至此完成了一次 DNS 查询

DNS 服务器如何抵御攻击

常见的攻击方式有 DDoS(Distributed Denial-of-Service)泛洪攻击和中间人攻击,不过由于 DNS 服务器都有自己的本地缓存,客户端也有自己的浏览器缓存,所以至今还没有大规模 DNS 服务瘫痪的情况。

分布式拒绝服务 (DDoS) 攻击是拒绝服务 (DoS) 攻击的一个子类。[2]Dos 是使用一个服务器攻击,DDoS 是利用多个服务器组成一个僵尸网络来攻击。它们的特点是发送大量需要密集资源的数据包从而使网络出现大量超时、甚至瘫痪的情况。

所以 DNS 的 DDoS 攻击就是僵尸网络向 DNS 服务器发送大规模分组,使得大部分 DNS 请求得不到回答,比如向根域名服务器、或顶级域名服务器发起攻击。

而中间人攻击就是攻击者截获到 DNS 请求,并返回伪造的回答,这样客户端无感知地访问到了被攻击者重定向的网站。通常这种方式难以实现,因为中间人攻击要求截获分组或控制住服务器。[3]

参考

  1. https://www.iana.org/domains/root/servers
  2. https://www.imperva.com/learn/ddos/denial-of-service/
  3. 计算机网络:自顶向下方法(原书第七版) 

原创文章,作者:速盾高防cdn,如若转载,请注明出处:https://www.sudun.com/ask/36015.html

Like (0)
速盾高防cdn的头像速盾高防cdn
Previous 2024年4月29日 下午3:47
Next 2024年4月29日 下午3:50

相关推荐

  • CDN多元化应用场景

    多元化应用场景,挖掘商业潜力 1. 在线视频与直播行业:在这个“内容为王”的时代,流畅不卡顿的观看体验是留住用户的前提。CDN能有效应对突发流量高峰,保证直播活动或热门剧集的平稳播…

    CDN资讯 2024年5月20日
    0
  • 网络Ping不通的一些常见故障和处理方法

    Ping是我们网络工程师排除设备访问故障的常见方法,它使用Internet控制消息协议ICMP确定以下内容: 远程设备是否处于可访问状态。 访问远程设备时是否丢失报文。 本端与远程…

    2024年5月6日
    0
  • Java中加密方式之非对称加密

    有人说为什么有了对称加密,为什么还要有个非对称加密,那么首先我们来说说这俩种加密的优缺点。 对称加密: 优点:对称加密算法通常比非对称加密算法更快,更适合加密大量数据。 缺点:因为…

    CDN资讯 2024年5月29日
    0
  • cdn业务是犯法吗,cdn业务是犯法吗安全吗

    标题:CDN业务是否违法? 在当今数字化时代,内容分发网络(CDN)已成为许多企业和网站的关键组成部分。随着互联网监管的加强和法规的不断更新,一些人开始质疑CDN业务的合法性。本文…

    2024年5月11日
    0

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注