通过 OpenVPN tap0 接口转发所有传入流量到特定目标 IP

通过 OpenVPN tap0 接口转发所有传入流量到特定目标 IP

有人能帮我确保我的 VPS 接受所有到 1.1.1.1/30(示例 IP)的流量并将其转发到我的 pfSense 实例吗?

我有以下设置:

  • 我有一个 VPS,具有可公开路由的 /32 IPv4(假设为 1.2.3.4/32)以及可公开路由的 /30 IPv4(假设为 1.1.1.1/30)
  • 1.2.3.4/32 是接口上的 IP ens18,我的 ISP 通过同一接口路由 1.1.1.1/30 子网
  • 当我将 1.1.1.1/30 内的任何 IP 添加到loens18接口时,这些 IP 都是可公开访问的(可 ping 通)
  • ovpnc3我的家庭防火墙(基于 FreeBSD 的 pfSense)通过 OpenVPN tap(接口)连接到 VPS
  • 我在VPS上添加了静态路由:ip route add 1.1.1.1/30 dev tap0
  • sysctl net.ipv4.ip_forward=1在 VPS 上设置
  • 我在VPS上添加了以下防火墙规则:
    • iptables -I FORWARD -s 0.0.0.0/0 -d 1.1.1.1/30 -j ACCEPT
    • iptables -I FORWARD -s 1.1.1.1/30 -d 0.0.0.0/0 -j ACCEPT

VPS 在 Debian 11(bullseye)上运行,家庭防火墙在 pfSense 23.05.1-RELEASE(FreeBSD 14.0)上运行

我目前取得的成就:

  • 当我将 1.1.1.1/32 作为别名添加到接口时,我会通过 VPS(通过 SSH)从 pfSenseovpnc3获得回复arpingping
  • 通过 pfSense 实例上的物理接口进行 ping 操作同样有效
  • 但来自外界(公共互联网)的传入流量导致 100% 的数据包丢失

我想要实现的目标:

  • 所有到整个 1.1.1.1/30 的流量都应通过 OpenVPN 隧道转发到 pfSense

谢谢!

相关内容