我在 AWS EC2 中运行一个 Linux 机器,它只有一个接口 - eht0。此接口连接到私有子网 172.16.0.0,其 IP 为 10.95.114.69。子网中的所有主机都可以通过此 Linux 机器访问。此机器终止 IPSec 隧道,其后是子网 10.0.77.0。我可以从此 Linux 机器访问该子网中的任何主机,也可以从此子网访问该 Linux 机器。
这个想法是,这个盒子从 IPSec 进行 NAT 流量并将其从它自己的源传递到 172.16.0.0 网络。
我添加了一些规则来跟踪数据包:
firewall-cmd --direct --get-all-rule | grep 10.0.77
ipv4 mangle POSTROUTING_direct 3 -s 10.0.77.0/24 -j LOG --log-prefix 'MANGLE POST Where is my packet? '
ipv4 filter OUTPUT_direct 3 -s 10.0.77.0/24 -j LOG --log-prefix 'OUT Where is my packet?'
ipv4 nat POSTROUTING_direct 3 -s 10.0.77.0/24 -j LOG --log-prefix 'NAT POST Where is my packet?'
ipv4 nat POSTROUTING_direct 3 -s 10.0.77.0/24 -j MASQUERADE
ipv4 mangle FORWARD_direct 3 -s 10.0.77.0/24 -j LOG --log-prefix 'MANGLE FORWARD Where is my packet? '
ipv4 mangle INPUT_direct 3 -s 10.0.77.0/24 -j LOG --log-prefix 'MANGLE INPUT Where is my packet? '
ipv4 nat PREROUTING_direct 3 -s 10.0.77.0/24 -j LOG --log-prefix 'PRE Where is my packet?'
ipv4 filter INPUT_direct 3 -s 10.0.77.0/24 -j LOG --log-prefix 'INPUT Where is my packet?'
ipv4 filter FORWARD_direct 3 -s 10.0.77.0/24 -j LOG --log-prefix 'FORWARD Where is my packet?'
而且...我只'PRE Where is my packet?'
在日志中看到。对我来说,这意味着路由决策尚未做出。
数据包不会被拒绝,因为防火墙正在跟踪所有被拒绝的数据包。
如果我将子网 10.0.77.0 中的一个 IP 分配给盒子本身,并将其用作到达 172.16.0.0 的源,则一切正常。但这有点不同,因为数据包源自本地。
有什么建议去哪里看吗?