DNS协议
原理
访问像 www.example.com 这样的网站。你将这个友好的域名输入浏览器,但你的电脑不理解文字——它说的是数字的语言,特别是 IP 地址。那么,你的电脑是如何找到网站的 IP 地址的呢?这时就需要DNS,互联网的可靠翻译器。
主机文件
The hosts 文件是一个简单的文本文件,用于将主机名映射到 IP 地址,提供了一种手动域名解析方法,可以绕过 DNS 过程。虽然 DNS 自动将域名转换为 IP 地址,但 hosts 文件允许直接、本地覆盖。这对于开发、故障排除或阻止网站特别有用。
The hosts 文件位于 Windows 的 C:\Windows\System32\drivers\etc\hosts 和 Linux 及 MacOS 的 /etc/hosts 。文件中的每一行遵循以下格式:1
<IP Address> <Hostname> [<Alias> ...]
DNS 的关键概念
在 Domain Name System ( DNS )中, zone 是域名空间的一个独立部分,由特定实体或管理员管理。你可以把它想象成一个包含一组域名的虚拟容器。例如, example.com 及其所有子域名(如 mail.example.com 或 blog.example.com )通常都属于同一个 DNS 区域。
区域文件是一个存储在 DNS 服务器上的文本文件,它定义了该区域内资源记录(将在下文中讨论),为将域名转换为 IP 地址提供关键信息。
为了说明,这里是一个简化的区域文件,用于 example.com 可能看起来像这样:
1 | $TTL 3600 ; Default Time-To-Live (1 hour) |
DNS 服务器存储各种资源记录,每个记录在域名解析过程中都起着特定的作用。让我们探索一些最常见的 DNS 概念:
| DNS Concept DNS 概念 | Description 描述 | Example 示例 |
|---|---|---|
Domain Name |
用于网站或其他互联网资源的人类可读标签。 | www.example.com |
IP Address |
分配给每个连接到互联网的设备的唯一数值标识符。 | 192.0.2.1 |
DNS Resolver |
一个将域名转换为 IP 地址的服务器。 | 您的互联网服务提供商的 DNS 服务器或公共解析器,如 Google DNS( 8.8.8.8 ) |
Root Name Server |
DNS 层次结构中的顶级服务器。 | 全球有 13 个根服务器,命名为 A-M: a.root-servers.net |
TLD Name Server |
负责特定顶级域的服务器(例如,.com,.org)。 | Verisign for .com ,PIR for .org |
Authoritative Name Server |
存放域名实际 IP 地址的服务器。 | 通常由主机提供商或域名注册商管理。 |
DNS Record Types |
DNS 中存储的不同类型的信息。 | A, AAAA, CNAME, MX, NS, TXT 等 |
既然我们已经探索了 DNS 的基本概念,让我们深入探讨 DNS 信息的构建块——各种记录类型。这些记录存储与域名相关的不同类型的数据,每种数据都有特定的用途:
| Record Type 记录类型 | Full Name 全名 | Description 描述 | Zone File Example 区域文件示例 |
|---|---|---|---|
A |
Address Record 地址记录 | 将主机名映射到其 IPv4 地址。 | www.example.com. IN A 192.0.2.1 www.example.com. 在 192.0.2.1 |
AAAA |
IPv6 Address Record IPv6 地址记录 | 将主机名映射到其 IPv6 地址。 | www.example.com. IN AAAA 2001:db8:85a3::8a2e:370:7334 www.example.com. 在 AAAA 2001:db8:85a3::8a2e:370:7334 |
CNAME |
Canonical Name Record 规范名称记录 | 为主机名创建别名,指向另一个主机名。 | blog.example.com. IN CNAME webserver.example.net. blog.example.com. 在 CNAME webserver.example.net. |
MX |
Mail Exchange Record 邮件交换记录 | 指定负责处理该域名电子邮件的邮件服务器。 | example.com. IN MX 10 mail.example.com. |
NS |
Name Server Record 名称服务器记录 | 将 DNS 区域委托给特定的权威名称服务器。 | example.com. IN NS ns1.example.com. |
TXT |
Text Record 文本记录 | 存储任意文本信息,通常用于域名验证或安全策略。 | example.com. IN TXT "v=spf1 mx -all" (SPF record) example.com. IN TXT "v=spf1 mx -all" (SPF 记录) |
SOA |
Start of Authority Record 权威记录的开始 |
指定 DNS 区域的行政信息,包括主要名称服务器、负责人的电子邮件地址和其他参数。 | example.com. IN SOA ns1.example.com. admin.example.com. 2024060301 10800 3600 604800 86400 example.com. 在 SOA ns1.example.com. admin.example.com. 2024060301 10800 3600 604800 86400 |
SRV |
Service Record 服务记录 | 定义特定服务的主机名和端口号。 | _sip._udp.example.com. IN SRV 10 5 5060 sipserver.example.com. |
PTR |
Pointer Record 指针记录 | 用于反向 DNS 查询,将 IP 地址映射到主机名。 | 1.2.0.192.in-addr.arpa. IN PTR www.example.com. |
攻击手段
两类攻击者
被动攻击者(窃听者):不会影响两者之间的通讯,只是想获取信息
主动攻击者:会干扰两者的通讯
安全目标
CIA:
C(confidentiality):即在有主被者攻击情况下,无法获得网络中的内容
I(Integrity):攻击者无法篡改网络通信的内容
A(Authentication):通信双方是正确的主题
针对域名系统的攻击
- 输入url地址时,浏览器会询问本地的域名解析器
- 本地域名解析器会询问根根域名解析器
- 根域名解析器会返回org服务器域名解析器的相应地址
- 本地域名解析器会根据地址找到.org域名服务器询问
- org域名服务器会返回域名服务器地址
6 .本地域名解析器再根据该地址寻找所需服务器
1 | flowchart LR |
NS服务器记录:由根目录和.org服务器提供的ip地址
地址记录:由域名服务器返回的
攻击方向
一、对查询过程的信息干扰
二、入侵域名服务器
三、DNS缓存攻击(对QID)

