在 Mac OS X 10.5 上登录 Cisco IPsec VPN 时连接到分配的 IP 地址

在 Mac OS X 10.5 上登录 Cisco IPsec VPN 时连接到分配的 IP 地址

我正在尝试使用以下方式获取连接到 Cisco VPN 的工作环境IPsec在运行Mac OS X 版本 10.5(豹)。

当我连接到 VPN 时,我可以顺利连接到网络中的其他计算机,其他计算机可以使用 VPN 分配的 IP 地址(例如,通过 SSH)重新连接到我的 Mac。但是,Mac 本身不能连接到该 IP 地址。这对于此环境很重要,因为对于我所做的某些开发工作,我需要一个可以从我的 Mac 和网络中的其他计算机访问的通用 IP 地址。

使用 Cisco 编写的 VPN 客户端,成功建立连接,并且所有流量都通过 VPN 路由(这是 VPN 本身的要求)。我尝试查看路由表,但 Cisco VPN 客户端似乎并没有真正更改路由表。此外,它ifconfig不会在任何接口中显示新 IP 地址 - 但我可以在 VPN 客户端应用程序中找到它。我不太清楚它如何在不更改路由表的情况下路由流量,但也许这不是重点。

我也尝试过Shrew VPN 客户端。我设法为 10.5 构建了源代码并使其运行。它也能正常连接,但表现出相同的症状。此 VPN 客户端确实更改了路由表并在接口ifconfig下显示 IP 地址tap0。但是,我仍然无法正确设置路由表以便能够连接到 VPN 分配的本地 IP 地址。

以下是路由表的一个例子(删除了一些不重要的内容):

未连接到 VPN:

Destination        Gateway            Flags    Refs      Use  Netif Expire
default            192.168.1.1        UGSc       12       27    en0
127                127.0.0.1          UCS         0        0    lo0
127.0.0.1          127.0.0.1          UH         50    69556    lo0
192.168.1          link#4             UCS         8        0    en0
192.168.1.1        0:1f:90:5c:b2:e5   UHLW       10      744    en0   1188
192.168.1.111      127.0.0.1          UHS         1      768    lo0

连接到VPN(IP地址为172.25.187.40):

    Destination        Gateway            Flags    Refs      Use  Netif Expire
default            172.25.187.40      UGSc       14       46   tap0
127                127.0.0.1          UCS         0        0    lo0
127.0.0.1          127.0.0.1          UH         49    68374    lo0
172.25.187/24      link#12            UC          2        0   tap0
172.25.187.40      82:1e:79:f7:7:6a   UHLW        6        0    lo0
172.25.187.255     ff:ff:ff:ff:ff:ff  UHLWb       3       23   tap0
192.168.1          link#4             UCS         8        0    en0
192.168.1.111      127.0.0.1          UHS         0      750    lo0

重要内容如下ifconfig

lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> mtu 16384
        inet6 fe80::1%lo0 prefixlen 64 scopeid 0x1 
        inet 127.0.0.1 netmask 0xff000000 
        inet6 ::1 prefixlen 128 
en0: flags=8863<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST> mtu 1500
        inet6 fe80::225:4bff:fe9c:df3a%en0 prefixlen 64 scopeid 0x4 
        inet 192.168.1.111 netmask 0xffffff00 broadcast 192.168.1.255
        ether 00:25:4b:9c:df:3a 
        media: autoselect (100baseTX <full-duplex,flow-control>) status: active
        supported media: none autoselect 10baseT/UTP <half-duplex> 10baseT/UTP <full-duplex> 10baseT/UTP <full-duplex,flow-control> 10baseT/UTP <full-duplex,hw-loopback> 100baseTX <half-duplex> 100baseTX <full-duplex> 100baseTX <full-duplex,flow-control> 100baseTX <full-duplex,hw-loopback> 1000baseT <full-duplex> 1000baseT <full-duplex,flow-control> 1000baseT <full-duplex,hw-loopback>
fw0: flags=8863<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST> mtu 4078
        lladdr 00:25:4b:ff:fe:9c:df:3a 
        media: autoselect <full-duplex> status: inactive
        supported media: autoselect <full-duplex>
tap0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1380
        inet 172.25.187.40 netmask 0xffffff00 broadcast 172.25.187.255
        ether 82:1e:79:f7:07:6a 
        open (pid 7916)

我尝试了各种路由,但都没有让我从我的 Mac 连接到 172.25.187.40。

我也尝试过使用 ipfw 来转发发送至的所有 IP 流量172.25.187.40127.0.0.1但我对此没有经验,所以也许我做错了。

我该如何解决这个问题?

答案1

我认为您需要 lo0 上的 172.25.187.40 网关 127.0.0.1 的主机路由。您应该能够执行类似以下操作...

sudo route add -host 172.25.187.40  127.0.0.1

...但一定要查看手册页,尤其是有关和的route(8)部分。-interface-ifscope

不过,我有点担心,弄乱 172.25.187.40 的路由会破坏您的 VPN 连接,至少会破坏弄乱您的路由表的客户端的连接。

顺便说一句,Cisco VPN 客户端会加载一个或两个 NKE(网络内核扩展 - 特定于网络的内核扩展或 kext),它们会直接在内核中处理 VPN 魔法,而不会弄乱路由表。不幸的是,这意味着 Cisco 的代码在您的内核中运行,因此如果它有错误,它可能会导致整个系统崩溃。

相关内容