DNS 工作机制全面剖析与应用探究

本文深入介绍了DNS的工作机制,包括DNS服务器的层级、域名解析过程、迭代式与递归式查询。同时讨论了DNS记录、缓存、Anycast技术、地理定位DNS以及公共DNS服务。此外,还提到了泛域名记录的应用,并分析了DNS在IP或域名选择中的优缺点。DNS在实现互联网IP映射、负载均衡和就近接入等方面发挥着重要作用,但也存在DNS缓存中毒、劫持等问题。
摘要由CSDN通过智能技术生成

谈到 DNS, 映入脑海的可能就是 IP 映射、负载均衡、域名劫持、就近接入这些概念,但是作为整个 Internet 使用最为广泛的基础设施之一,他的工作原理是怎样的、里面有哪些黑科技、就近接入如何实现,相信大多数人并不十分清楚,本文就来做一一介绍。此外,本文引用了很多 RFC, 官方或非官方文档,想要深入了解的同学可以细读文中的引用出处。

目录

DNS Basic

Hierarchy of DNS servers

DNS server 一共有 4 类:

  • Root DNS servers. 根服务器,记录了顶级域名服务器(Top-level domain (TLD) servers)的 IP, 全球只有 13 个逻辑节点,也就是 13 个 IP(当然,实际物理接入点有几百个)。(Root name server - Wikipedia)
  • Top-level domain (TLD) servers. 顶级域名服务器,如 .com, .net, .org, .edu, 记录了 Authoritative DNS servers 的 IP.
  • Authoritative DNS servers. 权威域名服务器,由 ISP 提供或机构组织自己提供(如腾讯的 ns1.qq.com, ns2.qq.com, ns3.qq.com, ns4.qq.com),记录了目标域名的 IP(A record)或别名(CNAME record)或委托的其它 Authoritative DNS servers 的 IP(NS record)等。
  • Recursive DNS servers. 与客户端直接打交道的 DNS server, 通常情况下,客户端的解析请求都由它响应,大多数情况下指 local DNS server, 除此以外,还有 public DNS server.

如下图(图1):

Portion of the hierarchy of DNS servers

Root DNS servers, Top-level domain (TLD) servers, Authoritative DNS servers 分别对应图中的第一、二、三层。
Recursive DNS servers 有点特殊,其作用有点类似于代理服务器,代理客户端去请求图中的 DNS server.

域名解析过程

主机 cis.poly.edu 需要解析主机 gaia.cs.umass.edu 的地址,主机 gaia.cs.umass.edu 的 authoritative DNS server 为 dns.umass.edu, 主机 cis.poly.edu 的 local DNS server 为 dns.poly.edu. 其中一种解析过程如下图(图2)所示:

Interaction of the various DNS servers

  1. 主机 cis.poly.edu 向 local DNS server dns.poly.edu 发送目的域名为 gaia.cs.umass.edu 请求
  2. local DNS server dns.poly.edu 向 root DNS server 发送目的域名为 gaia.cs.umass.edu 请求
  3. root DNS server 匹配到目的域名 gaia.cs.umass.edu 的后缀为 .edu, 于是返回 .edu 的 TLD DNS server 的 IP
  4. local DNS server dns.poly.edu 向 .edu 的 TLD DNS server 发送目的域名为 gaia.cs.umass.edu 请求
  5. .edu 的 TLD server 匹配到 gaia.cs.umass.edu 的后缀为 umass.edu, 查找数据库找到 umass.edu 对应的 authoritative DNS server 为 dns.umass.edu, 于是返回 dns.umass.edu 的 IP
  6. local DNS server dns.poly.edu 向 dns.umass.edu 发送目的域名为 gaia.cs.umass.edu 请求
  7. dns.umass.edu 从数据库找找到 gaia.cs.umass.edu 的 IP 将其返回
  8. local DNS server dns.poly.edu 返回 gaia.cs.umass.edu 的 IP 给 cis.poly.edu

Note: 上述过程没有考虑 DNS cache 的情况。

迭代式查询与递归式查询

上例中 local DNS server 到其他 DNS server 的查询属于迭代式查询, 上例还有另外一种递归式查询方式,如下图(图3)所示:

Recursive queries in DNS

在实际应用中,图 2 中的查询方式用的比较多,即客户端到 local DNS server 采用递归式查询,剩余部分采用迭代式查询。递归式查询容易使 DNS server 遭到攻击,大多数 DNS server(非 local DNS server 或 public DNS server) 会禁用递归式查询。(What risks are associated with recursive DNS queries?)

此外,DNS server 可以根据 local DNS server 的 IP 来查找 geo-location database, 从而返回地理位置最近的(geographically closest)的 IP (Geolocation Routing - Amazon Route 53), 由于递归式查询中与 authoritative DNS server 交互的是 TLD DNS server, 因此 authoritative DNS server 无法获取 local DNS server 的 IP

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值