DNS

发布时间 2023-11-29 17:48:36作者: Themis09

DNS:把网络域名自动转换为IP地址

DNS 介绍

DNS ,全称 Domain Name System 。采用 client/server 模式,DNS client 发出查询请求,DNS server 响应请求。DNS client 通过查询 DNS server 获得主机的 IP 地址,进而完成后续的 TCP/IP 通信过程。
当 Windows 系统用户使用 nslookup hostname/domainname 命令时,DNS 会自动查找注册了主机名和 IP 地址的数据库,并返回对应的 IP 地址。

DNS域名

DNS域名组成

DNS 域的本质是一种管理范围的划分,最大的域是根域,向下可以划分为顶级域、二级域、三级域、四级域等。相对应的域名是根域名、顶级域名、二级域名、三级域名等。不同等级的域名使用点号分隔,级别最低的域名写在最左边,而级别最高的域名写在最右边。

DNS域名解析

将域名转换为对应的 IP 地址的过程叫做域名解析。在域名解析过程中,DNS client 的主机调用解析器( Resolver ),向 DNS server 发出请求,DNS server 完成域名解析。

DNS解析器

从应用程序的角度看,访问 DNS 是通过一个叫解析器( Resolver )的应用程序来完成的。发送一个 TCP 或 UDP 数据包之前,解析器必须将域名(主机名)转换为 IP 地址。一个解析器至少要注册一个域名服务器的 IP 地址。通常,它至少包括本地域名服务器的 IP 地址。

DNS传输协议

DNS 域名服务器使用的端口号是 53 ,并且同时支持 UDP 和 TCP 协议。
因为 DNS 响应报文中有一个删减标志位,用 TC 表示。当响应报文使用 UDP 封装,且报文长度大于 512 字节时,那么服务器只返回前 512 字节,同时 TC 标志位置位,表示报文进行了删减。当客户端收到 TC 置位的响应报文后,将采用 TCP 封装查询请求。DNS 服务器返回的响应报文长度大于 512 字节。
UDP 用于 client 和 server 的查询和响应,TCP 用于主从 server 之间的传送。

DNS查询方式

DNS 域名解析包括两种查询( query )方式,一种是递归查询,另一种是迭代查询。

DNS 反向查询:在 DNS 查询中,客户端希望知道域名对应的 IP 地址,这种查询称为正向查询。大部分的 DNS 查询都是正向查询。与正向查询对应的,是反向查询。它允许 DNS 客户端通过 IP 地址查找对应的域名

DNS 应用场景

域名解析分为动态域名解析和静态域名解析。在解析域名时,首先采用静态域名解析,如果静态解析不成功,再采用动态域名解析。

静态域名解析是通过静态域名解析表进行的,手动建立域名和 IP 地址之间的对应关系表,该表的作用类似于 Windows 操作系统下的 hosts 文件,可以将一些常用的域名放入表中。当 DNS client 需要域名所对应的 IP 地址时,即到静态域名解析表中去查找指定的域名,从而获得所对应的 IP 地址,提高域名解析的效率。

动态域名解析需要专用的域名服务器( DNS server )运行域名解析服务器程序,提供从域名到 IP 地址的映射关系,负责接收客户端( DNS client)提出的域名解析请求。

DNS代理

在使用了 DNS 代理( DNS proxy )功能的组网中,DNS client 将 DNS 请求报文直接发送给 DNS proxy 。DNS proxy 会先查找本地域名解析表,如果未查询到对应的解析表项,会将 DNS 请求报文转发给 DNS Server ,并在收到 DNS server 的应答报文后将其返回给 DNS client ,从而实现域名解析。
因此,当 DNS server 的地址发生变化时,只需改变 DNS proxy 上的配置,无需逐一改变局域网内每个 DNS client 的配置,从而简化了网络管理。

参考:https://zhuanlan.zhihu.com/p/643176575