我有这样一个networking:

我需要每个黑匣子从服务器B的特定IP进行操作。
这两个服务器运行Debian 9.我只能改变networking设置(IP / Gatway等),但没有其他黑箱。 我该怎么做呢?
有什么东西吗? 将这些框的网关设置为192.168.1.100
服务器A
iptables -A FORWARD -s 192.168.1.0/24 -o tun0 -j ACCEPT iptables -t nat -A POSTROUTING -s 192.168.1.101 -j SNAT --to 10.8.0.9 iptables -t nat -A POSTROUTING -s 192.168.1.102 -j SNAT --to 10.8.0.13 iptables -t nat -A POSTROUTING -s 192.168.1.103 -j SNAT --to 10.8.0.18 iptables -t nat -A POSTROUTING -s 192.168.1.104 -j SNAT --to 10.8.0.22
服务器B
iptables -A FORWARD -s 10.8.0.0/24 -o eth0 -j ACCEPT iptables -t nat -A POSTROUTING -s 10.8.0.9 -j SNAT --to xxx.xxx.xxx.xxx iptables -t nat -A POSTROUTING -s 10.8.0.13 -j SNAT --to yyy.yyy.yyy.yyy
我只能改变networking设置(IP / GATWAY等),但没有别的。
那么这是不可能的。 你的问题并没有说明你是否需要双向连接(即有从互联网上可以访问的“黑匣子”),但无论如何,这至less需要iptables用于SNAT和基于iproute2的高级策略路由。
在原始问题编辑后添加:
是的,像这样的东西可以工作。 但是,这强烈依赖于您的OpenVPN设置。 那些来自VPN子网(10.8.0.0/24)的本地IP应该在你的服务器A上build立,并通过VPN隧道进行路由。 另外不要忘记允许相关的数据包回来。 这通常是这样的规则:
iptables -A FORWARD -i tun0 -m state --state RELATED,ESTABLISHED -j ACCEPT
在服务器A.和服务器B上的-i eth0的相应规则。您必须将服务器A设置为“黑匣子”的默认网关。
但是,不要做双SNAT的开销,你也可以考虑设置你的OpenVPN,允许直接从服务器B路由192.168.1.0/24子网。在这个configuration上,Internet上有多个教程。
您不能像这样“分配”外部IP。 但是,您可以使用iptables和SNAT模块进行IP NAT或TCP / UDP端口转发。