Mac OS X 10.8 VPN 服务器:绕过 LAN 流量的 VPN(将 LAN 流量路由到辅助连接)

Dan*_*son 10 networking vpn osx-server osx-mountain-lion

我对带有 OS X Mountain Lion 的 VPN 服务器进行了一些奇怪的设置。它本质上被用作绕过我公司的防火墙到我们的外联网连接的桥梁——我们团队需要做的某些事情需要不受限制地访问外部,而更改 IT 策略以允许流量通过主防火墙并不是一种选择。

外联网连接是通过 Wireless-N 路由器(我们称之为 Wi-Fi X)提供的。我的 Mac Mini 服务器配置了与此路由器的连接作为主要连接,因此可以通过路由器不受限制地访问互联网。可以通过 LAN 端口连接到直接子网上的此设备,但子网之外的情况不太可靠。

我能够使用 PPTP 和 L2TP 将 VPN 服务器配置为向 192.168.11.150-192.168.11.200 范围内的客户端提供 IP 地址,并且我能够使用标准 Mac OS X VPN 通过 VPN 连接到外联网系统偏好设置中的客户端,但不出所料,本地地址(我们称之为 internal.company.com)不返回任何内容。

我试图通过在 VPN 设置中设置路由来绕过 VPN 服务器的限制。我们公司的所有内部流量都使用 13.xxx,而不是 10.xxx,所以路由表看起来像这样:

IP Address ---------- Subnet Mask ---------- Configuration
0.0.0.0               248.0.0.0              Private
8.0.0.0               252.0.0.0              Private
12.0.0.0              255.0.0.0              Private
13.0.0.0              255.0.0.0              Public
14.0.0.0              254.0.0.0              Private
16.0.0.0              240.0.0.0              Private
32.0.0.0              224.0.0.0              Private
64.0.0.0              192.0.0.0              Private
128.0.0.0             128.0.0.0              Private
Run Code Online (Sandbox Code Playgroud)

我的印象是,如果这里没有输入任何内容,所有流量都会通过 VPN 路由。输入某些内容后,只有专门标记为通过 VPN 的流量才会通过 VPN,而所有其他流量将由客户端使用其自己的默认连接进行访问。这就是为什么我必须特别将除 13.xxx 之外的每个子网标记为私有的原因。

我的怀疑是,由于我无法从本地子网外部访问 VPN 服务器,因此它没有连接到主 DNS 服务器,因此无法在更大的网络上访问。我认为输入像 internal.company.com 这样的主机名不会被踢回客户端来解析,因为服务器不知道 IP 地址属于公共范围,因为我怀疑(可能应该对其进行 ping 测试,但是现在无法访问它)它无法访问 DNS 服务器以查找有关该主机名的任何信息。

在我看来,我解决这个问题的所有选择都归结为相同类型的解决方案:

弄清楚如何使用服务器上的辅助连接访问 DNS。我在想,如果我能够做 [某事] 来让我的服务器认识到它也应该检查我的本地网关(假设服务器 IP == 13.100.100.50 和网关 IP == 13.100.100.1)。从那里网关 IP 可以告诉我在 13.1.1.1 处找到 DNS 服务器并提供有关我的内部网络的信息。我对这条路很困惑——真的不确定我是否有道理。

我想尝试做这个客户端,但这也没有意义,因为这会增加每个客户端设置的时间。另外,在服务器上解决它似乎更合乎逻辑 - 我可以完全摆脱我的路由表或保留它 - 我认为唯一的区别是内部流量也会通过服务器 - 可能是不必要的负担它。

有什么帮助吗?或者我在我的头上?转发代理或透明代理也是我的一个选择,尽管我不知道如何设置其中任何一个。(我知道,谷歌是我的朋友。)

MDM*_*313 2

好吧,我试一下:

我不确定如何只让一些流量通过我可以解决您的问题,但这需要对您的设置进行一些更改。我假设您的 Mac 有两个网络接口,我们称它们为 eth0 和 eth1 :-)

我们假设 eth0 连接到您的工作网络,并且内部(工作网络)地址为 13.1.1.6,子网 255.0.0.0。

为了简单起见,我们还假设 eth1 连接到您的 WiFi X,并且地址(eth1 <---> WiFi X 网络)为 192.168.1.10,子网 255.0.0.0。

我已经在 BSD 和 Linux 上设置了 VPN 服务器,但没有在 Mac 上设置,但是概念仍然是相同的,你有选择,我将列出一个:

1)确保Mac上的路由表有如下条目:

$>sudo route add 13.0.0.0/8 eth0
Run Code Online (Sandbox Code Playgroud)

这样做的目的是确保通过 WiFi X 或 VPN 接口传入的发往您公司网络(13 网络)的任何流量都会到达那里。如果没有这个,Mac(提供桥接器)确实无法知道如何在两个接口之间路由流量,并且默认情况下它会尝试将其发送到默认的任何接口,即您所说的 WiFi X。

我会撤消您对上面的 VPN 路由表所做的操作,并尝试此操作(如果它(希望)不存在)。

如果上述方法不起作用,请更新您的 VPN 服务器的路由表和 IP 地址列表,或者更新您遇到的任何修复。希望这能为您指明正确的方向。