如何为 2 个 VPN 连接添加路由?

如何为 2 个 VPN 连接添加路由?

我正在尝试在第一个 VPN 连接上设置第二个 VPN 连接,这是我目前唯一的选择。第一个 VPN 连接工作正常(utun1),为我提供了互联网访问,如下所示:

Internet:
Destination        Gateway            Flags        Refs      Use   Netif Expire
0/1                10.56.10.5         UGSc            0        0   utun1
default            192.168.1.1        UGSc            2        0     en0
default            10.56.10.5         UGScI          17        0   utun1
10.56.10.1/32      10.56.10.5         UGSc            0        0   utun1
10.56.10.5         10.56.10.6         UHr            31        0   utun1
10.56.10.5/32      link#14            UCS             0        0   utun1
127                127.0.0.1          UCS             0        4     lo0
127.0.0.1          127.0.0.1          UH             35  2531224     lo0
128.0/1            10.56.10.5         UGSc           10        0   utun1
169.254            link#4             UCS             0        0     en0
179.13.126.66/32   192.168.1.1        UGSc            1        0     en0
192.168.1          link#4             UCS             1        0     en0
192.168.1.1/32     link#4             UCS             1        0     en0
192.168.1.1        ec:88:8f:2b:4d:b6  UHLWIir         4       26     en0    750
192.168.1.103/32   link#4             UCS             0        0     en0
192.168.1.255      ff:ff:ff:ff:ff:ff  UHLWbI          0        7     en0
224.0.0/4          link#4             UmCS            2        0     en0
224.0.0/4          link#14            UmCSI           0        0   utun1
224.0.0.251        1:0:5e:0:0:fb      UHmLWI          0        0     en0
239.255.255.250    1:0:5e:7f:ff:fa    UHmLWI          0       20     en0
255.255.255.255/32 link#4             UCS             1        0     en0
255.255.255.255    ff:ff:ff:ff:ff:ff  UHLWbI          0        7     en0
255.255.255.255/32 link#14            UCSI            0        0   utun1

当连接到第二个 VPN(utun2)时,我不再有互联网,也无法连接到使用第二个 VPN 的主机。第二个互联网连接应该也能提供互联网(前提是我能够直接连接到它)。因此,路由如下所示:

Internet:
Destination        Gateway            Flags        Refs      Use   Netif Expire
0/1                10.56.10.5         UGSc            0        0   utun1
default            link#16            UCS             0        0   utun2
default            192.168.1.1        UGScI           1        0     en0
default            10.56.10.5         UGScI           9        0   utun1
10.56.10.1/32      10.56.10.5         UGSc            0        0   utun1
10.56.10.5         10.56.10.6         UHr            19        0   utun1
10.56.10.5/32      link#14            UCS             0        0   utun1
127                127.0.0.1          UCS             0        4     lo0
127.0.0.1          127.0.0.1          UH             34  2536322     lo0
128.0/1            10.56.10.5         UGSc            5        0   utun1
32.169.33.64       10.56.10.5         UGHS            0        0   utun1
32.169.252.34      31.169.252.34      UH              0       11   utun2
169.254            link#4             UCS             0        0     en0
179.13.126.66/32   192.168.1.1        UGSc            1        0     en0
192.168.1          link#4             UCS             1        0     en0
192.168.1.1/32     link#4             UCS             1        0     en0
192.168.1.1        ec:88:8f:2b:4d:b6  UHLWIir         4       42     en0   1119
192.168.1.103/32   link#4             UCS             0        0     en0
192.168.1.255      ff:ff:ff:ff:ff:ff  UHLWbI          0        5     en0
224.0.0/4          link#16            UmCS            0        0   utun2
224.0.0/4          link#4             UmCSI           1        0     en0
224.0.0/4          link#14            UmCSI           0        0   utun1
239.255.255.250    1:0:5e:7f:ff:fa    UHmLWI          0        4     en0
255.255.255.255/32 link#16            UCS             1        0   utun2
255.255.255.255/32 link#4             UCSI            0        0     en0
255.255.255.255/32 link#14            UCSI            0        0   utun1
255.255.255.255    link#16            UHW3bI          0        1   utun2      6

ifconfig 显示此

utun1: flags=8051<UP,POINTOPOINT,RUNNING,MULTICAST> mtu 1500
    inet 10.56.10.6 --> 10.56.10.5 netmask 0xffffffff 
utun2: flags=8051<UP,POINTOPOINT,RUNNING,MULTICAST> mtu 1280
    inet 32.169.252.34 --> 32.169.252.34 netmask 0xfffffc00 

第一个 VPN 是由某些第三方 VPN 客户端创建的。第二个 VPN 是内置于 OS X VPN 连接中的,设置为默认设置。

我尝试通过第二个 VPN 连接的主机位于子网中32.169.0.0/16

我尝试为该特定主机添加路由,但没有成功

sudo route add -host 32.169.111.222 10.56.10.5 -interface utun2

什么路由可以帮助我通过两个隧道向特定主机添加路由?需要明确的是 - utun1 只是 utun2 的辅助隧道。

答案1

您将需要使用 iproute2 执行策略路由。/etc/iproute2/rt_tables 列出了表格,您也可以添加它们。它们旁边有一个数字,这是它们被处理的优先级。您可以使用“ip route add”和“ip rule add”来修改规则和路由。IP 规则也有优先级。这两个命令都是按照最后采用编号较高的路由和规则的方式进行处理的。路由被添加到表中,而规则指定哪种源和目标地址采用指定的路由和/或路由表。使用“ip route add”的“table”关键字来指定将路由添加到哪个表,并使用“ip rule add”的“lookup”来指定采用哪个表。

我编辑了这个来展示一个例子,虽然我还没有测试过这个命令语法或设置,但它应该非常简单:

rt_表:

125 vpn-1
150 vpn-2

IP 规则:

ip route add <vpn_1_ip> via <real_default_gw_ip> dev <dev> table main
ip route add <vpn_2_ip> via <vpn_1_ip> dev <dev> table vpn-1
ip route add default via <vpn_2_ip> dev <dev> table vpn-2

然后添加规则。如下所示:

ip rule add pref 1000 from <vpn_1_ip> to any lookup main
ip rule add pref 1001 from <vpn_2_ip> to any lookup vpn-1
ip rule add pref 30000 from any to any lookup vpn-2

但是,如果您在第一个 VPN 之上配置第二个 VPN,就像通过第一个 VPN 而不是让它使用默认网关一样,您确定需要这样做吗?

答案2

您的问题可能是第一个 VPN 服务器未配置为接受远程访问 VPN 连接。请与您的 VPN 供应商核实是否确实如此。

例如,请参阅此链接以了解如何配置 Microsoft 所称的“Pass-Through VPN”:
B 公司 VPN 服务器的配置

相关内容