DNS 发展
DNS(Domain Name System)的起源可以追溯到互联网早期。
-
早期的挑战:
- 早期互联网主要通过IP地址进行通信,用户需要记住复杂的数字串来访问网站。
-
需求的催生:
- 随着互联网的扩大,更简单、易记的命名系统的需求逐渐增大。
-
创建DNS的动机:
- Paul Mockapetris和Jon Postel于1983年共同设计了DNS,旨在提供一种分布式的、层级的域名解析系统,以解决通过域名而非IP地址访问网络资源的问题。
-
DNS的关键设计元素:
- 分层结构: DNS采用了分层的域名结构,包括顶级域名(TLD)、次级域名、主机名等,使得域名管理更为灵活。
- 分布式数据库: DNS的数据存储采用了分布式数据库的方式,由各级域名服务器负责管理特定域的解析信息。
DNS的发展历程:
- 1980年: DNS被正式引入互联网,成为解决命名和地址解析问题的标准。
- 1990年: 随着互联网的快速增长,DNS逐渐成为互联网基础设施的重要组成部分。
- 2000年以后: DNS不断演进,引入了各种改进和扩展,例如DNSSEC(DNS Security Extensions)、IPv6支持等。
DNSSEC 引入:
- DNSSEC是为了提高DNS的安全性而引入的,使用数字签名来确保域名解析的数据完整性和认证性。
DNS over HTTPS (DoH) 和 DNS over TLS (DoT):
- 这两种协议通过加密通信方式提高DNS请求和响应的隐私和安全性。
根 DNS 服务器
- 根 DNS 服务器负责处理顶级域(TLD)DNS 服务器的查询,例如 .com、.org、.net 等。
- 当本地 DNS 服务器收到一个域名查询时,首先向根 DNS 服务器发送查询请求。
- 根 DNS 服务器不直接提供完整的域名解析,而是指示本地 DNS 服务器继续向适当的 TLD DNS 服务器发出查询。
根 DNS 服务器分布
- 世界上的根 DNS 服务器共有13个,分别用字母 A 到 M 表示。
- 这些根 DNS 服务器由不同的组织和机构管理,分布在全球不同的地理位置。
- 每个根 DNS 服务器都有多个实际的 IP 地址,提供冗余和负载均衡。
- 根 DNS 服务器分布在世界各地,包括北美、欧洲、亚洲等地区。
- 这种分布有助于提高 DNS 查询的效率和可用性,并减少对特定地理区域的依赖性。
- DNS 结构是动态演进的,ICANN 和相关组织定期评估和调整根 DNS 的配置。根据评估新的根 DNS 服务器会添加到系统中,以应对互联网的扩展和增长。
中国 DNS 体系
我国的 DNS 体系中,本地 DNS 服务器会向全球的根 DNS 服务器发送查询请求,并由根 DNS 服务器引导本地 DNS 服务器到相应的顶级域(TLD)DNS 服务器,从而完成域名解析。
我国在国内维护自己的顶级域(TLD)DNS 服务器,例如
DNS 的作用
-
域名解析: 提供域名到 IP 地址的解析服务,允许用户通过好记的域名访问网络资源而无需记住复杂的 IP 地址。
-
层次化结构: 将互联网上的域名划分为层次化的结构,每一级域名(如.com、.org)都由不同的注册机构管理,实现了分布式管理和维护。
-
负载均衡: 允许一个域名映射到多个 IP 地址,从而实现负载均衡。当一个域名对应多个服务器时,DNS 可以轮流分配请求,分散流量。
-
电子邮件交换: 管理电子邮件系统中的邮件路由,通过 MX 记录指定邮件服务器,确保邮件能够正确地路由到目标邮件服务器。
-
提供别名(CNAME): 允许一个域名指向另一个域名,提供了域名的别名机制。
DNS 的工作原理
-
域名查询: 当用户在浏览器中输入一个域名时,操作系统将首先检查本地 DNS 缓存,如果没有找到对应的 IP 地址,将发起 DNS 查询。
-
本地 DNS 解析: 操作系统将查询发送到本地 DNS 服务器,由互联网服务提供商(ISP)或其他网络服务提供商提供。本地 DNS 服务器具有缓存功能,如果有记录则直接返回 IP 地址,否则将向更高层次的 DNS 服务器发起查询。
-
缓存: 为了提高查询效率,DNS 服务器会在查询过程中进行缓存。本地 DNS 服务器和中间 DNS 服务器都会在配置时间内保存查询结果,以便下次查询时能够直接返回。
-
TTL(Time to Live): DNS 记录中包含 TTL,指定该记录在缓存中的存活时间。一旦过期,DNS 服务器将重新查询获取最新的 IP 地址。
总结,DNS 通过分布式数据库、域名层次结构以及查询实现域名到 IP 地址的解析服务。这种分布式的设计保证了 DNS 的高可用性和扩展性。
DNS 查询方式
在 DNS 中,迭代查询是一种查询过程,其中请求者(本地 DNS 服务器)向其他 DNS 服务器发出查询,并要求返回最终结果,而不是通过递归查询的方式由服务器一级一级地向上查询。这种查询方式减轻了根 DNS 服务器的负担,提高了查询效率。
DNS 查询包含两种主要类型:
-
递归查询(Recursive Query): 递归查询是请求服务器提供完整的查询结果。当一个 DNS 服务器收到递归查询时,将负责迭代地查询其他 DNS 服务器,直到找到最终的查询结果,然后将结果返回给请求者。
-
迭代查询(Iterative Query): 迭代查询是请求服务器提供最好的信息,并允许请求者继续查询其他 DNS 服务器以获取更多信息。当一个 DNS 服务器收到迭代查询时,会返回自己所知道的最佳信息,如果无法提供完整的结果,将指示请求者继续向其他 DNS 服务器查询。
在 DNS 查询过程中,递归查询和迭代查询结合使用。本地 DNS 服务器(请求者)发起一个递归查询,然后向根 DNS 服务器发出迭代查询。根 DNS 服务器返回指向顶级域名服务器(TLD)的迭代查询结果,然后本地 DNS 服务器继续向 TLD 服务器发出迭代查询。这个过程一直持续,直到找到最终的查询结果。
迭代查询在 DNS 查询过程中也是一种常见的机制,通过允许 DNS 服务器返回部分信息,然后继续向其他服务器查询,提高 DNS 查询的效率。
Windows/Linux DNS 记录配置差别
Windows DNS和Linux DNS的记录(域名解析记录)在语法和配置上有些差异。
常见的DNS记录类型,在Windows和Linux环境中的差别:
- A记录(IPv4地址记录):
-
Windows:
example.com. IN A 192.168.1.1
-
Linux:
example.com. A 192.168.1.1
- AAAA记录(IPv6地址记录):
-
Windows:
example.com. IN AAAA 2001:db8::1
-
Linux:
example.com. AAAA 2001:db8::1
- CNAME记录(别名记录):
-
Windows:
www.example.com. IN CNAME example.com.
-
Linux:
www.example.com. CNAME example.com.
- MX记录(邮件交换记录):
-
Windows:
example.com. IN MX 10 mail.example.com.
-
Linux:
example.com. MX 10 mail.example.com.
- PTR记录(反向解析记录):
-
Windows:
1.1.168.192.in-addr.arpa. IN PTR example.com.
-
Linux:
1.1.168.192.in-addr.arpa. PTR example.com.
- NS记录(域名服务器记录):
-
Windows:
example.com. IN NS ns1.example.com.
-
Linux:
example.com. NS ns1.example.com.
- SOA记录(起始授权机构记录):
-
Windows:
example.com. IN SOA ns1.example.com. admin.example.com. ( 2022010101 ; Serial 3600 ; Refresh 600 ; Retry 1209600 ; Expire 3600 ; Default TTL )
-
Linux:
example.com. SOA ns1.example.com. admin.example.com. ( 2022010101 ; Serial 3600 ; Refresh 600 ; Retry 1209600 ; Expire 3600 ; Default TTL )
windows dns 特有记录
在 Windows DNS 中,与 Active Directory(AD)相关的特有 DNS 记录主要是 SRV 记录。这些记录用于服务发现和域控制器的定位。
SRV 记录:
-
域控制器发现记录:
- _ldap._tcp.dc._msdcs.example.com.
- _kerberos._tcp.dc._msdcs.example.com.
- _gc._tcp.dc._msdcs.example.com.
-
其他与域控制器相关的记录:
- _ldap._tcp.pdc._msdcs.example.com.
- _ldap._tcp.gc._msdcs.example.com.
- _ldap._tcp.rras._msdcs.example.com.
记录用于指示 LDAP 服务、Kerberos 认证服务、全局编录服务、主域控制器(PDC)、全局编录服务器(GC)和远程访问服务器(RRAS)的位置。
Windows DNS 在配置 AD 时会自动创建这些记录,来支持域环境运作和服务发现。
~喜欢的话,请收藏 | 关注(?ω?)~
~万一有趣的事还在后头呢,Fight!!(o^-^)~''☆ミ☆ミ~……