在 VPN 场景下的跨子网通信防火墙配置方法

💡 原文中文,约5000字,阅读约需12分钟。
📝

内容提要

本文介绍了在VPN环境下实现跨子网通信的方法。通过配置路由表和防火墙,机器A可以访问位于不同局域网的机器B及其子网中的设备C。具体步骤包括在A上添加路由、在B上启用IP转发,并配置iptables以允许数据包转发和地址伪装,确保iptables规则在重启后持久化,以实现稳定的Site-to-Site连接。

🎯

关键要点

  • 在VPN环境下,机器A和B分别位于不同的局域网,A需要访问B所在局域网的设备C。
  • 通过配置路由表,A可以将B设置为访问192.168.3.0/24子网的网关。
  • 在B上启用IP转发,以允许数据包在不同网络之间转发。
  • 防火墙配置需要允许经过B进行路由的数据包,并开启地址伪装以确保C能够正确响应A的请求。
  • iptables规则需要持久化,以确保在系统重启后依然有效,可以通过保存和恢复规则的方式实现。

延伸问答

如何在VPN环境下实现跨子网通信?

通过配置路由表和防火墙,机器A可以访问位于不同局域网的机器B及其子网中的设备C。

在机器A上如何配置路由以访问机器B的子网?

在A上运行命令:sudo ip route add 192.168.3.0/24 via 10.0.0.3。

如何在机器B上启用IP转发?

可以通过命令sudo sysctl -w net.ipv4.ip_forward=1临时开启,或修改/etc/sysctl.conf文件以永久开启。

防火墙配置中需要注意哪些关键步骤?

需要允许经过B进行路由的数据包,并开启地址伪装以确保C能够正确响应A的请求。

如何持久化iptables规则以确保重启后有效?

可以使用iptables-save和iptables-restore命令保存和恢复规则,或使用iptables-persistent工具。

在B上如何开启地址伪装?

在B上运行命令:sudo iptables -t nat -A POSTROUTING -s 10.0.0.0/16 -o enp2s0 -j MASQUERADE。

➡️

继续阅读