![站点到站点路由规则](https://linux22.com/image/789688/%E7%AB%99%E7%82%B9%E5%88%B0%E7%AB%99%E7%82%B9%E8%B7%AF%E7%94%B1%E8%A7%84%E5%88%99.png)
我已经在我们的数据中心安装了 strongswan 隧道,用于提供站点到站点的 vpn。我在 iptables 中设置了伪装。这工作正常。但现在,我想使用路由而不是路由来设置相同的流量。
在数据中心,我有网络 /24。在这个网络中,我有本地 IP xxx186/24 的 strongswan 服务器和本地 IP xxx1/24 的 pfSense。在 pfSense 上,我设置了网关和到隧道后面网络的静态路由。如果我从数据中心的任何 PC ping 到 vpn 隧道后面的子网,一切都正常,因为流量是通过 pfSense 传输的。
如果我从隧道另一侧的设备 ping 到数据中心的设备,ping 不起作用。当我尝试通过数据中心特定设备上的 xxx186 向隧道后面的网络添加静态路由时,它也能正常工作。
请问有什么办法,如何通过 pfSense 和路由运行?非常感谢!!
答案1
简短回答:不 - 您需要告诉终点有关路由的信息 - 至少如果到另一个站点的路由不是通过提供默认路由的同一设备。
最好从一些合理且具体的例子开始。
站点 A:10.0.1.0/24 站点 B:10.0.2.0/24 VPN:10.0.0.0/24
因此,路由器 A 站点的 IP 地址可能是 10.0.1.200 (LAN) 和 10.0.1.1 (VPN)。因此,路由器 B 的 IP 地址可能是 10.0.2.200 (LAN) 和 10.0.0.253 (VPN)
站点 A (10.0.1.0/24) 的主机需要通过路由器 A (10.0.1.200) 的本地 IP 路由到站点 B (10.0.2.0/24)。但前提是路由器@A 不是默认网关。
这样就可以将数据包从主机@A 发送到路由器@A。但是路由器@A 不知道 10.0.2.0/200 在哪里。我们需要在路由器 A 上添加一条到 10.0.2.0/24 的路由,通过它与路由器 B 共享的子网上的地址 - 即 10.0.0.200。
为了使数据包以另一种方式返回,站点 B 处的主机需要通过路由器 B 的本地 IP(10.0.2.200)路由到站点 A - 除非这是站点 B 的默认网关。并且路由器 B 需要通过 10.0.1.253 路由到 10.0.1.0/24。
如何向网络上的主机提供这些路由取决于操作系统以及它们是否使用静态配置还是 DHCP。