DNS?本地填写的DNS有什么用?DNS怎么工作的?

本文介绍了DNS的基本概念及其在互联网中的作用,详细解释了DNS的工作流程,包括域名与IP地址的映射过程、DNS服务器间的交互机制及全局负载均衡的实现。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、DSN?

域名系统(英文:Domain Name System,缩写:DNS)

是互联网的一项服务。它作为将域名和IP地址相互映射的一个分布式数据库,能够使人更方便地访问互联网。

DNS使用UDP端口53。当前,对于每一级域名长度的限制是63个字符,域名总长度则不能超过253个字符。

以上来自 “百度百科”


二、DNS都干了什么?

前面讲的 DNS 为了将域名和IP地址相互映射

仅仅是为了方便将名称和IP 对应管理,以至于我们能直接输入网址而不是IP地址来访问web服务器。

所以我们访问一个网站时候,主机先通过本机向dns服务器查找输入的域名对应的IP地址。如果找到了就返回这个IP地址,如果没找到,当前这个DNS服务器会返回下一个DNS服务器的IP地址,供我们继续查询。

其实总体有两种查询方式,所谓迭代和递归,这个可以不用了解,主要就是通过本地DNS来不停的找还是通过一个一个服务器接下去的查找。

其实大体逻辑是这样的,细节就小小的展开一下。(可以不看,总之就是一层一层找映射到的IP地址)

用户向本级配置的本地DNS服务器发出查询请求,如果本地DNS服务器有该域名的缓存记录,则返回给用户,否则进行第2步;
本地DNS服务器进行递归查询,最终会查询到域名服务商商处的授权DNS服务器,这里可能有多个步骤,图中只反映最后一步;
授权DNS服务器返回一条NS记录给本地DNS服务器。根据授权DNS服务器上的不同设置,这条NS记录可能是指向随机一个GSLB设备的接口地址或者是所有GSLB设备的接口地址;
本地DNS服务器向其中一个GSLB地址发出域名查询请求,如果请求超时会向其它地址发出查询;
GSLB设备选出最优解析结果,返回一条A记录给本地DNS服务器。根据全局负载均衡策略设定的不同可能返回一个或多个VIP地址;
本地服务器将查询结果通过一条A记录返回给用户,并将缓存这条记录。
通过DNS解析报文中的TTL(Time To Live)可以控制客户端缓存这条记录的时间,在缓存时间内客户端会使用旧的查询结果,当缓存时间超时后才可能重新发出查询,TTL值过大会导致故障发生时切换时间过长,TTL值太小会造成查询频繁,对设备和网络的压力增大。

以上来自 “DNS如何实现全局负载均衡?”

三、DNS怎么工作的?

下面就理论展开实践~

我将自己电脑上的DNS填成了阿里的DNS服务器。

( 一、)中有提 到DNS是通过UDP协议,且端口是53,我们直接监听这个端口即可。

于是我每次访问一个域名时,就能抓到访问本地DNS服务器的过程如下:
在这里插入图片描述

在这里插入图片描述

上面能看到,我输入bilibili 的网站时,我主机会向我填写的DNS服务器查询域名对应的IP地址,如果查到了就直接返回。我就可以用这个IP去冲浪了~

由于我试了好多次,也没发现本地DNS服务器找不到对应IP的情况,就此作罢。

我觉得是阿里的DNS服务器缓存了太多我需要的域名与IP的对应地址。

因为每个DNS服务器都有一块缓存,存着有主机查过的映射关系。(看来我访问的网站大部分人都访问过啊。)

总结

DNS 就是为了将访问的域名转换为对应IP,以供我们访问。

本地填写的DNS是为了自主选择延迟低的DNS服务器,更快的访问。

DNS 工作方式就是通过访问各种DNS服务器,直到查到对应的IP。

参考:

参考的地方上面都有列出来~

### 3.1 DNS 的定义与作用 DNS(Domain Name System,域名解析系统)是一种互联网服务,其主要功能是将用户便于记忆的域名转换为对应的 IP 地址,从而实现对网络资源的访问[^4]。由于 IP 地址难以记忆且不直观,DNS 提供了一种人性化的命名机制,使用户可以通过有意义的域名快速定位服务器DNS 不仅用于浏览器访问网站,还广泛应用于基于域名的服务重定向、内部名字服务器搭建以及负载均衡等场景。例如,通过修改 DNS 记录,可以灵活地将域名指向不同的 IP 地址,实现服务迁移或高可用性架构[^3]。 ### 3.2 域名解析的基本流程 域名解析过程通常涉及多个步骤。当用户在浏览器中输入一个域名时,操作系统会首先检查本地 DNS 缓存中是否存在该域名对应的 IP 地址记录;如果缓存中没有,则会向配置的 DNS 服务器发起查询请求。若本地 DNS 服务器无法解析该域名,则会递归地向上级 DNS 服务器查询,直到找到能够提供正确 IP 地址的权威 DNS 服务器为止[^1]。 在整个解析过程中,可能会涉及到多种类型的 DNS 记录,如 A 记录(将域名映射到 IPv4 地址)、CNAME 记录(将域名别名指向另一个域名)、MX 记录(用于邮件路由)等。这些记录共同构成了域名解析的基础结构[^2]。 ### 3.3 常见的 DNS 解析类型及其用途 - **A记录**:最基础也是最常见的 DNS 记录类型,用于将域名直接解析为 IPv4 地址。 - **CNAME记录**:用于将某个域名的访问转发到另一个域名,适用于多个子域名共享同一主机的情况。 - **MX记录**:指定接收电子邮件的邮件服务器地址,对于企业邮箱设置至关重要。 - **泛域名解析**:使用通配符“*”来匹配所有未明确设定的子域名,统一指向特定 IP 或域名,防止因拼写错误导致访问失败。 - **智能解析**:根据访问者地理位置或运营商信息动态返回最优 IP 地址,以提升用户体验并实现负载均衡。 - **NS记录**:指明负责解析某域名DNS 服务器列表,有助于管理子域授权和分布式解析体系。 ### 3.4 域名解析中的常见问题及解决方法 在实际应用中,域名解析可能遇到诸如解析失败、延迟、错误等问题。这些问题通常由 DNS 服务器不可达、配置不当、记录过期或缓存污染等原因引起。解决办法包括但不限于更换 DNS 服务器、刷新本地 DNS 缓存、更新 DNS 记录以及联系注册商协助处理安全事件如域名劫持等[^2]。 此外,在开发调试期间,有时需要手动清除 DNS 缓存以确保获取最新的解析结果。Windows 系统下可通过命令行执行 `ipconfig /flushdns` 来完成此操作,Linux 用户则可使用 `systemd-resolve --flush-caches` 或重启 nscd 服务实现相同目的。 ```bash # Windows 下清空 DNS 缓存 ipconfig /flushdns # Linux (使用 systemd) 清空 DNS 缓存 sudo systemd-resolve --flush-caches ``` ### 3.5 域名解析的高级应用场景 除了基本的域名到 IP 映射外,DNS 还支持更复杂的用例,比如基于 DNS 的负载均衡策略。一种做法是在 DNS 回答中包含多个 IP 地址,客户端随机选择其中之一进行连接;另一种则是由 DNS 服务器根据预设规则主动分配流量至不同后端节点,以此达到优化性能和提高容错能力的目的。 与此同时,随着云计算的发展,越来越多的企业开始采用云 DNS 服务来托管其域名解析需求。这类服务不仅提供了更高的稳定性和扩展性,而且集成了自动故障转移、健康检查等功能,进一步增强了系统的健壮性和运维效率。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值