linux - 收到 icmp 请求,但未回复

标签 linux networking router tcpdump icmp

<分区>

我搭建了3台CentOS服务器,将server2配置为192.168.1.0/24和30.0.0.0/24之间的路由器,但是ping不通。

我尝试从服务器 1 ping 192.168.1.62,根据服务器 3 上的 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

设置

服务器
  • 服务器 1:

    • eth0 - 30.0.0.2
  • 服务器 2:

    • eth0 - 192.168.1.61
    • eth0:0 - 30.0.0.1
  • 服务器 3:

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

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

    • 30.0.0.0/24 192.168.1.61

最佳答案

我正在接收 ICMP 数据包,但没有看到它们出去。该问题与穿越多个接口(interface)的流量和默认启用的反向路径过滤有关...

我首先启用了火星源日志记录:

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

然后有几个选项可以用来处理它们......我正在启用松散处理它们:

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

有关详细信息,请参阅以下内容:

关于linux - 收到 icmp 请求,但未回复,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18536796/

相关文章:

linux - `gcloud compute copy-files` : permission denied when copying files

linux - 如何计算 Shell 中的累积值?

php - mssql_connect 神秘地停止工作

java - 基本TCP通讯端口相关查询

java - 如何在 java 中对 UDP 数据包进行 ip 欺骗/更改源地址/原始套接字编程?

linux - 创建共享库链接器 undefined reference

algorithm - 如何从邻接矩阵matlab中获取距离矩阵

c# - Arduino udp ping

ruby-on-rails - Ruby on Rails : singular resource and form_for

typescript - Angular2 (rc4) - 检查父组件中的事件子路由