ping 没有显示任何结果是什么意思?

ping 没有显示任何结果是什么意思?

我部署了一个 kolla-openstack 并将浮动 IP 附加到其中的一个实例。

现在,当我尝试 ping IP 时,没有得到任何响应,但是当我按 ctrl+c 时,它显示 100% 丢失。在此处输入图片描述

撇开这个不谈,如果我尝试 ping 一个 100% 不在网络中的 IP,我会得到一个明确的 在此处输入图片描述

我有两个问题:

  1. 我该如何解决这个问题,最可能的问题是什么?
  2. ping 没有响应/没有显示输出但显示 100% 数据包丢失是什么意思?

答案1

失败的原因有很多ping。防火墙是问题的主要来源;例如,如果ping防火墙(此处为 Linux 测试虚拟机)直接丢弃 ICMP 回应请求(发送的内容iptables),则会导致第一次出现 100% 数据包丢失的情况:

[root@localhost]~# iptables-save
...
[root@localhost]~# iptables -I INPUT 1 -p icmp --icmp-type echo-request -j DROP
[root@localhost]~# ping localhost
PING localhost (127.0.0.1) 56(84) bytes of data.
^C
--- localhost ping statistics ---
5 packets transmitted, 0 received, 100% packet loss, time 4004ms

您的第二种情况可能是合法的,但也可能是由返回合适 ICMP 响应的防火墙规则引起的,如在同一测试主机上模拟的那样:

[root@localhost]~# iptables -p icmp -h | grep host-unreach
   host-unreachable
   TOS-host-unreachable
[root@localhost]~# iptables -D INPUT 1
[root@localhost]~# iptables-save
...
[root@localhost]~# iptables -I INPUT 1 -p icmp --icmp-type echo-request -j REJECT --reject-with icmp-host-unreachable
[root@localhost]~# ping localhost
PING localhost (127.0.0.1) 56(84) bytes of data.
From localhost (127.0.0.1) icmp_seq=1 Destination Host Unreachable
From localhost (127.0.0.1) icmp_seq=2 Destination Host Unreachable
^C
--- localhost ping statistics ---
2 packets transmitted, 0 received, +2 errors, 100% packet loss, time 1000ms

因此,100% 的数据包丢失意味着回显请求(或可能是返回途中的响应)被源和目标之间的网络路由上的防火墙(或任何网络设备)丢弃。“主机不可访问”意味着防火墙(或路由上的任何网络设备)拒绝具有特定 ICMP 响应类型的回显请求。

解决该问题将涉及弄清网络拓扑(traceroute检查文档等)、使用tcpdump或类似的数据包跟踪器、检查防火墙规则和日志等。这应该从源主机和目标主机进行,并且可能涉及维护源和目标之间的网络系统(路由器、防火墙、可以伪造网络流量的负载平衡器等)的任何人。

相关内容