我有以下devise:
client linuxserver destination 192.168.160.34 192.168.163.196 192.168.18.1
我可以从服务器从客户端和客户端ping服务器,他们都在同一个子网, 192.168.160/22 ,我也可以从服务器ping目的地
客户端ip路由列表:
default via 192.168.163.196 dev ens192 192.168.160.0/22 dev ens192 proto kernel scope link src 192.168.160.34
客户端的iptables策略在所有链上都可以接受,并且已经刷新。 服务器的iptables在所有链上都可以接受,有一些docker + kvm规则等等。
我继续在服务器上添加以下内容:
iptables -t nat -A POSTROUTING -s 192.168.160.34 -j SNAT --to 192.168.163.196
我还添加了net.ipv4.ip_forward=1并将其应用于内核参数。
我仍然无法ping客户端的目的地。
tcpdump的:
00:00:00.000000 IP (tos 0x0, ttl 64, id 3182, offset 0, flags [DF], proto ICMP (1), length 84) 192.168.160.34 > 192.168.18.1: ICMP echo request, id 4442, seq 1, length 64 00:00:00.000052 IP (tos 0x0, ttl 63, id 3182, offset 0, flags [DF], proto ICMP (1), length 84) 192.168.163.196 > 192.168.18.1: ICMP echo request, id 4442, seq 1, length 64 00:00:00.000680 IP (tos 0x0, ttl 125, id 32481, offset 0, flags [none], proto ICMP (1), length 84) 192.168.18.1 > 192.168.163.196: ICMP echo reply, id 4442, seq 1, length 64 00:00:01.028150 IP (tos 0x0, ttl 64, id 3405, offset 0, flags [DF], proto ICMP (1), length 84) 192.168.160.34 > 192.168.18.1: ICMP echo request, id 4442, seq 2, length 64 00:00:00.000042 IP (tos 0x0, ttl 63, id 3405, offset 0, flags [DF], proto ICMP (1), length 84) 192.168.163.196 > 192.168.18.1: ICMP echo request, id 4442, seq 2, length 64 00:00:00.000489 IP (tos 0x0, ttl 125, id 32749, offset 0, flags [none], proto ICMP (1), length 84) 192.168.18.1 > 192.168.163.196: ICMP echo reply, id 4442, seq 2, length 64 00:00:01.023522 IP (tos 0x0, ttl 64, id 3641, offset 0, flags [DF], proto ICMP (1), length 84) 192.168.160.34 > 192.168.18.1: ICMP echo request, id 4442, seq 3, length 64
我的icmp数据包到达目的地并返回到Linux服务器,但无法到达客户端。 任何帮助,将不胜感激。
我曾经尝试过的东西:
使用相同的信息testing一个干净的安装盒上的nat规则,它的工作原理(只是把这个testing的客户端的默认网关改为新的服务器)
刷新所有链接在Linux服务器上,再次添加规则,然后再试一次(没有帮助)
在linux服务器上添加以下内核参数(did not help):
net.ipv4.conf.all.send_redirects = 1 net.ipv4.conf.all.accept_source_route = 1
我相信你需要:
iptables -t nat -A POSTROUTING -d 192.168.18.1 -j SNAT --to <some_ip_here>
其中是连接到与目标相同的networking的linuxserver接口的IP地址。 我想这可能是192.168.18。