你好,我尝试执行以下操作(Ips 是示例):
- 我有一台源计算机,其 IP 为 50.50.50.1
- 我的目标计算机的 IP 为 50.50.40.1(源计算机无法访问)
- 我有一台网关计算机,其 IP 为 50.50.30.1(可从源计算机访问,并且通过网络适配器 tun0 连接到目标计算机
沟通应该是这样的:
50.50.50.1 (default adapter) -> 50.50.40.1 (tun0 adapter) -> 50.50.30.1
是否可以在网关计算机的路由表中配置类似的内容?
我使用 ubuntu 16.04
谢谢你的回答
答案1
我找到了解决方案。我可以使用 NAT 表:
# the ip of node which is in MSD network. This can be for example edge node
IP_OF_SOURCE_NODE=50.50.50.1
# ip of destination database where we want to connect (do not forget on port)
IP_OF_DESTINATION_NODE=50.50.30.1:22
# ip address of VPN network adapter
IP_OF_VPN_NETWORK_ADAPTER=50.50.51.1
# Need to change the destination ip to database ip for the packets incoming from default network from specific source (for example dge node)
iptables -t nat -A PREROUTING -i ens5 -p tcp -s ${IP_OF_SOURCE_NODE} --dport 22 -j DNAT --to-destination ${IP_OF_DESTINATION_DATABASE}
# Need to change the source ip to inet address of vpn network address for packets leaving VPN network adapter
iptables -t nat -A POSTROUTING -o tun0 -p tcp -s ${IP_OF_SOURCE_NODE} --dport 22 -j SNAT --to-source ${IP_OF_VPN_NETWORK_ADAPTER}
此后,我成功地从 50.50.50.1 通过 50.50.40.1 连接到节点 50.50.30.1