DNS中的正向解析与反向解析 及 nslookup命令使用

时间:2021-04-29 14:49:14




DNS中的正向解析与反向解析 - Jackxin Xu IT技术专栏 博客频道 - CSDN.NET 

http://blog.csdn.net/jackxinxu2100/article/details/8145318


正向解析:通过域名查找ip;

反向解析:通过ip查找域名;

域名是为了方便记忆而专门建立的一套地址转换系统,要访问一台互联网上的服务器,最终还必须通过IP地址来实现,域名解析就是将域名重新转换为IP地址的过程。这一过程通过域名解析系统DNS来完成。

正向解析:通过主机名获取其对应的广域网IP地址;
同时通过主机名名称查看正向解析信息:
    命令行输入 nslookup domain.
    从返回的信息中您可以看到正向解析的结果。
C:\>nslookup www.google.com
Server:  zj-ns1.cableplus.com.cn
Address:  219.233.241.166    ------DNS名字服务器信息

Non-authoritative answer:
Name:    www.google.com
Addresses:  2404:6800:4005:c00::63
          74.125.128.106
          74.125.128.147
          74.125.128.99
          74.125.128.103
          74.125.128.104
          74.125.128.105    -------www.google.com的IP地址群

接下来我们先来了解一下什么是IP反向解析。我们经常使用到得DNS服务器里面有两个区域,即“正向查找区域”和“反向查找区域”,正向查找区域就是我们通常所说的域名解析,反向查找区域即是这里所说的IP反向解析,它的作用就是通过查询IP地址的PTR记录来得到该IP地址指向的域名,当然,要成功得到域名就必需要有该IP地址的PTR记录。PTR记录是邮件交换记录的一种,邮件交换记录中有A记录和PTR记录,A记录解析名字到地址,而PTR记录解析地址到名字。地址是指一个客户端的IP地址,名字是指一个客户的完全合格域名。通过对PTR记录的查询,达到反查的目的。

反向域名解析系统(Reverse DNS)的功能确保适当的邮件交换记录是生效的。反向域名解析与通常的正向域名解析相反,提供IP地址到域名的对应。IP反向解析主要应用到邮件服务器中来阻拦垃圾邮件,特别是在国外。多数垃圾邮件发送者使用动态分配或者没有注册域名的IP地址来发送垃圾邮件,以逃避追踪,使用了域名反向解析后,就可以大大降低垃圾邮件的数量。

比如你用 xxx@name.com 这个邮箱给我的邮箱 123@163.com 发了一封信。163邮件服务器接到这封信会查看这封信的信头文件,这封信的信头文件会显示这封信是由哪个IP地址发出来的。然后根据这个IP地址进行反向解析,如果反向解析到这个IP所对应的域名是name.com 那么就接受这封邮件,如果反向解析发现这个IP没有对应到name.com,那么就拒绝这封邮件。     

由于在域名系统中,一个IP地址可以对应多个域名,因此从IP出发去找域名,理论上应该遍历整个域名树,但这在Internet上是不现实的。为了完成逆向域名解析,系统提供一个特别域,该特别域称为逆向解析域in-addr.arpa。这样欲解析的IP地址就会被表达成一种像域名一样的可显示串形式,后缀以逆向解析域域
名"in-addr.arpa"结尾。
    例如一个IP地址:222.211.233.244,其逆向域名表达方式为:244.233.221.222.in-addr.arpa

两种表达方式中IP地址部分顺序恰好相反,因为域名结构是自底向上(从子域到域),而IP地址结构是自顶向下(从网络到主机)的。实质上逆向域名解析是将IP地址表达成一个域名,以地址做为索引的域名空间,这样逆向解析的很大部分可以纳入正向解析中。

查看反向解析信息:
    命令行输入 nslookup -qt=ptr yourIP  
    从返回的信息中您可以看到反向解析的结果。

C:\>nslookup -qt=ptr 74.125.128.106
Server:  zj-ns1.cableplus.com.cn
Address:  219.233.241.166                 -----DNS名字服务器信息

Non-authoritative answer:
106.128.125.74.in-addr.arpa     name = hg-in-f106.1e100.net

125.74.in-addr.arpa     nameserver = NS4.GOOGLE.COM
125.74.in-addr.arpa     nameserver = NS1.GOOGLE.COM
125.74.in-addr.arpa     nameserver = NS2.GOOGLE.COM
125.74.in-addr.arpa     nameserver = NS3.GOOGLE.COM    ---对应的域名
NS1.GOOGLE.COM  internet address = 216.239.32.10
NS2.GOOGLE.COM  internet address = 216.239.34.10
NS3.GOOGLE.COM  internet address = 216.239.36.10
NS4.GOOGLE.COM  internet address = 216.239.38.10





////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////





[原创]NSLookUP命令小结及附带DNS名词解释 - Bill 的博客--专注IT技术及管理 畅享博客  

http://blog.vsharing.com/BillMa/A1053860.html




NSLookUP命令小结及附带DNS名词解释

 

阅读本文的基本要求:

1.       cmd命令的使用有一定基础

2.       DNS的基本原理及常见概念有一定的了解如主机,别名,正向查找区域,反向查找区域等等。

3.       对网络协议有简单的认识TCP/IP的基本配置

 

Nslookup是由微软发布的一个用于检测和排错的命令行工具。

做为IT管理人员,必须对Windows平台上的NSLOOKUP命令工具的使用,熟练于心只有这样才能更好的进行网络配置检查及排错.

 

既然说NSLOOKUP命令很重要,那它到底能做什么哪?不用着急,我们会在下面一一介绍。

 

使用NSLOOKUP的先决条件:

l  操作平台:Windows NT/2000/XP 中均可使用 , 但在 Windows 98 中却没有集成这一个工具

l  协议:所在计算机必须安装TCP/IP协议

 

Nslookup2种使用模式交互模式与非交互模式.

非交互模式:在cmd命令中直接输入命令,返回对应对应的数据

nslookup [-option] [hostname] [server]交互模式仅仅在命令行输入nslookup,随即进入nslookup的交互命令行,退出输入exit

>nslookup

Default Server:  nameserver1.domain.comAddress:  10.0.0.1功能介绍及实例说明:

1.       将域名解析成IP地址

格式:

Nslookup 域名

Nslookup set qt=a 域名

如果我们需要指定一台DNS服务器进行域名解析,可以采用如下格式

Nslookup 域名 DNS Server地址

如: nslookup www.163.com 202.96.64.68 (大连DNS server)

 

有人会说“我使用ping同样可以将域名解析成IP地址,何必需要NSLOOKUP?”。 OK,我们直接以www.163.com为例,分别使用nslookup www.163.com ping www.163.com,查看具体反馈情况,通过一一说明来查看到底有什么区别?

Nslookup www.163.com

截图:

DNS中的正向解析与反向解析  及    nslookup命令使用

分析:

第一部分:

**can’t find server name for address 202.96.69.38: server failed

Server ns.lnpta.net.cn

Address: 202.96.64.68

 

这里出现了2IP地址,202.96.69.38202.96.64.68;它们是有什么内在关联?通常计算机会到DNS服务器上解析域名,我们使用IPConfig /all查看它们是否是DNS服务器(本人实验环境ADSL拨号网络),得到的反馈如下

DNS中的正向解析与反向解析  及    nslookup命令使用

这说明202.96.69.38202.96.64.68是我当前计算机的2个主次DNS服务器。

客户机先到主DNS Server 202.96.69.38进行连接查询,结果发现异常,连接失败,于是出现了**can’t find server name for address 202.96.69.38: server failed这个提示;按照规则主DNS无法连接,会自动转入次DNS 202.96.64.68进行连接,得到反馈信息:Server ns.lnpta.net.cn

Address: 202.96.64.68

其中Server ns.lnpta.net.cn指的是202.96.64.68对应的主机名,(可以简单理解为计算机名,虽然不准确^&^,我们通过这个DNS server为跳板获取了域名信息。

第二部分:

Non-authoritative answer:

Name:    www.cache.gslb.netease.com

 

Non-authoritative answer:翻译成中文为“非权威回答”,什么叫“非权威回答”哪? 这里又要讲到一个小常识假设某个DNS server没有域名test.com的记录信息,当有客户端通过它请求获取test.com的域名信息,此DNS Server会通过迭代递归的方式从test公司实际存储此记录信息的DNS server中获取test.com的域名信息,反馈给发出请求的客户端,同时会把test.com的记录信息放在自身缓存中放置一段时间,当又有客户端请求test.com域名解析时,此DNS server直接从自身缓存中提取返回给客户端,这个回答叫“非权威回答”,简言之凡是从非实际记录存储DNS server中获取的域名解析回答,都叫“非权威回答”

Name:    www.cache.gslb.netease.com指的www.163.com 域名实际对应的主机名记录。

 

第三部分:

Addresses:  61.135.253.17, 61.135.253.18, 61.135.253.10, 61.135.253.11

          61.135.253.12, 61.135.253.13, 61.135.253.14, 61.135.253.15, 61.135.253.16

Aliases:  www.163.com

 

Address有多个记录:61.135.253.17/18/16/12.. 通过这个我们知道实际上163.com域名实际对应多个物理主机,用户访问www.163.com时,按照一定规则由其中一台计算机进行应答,这样可以有效的进行域名负载平衡,小心Down机哦。

Aliase: www.163.com  表示www.163.com 只是DNS记录中的一个别名,方便我们记忆

 

Ping www.163.com

(小知识ping命令使用ICMP协议)

DNS中的正向解析与反向解析  及    nslookup命令使用

通过ping 命令,我们看到我们只能获取上面通过nslookup获取的众多IP地址的一个,而且这个IP地址并不固定,同样也无法得知我们是通过哪个DNS 服务器获取的域名解析信息。

Ping NSLookup的区别详细到此已经一目了然。

 

错误类型介绍

1)         *** DNS serever can't find “域名”  Non-existent domain

这说明DNS Server正常工作,但没有找到对应的DNS记录信息,这时需要登录DNS Server查看正向区域或反向区域,域名对应的 IP 地址记录是否已经添加到了 DNS 的数据库中

2)    *** Can't find server name for domain: No response from server 
3)    *** ***: Non-existent domain 

这时,说明测试主机在目前的网络中,根本没有找到可以使用的 DNS 服务器。此时,我们要对整个网络的连通性作全面的检测,并检查 DNS 服务器是否处于正常工作状态,采用逐步排错的方法,找出 DNS 服务不能启动的根源

2.       反向解析,由IP地址,解析域名

格式

Nslookup –qt=ptr 192.168.1.45

nslookup回车

set qt=PTR回车

192.168.1.45回车,得出结果

注意qt必须小写

DNS服务器中存在正向区域与反向区域;正向区域是名称对应IP地址;反向区域是IP地址的反向存储对应名称;通过这个命令,可以确认域名的反向记录有无异常

DNS中的正向解析与反向解析  及    nslookup命令使用

3.       查询邮件服务器信息

域管理员有时想查看域内邮件服务器的信息可以通过如下命令

格式:

Nslookup –qt=mx www.163.com

通过此命令可以查看域对应的邮件服务器的IP列表(如果是多个邮件服务器),及对应基本级别perference, 其中数字越小,优先级别越高。

DNS中的正向解析与反向解析  及    nslookup命令使用

4.       查看命名服务器NS

NS就是一个域名对应多个服务器,由哪个服务器对域名及附属记录进行解析.

格式:

nslookup –qt=ns www.test.com

DNS中的正向解析与反向解析  及    nslookup命令使用

5.       查看DNS缓存记录的保存时间

格式

Nslookup –d3 test.com

DNS中的正向解析与反向解析  及    nslookup命令使用

ttl 即为缓存保留的时间。






/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////



Nslookup命令的用法_烦得多_新浪博客 

 http://blog.sina.com.cn/s/blog_6441e0640100scip.html


NSlookup命令的用法

用了域名服务器后,经常要查询域名的解析情况,nslookup是常用工具之一,无论是linux或者是window下都有这个工具,用好它对平常的域名解析情况,或者对域名服务器的维护都有帮助。

用途

查询因特网域名服务器。

语法

nslookup [ -Option ... ] [ Host ] [ -NameServer ]

描述

nslookup 命令以两种方式查询域名服务器。交互式模式允许查询名称服务器获得有关不同主机和域的信息,或打印域中主机列表。在非交互式模式,打印指定的主机或域的名称和请求的信息。

当没有给出参数时进入交互式模式,或者当第一个参数是 -(减号)并且第二个是主机名或名称服务器的因特网地址时,nslookup 命令进入交互式模式。当没有给出参数时,命令查询缺省名称服务器。-(减号)调用可选的子命令(-Option... 变量)。除了 set 命令,这些命令在命令行指定并且必须在nslookup 命令参数之前。set 子命令选项能在用户主目录的 .nslookuprc 文件有选择的指定。

当第一个参数是正在搜索的主机的名称或地址,nslookup 命令在非交互式模式下执行。在此情况下,主机名或名称服务器的因特网地址是可选的。

非交互式命令使用缺省名称服务器或由 NameServer 参数指定的名称服务器为指定的主机搜索信息。如果Host 参数指定因特网地址并且查询类型是 A 或 PTR,则返回主机名称。如果 Host 参数指定名称并且名称没有结尾句点,缺省的域名追加到名称后。不在当前域中查找主机,在名称后追加单一的句点。

注:如果在用户主目录的 .nslookuprc 文件指定,set 子命令的domainsrchlistdefname 和 search 选项能影响非交互式命令的行为。

子命令

下列命令可以随时输入 Ctrl-C 按键顺序终止。要退出,请输入 Ctrl-D 按键顺序或输入 exit。将内置命令作为主机名,在它之前带转义字符 \。不能标识的命令解释为主机名。

下列子命令由 nslookup 命令标识:

finger [Name] [> FileName]
finger [Name] [>> FileName]

在当前主机连接 finger 守护程序服务器。当前一个查询主机成功并且返回地址信息,如返回 set querytype=A 命令时,定义当前主机。Name 参数指定用户名,它是可选的。> 和 >> 字符可以用来重定向输出到新建或现有的文件。

server Domain
lserver Domain 

更改缺省服务器为 Domain 参数指定的值。lserver 子命令使用初始服务器查询有关域的信息。server 子命令使用当前的缺省服务器。如果未发现授权应答,则任何可能有应答的附加服务器名返回。

root

更改缺省服务器为 root 域名空间服务器。当前,使用主机 ns.nic.ddn.mil 。root 服务器名可以使用 set root 子命令更改。(root 子命令与 lserver ns.nic.ddn.mil子命令同义)。

ls [OptionDomain [> FileName]
ls [OptionDomain [>>FileName]

为指定的 Domain 列出可获得的信息,有选择的创建或追加输出到 FileName 参数指定的文件。缺省输出包含主机名和它们的因特网地址。Option 参数的可能值是:

-t  QueryType

列出指定类型的所有记录。缺省记录类型是 A。有效类型是:

A
主机的因特网地址
CNAME
为别名规范名称
HINFO
主机 CPU 和操作系统
KEY
安全性密钥记录
MINFO
邮箱或邮件列表信息
MX
邮件交换器
NS
指定区域的名称服务器
PTR
如果查询是因特网地址则指向主机名;否则,指向其他信息
SIG
特征符记录
SOA
域的“start-of-authority”信息
TXT
文本信息
UINFO
用户信息
WKS
支持众所周知的服务
-a
列出域中主机的别名(与  -t CNAME 选项相同)。
-d
列出域中所有记录(与  -t ANY 选项同义)。
-h
列出域中 CPU 和操作系统信息(与  -t HINFO 选项同义)。
-s
列出域中众所周知的主机服务(与  -t WKS 选项同义)。

注: 当输出重定向到文件,每从服务器接收 50 条记录,打印散列标记。

view FileName

将以前 ls 命令的输出排序并且使用 more 命令将其列出。

help

 

?

显示命令的简要总结。

exit

退出程序。

set Keyword[=Value]

改变影响查询的状态信息。该命令可以在命令行指定或有选择的在用户主目录的.nslookuprc 文件指定。有效的关键字是:

all
显示频繁地使用的选项要设置的当前值。有关当前缺省服务器和主机的信息也显示。
class= Value

更改查询类为下列之一。类指定信息的协议组。缺省值是 IN

IN
Internet 类
CHAOS
Chaos 类
HESIOD
MIT Althena Hesiod 类
ANY
通配符(上面任意之一)
[no]debug
打开调试模式。缺省值是  nodebug (关闭)。
[no]d2
打开全面调试模式。缺省值是  nod2(关闭)。
domain= Name
更改缺省域名为  Name 参数指定的域名。缺省域名追加到查询请求,取决于 defname 和  search 选项的状态。如果搜索列表在其名称中至少包含两部分则域搜索列表包含缺省域的父域。例如,如果缺省域是  CC.Berkeley.EDU,搜索列表是 CC.Berkeley.EDU 和  Berkeley.EDU。使用  set srchlist 命令指定不同列表。使用  setall 命令显示列表。 domain= Name 选项的缺省值是在系统的 hostname/etc/resolv.conf、或  LOCALDOMAIN 文件指定的值。
srchlst= Name1/ Name2/...

更改缺省域名为 Name1 参数指定的值,并且更改域搜索列表为Name1Name2......参数指定的名称。可以指定由斜杠分开的六个名称的最大值。使用 set all 命令显示名称列表。缺省值是在系统的 hostname/etc/resolv.conf或 LOCALDOMAIN 文件指定的值。

注:该命令覆盖缺省域名和 set domain 命令选项的搜索列表。

[no]defname
追加缺省域名到单一的组成部分的查询请求(不包含句点的请求)。缺省值是 defname (追加)。
[no]search
如果查询请求包含结尾句点以外的句点,追加域搜索列表中的域名到请求直到接收到应答。缺省值是  search
port= Value
更改缺省 TCP/UDP 名称服务器端口为  Value 参数指定的数。缺省值是 53。
querytype= Value

type=Value

更改信息查询为下列值之一。缺省值是 A

A
主机的因特网地址
ANY
任何可用的选项。
CNAME
为别名规范名称
HINFO
主机 CPU 和操作系统
KEY
安全性密钥记录
MINFO
邮箱或邮件列表信息
MX
邮件交换器
NS
为指定区域的命名服务器
PTR
如果查询因特网地址则指向主机名;否则,指向其他信息
SIG
特征符记录
SOA
域的“start-of-authority”信息
TXT
文本信息
UINFO
用户信息
WKS
支持众所周知的服务
[no]recurse
如果没有信息则通知名称服务器查询其他服务器。缺省值是  recurse
retry= Number
设置请求企图重试次数值为  Number 参数指定的值。当请求的应答没有在  settimeout 命令指定的时间帧之内接收,则超时周期加倍,请求重新发送。该子命令控制超时之前请求发送的次数。缺省值是 4。
root= Host
更改 root 服务器名称为  Host 参数指定的名称。缺省值是  ns.nic.ddn.mil
timeout= Number
更改初始等待应答超时间隔为  Number 参数指定的秒数。缺省值是 5 秒。
[no]vc
当发送请求到服务器使用虚拟电路。缺省值是  novc(没有虚拟电路)。
[no]ignoretc
忽略数据包截断错误。缺省值是  noignoretc(不忽略)。

示例

  1. 更改缺省查询类型类型为主机信息(HINFO)并且初始超时时间为 10 秒,请输入:

    nslookup -query=hinfo -timeout=10

  2. 设置域和搜索列表为三个名称,lcs.MIT.EDUai.MIT.EDU 和 MIT.EDU,请输入:

    nslookup -set srchlist=lcs.MIT.EDU/ai.MIT.EDU/MIT.EDU

    该命令覆盖缺省域名和 set domain 命令的搜索列表。使用 set all 命令显示列表。

  3. 确定名称是否指定主机、域、或其他实体,请输入:

    nslookup -querytype=ANY austin.ibm.com

    nslookup 命令返回有关名称 austin.ibm.com 的所有可用的信息,包括权限语句(SOA)、名称服务器、邮件交换器和主机因特网地址信息,如下:

    Server: benames.austin.ibm.comAddress: 9.3.199.2 austin.ibm.com origin = ausname1.austin.ibm.com mail addr = brian.chriss.austin.ibm.com serial=1993081210,refresh=3600,retry=300,expire=604800, min=86400 austin.ibm.com nameserver = ausname1.austin.ibm.com austin.ibm.com nameserver = bb3names.austin.ibm.com austin.ibm.com nameserver = benames.austin.ibm.com austin.ibm.com nameserver = b45names.austin.ibm.com austin.ibm.com nameserver = bbcnames.austin.ibm.com austin.ibm.com nameserver = netmail.austin.ibm.com austin.ibm.com preference = 10, mail exchanger = netmail.austin.ibm.com austin.ibm.com inet address = 129.35.208.98 ausname1.austin.ibm.com inet address = 129.35.17.2 bb3names.austin.ibm.com inet address = 129.35.208.99 benames.austin.ibm.com inet address = 9.3.199.2 b45names.austin.ibm.com inet address = 129.35.49.2 bbcnames.austin.ibm.com inet address = 129.35.17.68 netmail.austin.ibm.com inet address = 129.35.208.98

  4. 要在 opus 主机上执行非交互式查询,请输入:

    nslookup opus

    nslookup 命令与 host 命令的应答相同。命令返回域名和 opus 主机的因特网地址,如下:

    Name: opus.austin.ibm.com Address: 129.35.129.223

    如果主机 opus 已经是名称服务器(以空 /etc/resolv.conf 文件正在运行 named 守护程序的主机),下列信息将会显示:

    Server: loopback Address: 0.0.0.0

退出状态

当查询请求不成功,则 nslookup 命令返回下列错误消息之一:

Timed Out

表示服务器在超出指定的重试次数后不响应请求。

No Response from Server

表示名称服务器不在服务器上运行。

No Records

表示服务器没有主机的指定查询类型的资源记录,即使主机名有效。

Non-Existent Domain

表示主机或域名不存在。

Connection Refused

表示在查询时,不能连接到名称或远程用户信息服务命令服务器。该错误是与 ls 和 finger 请求有关的典型错误。

Network Is Unreachable

表示在查询时,不能连接到名称或远程用户信息服务命令服务器。该错误是与 ls 和 finger 请求有关的典型错误。

Server Failure

表示名称服务器遇到内部矛盾并且不能返回有效的应答。

Refused

表示名称服务器拒绝请求服务。

Format Error

表示名称服务器拒绝数据包请求因为格式不正确。

文件

/usr/bin/nslookup

包含 nslookup 命令。

/etc/resolv.conf

包含初始域名和名称服务器地址。

$HOME/.nslookuprc

包含用户的初始选项。

HOSTALIASES

包含主机别名。

LOCALDOMAIN

包含覆盖的缺省域。

***值得提醒的是命令行参数中的[- name server]上的-后要有一空格,实际上 - 是第一个参数,曾经许多人都觉得这个参数不对,不能在命令行指定域名服务器,实际上都是这个原因。这个用法对检查某个域名服务器的解析是否正确很有用。比如三个运营商在当地的域名解析是否正确,就不用采用每次都修改电脑的域名服务器来实现,只要在命令行加上这个参数就行。

***nslookup不能查询dns的递归或者迭代,功能也比dig弱。