在一些网络服务中,需要将外部网络中的数据包通过网络设备单向转发到内部网络中,通过Linux系统的一些简单配置即可轻松解决此类功能。如下的网络拓扑图所示:
假设外部主机需要将UDP数据通过中间的网络设备转发至内部主机,即源IP为192.168.1.1,目的IP为192.168.3.1:
一、设置外部主机的默认网关为192.168.1.254
ip route add default via 192.168.1.254
二、在外部网络服务器上配置一条192.168.3.0/24子网的路由
ip route add 192.168.3.0/24 via 192.168.2.2
三、在外部网络服务器上添加一条自动SNAT的iptables规则,并开启IP转发
iptables -t nat -A POSTROUTING -j MASQUERADE
sysctl -w net.ipv4.ip_forward=1
四、在内部网络服务器上添加一条自动SNAT的iptables规则,并开启IP转发
iptables -t nat -A POSTROUTING -j MASQUERADE
sysctl -w net.ipv4.ip_forward=1
通过以上几个命令即可配置完成。需要了解技术原理的朋友可通过本人邮箱:kxgy@163.com与本人联系,另外也有比这更高效的方法可讨论。