快速摘要
pfSense 服务器已连接到 WAN 和 LAN。此盒子还运行着一个 OpenVPN 服务器。
- LAN 客户端使用
192.168.20.0/24
- OpenVPN 客户端使用
192.168.30.0/24
在局域网上我有两台服务器,一台运行 Ubuntu(15.10),一台运行 OS X(带有服务器的 10.11)。
- OS X 服务器位于
192.168.20.10
(静态 DHCP 分配) - Ubuntu 服务器位于
192.168.20.12
(静态 DHCP 分配)
问题
通过 VPN 连接时,我可以 ping 和 traceroute,并且通常可以正常访问 OS X 服务器。但是,Ubuntu 服务器会超时(无法 ping,traceroute 停止在192.168.30.1
)。
我也使用 pfSense 的 ping 和 traceroute 工具确认了这个问题。我可以用 LAN 源访问两台服务器,但只有 OS X 可以使用 OpenVPN 源。
这让我相信这是 Ubuntu 的问题,所以我暂时禁用了 UFW 并启用了 IP 转发。没有修复它(我并不指望它们能起作用,但我现在只能猜测)。
有关 VPN 设置的更多详细信息
隧道设置
- IPv4 隧道网络 =
192.168.30.0/24
- 重定向网关 = TRUE
- IPv4 本地网络 =
192.168.20.0/24
- 服务类型 = FALSE
- 重复连接 = FALSE
客户端设置
- 动态 IP = FALSE
- DNS 默认域 = TRUE,内部
- DNS 服务器启用 = TRUE,
192.168.20.1
(运行 DHCP 服务器和 DNSMasq 的 pfSense 地址)
结论
我无法理解的是为什么它适用于一台服务器,而不适用于另一台服务器。我怀疑 Ubuntu 设置有问题,但我不知道是什么问题。您认为我遗漏了什么,或者我应该在哪里查找?
更新 1
我还确保 pfSense 框上的 unbound 明确允许192.168.30.0/24
和之间的 DNS192.168.20.0/24
通信。我还确认防火墙和网关规则允许这两个子网之间的通信。仍然无法从 VPN 直接访问 IP 或通过域查找访问 ubuntu 服务器。但是,这两种方法都适用于 OS X 框。
更新 2
我发现我可以192.168.30.1
从 OS X ping OpenVPN 网关;但是,从 Ubuntu 超时。我怀疑这意味着 Ubuntu 端的路由表有问题,因为它似乎无法像 OS X 那样与 VPN 子网通信。
更新 3
经过比我愿意承认的更多时间,我终于找到了解决方案。我错过了通往 VPN 子网的该死的路由(我猜 OS X 在有疑问或类似情况时会返回主网关,这就是为什么我不必在那里添加路由的原因)。
因此,这从 Ubuntu 服务器端解决了所有问题。
sudo ip route add 192.168.30.0/24 via 192.168.20.1
一旦修复了这个问题,一切都会顺利进行。非常感谢这个问题并指出我正确的方向。
答案1
确保您的规则允许这样做。您可能在传入 (wan) 或传出 (lan) 接口上有一个限制流量的规则。