使用大包ping对端进行MTU不一致的故障处理

文章出处:http://blog.sina.com.cn/s/blog_4ef7359101000drx.html


    某次开局,使用Quidway路由器与其他厂商的某路由器互连,并运行OSPF协议。数据配置完毕后,一切正常,并在今后相当长的时间内设备运转稳定,但两个月后,用户反馈网络中断。


    相关信息显示:

    登录到两台路由器上,发现双方连接正常,可以相互ping通对端地址。但OSPF协议中断

    登录Quidway路由器查看邻居状态,发现邻居状态机处于Exstart状态。打开相应的Debug开关查看相应的报文信息,发现双方都可以收到Hello报文,但Quidway路由器发送DD报文后,一直没有收到对方回应的DD报文;

    登录其他厂商的那台路由器,打开相应的Debug开关,发现对方收到Quidway路由器发送的DD报文后,已发送了相应的DD报文并予以回应。

    原因分析:

    初步断定,Quidway路由器没有收到DD回应报文,但对方确实发出来了。

    既然可以接收到Hello报文,说明链路是通畅的,而且多播报文的收发也没有问题。那么有可能是对方发送的DD报文有错误导致Quidway路由器拒收,但查看相应的信息,并没有报告接收到错误的DD报文。

    仔细查看了某厂商路由器的调试信息,发现这个DD报文很大有2000多字节。会不会是由于报文太大导致的问题呢?试着ping了一个2000字节的报文,结果不通。那么故障的原因很可能是 --- 由于双方的MTU不一致导致大包不通

    处理过程:

    检查配置,发现对方路由器的MTU设置为4000多,而Quidway路由器的MTU设置为1500,于是修改对端路由器的MTU为1500,故障消除。那么为什么工程初期没有问题呢这是因为前期DD报文长度小于1500字节,而后来网络扩容导致路由信息过多使DD报文的长度超过了1500字节

    建议和总结:

    由于ping缺省报文是56个字节,所以显示的ping通信息只是表示56字节的报文可以通而并不一定表示其他大小的报文仍可以通过。所以,应当善于使用ping的其他参数来进行故障处理


============================================================================================================================================================================================

    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在断开网络电缆的情况下可以ping通,但禁用本地网络时则无法ping通。

    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

    对这个域名执行ping www.xxx.com地址,通常是通过DNS服务器,如果这里出现故障,则表示DNS服务器的IP地址配置不正确,或DNS服务器有故障(对于拨号上网用户,某些ISP已经不需要设置DNS服务器了)。顺便说一句,我们也可以利用该命令实现域名对IP地址的转换功能。

    如果上面所列出的所有ping命令都能正常运行,那么我们对自己的计算机进行本地和远程通信的功能基本上就可以放心了。但是,这些命令的成功并不表示我们所有的网络配置都没有问题,例如,某些子网掩码错误就可能无法用这些方法检测到

    2. ping命令的常用参数选项

    ping IP Ct

    连续对IP地址执行ping命令,直到被用户以Ctrl+C中断;

    ping IP -l 3000

    指定ping命令中数据的长度为3000字节,而不是缺省的32字节;

    ping IP Cn

    指定特定次数的ping;




你可能感兴趣的:(网络基础)