Chinaunix首页 | 论坛 | 博客
  • 博客访问: 18672125
  • 博文数量: 7460
  • 博客积分: 10434
  • 博客等级: 上将
  • 技术积分: 78178
  • 用 户 组: 普通用户
  • 注册时间: 2008-03-02 22:54
文章分类

全部博文(7460)

文章存档

2011年(1)

2009年(669)

2008年(6790)

分类: 系统运维

2008-05-22 19:15:45

介绍系统内置的一些测试工具比如Ping,Traceroute,whois,nslookup.尽管很简单很基础,但是里面还是有些值 得注意的问题,还将介绍一个小案例.

 

网络连通性基本测试工具

Ping可以说是再平常不过的测试工具了,主要用来测试两点间的连通性,Round-Trip的延迟和丢包率等.

WindowsPing的使用

Ping /?可以显示ping的各种参数,不过我相信没几个人看完这些参数的.下面介绍几个有用的参数.

Ping缺省认为1000毫秒为超时,使用-w参数可以修改此超时时间,比如在有些无线环境中Roundtrip时间就很长,如果使用缺省值ping就可能会出现Request timed out情况.

-t参数可以保持持久ping,Ctrl-Break可以保持命令继续执行看当前的汇总,Ctrl-c则是停止命令.

-a解析主机名

-f用来设置DF,-l用来设置数据载荷的大小.通常用来检测网络的MTU.

注意:MTU为最大传输单元,不同的网络情况此值都有不同,特别是在配置VPN的时候很重要,因为数据头有很多额外的开销.如果用户数据包大于MTU就会在传输中被分段.Windows下缺省Ping数据包大小为56字节,一般不会出现MTU问题,但是用户应用数据一般就不会只有这么小,所以要使用-l来测试.

注意:MTU是数据载荷大小和IP头大小的和,而在windowspingIP头为28字节,所以最终的MTU大小应为-l的值和28之和.

LinuxPing的使用

Linuxpingwindows下略有不同,缺省就是持续ping,-c参数可以指定ping的次数.类似于windowsMTU问题,-M do是设置DF,-c来设置数据载荷的大小.

注意:LinuxpingIP头为28字节.

IOSping的使用

IOS下的Ping在用户模式和特权模式下都有,相应的权限不同,除了可以针对IP协议以外,也支持IPX,AppleTalk等协议.缺省是5个包,每个包的大小为100字节,超时为2,使用流出端口的地址作为包的源地址.没有持续ping的参数,可以变相的通过将ping的次数设为最大值9999999来实现.可以通过组合键Ctrl-Shift-6x来实现ping的中断.由于特权模式下的ping参数是通过对话的形式实现,所以不需要过多介绍.


注意
:在平常的网络中可能由于安全的限制只能使用特定的源地址进行ping(比如设备的loopback地址),而缺省这里使用的流出端口地址可能是被禁止的,所以需要通过特权模式的ping来设定源地址来避免这种情况.

Ping的变种

Fping:一般ping只能一次测试一个主机,fping可以同时测试多个主机.基于linux,可以在下载.

Hping:ping是基于ICMP Echo Request.而有些网络的防火墙禁止了ICMP,Hping可以提供基于TCP,UDP等协议来测试远端主机的连通性.也是基于linux,下载.

SmokePing:此软件可以给你图形化的显示网络性能比如延时,丢包率等等.下载.

Ping的测试步骤(这个好像CCNA爱考)

1.     Ping 127.0.0.1 确认本地的TCP/IP堆栈工作正常

2.     Ping 本机IP地址 确认网卡和链路工作正常

3.     Ping 网络网关 确认网关之间路由正常

4.     Ping 远端主机 确认和远端主机连通

TraceRoute使用TTL的特性来检查网络的连通性,提供了网络路径等Ping所不能提供的更详细排错信息.

Windowstracert的使用

Windows下是基于ICMP Echo Request协议的,可以使用-d参数来禁止地址翻译,-h指定最大跳数,-w指定超时时间.

Linuxtraceroute的使用

Linux下是基于UDP协议(当然也可以使用-I参数来恢复使用ICMP协议),一般第一个包使用端口33434,后面的包的端口依次增加来减少被禁止的可能,当然此端口可以使用-p参数来修改,-n禁止地址解析增加输出速度.

IOStraceroute的使用

IOS下的tracerouteping比较类似也是分不同模式,也通过对话选择形式进行参数调整.缺省3个包使用UDP端口33434,超时时间为3,使用流出端口的地址作为包的源地址.

 

网络连通性高级测试工具

尽管有很多网络工具可以供网管使用,这里仅仅介绍一些系统内置的工具.

Whois:提供域名信息的工具,linux内置,尽管现在也有win下的版本

Nslookup:针对DNS服务器的查询域的MX,A,CNAME记录.winlinux下都可以使用,set query=all,或者mx等可以查询全部或者部分的信息.Linux下还有一个类似的dig命令,提供的输出更多,更易懂,并且所有的参数可以通过一个命令行完成,方便制作脚本.常用命令格式为dig @dns-server targetdomain query-type.

Netstat是一个可以在winlinux下使用的获得端口,连接,路由等网络信息的工具.

Win下的netstat:不加参数显示当前活动的TCP连接,后面可以加数字()得到不停刷新的信息.-n显示地址而不是域名,-a显示所有的连接,xp2003还有一个新的-o的参数可以显示相应连接的PID(process identification).-e显示接口的摘要信息,-o显示协议的摘要信息.-r显示系统路由信息,相同于route print命令.

Linux下的netstat:不加参数会显示当前活动的所有连接包括Unix Sockets信息-atuwp参数可以去掉socket信息,-t参数显示当前活动的TCP连接,-c可以周期性的自动刷新.-n等同于win下的.-i显示接口的摘要信息,-s显示协议的摘要信息,-r显示路由表,相同于route命令.

Nbstat:win下的

Arp:WinLinux下查询MAC地址和IP地址映射信息的工具.-a显示arp,-s指定一个静态的映射,-d删除一个映射.

 

案例

一般情况下我们认为只要能Ping通就代表网络没有问题了,对于有少量的丢包也认为是正常现象,其实有时候问题就隐藏在这些小量丢包的后面.有一个企业网络,客户老是抱怨使用改企业的内部应用老是有问题,而内部人员则没有发现什么问题.从内部ping也很正常,后来尝试持续ping边缘路由器,发现虽然能通但是隔30秒就会time out一两次.开始被认为是正常现象,后来研究发现ping使用的ICMP的包,而对ICMP包的处理在路由器上的优先级是很低的,如果路由器出现CPU负荷过高就会不相应ICMP,进而导致time out.去边缘路由器show cpu一看果然CPU利用率90%,检查配置发现没有开启ip route-cache,并且路由器每隔30秒会收到上游发送的BGP路由,从而导致路由器停止处理数据包,出现服务无法相应的状况.开启路由器快速交换后解决问题.小小的Ping发现了网络大问题.

阅读(977) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~