DNS(Domain Name System,域名系统)是互联网中用于将域名转换为相应IP地址的分布式命名系统。它充当了互联网的“电话簿”,将人类易于记忆的域名(比如www.example.com)转换为计算机更容易识别和处理的IP地址(比如192.168.1.1)。
虽然不是严格意义上的局域网协议,但它在中大型局域网起着至关重要的作用。它负责将域名映射为IP地址,使得用户可以使用易记的名称访问网络资源。
域名解析包含两种查询方式,分别是递归查询和迭代查询。
如果主机询问的本地域名服务器不知道被查询域名的 IP 地址,本地DNS服务器会代表客主机进行整个查询过程,逐级向下级DNS服务器查询直至找到目标域名的IP地址,然后直接将结果返回给主机。
当根域名服务器收到本地域名服务器发出的迭代查询请求报文时,要么给出所要查询的IP 地址,要么告诉本地服务器下一步应该找哪个域名服务器进行查询,然后让本地服务器进行后续的查询。
ipconfig /release
ipconfig /renew
ipconfig /flushdns
sudo Killall -HUP mDNSResponder
sudo systemctl restart nscd
如果您以前的某个域的 IP 地址不再可用,那么您现在已将其删除。设备再次执行 DNS 解析,应该会获取新的 IP 地址。
6. 禁用任何 VPN 或代理。VPN 和代理可以通过不同的服务器重定向您的网络流量,这可能会导致 DNS 解析问题。尝试禁用它们,看看是否可以解决问题。
7. 检查您的主机文件。您计算机上的主机文件可以覆盖 DNS 并手动将域名映射到 IP 地址。确保没有可能导致冲突的错误条目。
为了提高DNS的查询效率,并减轻根域名服务器的负荷和减少因特网上的DNS查询报文数量,在域名服务器中广泛地使用了高速缓存。高速缓存用来存放最近查询过的域名以及从何处获得域名映射信息的记录。
由于域名到IP地址的映射关系并不是永久不变,为了减少负载并提高速度,由递归服务器(DNS 解析器)在定义的时间段内保留 DNS 记录以及访问特定网站所需的信息。这个时间称为TTL(生存时间),这个过程称为DNS缓存。
不但在本地域名服务器中需要高速缓存,在用户主机中也很需要。许多用户主机在启动时从本地域名服务器下载域名和IP地址的全部数据库,维护存放自己最近使用的域名的高速缓存,并且只在从缓存中找不到域名时才向域名服务器查询。
当客户端向 DNS 服务器查询域名 ( 域名解析) 的时候,一般返回的内容不会超过 UDP 报文的最大长度,即 512 字节。用 UDP 传输时,不需要经过 TCP 三次握手的过程,从而大大提高了响应速度,但这要求域名解析器和域名服务器都必须自己处理超时和重传从而保证可靠性。
但有一些情况,DNS也会选择采用TCP: