`
isiqi
  • 浏览: 16348158 次
  • 性别: Icon_minigender_1
  • 来自: 济南
社区版块
存档分类
最新评论

使用ping命令检查路由之解惑

阅读更多

网络工程师都会用到Ping,它是 检查 路由问题的有效办法。但也常听工程师抱怨:不可能,怎么会不通呢?

  这样的困惑一般发生在自认为路由设置正确的时候。举几个笔者遇到的问题,欢迎大家补充。 

最简单的三种情况:
1.太心急。即网线刚插到交换机上就想Ping通网关,忽略了生成树的收敛时间。

当然,较新的交换机都支持快速生成树,或者有的 管理 员干脆把用户端口(ac cess port)的生成树协议关掉,问题就解决了。

2.访问控制。不管中间跨越了多少跳,只要有节点(包括端节点)对ICMP进行了过滤,Ping不通是正常的。最常见的就是防火墙的行为。

3.某些路由器端口是不允许用户Ping的。还遇到过这样的情形,更为隐蔽。

  1.网络因设备间的时延太大,造成ICMP echo报文无法在缺省时间(2秒)内收到。

时延的原因有若干,比如线路(卫星网时延上下星为540毫秒),路由器处理时延,或路由设计不合理造成迂回路径。使用扩展Ping,增加timed out时间,可Ping通的话就属路由时延太大问题。

  2.引入NAT的场合会造成单向Ping通。NAT可以起到隐蔽内部地址的作用,当由内Ping外时,可以Ping通是因为NAT表的映射关系存在,当由外发起Ping内网主机时,就无从查找边界路由器的NAT表项了。

  3.多路由负载均衡场合。比如Ping远端目的主机,成功的reply和timed out交错出现,结果发现在网关路由器上存在两条到目的网段的路由,两条路由权重相等,但经查一条路由存在问题。

  4.IP地址分配不连续。地址规划出现问题象是在网络中埋了地雷,地址重叠或掩码划分不连续都可能在Ping时出现问题。

比如一个极端情况,A、B两台主机,经过多跳相连,A能Ping通B的网关,而且B的网关设置正确,但A、B就是Ping不通。经查,在B的网卡上还设有第二个地址,并且这个地址与A所在的网段重叠。

  5.指定源地址的扩展Ping。登陆到路由器上,Ping远程主机,当ICMP echo request从串行广域网接口发出去的时候,路由器会指定某个IP地址作为源IP,这个IP地址可能不是此接口的IP或这个接口根本没有IP地址。

而某个下游路由器可能并没有到这个IP网段的路由,导致不能Ping通。可以采用扩展Ping,指定好源IP地址。

  当主机网关和中间路由的配置认为正确时,出现Ping问题也是很普遍的现象。此时应该忘掉"不可能"几个字,把Ping的扩展参数和反馈信息、traceroute、路由器debug、以及端口镜像和Sniffer等工具结合起来进行分析。

  比如,当A、B两台主机经过多跳路由器相连时,二者网关设置正确,在A上可以Ping通B,但在B上不能Ping通A。

可以通过在交换机做镜像,并用Sniffer抓包,来找出ICMP 报文终止于何处,报文内容是什么,就可以发现ICMP报文中的源IP地址并非预期的那样,此时很容易想象出可能是路由器的NAT功能使然,这样就能够逐步地发现一些被忽视的问题。

而Ping不通时的反馈信息是"destination_net_unreachable"还是"timed out"也是有区别的。

分享到:
评论

相关推荐

    如何使用ping命令检查网络情况

    使用 Ping 命令检查网络情况 Ping 命令是网络管理员和用户最常用的网络诊断工具之一。它可以帮助用户快速地检测网络连接问题,确定问题的来源和解决方案。本文将介绍如何使用 Ping 命令检查网络情况,包括检查主机...

    tnsping命令解析

    tnsping命令作为Oracle网络诊断工具之一,为数据库管理员提供了简单而有效的方法来检查客户端与远程数据库之间的网络连接状况。通过tnsping,不仅可以验证服务名解析的正确性,还可以检测监听器的状态,从而确保...

    正确使用Windows中的Ping命令

    使用 Windows 中的 Ping 命令 Ping 命令是 Windows 操作系统中非常实用的网络诊断工具,它可以帮助用户检测网络连接是否正常、网络延迟、 packet loss 等问题。然而,很多人可能不知道如何正确使用 Ping 命令来发挥...

    ping命令详解-学习ping命令

    通过上述介绍,我们可以了解到ping命令不仅能够简单地测试网络连通性,还可以通过不同的参数实现更多功能,如查看目标主机的NetBIOS名称、控制发送数据包的数量和大小、设置TTL和TOS值以及记录路由路径等。...

    java中ping命令ping工具类(循环ping)

    利用“ping”命令可以检查网络是否连通,可以很好地帮助我们分析和判定网络故障。应用格式:Ping空格IP地址。 该命令还可以加许多参数使用,具体是键入Ping按回车即可看到详细说明。 ping是一个DOS命令,一般用于...

    C# 使用 ping 命令获取相关信息

    在.NET框架中,C#提供了一种通过使用`System.Diagnostics.Process`类来执行系统命令的方法,包括使用ping命令来获取网络连接的相关信息。本篇文章将详细介绍如何在C#程序中利用ping命令,并通过`Process`类来实现这...

    常用网络命令+ Ping命令的使用

    常用网络命令和 Ping 命令的使用 在网络测试和故障排除中,掌握常用网络命令是非常重要的。这些命令可以帮助我们检测网络连接性、可达性和名称解析等问题。本文将对常用的网络命令进行介绍,包括 Ping 命令、...

    ping 命令的高级用法

    Ping 命令是网络诊断和故障排除中最基本和最常用的工具之一。它可以用来检测本地主机和远程主机之间的网络连接是否正常,检查 TCP/IP 参数是否设置正确,从而帮助网络管理员和用户排除网络故障。 Ping 命令的基本...

    VB使用Ping命令检查网络连接状态.rar_VB运行ping_ping ip_vb 检测网络_visualbasic pin

    VB使用Ping命令检查网络连接状态,有需要的可以下载研究。

    ping命令使用与剖析

    `ping`命令是网络诊断中不可或缺的工具,它基于Internet控制消息协议(ICMP)工作,主要用于检查网络连通性,验证主机间的数据包传输能力。通过发送ICMP回显请求,ping命令能帮助我们了解网络是否通畅,主机是否可达...

    Ping命令检查不能上网的原因.docx

    Ping 命令检查不能上网的原因 Ping 命令是一种基本的网络诊断工具,可以帮助我们快速检测网络状况和排除故障。在本文档中,我们将学习如何使用 Ping 命令来检查不能上网的原因,并了解到一些有用的网络故障排除技巧...

    Ping命令大全及使用方法

    PING的一些参数: ping [-t] [-a] [-n count] [-l length] [-f] [-i ttl] [-v tos] [-r count] [-s count] [[-j computer-list] | [-k computer-list]] [-w timeout] destination-list -t Ping 指定的计算机直到...

    ping命令的使用.docx

    * 检查网络连通性:使用 Ping 命令可以检查网络的连通性,判断目标主机是否存在和响应速度。 * 检测故障:使用 Ping 命令可以检测网络故障,例如检查本机的 IP 地址是否设置正确、本机与本地网络连接是否正常等。 * ...

    用ping命令检测网络故障

    例如,我们可以使用命令 `ping -t 地址>`,来不断地进行 ping 的连接,检测网络的连接是否有中断或者丢包的现象出现。 小结 使用 ping 命令检测网络故障是非常简单和有效的方法。通过使用 ping 命令,我们可以快速...

    禁止使用ping命令

    ping命令是TCP/IP协议的一部分,主要用于检查网络连接的可达性和延迟,但有时出于安全考虑或者避免不必要的网络流量,管理员会选择禁用它。 首先,我们来了解ping命令的基本原理。它通过发送ICMP(Internet Control...

    增强版ping命令(带时间戳)

    在IT领域,网络诊断是日常运维中的重要环节,而ping命令是其中最基础且实用的工具之一。它用于检查网络连接是否畅通,以及测量数据包从发送到接收所需的时间。然而,标准的ping命令并不记录时间戳,这在进行长时间的...

Global site tag (gtag.js) - Google Analytics