【发布时间】:2018-08-09 12:35:37
【问题描述】:
我将从 Server3 连接到位于 Server2-OracleDB 上的 Oracle 数据库。 Server1-Proxy 和 Server3 位于 AWS 和不同的 VPC 网络中,但 VPC 已对等,并且它们可以使用私有 IP 相互访问。 Server2-OracleDB 位于外部网络中,我可以通过 Server1-Proxy 和 Server2-OracleDB 之间的 VPN 连接访问它。
所以只有 Server1-Proxy 可以访问外部 Oracle-DB 服务器。现在我需要从 Server3 访问 OracleDB。我想做的是使用 iptables 转发来实现这种访问。
我的 Iptables 规则在 Server1-Proxy 中如下所示:
Server3 IP:172.28.201.230,Server1-Proxy IP:172.28.205.10,Server2-OracleDB IP:10.130.180.230
iptables -t nat -A PREROUTING -p tcp -s 172.28.201.230 --dport 1521 -j DNAT --to 10.130.180.230
iptables -A FORWARD -s 10.130.180.230 -p tcp --sport 1521 -j ACCEPT
iptables -A FORWARD -d 10.130.180.230 -p tcp --dport 1521 -j ACCEPT
iptables -A FORWARD -s 10.130.180.230 -p tcp --sport 1024:65535 -j ACCEPT
iptables -t nat -A POSTROUTING -p tcp -j MASQUERADE
当我尝试从 Server3 到 Server2-OracleDB 的 telnet 时,它给了我连接超时,当我检查 Server3 网络中的流日志时,我可以看到:
2 myaccount-id myinterface-id 172.28.201.230 10.130.189.230 49864 1521 6 7 420 1533815087 1533815207 ACCEPT OK
我似乎没有从 OracleDB 服务器得到答案,我猜是 iptables 设置有问题。
ip_forward 已启用,并且路由表和安全组看起来正确。
谁能帮我解决这个问题?
【问题讨论】:
标签: amazon-web-services vpn iptables amazon-vpc