一、如何看路由表
======================================================================
Active Routes:
Network Destination Netmask Gateway Interface Metric
0.0.0.0 0.0.0.0 192.168.1.2 192.168.1.101 10
127.0.0.0 255.0.0.0 127.0.0.1 127.0.0.1 1
192.168.1.0 255.255.255.0 192.168.1.101 192.168.1.101 10
192.168.1.101 255.255.255.255 127.0.0.1 127.0.0.1 10
192.168.1.255 255.255.255.255 192.168.1.101 192.168.1.101 10
224.0.0.0 240.0.0.0 192.168.1.101 192.168.1.101 10
255.255.255.255 255.255.255.255 192.168.1.101 192.168.1.101 1
Default Gateway: 192.168.1.2
Network Destination 目的网段
Netmask 子网掩码
Interface 到达该目的地的本路由器的出口ip(表示信息是从计算机A的这个IP地址送出)。
Gateway 下一跳路由器入口的ip,路由器通过interface和gateway定义一调到下一个路由器的链路,通常情况下,interface和gateway是同一网段的
如果目的计算机的IP地址与 Netmask执行逻辑AND运算后的结果,等于在Network Destination处的值,则会将信息转发给Gateway处的IP地址。
但是如果Gateway处的IP地址等于计算机A自己的IP地址,则表示此信息将直接传送给目的计算机,不需要再送给其他的路由器,例如目的计算机是与计算机A在同一个网络内。
Metric 跳数,该条路由记录的质量,一般情况下,如果有多条到达相同目的地的路由记录,路由器会采用metric值小的那条路由
第一条 0.0.0.0 0.0.0.0 192.168.1.2 192.168.1.101 10
缺省路由:意思就是说,当一个数据包的目的网段不在你的路由记录中,那么,你的路由器该把那个数据包发送到哪里!缺省路由的网关是由你的连接上的default gateway决定的
该路由记录的意思是:当我接收到一个数据包的目的网段不在我的路由记录中,我会将该数据包通过192.168.1.101这个接口发送到192.168.1.2这个地址,这个地址是下一个路由器的一个接口,这样这个数据包就可以交付给下一个路由器处理,与我无关。该路由记录的线路质量 10
第二条 127.0.0.0 255.0.0.0 127.0.0.1 127.0.0.1 1
本地环路:127.0.0.0这个网段内所有地址都指向自己机器,如果收到这样一个数据,应该发向哪里 该路由记录的线路质量 1
第三条 192.168.1.0 255.255.255.0 192.168.1.101 192.168.1.101 10
直联网段的路由记录:当路由器收到发往直联网段的数据包时该如何处理,这种情况,路由记录的interface和gateway是同一个。
当我接收到一个数据包的目的网段是192.168.1.0时,我会将该数据包通过192.168.1.101这个接口直接发送出去,因为这个端口直接连接着192.168.1.0这个网段,该路由记录的线路质量 10 (因interface和gateway是同一个,表示数据包直接传送给目的地址,不需要再转给路由器)
第四条 192.168.1.101 255.255.255.255 127.0.0.1 127.0.0.1 10
本地主机路由:当路由器收到发送给自己的数据包时将如何处理
当我接收到一个数据包的目的网段是192.168.1.101时,我会将该数据包收下,因为这个数据包时发送给我自己的,该路由记录的线路质量 1
第五条 192.168.1.255 255.255.255.255 192.168.1.101 192.168.1.101 10
本地广播路由:当路由器收到发送给直联网段的本地广播时如何处理
当我接收到广播数据包的目的网段是192.168.1.255时,我会将该数据从192.168.1.101接口以广播的形式发送出去,该路由记录的线路质量 10 (因interface和gateway是同一个,表示数据包直接传送给目的地址,不需要再转给路由器)
第六条 224.0.0.0 240.0.0.0 192.168.1.101 192.168.1.101 10
组播路由:当路由器收到一个组播数据包时该如何处理
当我接收到组播数据包时,我会将该数据从192.168.1.101接口以组播的形势发送出去,该路由记录的线路质量 10 (因interface和gateway是同一个,表示数据包直接传送给目的地址,不需要再转给路由器)
第十二条 255.255.255.255 255.255.255.255 192.168.1.101 192.168.1.101 1
广播路由:当路由器收到一个绝对广播时该如何处理
当我接收到绝对广播数据包时,将该数据包丢弃掉
(对主机A而言,因interface和gateway是同一个,表示数据包直接传送给目的地址,不需要再转给路由器)
二、Windows Server 2000路由器
1、启动Win2000路由器
2、查看理解路由表
3、添加静态路由
4、添加RIP路由协议,使用动态路由
常用网络命令使用技巧
一、Ping命令的使用技巧
Ping是个使用频率极高的实用程序,用于确定本地主机是否能与另一台主机交换(发送与接收)数据报。根据返回的信息,我们就可以推断TCP/IP参数是否设置得正确以及运行是否正常。需要注意的是:成功地与另一台主机进行一次或两次数 据报交换并不表示TCP/IP配置就是正确的,我们必须执行大量的本地主机与远程主机的数据报交换,才能确信TCP/IP的正确性。
简单的说,Ping就是一个测试程序,如果Ping运行正确,我们大体上就可以排除网络访问层、网卡、MODEM的输入输出线路、电缆和路由器等存在的故障,从而减小了问题的范围。但由于可以自定义所发数据报的大小及无休止的高速发送,Ping也被某些别有用心的人作为DDOS(拒绝服务攻击)的工具,例如许多大型的网站就是被黑客利用数百台可以高速接入互联网的电脑连续发送大量Ping数据报而瘫痪的。
按照缺省设置,Windows上运行的Ping命令发送4个ICMP(网间控制报文协议)回送请求,每个32字节数据,如果一切正常,我们应能得到4个回送应答。 Ping能够以毫秒为单位显示发送回送请求到返回回送应答之间的时间量。如果应答时间短,表示数据报不必通过太多的路由器或网络连接速度比较快。Ping还能显示TTL(Time To Live存在时间)值,我们可以通过TTL值推算一下数据包已经通过了多少个路由器:源地点TTL起始值(就是比返回TTL略大的一个2的乘方数)-返回时TTL值。例如,返回TTL值为119,那么可以推算数据报离开源地址的TTL起始值为128,而源地点到目标地点要通过9个路由器网段(128-119);如果返回TTL值为246,TTL起始值就是256,源地点到目标地点要通过9个路由器网段。
1、通过Ping检测网络故障的典型次序
正常情况下,当我们使用Ping命令来查找问题所在或检验网络运行情况时,我们需要使用许多Ping命令,如果所有都运行正确,我们就可以相信基本的连通性和配置参数没有问题;如果某些Ping命令出现运行故障,它也可以指明到何处去查找问题。下面就给出一个典型的检测次序及对应的可能故障:
·ping 127.0.0.1
这个Ping命令被送到本地计算机的IP软件,该命令永不退出该计算机。如果没有做到这一点,就表示TCP/IP的安装或运行存在某些最基本的问题。
·ping 本机IP
这个命令被送到我们计算机所配置的IP地址,我们的计算机始终都应该对该Ping命令作出应答,如果没有,则表示本地配置或安装存在问题。出现此问题时,局域网用户请断开网络电缆,然后重新发送该命令。如果网线断开后本命令正确,则表示另一台计算机可能配置了相同的IP地址。
·ping 局域网内其他IP
这个命令应该离开我们的计算机,经过网卡及网络电缆到达其他计算机,再返回。收到回送应答表明本地网络中的网卡和载体运行正确。但如果收到0个回送应答,那么表示子网掩码(进行子网分割时,将IP地址的网络部分与主机部分分开的代码)不正确或网卡配置错误或电缆系统有问题。
·ping 网关IP
这个命令如果应答正确,表示局域网中的网关路由器正在运行并能够作出应答。
·ping 远程IP
如果收到4个应答,表示成功的使用了缺省网关。对于拨号上网用户则表示能够成功的访问Internet(但不排除ISP的DNS会有问题)。
·ping localhost
localhost是个作系统的网络保留名,它是127.0.0.1的别名,每太计算机都应该能够将该名字转换成该地址。如果没有做到这一带内,则表示主机文件(/Windows/host)中存在问题。
·ping
www.xxx.com(如
www.yesky.com 天极网)
对这个域名执行Ping
www.xxx.com 地址,通常是通过DNS 服务器 如果这里出现故障,则表示DNS服务器的IP地址配置不正确或DNS服务器有故障(对于拨号上网用户,某些ISP已经不需要设置DNS服务器了)。顺便说一句:我们也可以利用该命令实现域名对IP地址的转换功能。
如果上面所列出的所有Ping命令都能正常运行,那么我们对自己的计算机进行本地和远程通信的功能基本上就可以放心了。但是,这些命令的成功并不表示我们所有的网络配置都没有问题,例如,某些子网掩码错误就可能无法用这些方法检测到。
2、Ping命令的常用参数选项
·ping IP –t
连续对IP地址执行Ping命令,直到被用户以Ctrl+C中断。
·ping IP -l 3000
指定Ping命令中的数据长度为3000字节,而不是缺省的32字节。
·ping IP –n
执行特定次数的Ping命令。
二、Netstat 命令的使用技巧
Netstat用于显示与IP、TCP、UDP和ICMP协议相关的统计数据,一般用于检验本机各端口的网络连接情况。
如果我们的计算机有时候接受到的数据报会导致出错数据删除或故障,我们不必感到奇怪,TCP/IP可以容许这些类型的错误,并能够自动重发数据报。但如果累计的出错情况数目占到所接收的IP数据报相当大的百分比,或者它的数目正迅速增加,那么我们就应该使用Netstat查一查为什么会出现这些情况了。
1、netstat 的一些常用选项
·netstat –s
本选项能够按照各个协议分别显示其统计数据。如果我们的应用程序(如Web浏览器)运行速度比较慢,或者不能显示Web页之类的数据,那么我们就可以用本选项来查看一下所显示的信息。我们需要仔细查看统计数据的各行,找到出错的关键字,进而确定问题所在。
·netstat –e
本选项用于显示关于以太网的统计数据。它列出的项目包括传送的数据报的总字节数、错误数、删除数、数据报的数量和广播的数量。这些统计数据既有发送的数据报数量,也有接收的数据报数量。这个选项可以用来统计一些基本的网络流量)。
·netstat –r
本选项可以显示关于路由表的信息,类似于后面所讲使用route print命令时看到的 信息。除了显示有效路由外,还显示当前有效的连接。
·netstat –a
本选项显示一个所有的有效连接信息列表,包括已建立的连接(ESTABLISHED),也包括监听连接请求(LISTENING)的那些连接。
·netstat –n
显示所有已建立的有效连接。
下面是 netstat 的输出示例:
C:\>netstat -e
Interface Statistics
Received Sent
Bytes 3995837940 47224622
Unicast packets 120099 131015
Non-unicast packets 7579544 3823
Discards 0 0
Errors 0 0
Unknown protocols 363054211
C:\>netstat -a
Active Connections
Proto Local Address Foreign Address State
TCP CORP1:1572 172.16.48.10:nbsession ESTABLISHED
TCP CORP1:1589 172.16.48.10:nbsession ESTABLISHED
TCP CORP1:1606 172.16.105.245:nbsession ESTABLISHED
TCP CORP1:1632 172.16.48.213:nbsession ESTABLISHED
TCP CORP1:1659 172.16.48.169:nbsession ESTABLISHED
TCP CORP1:1714 172.16.48.203:nbsession ESTABLISHED
TCP CORP1:1719 172.16.48.36:nbsession ESTABLISHED
TCP CORP1:1241 172.16.48.101:nbsession ESTABLISHED
UDP CORP1:1025 *:*
UDP CORP1:snmp *:*
UDP CORP1:nbname *:*
UDP CORP1:nbdatagram *:*
UDP CORP1:nbname *:*
UDP CORP1:nbdatagram *:*
C:\>netstat -s
IP Statistics
Packets Received = 5378528
Received Header Errors = 738854
Received Address Errors = 23150
Datagrams Forwarded = 0
Unknown Protocols Received = 0
Received Packets Discarded = 0
Received Packets Delivered = 4616524
Output Requests = 132702
Routing Discards = 157
Discarded Output Packets = 0
Output Packet No Route = 0
Reassembly Required = 0
Reassembly Successful = 0
Reassembly Failures =
Datagrams Successfully Fragmented = 0
Datagrams Failing Fragmentation = 0
Fragments Created = 0
ICMP Statistics
Received Sent
Messages 693 4
Errors 0 0
Destination Unreachable 685 0
Time Exceeded 0 0
Parameter Problems 0 0
Source Quenches 0 0
Redirects 0 0
Echoes 4 0
Echo Replies 0 4
Timestamps 0 0
Timestamp Replies 0 0
Address Masks 0 0
Address Mask Replies 0 0
TCP Statistics
Active Opens = 597
Passive Opens = 135
Failed Connection Attempts = 107
Reset Connections = 91
Current Connections = 8
Segments Received = 106770
Segments Sent = 118431
Segments Retransmitted = 461
UDP Statistics
Datagrams Received = 4157136
No Ports = 351928
Receive Errors = 2
Datagrams Sent = 13809
2、Netstat的妙用
经常上网的人一般都使用ICQ的,不知道我们有没有被一些讨厌的人骚扰,想投诉却又不知从和下手?其实,我们只要知道对方的IP,就可以向他所属的ISP投诉了。但怎样才能通过ICQ知道对方的IP呢?如果对方在设置ICQ时选择了不显示IP地址,那我们是无法在信息栏中看到的。其实,我们只需要通过Netstat就可以很方便的做到这一点:当他通过ICQ或其他的工具与我们相连时(例如我们给他发一条ICQ信息或他给我们发一条信息),我们立刻在DOS 命令提示符下输入netstat -n或netstat -a就可以看到对方上网时所用的IP或ISP域名了,甚至连所用Port都完全暴露了。
三、IPConfig命令的使用技巧
IPConfig实用程序和它的等价图形用户界面----Windows 95/98中的WinIPCfg可用于显示当前的TCP/IP配置的设置值。这些信息一般用来检验人工配置的TCP/IP设置是否正确。但是,如果我们的计算机和所在的局域网使用了动态主机配置协议(DHCP),这个程序所显示的信息也许更加实用。这时,IPConfig可以让我们了解自己的计算机是否成功的租用到一个IP地址,如果租用到则可以了解它目前分配到的是什么地址。了解计算机当前的IP地址、子网掩码和缺省网关实际上是进行测试和故障分析的必要项目。
1、IPConfig最常用的选项
·ipconfig
当使用IPConfig时不带任何参数选项,那么它为每个已经配置了的接口显示IP地址、子网掩码和缺省网关值。
·ipconfig /all
当使用all选项时,IPConfig能为DNS和WINS服务器显示它已配置且所要使用的附加信息(如IP地址等),并且显示内置于本地网卡中的物理地址(MAC)。如果IP地址是从DHCP服务器租用的,IPConfig将显示DHCP服务器的IP地址和租用地址预计失效的日期。
·ipconfig /release和ipconfig /renew
这是两个附加选项,只能在向DHCP服务器租用其IP地址的计算机上起作用。如果我们输入ipconfig /release,那么所有接口的租用IP地址便重新交付给DHCP服务器(归还IP地址)。如果我们输入ipconfig /renew,那么本地计算机便设法与DHCP服务器取得联系,并租用一个IP地址。请注意,大多数情况下网卡将被重新赋予和以前所赋予的相同的IP地址。
下面的范例是 ipconfig /all 命令输出,该计算机配置成使用 DHCP 服务器动态配置 TCP/IP,并使用 WINS 和 DNS 服务器解析名称。
Windows 2000 IP Configuration
Node Type.. . . . . . . . : Hybrid
IP Routing Enabled.. . . . : No
WINS Proxy Enabled.. . . . : No
Ethernet adapter Local Area Connection:
Host Name.. . . . . . . . : corp1.microsoft.com
DNS Servers . . . . . . . : 10.1.0.200
Description. . . . . . . : 3Com 3C90x Ethernet Adapter
Physical Address. . . . . : 00-60-08-3E-46-07
DHCP Enabled.. . . . . . . : Yes
Autoconfiguration Enabled.: Yes
IP Address. . . . . . . . . : 192.168.0.112
Subnet Mask. . . . . . . . : 255.255.0.0
Default Gateway. . . . . . : 192.168.0.1
DHCP Server. . . . . . . . : 10.1.0.50
Primary WINS Server. . . . : 10.1.0.101
Secondary WINS Server. . . : 10.1.0.102
Lease Obtained.. . . . . . : Wednesday, September 02, 1998 10:32:13 AM
Lease Expires.. . . . . . : Friday, September 18, 1998 10:32:13 AM
如果我们使用的是Windows 95/98,那么我们应该更习惯使用winipcfg而不是ipconfig,因为它是一个图形用户界面,而且所显示的信息与ipconfig相同,并且也提供发布和更新动态IP地址的选项。
四、ARP(地址转换协议)的使用技巧
ARP是一个重要的TCP/IP协议,并且用于确定对应IP地址的网卡物理地址。实用arp命令,我们能够查看本地计算机或另一台计算机的ARP高速缓存中的当前内容。此外,使用arp命令,也可以用人工方式输入静态的网卡物理/IP地址对,我们可能会使用这种方式为缺省网关和本地服务器等常用主机进行这项作,有助于减少网络上的信息量。
按照缺省设置,ARP高速缓存中的项目是动态的,每当发送一个指定地点的数据报且高速缓存中不存在当前项目时,ARP便会自动添加该项目。一旦高速缓存的项目被输入,它们就已经开始走向失效状态。例如,在Windows NT/2000网络中,如果输入项目后不进一步使用,物理/IP地址对就会在2至10分钟内失效。因此,如果ARP高速缓存中项目很少或根本没有时,请不要奇怪,通过另一台计算机或路由器的ping命令即可添加。所以,需要通过arp命令查看高速缓存中的内容时,请最好先ping 此台计算机(不能是本机发送ping命令)。
ARP常用命令选项:
·arp -a或arp –g
用于查看高速缓存中的所有项目。-a和-g参数的结果是一样的,多年来-g一直是UNIX平台上用来显示ARP高速缓存中所有项目的选项,而Windows用的是arp -a(-a可被视为all,即全部的意思),但它也可以接受比较传统的-g选项。
·arp -a IP
如果我们有多个网卡,那么使用arp -a加上接口的IP地址,就可以只显示与该接口相关的ARP缓存项目。
·arp -s IP 物理地址
我们可以向ARP高速缓存中人工输入一个静态项目。该项目在计算机引导过程中将保持有效状态,或者在出现错误时,人工配置的物理地址将自动更新该项目。
·arp -d IP
使用本命令能够人工删除一个静态项目。
例如我们在命令提示符下,键入 Arp –a;如果我们使用过 Ping 命令测试并验证从这台计算机到 IP 地址为 10.0.0.99 的主机的连通性,则 ARP 缓存显示以下项:
Interface:10.0.0.1 on interface 0x1
Internet Address Physical Address Type
10.0.0.99 00-e0-98-00-7c-dc dynamic
在此例中,缓存项指出位于 10.0.0.99 的远程主机解析成 00-e0-98-00-7c-dc 的媒体访问控制地址,它是在远程计算机的网卡硬件中分配的。媒体访问控制地址是计算机用于与网络上远程 TCP/IP 主机物理通讯的地址。
至此我们可以用ipconfig和ping命令来查看自己的网络配置并判断是否正确、可以用netstat查看别人与我们所建立的连接并找出ICQ使用者所隐藏的IP信息、可以用arp查看网卡的MAC地址。
五、Tracert、Route 与 NBTStat的使用技巧
1、Tracert的使用技巧
如果有网络连通性问题,可以使用 tracert 命令来检查到达的目标 IP 地址的路径并记录结果。tracert 命令显示用于将数据包从计算机传递到目标位置的一组 IP 路由器,以及每个跃点所需的时间。如果数据包不能传递到目标,tracert 命令将显示成功转发数据包的最后一个路由器。当数据报从我们的计算机经过多个网关传送到目的地时,Tracert命令可以用来跟踪数据报使用的路由(路径)。该实用程序跟踪的路径是源计算机到目的地的一条路径,不能保证或认为数据报总遵循这个路径。如果我们的配置使用DNS,那么我们常常会从所产生的应答中得到城市、地址和常见通信公司的名字。Tracert是一个运行得比较慢的命令(如果我们指定的目标地址比较远),每个路由器我们大约需要给它15秒钟。
Tracert的使用很简单,只需要在tracert后面跟一个IP地址或URL,Tracert会进行相应的域名转换的。
tracert 最常见的用法:
tracert IP address [-d] 该命令返回到达 IP 地址所经过的路由器列表。通过使用 -d 选项,将更快地显示路由器路径,因为 tracert 不会尝试解析路径中路由器的名称。
Tracert一般用来检测故障的位置,我们可以用tracert IP在哪个环节上出了问题,虽然还是没有确定是什么问题,但它已经告诉了我们问题所在的地方,我们也就可以很有把握的告诉别人----某某地方出了问题。
2、Route 的使用技巧
大多数主机一般都是驻留在只连接一台路由器的网段上。由于只有一台路由器,因此不存在使用哪一台路由器将数据报发表到远程计算机上去的问题,该路由器的IP地址可作为该网段上所有计算机的缺省网关来输入。
但是,当网络上拥有两个或多个路由器时,我们就不一定想只依赖缺省网关了。实际上我们可能想让我们的某些远程IP地址通过某个特定的路由器来传递,而其他的远程IP则通过另一个路由器来传递。
在这种情况下,我们需要相应的路由信息,这些信息储存在路由表中,每个主机和每个路由器都配有自己独一无二的路由表。大多数路由器使用专门的路由协议来交换和动态更新路由器之间的路由表。但在有些情况下,必须人工将项目添加到路由器和主机上的路由表中。Route就是用来显示、人工添加和修改路由表项目的。
一般使用选项:
·route print
本命令用于显示路由表中的当前项目,在单路由器网段上的输出;由于用IP地址配置了网卡,因此所有的这些项目都是自动添加的。
·route add
使用本命令,可以将信路由项目添加给路由表。例如,如果要设定一个到目的网络209.98.32.33的路由,其间要经过5个路由器网段,首先要经过本地网络上的一个路由器,器IP为202.96.123.5,子网掩码为255.255.255.224,那么我们应该输入以下命令:
route add 209.98.32.33 mask 255.255.255.224 202.96.123.5 metric 5
·route change
我们可以使用本命令来修改数据的传输路由,不过,我们不能使用本命令来改变数据的目的地。下面这个例子可以将数据的路由改到另一个路由器,它采用一条包含3个网段的更直的路径:
route add 209.98.32.33 mask 255.255.255.224 202.96.123.250 metric 3
·route delete
使用本命令可以从路由表中删除路由。例如:route delete 209.98.32.33
3、NBTStat的使用技巧
使用 nbtstat 命令释放和刷新 NetBIOS 名称。NBTStat(TCP/IP上的NetBIOS统计数据)实用程序用于提供关于关于NetBIOS的统计数据。运用NetBIOS,我们可以查看本地计算机或远程计算机上的NetBIOS名字表格。
常用选项:
·nbtstat –n
显示寄存在本地的名字和服务程序。
·nbtstat –c
本命令用于显示NetBIOS名字高速缓存的内容。NetBIOS名字高速缓存用于寸放与本计算机最近进行通信的其他计算机的NetBIOS名字和IP地址对。
·nbtstat –r
本命令用于清除和重新加载NetBIOS名字高速缓存。
·nbtstat -a IP
通过IP显示另一台计算机的物理地址和名字列表,我们所显示的内容就像对方计算机自己运行nbtstat -n一样。
·nbtstat -s IP
显示实用其IP地址的另一台计算机的NetBIOS连接表。
例如我们在命令提示符下,键入:nbtstat –RR 释放和刷新过程的进度以命令行输出的形式显示。该信息表明当前注册在该计算机的 WINS 中的所有本地 NetBIOS 名称是否已经使用 WINS 服务器释放和续订了注册。
六、NSlookup用法
配置好dns服务器,添加了相应的记录之后,只要ip地址保持不变,一般情况下我们就不再需要去维护dns的数据文件了。不过在确认域名解释正常之前我们最好是测试一下所有的配置是否正常。许多人会简单地使用ping命令检查一下就算了。不过ping指令只是一个检查网络联通情况的命令,虽然在输入的参数是域名的情况下会通过dns进行查询,但是它只能查询a类型和cname类型的记录,而且只会告诉你域名是否存在,其他的信息一概欠奉。所以如果你需要对dns的故障进行排错就必须熟练另一个更强大的工具nslookup。这个命令可以指定查询的类型,可以查到dns记录的生存时间还可以指定使用那个dns服务器进行解释。
查询ip地址
nslookup最简单的用法就是查询域名对应的ip地址,包括a记录和cname记录,如果查到的是cname记录还会返回别名记录的设置情况。其用法是:
nslookup 域名
以下是a记录的返回情况。
nslookup命令会采用先反向解释获得使用的dns服务器的名称,由于我这里使用的是一个内部的dns服务器所以没有正确的反向记录,导致结果的前面几行出错。大家可以不必理会。重点看的是最后的两行这里看到的是
www.oray.net的ip地址是61.145.112.212。注意即使
www.oray.net的主机没有在线同样能够返回结果。
如果目标域名是一个别名记录(cname),nslookup就开始显示出和ping命令不同的地方了,请看查询cname记录的结果。由于cname和a记录最后都是活的ip地址,所以一般情况下两者是等同看待的,命令的格式相同。
注意这次nslookup返回了三行信息,前两行显示这是一个cname记录,对应的域名和ip地址。最后显示的就是目标域名, 并注明alias(别名)。
如果域名不存在会怎样呢?
看得懂最后以行的英文吗,不懂没关系记住形状就可以了。如果一个指定类型的域名不存在对应的记录同样也是这种结果。
查询其他类型的域名
前面两个命令我们没有加任何参数,所以默认情况下nslookup查询的是a类型的记录。如果我们配置了其他类型的记录希望看到解释是否正常。这时候ping就无能为力了。比如我们配置了mx记录,但是邮件服务器只能发信不能收信,到底是域名解释问题还是其他的问题ping命令的检查只能让你误入歧途。nslookup 这时候可以模拟你的其他遇见服务器进行域名解释的情况。我们需要在nslookup上加上适当的参数。指定查询记录类型的指令格式如下:
nslookup –qt=类型 目标域名
注意qt必须小写。
类型可以是一下字符,不区分大小写:
a 地址记录(ipv4)
aaaa 地址记录(ipv6)
afsdb andrew文件系统数据库服务器记录(不懂)
atma atm地址记录(不是自动提款机)
cname 别名记录
hinfo 硬件配置记录,包括cpu、操作系统信息
isdn 域名对应的isdn号码
mb 存放指定邮箱的服务器
mg 邮件组记录
minfo 邮件组和邮箱的信息记录
mr 改名的邮箱记录
mx 邮件服务器记录
ns 名字服务器记录
ptr 反向记录(从ip地址解释域名)
rp 负责人记录
rt 路由穿透记录(不懂)
srv tcp服务器信息记录(将有大用处)
txt 域名对应的文本信息
x25 域名对应的x.25地址记录
看看oray.net的邮件服务器记录吧。
看看,nslookup把服务器的名称和地址都给出来了,注意preference就是前面所说的优先级,该数值越小则优先级越高。
我再看看名字服务器记录是怎么样的。
看起来和mx记录的格式差不多,一般情况下服务器会同时返回对应的地址。不过也有不返回的情况。
在这里我希望大家注意一行显示“non-suthoritativeanswer:”,这一行在前面的例子中都没有显示过。它的出现代表这个结果是从服务器的缓存中得到的。所以提醒你这不是一个授权的答案。前面我们进行的几次查询过程中192.168.1.104这台机器就采用了我们第一篇文章中描述的过程查询了oray.net的域名。在这个过程中不但缓存了
www.oray.net、test.oray.net以及oray.net的mx记录等最终结果。也包括获取的名字服务器等中间结果。隐含的查询了oray.net的ns记录。后面我们还会介绍这个过程。
指定使用的名字服务器
在默认情况下nslookup使用的是我们在本机tcp/ip配置中的dns服务器进行查询,但有时候我们需要指定一个特定的服务器进行查询试验。这时候我们不需要更改本机的tcp/ip配置,只要在命令后面加上指定的服务器ip或者域名就可以了。这个参数在我们对一台指定服务器排错是非常必要的,另外我们可以通过指定服务器直接查询授权服务器的结果避免其他服务器缓存的结果。命令格式如下:
nslookup [-qt=类型] 目标域名 指定的dns服务器ip或域名
我们可看看以下的命令结果:
这个命令直接从顶级域名服务器查询oray.net的ns记录。所有的二级域名的ns记录都存放在顶级域名服务器中,这是最权威的解释。注意这次没有非授权结果的提示。对于二级域名的ns记录查询来说这肯定是授权结果。顶级域名服务器的名称是a到j.gtld-servers.net共十台服务器。(gtld是global top level domain的缩写)。当我们修改域名的ns记录的时候可以通过上述查询知道修改的结果是不是已经在顶级域名服务器上生效。不过即使已经生效也可能不能正常解释,注意我在上一篇文章中提到的缓存时间的问题。
那么到底缓存多久呢?
检查域名的缓存时间
检查域名的缓存时间需要我们使用一个新的参数:-d
格式如下:
nslookup –d [其他的参数] 目标域名 [指定的服务器地址]
请看范例
我们忽略其他的看看got answer后面几行,包括了一个ttl数值。这个数值就是域名记录的生存时间。
这种查询将整个dns数据包的所有部分都揭示出来,大家可以看到dns实际上并不是想象中那么简单的东西。具体的各部分解释大家可以去看看相关的标准文档。需要提醒大家的是一定要找到answer:的内容,其他的东西都不是描述最终的结果。上面就不止一个地方又ttl数值。
域名解释过程的模拟
我们现在来模拟一下一台dns服务器接到一个不是自己管理的域的域名解释过程。回忆一下第一篇文章的过程:
首先我们会询问根服务器,然后根服务器会让我们去找对应的顶级服务器。如果查询的是oray.net,就会要求我们去找net的服务器。
看看下面的范例:
这里我们让21cn.com的服务器解释
www.oicp.net的域名,很显然这台服务器不用有这个域,需要询问根服务器。一般情况下dns服务器会帮我们完成全部的过程。这种解释方式我们称之为递归解析,为了让大家看到这个过程我家了一个参数让21cn.com的服务器不要这样做。这个参数是-norecurse。这样理论上21cn.com会让我们去问根服务器,不过由于它已经缓存了顶级服务器的记录,所以直接返回了管理net的顶级服务器记录。实际上大部分的查询都不需要从根服务器开始。大家看到了所有的顶级域名服务器的地址都被返回。
我们随便选择一个在进行查询。
这次顶级服务器就返回了oicp.net的服务器地址记录的。然后我们就向这些记录之一进行查询,一定能够得到答案。可能是一个地址、一个cname记录或者告诉你不存在。
nslookup的命令就介绍到这里,其实nslookup还有许多其他参数。不过常用的就俄这么几个,另外如果大家不喜欢命令行方式的话。还有几个图形界面的nslookup功能的工具。不过大家还是需要了解域名解释都有些什么才能够正确使用这些工具。
nslookup用法
NSLOOKUP是NT、2000中连接DNS服务器,查询域名信息的一个非常有用的命令,简单介绍如下:
实例:查询163.com域名信息
D:\>nslookup
Default Server: ns-px.online.sh.cn
Address: 202.96.209.5
当前的DNS服务器 ,可用server命令改变。
> set type=any
设置查选条件为所有类型记录(A、MX等)
> 163.com.
查询域名,注意有.
Server: ns-px.online.sh.cn
Address: 202.96.209.5
查询结果~~
Non-authoritative answer:
未证实回答,出现此提示表明该域名的注册主DNS非提交查询的DNS服务器
163.com nameserver = NS.NEASE.NET
163.com nameserver = NS2.NEASE.NET
查询域名的名字服务器
163.com
primary name server = ns.163.com
主要名字服务器
responsible mail addr = admin.NEASE.NET
联系人邮件地址
admin@nease.net serial = 20010348
区域传递序号,又叫文件版本,当发生区域复制时,该域用来指示区域信息的更新情况。
refresh = 10800 (3 hours)
重刷新时间,当区域复制发生时,指定区域复制的更新时间间隔
retry = 3600 (1 hour)
重试时间,区域复制失败时,重新尝试的时间
expire = 360000 (4 days 4 hours)
有效时间,区域复制在有效时间内不能完成,则终止更新
default TTL = 3600 (1 hour)
TTL设置
被查询域名的资料
163.com MX preference = 50, mail exchanger = m218.163.com
163.com MX preference = 50, mail exchanger = m207.163.com
163.com MX preference = 50, mail exchanger = m208.163.com
163.com MX preference = 50, mail exchanger = m209.163.com
163.com MX preference = 50, mail exchanger = m210.163.com
163.com MX preference = 50, mail exchanger = m229.163.com
163.com MX preference = 50, mail exchanger = m246.163.com
163.com MX preference = 50, mail exchanger = m180.163.com
163.com MX preference = 50, mail exchanger = m214.163.com
163.com internet address = 202.106.185.77
163.com nameserver = NS.NEASE.NET
163.com nameserver = NS2.NEASE.NET
NS.NEASE.NET internet address = 202.106.185.75
NS2.NEASE.NET internet address = 61.145.113.57
m218.163.com internet address = 202.108.44.218
m207.163.com internet address = 202.108.44.207
m208.163.com internet address = 202.108.44.208
m209.163.com internet address = 202.108.44.209
m210.163.com internet address = 202.108.44.210
m229.163.com internet address = 202.108.44.229
m246.163.com internet address = 202.108.44.246
m180.163.com internet address = 202.108.44.180
被查询域名的满足条件记录
------------------------
该命令的帮助(汉字部分为说明)
> help
Commands: (identifiers are shown in uppercase, [] means optional)
命令,标记有[]为可选
NAME - print info about the host/domain NAME using default server
查询主机或域名,用缺省服务器
NAME1 NAME2 - as above, but use NAME2 as server
查询主机或域名,用NAME2做提交查询服务器
help or ? - print info on common commands
打印帮助信息
set OPTION - set an option
设置选项
all - print options, current server and host
打印当前选项和服务器
[no]debug - print debugging information
打印调试信息
[no]d2 - print exhaustive debugging information
打印详细的调试信息
[no]defname - append domain name to each query
在查询中增加域名
[no]recurse - ask for recursive answer to query
请求递归查询
[no]search - use domain search list
使用域名搜索列表
[no]vc - always use a virtual circuit
始终使用虚电路
domain=NAME - set default domain name to NAME
设置缺省域名
srchlist=N1[/N2/.../N6] - set domain to N1 and search list to N1,N2, etc.
设置域名列表搜索列表
root=NAME - set root server to NAME
设置根服务器
retry=X - set number of retries to X
设置重试次数
timeout=X - set initial time-out interval to X seconds
设置超时时间
type=X - set query type (ex. A,ANY,CNAME,MX,NS,PTR,SOA,SRV)
设置查询记录类型
querytype=X - same as type
与上同
class=X - set query class (ex. IN (Internet), ANY)
设置查询类
[no]msxfr - use MS fast zone transfer
使用快速区域传递
ixfrver=X - current version to use in IXFR transfer request
server NAME - set default server to NAME, using current default server
lserver NAME - set default server to NAME, using initial server
finger [USER] - finger the optional NAME at the current default host
root - set current default server to the root
ls [opt] DOMAIN [> FILE] - list addresses in DOMAIN (optional: output to FILE)
-a - list canonical names and aliases
-d - list all records
-t TYPE - list records of the given type (e.g. A,CNAME,MX,NS,PTR etc.)
view FILE - sort an 'ls' output file and view it with pg
exit - exit the program
退出程序