DNS采用C/S机制。实现域名与IP地址转换。DNS服务器用于存储资源记录并提供名称查询服务,DNS客户端也称解析程序,用来插叙服务器并获取名称解析信息。
正向解析与反向解析
有时我们也会用到反向解析,即通过IP地址查询对应的域名,最典型的就是判断IP地址所对应的域名是否合法。由于反向解析的特殊性,RFC 1304规定了固定格式的反向解析区域后缀格式in-addr.arpa
与DNS名称不同,当IP地址从左到右读时,它们是以相反的方式解释的,所以对每个8位字节值需要使用域的反序,因此建立 in-addr-arpa。
反向解析区域文件与正向解析区域文件格式相同,只是其主要内容是用于建立IP地址到DNS域名的转换记录,即PTR资源指针记录。PTR资源指针记录和A资源记录正好相反,它是将IP地址解析成DNS域名的资源记录。
域名解析的具体过程
- 当客户机提出查询请求时,首先在本地计算机的缓存中查找。如果在本地无法获得查询信息,则将查询请求发给DNS服务器。
- 首先客户机将域名查询请求发送到本地DNS服务器,当本地DNS服务器接到查询后,首先在该服务器管理的区域的记录中查找,如果找到该记录,则利用此记录进行解析;如果没有区域信息可以满足查询要求,服务器在本地的缓存中查找。
- 如果本地服务器不能在本地找到客户机查询的信息,将客户机请求发送到根域名DNS服务器。
- 根域名服务器负责解析客户机请求的根域部分,它将包含下一级域名信息的DNS服务器地址返回给客户机的DNS服务器地址。
- 客户机的DNS服务器利用根域名服务器解析的地址访问下一级DNS服务器,得到再下一级域我的DNS服务器地址。
- 按照上述递归方法逐级接近查询目标,最后在有目标域名的DNS服务器上找到相应IP地址信息。
- 客户机的本地DNS服务器将递归查询结果返回客户机。
- 客户机利用从本地DNS服务器查询得到的IP访问目标主机,就完成了一个解析过程。
正向解析可以通过主机名获取其对应的广域网IP地址,使用 nslookup 命令在 Linux上输入
nslookup 【domain】
从返回的信息中可以看到正向解析的结果。
如何做反向DNS?
我们可以通过命令来执行反向 DNS 查找
1、使用 nslookup 命令
2、使用 dig 命令
3、使用 rDNS 查找工具
反向 DNS 查找命令
nslooup命令
nslookup最简单的用法是查询域名对应的IP地址,也可以使用IP地址查找域名,例如:
nslookup [ip_address]
使用nslookup可以输出返回指定 IP 地址的域名。
由于在域名系统中,一个IP地址可以对应多个域名,因此从IP出发去找域名,理论上应该遍历整个域名树,但这在Internet上是不现实的。为了完成逆向域名解析,系统提供一个特别域,该特别域称为逆向解析域in-addr.arpa。
dig命令
Linux下解析域名除了使用nslookup之外,还可以使用dig命令来解析域名,dig命令可以得到更多的域名信息。
dig命令是一个用于询问 DNS 域名服务器的灵活的工具。常见使用:
dig -x [ip_address]
dig -x 8.8.8.8
DNS反向解析实现
总结
反向 DNS 是从 IP 地址对域名的 DNS 查找。 常规 DNS 请求从域名解析 IP 地址,而 rDNS 则相反,因此名称相反。