当我将伪装的 VirtualBox VM 与 VPN 连接结合起来时,遇到了一些奇怪的连接问题。
设置: - 我的机器上有一个 VirtualBox VM - 当我的基本操作系统连接到 VPN 链接时,此 VM 出现连接问题 - VM 有一个接口,它是“仅主机”类型 - 我在主机上使用 iptables 伪装规则将连接 NAT 出我的机器。
以下是我所知道的:
没有 VPN 链接:
- VM 可以连接到互联网或从互联网下载
- 主机操作系统可以连接到互联网或从互联网下载
使用 VPN 链接:
主机操作系统可以从互联网和 VPN 链接另一端的服务器下载。
但是,VM 只能连接到公共互联网资源,但 VPN 上的连接超时。我在两端都使用了 tcpdump,可以看到数据包通过基础操作系统的 vpn0 接口离开,并到达另一端(办公室的服务器)。但它们似乎只是涓涓细流,所以在这个阶段,我猜返回 ACK 数据包没有返回。在这种情况下,源地址与尝试相同操作的主机操作系统相同(正如预期的那样,正在使用 NAT),并且成功了,所以我排除了 VPN 链路上的路由问题。
奇怪之处就在于此:当我将虚拟机更改为使用“NAT”类型的接口而不是“仅主机”+伪装时,一切都正常。(对我来说这不是一个选择,我实际上需要仅主机)。
我已经排除了主机操作系统防火墙,因为除了伪装规则之外,我完全清除了它。
所以。我的问题:与会以某种方式影响通过 VPN 的 VM 连接的 NAT 接口类型相比,仅主机 + 伪装之间有什么区别?
因为对于“NAT”接口类型或“仅主机”接口+伪装(如预期的那样),源地址是相同的,所以我只能认为virtualbox中存在某种错误,这就是为什么ACK数据包无法到达VM的原因?
我实在想不出有什么情况会影响虚拟机的 TCP 流,但不会影响主机操作系统,因为 NAT 正在使用中,并且仅在使用“仅主机”时才会出现
有什么想法吗?我快要筋疲力尽了 :-(
其他信息
Linux 主机(Fedora 20)
Linux 客户机 (CentOS 6)
Virtualbox-4.3-4.3.14
VPN 是思科 ASA