对于简单的SNAT,我可能只是一个新手问题。场景的简短概述:
SNAT规则看起来非常简单,所以我想我只是在这里遗漏了一些明显的东西。这是SNAT规则:
系统IP:
208.10.10.123 (The public interface IP)
10.0.0.7 (The private interface IP)
SNAT规则:
*nat
:DOCKER - [0:0]
:EXTERNAL_IP - [0:0]
-A POSTROUTING -j EXTERNAL_IP
-A EXTERNAL_IP -s 172.17.0.4/32 -j SNAT --to-source 10.0.0.7
-A EXTERNAL_IP -j RETURN
使用nc
命令演示该问题:
# Works: Request to another host on the private interface:
bash-4.4# nc -zv 10.0.0.3 22
10.0.0.3 (10.0.0.3:22) open
# Not Working: Request to local private IP interface of server:
bash-4.4# nc -zv 10.0.0.7 22
nc: 10.0.0.7 (10.0.0.7:22): Operation timed out
在研究此问题时,我似乎找不到有关SNAT连接的任何讨论或文档,其中目标是从SNAT连接的同一IP上的端口。任何指针将不胜感激!
(此外,我很高兴提供任何其他有用的信息。在我看来,以上内容是迄今为止我能想到的最简单的可重现案例,但我可能错过了一些显而易见的事情。)< / p>
[1]无法为容器选择出站(外部)IP·问题#30053·Moby / Moby:https://github.com/moby/moby/issues/30053#issuecomment-364344488