去评论
推扬网

朱永博:为什么交换机ping自己的网关ping不通

admin
2020/08/10 19:16:59

潘林风的回答:

网络工程师都会用到Ping,它是检查路由问题的有效办法。但也常听工程师抱怨:不可能,怎么会不通呢? 这样的困惑一般发生在自认为路由设置正确的时候。举几个笔者遇到的问题,欢迎大家补充。 最简单的三种情况: 1.太心急。即网线刚插到交换机上就想Ping通网关,忽略了生成树的收敛时间。当然,较新的交换机都支持快速生成树,或者有的管理员干脆把用户端口(access port)的生成树协议关掉,问题就解决了。 2.访问控制。不管中间跨越了多少跳,只要有节点(包括端节点)对ICMP进行了过滤,Ping不通是正常的。最常见的就是防火墙的行为。 3.某些路由器端口是不允许用户Ping的。 还遇到过这样的情形,更为隐蔽。 1.网络因设备间的时延太大,造成ICMPecho报文无法在缺省时间(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 echorequest从串行广域网接口发出去的时候,路由器会指定某个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"还是"timedout"也是有区别的。

周梓桐的回答:

网络工程师都会用到Ping,它是检查路由问题的有效办法。但也常听工程师抱怨:不可能,怎么会不通呢? 这样的困惑一般发生在自认为路由设置正确的时候。举几个笔者遇到的问题,欢迎大家补充。 最简单的三种情况: 1.太心急。即网线刚插到交换机上就想Ping通网关,忽略了生成树的收敛时间。当然,较新的交换机都支持快速生成树,或者有的管理员干脆把用户端口(access port)的生成树协议关掉,问题就解决了。 2.访问控制。不管中间跨越了多少跳,只要有节点(包括端节点)对ICMP进行了过滤,Ping不通是正常的。最常见的就是防火墙的行为。 3.某些路由器端口是不允许用户Ping的。 还遇到过这样的情形,更为隐蔽。 1.网络因设备间的时延太大,造成ICMPecho报文无法在缺省时间(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 echorequest从串行广域网接口发出去的时候,路由器会指定某个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"还是"timedout"也是有区别的。

√从此→←拥有倪ㄨ的回答:

局域网多台电脑通过交换机连接,但是一个意想不到的问题出现了,某台电脑ping不通! 肯定是网络的原因,因为电脑没有任何的其他安全设置过。 遇到这个问题,检查交换机的时候,可以参考如下操作: 硬件故障:检查交换机的显示灯、电源、连线是否正常,交换机是否正常。 设置故障:一、检查交换机是否设置了ip地址,如果设置了和其他设备不在同一网段的ip地址,将其删除或设一个和其他设备在同一网段的ip地址。二、vlan设置的故障,连接交换机的几个端口属于不同的vlan,所以不通,将设置的vlan去掉或者修改到同一vlan中。 交换机其他故障问题 一般来说,这种情况交换机是正常的,因为两个交换机是用两个端口相连,所以交换机认为是loop存在,它就自动断掉其中一根,将相应的端口down 掉(显示红灯的端口),解决方法是打开spanning tree的功能(缺省情况是打开的),让交换机知道这两个端口是fec功能,逻辑上是一个端口。 2.电脑连在10/100m自适应的交换机上通讯正常,但是将100m的网卡连到交换机上时显示红灯,通讯不正常。 这种情况可能是因为配置不当引起的,交换机的端口很可能被强制成10m,在连到100m的情况下才会报错,解决方法是到端口配置下,将端口速度恢复成自适应或强制成100m。 不可以,同一个vlan只能在同一网段内,不同网段不可以划在同一个vlan,交换机会报错。 不可以。不同vlan之间应属于不同的网段,如果不通过路由功能,不同vlan之间不可以通信。 答:有可能是硬件故障或是设置故障。若是硬件故障,应检查交换机的显示灯、电源和连线是否正确,交换机是否正常。若是设置故障,先检查交换机是否设置了ip地址,如果设置了和其他设备不在同一网段的ip地址,将其删除或设一个和其他设备在同一网段的ip地址;然后再看看是否是vlan设置的故障,如果交换机设置了不同的vlan,连接交换机的几个端口属于不同的vlan,所以不通,此时,您只要将设置的vlan去除即可。   答:一般来说,这种情况交换机是正常的,因为2个交换机是用2个端口相连,所以交换机认为有loop存在,它就自动断掉其中的一根,将相应的端口down掉(显示红灯的端口)。解决方法是: 打开spanning-tree的功能(缺省情况下是打开的),让交换机知道这2个端口是fec的功能,逻辑上是一个端口。   答:这种情况是由于配置不当引起的。交换机的端口很可能被强制设置成10mbps,在连到100mbps端口的情况下才会报错。解决方法是: 在端口配置下,将端口速度恢复成自适应或强制设置成100mpbs。   答:不可以。