我configuration了一个在Azure中运行的OpenVPNnetworking10.8.0.0/24(networkingA)。 Linux虚拟机的IP为10.1.0.4,位于Azure的10.1.0.0/24networking中(networkingB)。 我也configuration了一个路由器作为一个OpenVPN客户端与自己的子网192.168.1.0/24(networkingC)。
在Azure中,有一个IP地址为10.1.0.5的Windows Server虚拟机。 在远程路由器上有一个ip 192.168.1.223的设备。
所以总结我有这些networking:
而这些设备:
我已经设置了路由表,以便IP 192.168.1.223上的设备和IP 10.1.0.5上的Windows Server VM可以相互通信。 这是完美的工作。
当我想将SNMP陷阱(UDP 162)从设备发送到Windows Server VM时,会发生此问题。 数据包通过源IP 10.8.0.3(OpenVPNnetworking上的路由器IP)接收。 我想让SNMP数据包到达192.168.1.223设备的源IP,这是它们的实际来源。
在远程路由器的client.conf文件中可以使用一些POSTROUTING规则或configuration吗?
我能够通过查看路由器configuration来解决这个问题。 我使用的路由器是Teltonika RT950,它是基于Linux的,具有内置的stream量规则,允许源NATconfiguration以及良好的OpenVPN支持。
通过在从局域网到VPN的端口162(OpenVPN客户端configuration在路由器中显示为一个单独的区域)中添加将SNAT IP 192.168.1.223分配给UDP数据包的规则,Windows Server接收到的数据包现在将源IP设置为192.168.1.223。