windows系统的dns

DNS(Domain Name System), 也叫网域名称系统,是互联网的一项服务。它实质上是一个 域名 和 IP 相互映射的分布式数据库,有了它,我们就可以通过域名更方便的访问互联网。

DNS 有以下特点:

  • 分布式的

  • 协议支持 TCP 和 UDP,常用端口是 53

  • 每一级域名的长度限制是 63

  • 域名总长度限制是 253

DNS解析的工作原理

当你在浏览器中输入一个域名并尝试访问时,Windows系统会首先查询DNS以获取该域名对应的IP地址。这个查询过程可能涉及多个DNS服务器之间的交互和查询,但客户端通常只需要向本地DNS服务器发送一次查询请求,就可以获得目标域名的IP地址。

  1. 本地缓存检查:系统会首先检查本地缓存中是否已经有该域名的IP地址记录。如果缓存中存在该域名的IP地址,则直接使用该IP地址进行访问。

  2. Hosts文件检查:如果本地缓存中没有找到对应的IP地址,系统会检查本地的Hosts文件。Hosts文件是一个包含域名和IP地址映射关系的文件,通常用于手动指定某些域名的IP地址。

  3. 本地DNS服务器查询:如果本地缓存和Hosts文件中都没有找到对应的IP地址,客户端会向本地配置的DNS服务器发送查询请求。本地DNS服务器可能是由ISP(互联网服务提供商)提供的,也可能是企业或组织内部部署的。

  4. 递归或迭代查询:本地DNS服务器收到查询请求后,会进行递归查询或迭代查询来解析域名。递归查询是指本地DNS服务器代替客户端向其他DNS服务器发送查询请求,直到找到对应的IP地址并将结果返回给客户端。迭代查询是指本地DNS服务器向客户端返回一个或多个指向其他DNS服务器的引用,客户端再依次向这些服务器发送查询请求,直到找到对应的IP地址。

  5. 根域名服务器查询:如果本地DNS服务器无法解析域名,它会向根域名服务器发送查询请求。根域名服务器是DNS系统中的最高层次,它知道所有顶级域名服务器的地址。根域名服务器会返回顶级域名服务器的地址给本地DNS服务器,然后本地DNS服务器再逐级向下查询,直到找到权威域名服务器并获取对应的IP地址。

  6. 返回结果并缓存:本地DNS服务器将查询到的IP地址返回给客户端,并将该结果缓存起来以便后续使用。

Windows系统中的DNS配置方法

在Windows系统中,你可以通过以下步骤来配置DNS服务器地址:

  1. 点击左下角的开始按钮,然后在弹出的菜单中选择“控制面板”。
  2. 在控制面板中,选择“网络和Internet”选项。
  3. 接着,选择“网络和共享中心”。
  4. 在左侧菜单中,选择“更改适配器设置”。
  5. 在弹出的窗口中,找到你当前使用的网络连接(通常显示为本地连接或者以太网),右键点击它,然后选择“属性”。
  6. 在属性窗口中,找到“Internet协议版本4(TCP/IPv4)”,双击打开它。
  7. 在弹出的窗口中,选择“使用下面的DNS服务器地址”,然后在对应的栏目中输入你想要使用的DNS服务器的IP地址。
  8. 输入完毕后,点击“确定”按钮保存你的设置。

DNS查询类型


        DNS递归查询和迭代查询过程是域名解析的两种主要方式,它们在查询过程中扮演的角色和方式有所不同。

        DNS递归查询过程:

        客户端(如浏览器)发起一个DNS查询请求,通常是通过ISP提供的递归DNS服务器进行的。
        递归DNS服务器接收请求后,会代替客户端进行后续的所有查询工作,直到找到正确的IP地址并返回给客户端。
        递归DNS服务器可能会查询根DNS服务器、顶级域名服务器(TLD)、以及权威DNS服务器,以逐级解析域名到最终的IP地址。
        如果递归DNS服务器在其缓存中找到匹配的记录,则会直接返回结果给客户端,否则会进行一系列的查询直到找到答案。


        DNS迭代查询过程:

        客户端向本地DNS服务器发起查询请求。
        本地DNS服务器不直接提供答案,而是告诉客户端下一个应该查询的DNS服务器的地址。
        客户端然后向这个新的DNS服务器发送查询请求,这个过程可能会重复多次,直到找到答案或者确定没有匹配的记录。
        迭代查询过程中,客户端和DNS服务器之间的角色不变,客户端负责发起请求并跟踪下一个查询的DNS服务器地址。

        总结一下:客户端发起的请求默认是递归查询,DNS服务器之间默认是迭代查询。也就是说我们向DNS提出请求后,会给到最后结果,不会再去反复查询。而域名服务器之间会反复多次查询。

        下面做个测试:

        1.递归查询:

        使用nslookup命令查询某域名:nslookup so.com

        使用Wireshark抓包,并过滤展示:        

        基本上一个请求一个应答,就会得到解析结果,更多的交互内容由DNS服务器完成。其他的反向查询和ipv6查询先忽略。

        2.迭代查询:

        使用Linux的dig命令加trace参数可以设置迭代查询:

         通过抓包也可以看到反复查询的过程,感兴趣自己测试一下,可以看到世界上的13个根域名服务的ip地址。可以看到逐个会向顶级域名服务器、二级域名服务器、NS服务器请求解析的过程。

1.3 DNS解析过程
        当我们访问一个网站时,域名解析的过程是这样的:Client(客户端)–> hosts文件 –> DNS Service Local Cache(自己的本地缓存) –> DNS Server(recursion递归)  –> Server Cache(缓存) –> iteration(迭代) –>根 –> 顶级域名DNS –> 二级域名DNS… 
————————————————

                            版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
                        
原文链接:https://blog.csdn.net/imtech/article/details/140653546

常见的DNS错误及解决方法

1. 检查网络连接

首先,我们应该检查我们的网络连接是否正常。确保我们的设备连接到可靠的网络,并且网络连接稳定。如果我们使用的是Wi-Fi连接,可以尝试重新连接或重启路由器来解决潜在的网络问题。

2. 清除DNS缓存

DNS缓存可能会导致解析错误或过期的IP地址。我们可以尝试清除设备上的DNS缓存来解决这个问题。具体步骤可能因操作系统而异,但通常可以通过在命令提示符或终端中运行特定命令来清除DNS缓存。

3. 更改DNS服务器

我们的设备通常会自动获取DNS服务器的设置,但有时这些服务器可能出现问题。我们可以尝试手动更改DNS服务器,使用其他可靠的公共DNS服务器,如Google Public DNS或Cloudflare DNS。这样做可以解决由于DNS服务器故障或不稳定导致的问题。

4. 检查防火墙和安全软件设置

有时,防火墙或安全软件可能会阻止设备与DNS服务器的通信,导致DNS异常。我们应该检查我们的防火墙和安全软件设置,确保它们不会干扰DNS解析。如果需要,我们可以暂时禁用防火墙或安全软件,然后再次尝试访问网站或应用程序。

DNS解析是互联网访问的基础,了解DNS的工作原理和配置方法对于解决网络问题至关重要。希望本文能够帮助你更好地理解和使用Windows系统中的DNS功能。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

吃一口小豆泥

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值