收到 ICMP 请求,但没有回复。

14

我建立了3个 CentOS 服务器,将 server2 配置为在 192.168.1.0/24 和 30.0.0.0/24 之间的路由器,但是 ping 无法通信。

我尝试从 server1 进行 ping 192.168.1.62,根据 server3 上的 tcpdump,已经接收到了 ICMP 请求,但未生成 ICMP 响应。

23:36:06.436243 IP 30.0.0.2 > 192.168.1.62: ICMP echo request, id 23570, seq 2838, length 64
23:36:07.436212 IP 30.0.0.2 > 192.168.1.62: ICMP echo request, id 23570, seq 2839, length 64

设置

服务器
  • server1:

    • eth0 - 30.0.0.2
  • server2:

    • eth0 - 192.168.1.61
    • eth0:0 - 30.0.0.1
  • server3:

    • eth0 - 192.168.1.62
路由
  • server1上的路由信息:

    • 0.0.0.0 30.0.0.1
  • server3上的路由信息:

    • 30.0.0.0/24 192.168.1.61

有没有将此线程迁移到服务器故障的选项? - AXE Labs
2个回答

23

我一直在接收ICMP数据包,但没有看到它们被发送出去。问题与跨越多个接口的流量及默认开启的反向路径过滤有关...

我首先启用了异常源日志记录:

$ echo 1 >/proc/sys/net/ipv4/conf/eth2/log_martians

然后有几个选项可以处理它们……我启用了宽松处理:

$ sysctl net.ipv4.conf.all.rp_filter=2

详细信息请参见以下链接:


谢谢!!!特别是Redhat的链接非常有帮助。在我的情况下,我有一个服务器,其接口位于VLAN10和1000上,并且每个子网都有地址。我有一个连接到VLAN10的笔记本电脑,可以ping通服务器的VLAN10地址(直接连接),但无法ping通VLAN1000上的地址(通过路由器)。结果发现,服务器会丢弃从VLAN10地址接收到的VLAN1000数据包。当我将/proc/sys/net/ipv4/conf/VLAN1000/rp_filter更改为“02”时,笔记本电脑立即开始看到ping回复。 - rjb1290

7

使用-e标志运行tcpdump,查看目标MAC地址是否正确。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接