一、如何看路由表
======================================================================
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
联系人邮件地址[email protected]
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
退出程序
------------
一些说明:
1、任何合法有效的域名都必须有至少一个主的名字服务器。当主名字服务器失效时,才会使用辅助名字服务器。这里的失效指服务器没有响应。
2、DNS中的记录类型有很多,分别****不同的作用,常见的有A记录(主机记录,用来指示主机地址),MX记录(邮件交换记录,用来指示邮件服务器的交换程序),CNAME记录(别名记录),SOA(授权记录),PTR(指针)等。
3、一个有效的DNS服务器必须在注册机构注册,这样才可以进行区域复制。所谓区域复制,就是把自己的记录定期同步到其他服务器上。当DNS接收到非法DNS发送的区域复制信息,会将信息丢弃。
4、DNS有两种,一是普通DNS,一是根DNS,根DNS不能设置转发查询,也就是说根DNS不能主动向其他DNS发送查询请求。如果内部网络的DNS被设置为根DNS,则将不能接收网外的合法域名查询,请注意,有关根DNS的说明们
我们介绍了一个方法用ping查看域名的IP地址,这样只能查到域名的A记录,要查询域名的MX记录、CNAME记录或NS记录,可用nslookup命令。nslookup是windows NT/2000/XP和unix、linux等操作系统自带的命令。(在Windows 98/Me里没有)。 在Windows的DOS命令行窗口里,或unix/linux的命令行下,输入nslookup,启动后,界面如下(以Windows为例):
其中“Default Server”和“Address”是当前上网所用的DNS服务器域名和地址。“>”是nslookup的提示符。在提示符下输入“?”和回车,可看到nslookup的帮助信息,输入“exit”和回车可退出nslookup。
此时,在提示符下直接输入域名,可查到该域名的A记录。例如:
其中“Non-authoritative answer”表示查询结果是从DNS的cache里返回的。
输入set querytype=mx,再输入域名,可查询MX记录。例如:
输入set querytype=cname,再输入域名,可查询CNAME记录。例如:
输入set querytype=ns,再输入域名,可查询NS记录。例:
如果您在企商在线申请了域名或独立域名的动态解析,可以用这个办法查询设置是否已经生效。
基于SSL的WEB安全访问
SSL是典型的基于PKI的网络应用,目前主要用于WEB安全访问。
一、 理解SSL安全机制
SSL(Secure Sockets Layer 安全套接字层)是以公钥基础结构为基础的网络安全解决方案。是由Netscape公司提出的一种建立在网络传输层TCP协议之上的安全协议标准(工作在Socket网络通信层上),用来在客户端和服务器之间建立安全的TCP连接,向基于TCP/IP协议的客户/服务器应用程序提供客户端和服务器的验证、数据完整性及信息保密性等安全措施。SSL协议主要用于浏览器和WEB服务器之间建立安全的数据传输通道,还适用于Telnet、FTP和NNTP等服务。
1、SSL的工作机制:
(1) 客户端向服务器提出请求,要求建立安全通信连接。
(2) 客户端与服务器进行协商,确定用于保证安全通信的加密算法和强度。
(3) 服务器将其服务器证书发送给客户端。该证书包含服务器的公钥,并用CA的私钥加密。
(4) 客户端使用CA的公钥对服务器证书进行解密,获得服务器公钥。客户端产生用于创建会话密钥的信息,并用服务器公钥加密,然后发送到服务器。
(5) 服务器使用自己的私钥解密该消息,然后生成会话密钥,然后将其用服务器公钥加密,再发送给客户端。这样服务器和客户端双方就都拥有了会话密钥。
(6) 服务器和客户端使用会话密钥来加密和解密传输的数据。它们之间数据传输使用的是对称加密。
2、SSL协议主要解决3个关键问题
(1) 客户端对服务器的身份确认
(2) 服务器对客户的身份确认
(3) 在服务器和客户之间建立安全的数据通道
说明:对于SSL安全来说,客户认证是可选的,即不强制进行客户端验证。这有利于SSL的广泛使用,如果要强制客户端验证,就要求每个客户端都有自己的公钥,并且服务器要对每个客户端进行认证,仅为每个用户分发公钥和数字证书,对于客户基数大的应用来说负担很重。而在实际应用中,服务器的认证更为重要,因为确保用户知道自己正在和哪个服务器进行连接,比商家知道自己在和哪个用户进行连接更为重要。而且服务器比客户数量要少得多,为服务器配备公钥和站点证书易于实现。
二、 Windows2000的SSL WEB安全解决方案
基于SSL的WEB安全涉及到WEB服务器和浏览器对SSL的支持,关键是服务器端。在浏览器和IIS WEB服务器之间建立SSL连接,必须具备以下条件:
(1) 需要从可信任的证书颁发机构获取WEB服务器证书
(2) 必须在WEB服务器上安装服务器证书
(3) 在WEB服务器上设置SSL选项
(4) 客户端必须同WEB服务器信任同一证书认证机构(安装CA证书)
三、 安装步骤
(一) 申请和安装服务器证书
1、 生成服务器证书请求文件
完成后生成一服务器证书证书文件certreq.txt
2、 申请服务器证书
3、 CA管理员在证书服务器端审查并颁发证书
4、 下载已颁发的服务器证书
5、 安装服务器证书
(二) 在WEB服务器上启用SSL
(三) 在客户浏览器端安装根CA证书
(四) 测试SSL连接
使用https协议访问WEB站点
四、 对SSL客户端进行验证
服务器证书用来让客户端识别服务器身份,同样,也可要客户端出具证书,让服务器识别客户身份,这就需要客户证书。
1、申请和安装客户证书
2、启用SSL客户证书验证
当客户端用浏览器访问安全站点时,将出现下列对话框,要求客户端提供客户证书。
五、 在WEB服务器上使用证书信任列表进一步限制访问
可根据需要,使用证书信任列表(CTL)定义服务器可信任的CA。这样,可以配置每个WEB站点接受不同列表中的证书,可据此验证客户端证书。
一旦启用证书信任列表,将只允许使用列表中所列CA发布的证书,同时禁止使用其他CA发布的证书
网管必读-常用网络命令
如果你玩过路由器的话,就知道路由器里面那些很好玩的命令缩写。例如,"sh int" 的意思是 "show interface"。 现在 Windows 2000 也有了类似界面的工具,叫做 netsh。
我们在 Windows 2000 的 cmd shell 下,输入 netsh就出来:netsh> 提示符,输入 int ip 就显示:interface ip> 然后输入 dump ,我们就可以看到当前系统的网络配置:
# ----------------------------------
# Interface IP Configuration
# ----------------------------------
pushd interface ip
# Interface IP Configuration for "Local Area Connection"
set address name = "Local Area Connection" source = static addr = 192.168.1.168
mask = 255.255.255.0
add address name = "Local Area Connection" addr = 192.1.1.111 mask = 255.255.255.0
set address name = "Local Area Connection" gateway = 192.168.1.100 gwmetric = 1
set dns name = "Local Area Connection" source = static addr = 202.96.209.5
set wins name = "Local Area Connection" source = static addr = none
popd
# End of interface IP configuration
上面介绍的是通过交互方式操作的一种办法。
我们可以直接输入命令:
"netsh interface ip add address "Local Area Connection" 10.0.0.2
255.0.0.0"
来添加 IP 地址。如果不知道语法,不要紧的哦!在提示符下,输入 ? 就可以找到答案了。方便不方便啊?原来微软的东西里面,也有那么一些让人喜欢的玩意儿。可惜,之至者甚少啊!
Windows网络命令行程序
这部分包括:
使用 ipconfig /all 查看配置
使用 ipconfig /renew 刷新配置
使用 ipconfig 管理 DNS 和 DHCP 类别 ID
使用 Ping 测试连接
使用 Arp 解决硬件地址问题
使用 nbtstat 解决 NetBIOS 名称问题
使用 netstat 显示连接统计
使用 tracert 跟踪网络连接
使用 pathping 测试路由器
使用 ipconfig /all 查看配置
发现和解决 TCP/IP 网络问题时,先检查出现问题的计算机上的 TCP/IP 配置。可以使用 ipconfig 命令获得主机配置信息,包括 IP 地址、子网掩码和默认网关。
注意
对于 Windows 95 和 Windows 98 的客户机,请使用 winipcfg 命令而不是 ipconfig 命令。
使用带 /all 选项的 ipconfig 命令时,将给出所有接口的详细配置报告,包括任何已配置的串行端口。使用 ipconfig /all,可以将命令输出重定向到某个文件,并将输出粘贴到其他文档中。也可以用该输出确认网络上每台计算机的 TCP/IP 配置,或者进一步调查 TCP/IP 网络问题。
例如,如果计算机配置的 IP 地址与现有的 IP 地址重复,则子网掩码显示为 0.0.0.0。
下面的范例是 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
如果 TCP/IP 配置没有问题,下一步测试能够连接到 TCP/IP 网络上的其他主机。
使用 ipconfig /renew 刷新配置
解决 TCP/IP 网络问题时,先检查遇到问题的计算机上的 TCP/IP 配置。如果计算机启用 DHCP 并使用 DHCP 服务器获得配置,请使用 ipconfig /renew 命令开始刷新租约。
使用 ipconfig /renew 时,使用 DHCP 的计算机上的所有网卡(除了那些手动配置的适配器)都尽量连接到 DHCP 服务器,更新现有配置或者获得新配置。
也可以使用带 /release 选项的 ipconfig 命令立即释放主机的当前 DHCP 配置。有关 DHCP 和租用过程的详细信息,请参阅客户机如何获得配置。
注意
对于启用 DHCP 的 Windows 95 和 Windows 98 客户,请使用 winipcfg 命令的 release 和 renew 选项,而不是 ipconfig /release 和 ipconfig /renew 命令,手动释放或更新客户的 IP 配置租约。
使用 ipconfig 管理 DNS 和 DHCP 类别 ID 也可以使用 ipconfig 命令:
显示或重置 DNS 缓存。详细信息,请参阅使用 ipconfig 查看或重置客户解析程序缓存。
刷新已注册的 DNS 名称。详细信息,请参阅使用 ipconfig 更新 DNS 客户注册。
显示适配器的 DHCP 类别 ID。详细信息,请参阅显示客户机上的 DHCP 类别 ID 信息。
设置适配器的 DHCP 类别 ID。详细信息,请参阅设置客户机上的 DHCP 类别 ID 信息。
使用 Ping 测试连接
Ping 命令有助于验证 IP 级的连通性。发现和解决问题时,可以使用 Ping 向目标主机名或 IP 地址发送 ICMP 回应请求。需要验证主机能否连接到 TCP/IP 网络和网络资源时,请使用 Ping。也可以使用 Ping 隔离网络硬件问题和不兼容配置。
通常最好先用 Ping 命令验证本地计算机和网络主机之间的路由是否存在,以及要连接的网络主机的 IP 地址。Ping 目标主机的 IP 地址看它是否响应,如下:
ping IP_address
使用 Ping 时应该执行以下步骤:
Ping 环回地址验证是否在本地计算机上安装 TCP/IP 以及配置是否正确。
ping 127.0.0.1
Ping 本地计算机的 IP 地址验证是否正确地添加到网络。
ping IP_address_of_local_host
Ping 默认网关的 IP 地址验证默认网关是否运行以及能否与本地网络上的本地主机通讯。
ping IP_address_of_default_gateway
Ping 远程主机的 IP 地址验证能否通过路由器通讯。
ping IP_address_of_remote_host
Ping 命令用 Windows 套接字样式的名称解析将计算机名解析成 IP 地址,所以如果用地址成功,但是用名称 Ping 失败,则问题出在地址或名称解析上,而不是网络连通性的问题。详细信息,请参阅使用 Arp 解决硬件地址问题。
如果在任何点上都无法成功地使用 Ping,请确认:
安装和配置 TCP/IP 之后重新启动计算机。
“Internet 协议 (TCP/IP) 属性”对话框“常规”选项卡上的本地计算机的 IP 地址有效而且正确。
用 IP 路由,并且路由器之间的链路是可用的。
您可以使用 Ping 命令的不同选项来指定要使用的数据包大小、要发送多少数据包、是否记录用过的路由、要使用的生存时间 (TTL) 值以及是否设置“不分段”标志。可以键入 ping -? 查看这些选项。
下例说明如何向 IP 地址 172.16.48.10 发送两个 Ping,每个都是 1,450 字节:
C:/>ping -n 2 -l 1450 172.16.48.10
Pinging 172.16.48.10 with 1450 bytes of data:
Reply from 172.16.48.10:bytes=1450 time<10ms TTL=32
Reply from 172.16.48.10:bytes=1450 time<10ms TTL=32
Ping statistics for 157.59.8.1:
Packets:Sent = 2, Received = 2, Lost = 0 (0% loss),
Approximate roundtrip times in milli-seconds:
Minimum = 0ms, Maximum = 10ms, Average = 2ms
默认情况下,在显示“请求超时”之前,Ping 等待 1,000 毫秒(1 秒)的时间让每个响应返回。如果通过 Ping 探测的远程系统经过长时间延迟的链路,如卫星链路,则响应可能会花更长的时间才能返回。可以使用 -w (等待)选项指定更长时间的超时。
使用 Arp 解决硬件地址问题
“地址解析协议 (ARP)”允许主机查找同一物理网络上的主机的媒体访问控制地址,如果给出后者的 IP 地址。为使 ARP 更加有效,每个计算机缓存 IP 到媒体访问控制地址映射消除重复的 ARP 广播请求。
可以使用 arp 命令查看和修改本地计算机上的 ARP 表项。arp 命令对于查看 ARP 缓存和解决地址解析问题非常有用。
详细信息,请参阅查看“地址解析协议 (ARP)”缓存和添加静态 ARP 缓存项目。
使用 nbtstat 解决 NetBIOS 名称问题
TCP/IP 上的 NetBIOS (NetBT) 将 NetBIOS 名称解析成 IP 地址。TCP/IP 为 NetBIOS 名称解析提供了很多选项,包括本地缓存搜索、WINS 服务器查询、广播、DNS 服务器查询以及 Lmhosts 和主机文件搜索。
Nbtstat 是解决 NetBIOS 名称解析问题的有用工具。可以使用nbtstat 命令删除或更正预加载的项目:
nbtstat -n 显示由服务器或重定向器之类的程序在系统上本地注册的名称。
nbtstat -c 显示 NetBIOS 名称缓存,包含其他计算机的名称对地址映射。
nbtstat -R 清除名称缓存,然后从 Lmhosts 文件重新加载。
nbtstat -RR 释放在 WINS 服务器上注册的 NetBIOS 名称,然后刷新它们的注册。
nbtstat -a name 对 name 指定的计算机执行 NetBIOS 适配器状态命令。适配器状态命令将
返回计算机的本地 NetBIOS 名称表,以及适配器的媒体访问控制地址。
nbtstat -S 列出当前的 NetBIOS 会话及其状态(包括统计),如下例所示:
NetBIOS connection table
Local name State In/out Remote Host Input Output
------------------------------------------------------------------
CORP1 <00> Connected Out CORPSUP1<20> 6MB 5MB
CORP1 <00> Connected Out CORPPRINT<20> 108KB 116KB
CORP1 <00> Connected Out CORPSRC1<20> 299KB 19KB
CORP1 <00> Connected Out CORPEMAIL1<20> 324KB 19KB
CORP1 <03> Listening
使用 netstat 显示连接统计
可以使用 netstat 命令显示协议统计信息和当前的 TCP/IP 连接。netstat -a 命令将显示所有连接,而 netstat -r 显示路由表和活动连接。netstat -e 命令将显示Ethernet 统计信息,而 netstat -s 显示每个协议的统计信息。如果使用 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
使用 tracert 跟踪网络连接
Tracert(跟踪路由)是路由跟踪实用程序,用于确定 IP 数据报访问目标所采取的路径。Tracert 命令用 IP 生存时间 (TTL) 字段和 ICMP 错误消息来确定从一个主机到网络上其他主机的路由。
Tracert 工作原理
通过向目标发送不同 IP 生存时间 (TTL) 值的“Internet 控制消息协议 (ICMP)”回应数据包,Tracert 诊断程序确定到目标所采取的路由。要求路径上的每个路由器在转发数据包之前至少将数据包上的 TTL 递减 1。数据包上的 TTL 减为 0 时,路由器应该将“ICMP 已超时”的消息发回源系统。
Tracert 先发送 TTL 为 1 的回应数据包,并在随后的每次发送过程将 TTL 递增 1,直到目标响应或 TTL 达到最大值,从而确定路由。通过检查中间路由器发回的“ICMP 已超时”的消息确定路由。某些路由器不经询问直接丢弃 TTL 过期的数据包,这在Tracert 实用程序中看不到。
Tracert 命令按顺序打印出返回“ICMP 已超时”消息的路径中的近端路由器接口列表。如果使用 -d 选项,则Tracert 实用程序不在每个 IP 地址上查询 DNS。
在下例中,数据包必须通过两个路由器(10.0.0.1 和 192.168.0.1)才能到达主机172.16.0.99。主机的默认网关是 10.0.0.1,192.168.0.0 网络上的路由器的 IP 地 址是 192.168.0.1。
C:/>tracert 172.16.0.99 -d
Tracing route to 172.16.0.99 over a maximum of 30 hops
1 2s 3s 2s 10,0.0,1
2 75 ms 83 ms 88 ms 192.168.0.1
3 73 ms 79 ms 93 ms 172.16.0.99
Trace complete.
用 tracert 解决问题
可以使用 tracert 命令确定数据包在网络上的停止位置。下例中,默认网关确定 192.168.10.99 主机没有有效路径。这可能是路由器配置的问题,或者是 192.168.10.0 网络不存在(错误的 IP 地址)。
C:/>tracert 192.168.10.99
Tracing route to 192.168.10.99 over a maximum of 30 hops
1 10.0.0.1 reportsestination net unreachable.
Trace complete.
Tracert 实用程序对于解决大网络问题非常有用,此时可以采取几条路径到达同一个点。
Tracert 命令行选项
Tracert 命令支持多种选项,如下表所示。
tracert [-d] [-h maximum_hops] [-j host-list] [-w timeout] target_name
选项 描述
-d 指定不将 IP 地址解析到主机名称。
-h maximum_hops 指定跃点数以跟踪到称为 target_name 的主机的路由。
-j host-list 指定 Tracert 实用程序数据包所采用路径中的路由器接口列表。
-w timeout 等待 timeout 为每次回复所指定的毫秒数。
target_name 目标主机的名称或 IP 地址。
详细信息,请参阅使用 tracert 命令跟踪路径。
使用 pathping 测试路由器
pathping 命令是一个路由跟踪工具,它将 ping 和 tracert 命令的功能和这两个工具所不提供的其他信息结合起来。pathping 命令在一段时间内将数据包发送到到达最终目标的路径上的每个路由器,然后基于数据包的计算机结果从每个跃点返回。由于命令显示数据包在任何给定路由器或链接上丢失的程度,因此可以很容易地确定可能导致网络问题的路由器或链接。某些选项是可用的,如下表所示。
默认的跃点数是 30,并且超时前的默认等待时间是 3 秒。默认时间是 250 毫秒,并且沿着路径对每个路由器进行查询的次数是 100。
以下是典型的 pathping 报告。跃点列表后所编辑的统计信息表明在每个独立路由器上数据包丢失的情况。
D:/>pathping -n msw
Tracing route to msw [7.54.1.196]
over a maximum of 30 hops:
0 172.16.87.35
1 172.16.87.218
2 192.68.52.1
3 192.68.80.1
4 7.54.247.14
5 7.54.1.196
Computing statistics for 125 seconds...
Source to Here This Node/Link
Hop RTT Lost/Sent = Pct Lost/Sent = Pct Address
0 172.16.87.35
0/ 100 = 0% |
1 41ms 0/ 100 = 0% 0/ 100 = 0% 172.16.87.218
13/ 100 = 13% |
2 22ms 16/ 100 = 16% 3/ 100 = 3% 192.68.52.1
0/ 100 = 0% |
3 24ms 13/ 100 = 13% 0/ 100 = 0% 192.68.80.1
0/ 100 = 0% |
4 21ms 14/ 100 = 14% 1/ 100 = 1% 10.54.247.14
0/ 100 = 0% |
5 24ms 13/ 100 = 13% 0/ 100 = 0% 10.54.1.196
Trace complete.
当运行 pathping 时,在测试问题时首先查看路由的结果。此路径与 tracert 命令所显示的路径相同。然后 pathping 命令对下一个 125 毫秒显示忙消息(此时间根据跃点计数变化)。在此期间,pathping 从以前列出的所有路由器和它们之间的链接之间收集信息。在此期间结束时,它显示测试结果。
最右边的两栏 This Node/Link Lost/Sent=Pct 和 Address 包含的信息最有用。172.16.87.218(跃点 1)和 192.68.52.1(跃点 2)丢失 13% 的数据包。 所有其他链接工作正常。在跃点 2 和 4 中的路由器也丢失寻址到它们的数据包(如 This Node /Link 栏中所示),但是该丢失不会影响转发的路径。
对链接显示的丢失率(在最右边的栏中标记为 |)表明沿路径转发丢失的数据包。该丢失表明链接阻塞。对路由器显示的丢失率(通过最右边栏中的 IP 地址显示)表明这些路由器的 CPU 可能超负荷运行。这些阻塞的路由器可能也是端对端问题的一个因素,尤其是在软件路由器转发数据包时。