VPN 流量

VPN 流量

我是网络业余爱好者。我安装了一个 Fortinet VPN 客户端,用于连接办公室网络。客户端还安装了一个虚拟网络适配器,据我所知,这是所有传出 VPN 流量将使用的接口。此外,我们设置的 VPN 是 SSL VPN

我很好奇的是传出流量是如何传输的,特别是通过我的电脑及其网络接口。有一个虚拟适配器 (vEth),当然还有我的物理适配器 (Eth)。所以我对每个适配器都进行了一些数据包捕获,并注意到以下情况:

  1. 发往 VPN 网关以外的任何位置(例如 google.com)的传出流量都只能通过 vEth,而不通过 Eth。
  2. 在 Eth 上捕获的唯一流量是专门发往 VPN 网关的流量。似乎一直在发生交换。我无法理解这种交换。任何澄清都很好!

对于传出的数据包,我本以为操作系统会检查其路由表,并发现传出的流量将被发送到 vEth 接口。我相信 VPN 客户端会加密消息/数据,检查路由表以查找下一跳,然后将其发送到我的 Eth 接口,随后发送到外部网络。这听起来对吗?

如果能解释或说明为什么我没有看到用户发起的流量(http 请求等)从 Eth 接口传出,那就太好了。谢谢!

答案1

对于传出的数据包,我本以为操作系统会检查其路由表,并发现传出的流量将被发送到 vEth 接口。我相信 VPN 客户端会加密消息/数据,检查路由表以查找下一跳,然后将其发送到我的 Eth 接口,随后发送到外部网络。这听起来对吗?

是的,虽然有时除了路由表之外还有其他方法,但这是一般机制。VPN 客户端在登录期间收到路由列表,并通过其虚拟接口指向这些路由。

如果您能解释或说明为什么我没有看到用户发起的流量(http 请求等)从 Eth 接口传出,那就太好了。

路由表不指向那里。虽然一些 VPN 客户端会使用额外的技巧,但在最基本的设置中,您将通过 vEth 添加第二个“默认”路由 - 如果它指定了较低的“度量”,那么它将覆盖现有的“通过 Eth 的默认”路由。

你有点看到 Eth 上的请求,但它们是加密的——几乎所有 VPN 都提供流量加密和完整性作为其核心功能。就像 HTTPS 或 SSH 流量一样,您的数据包捕获工具将无法看透 VPN 软件执行的加密。

重要的是整个数据包加密的不仅仅是 TCP 负载,还包括整个 IP 报头和负载。每个 VPN 从根本上来说都是一个隧道,这意味着数据包被封装在一个全新的 IP 标头中,以 VPN 服务器为目的地——原始内部目的地将不会在 Eth 上的数据包捕获中可见,因为它已与其余部分一起加密(除非您故意使用不涉及加密的协议,例如纯 GRE 或 L2TP)。

因此,您在 Eth 上看到的是所有 vEth 流量,均已加密并通过 VPN 服务器进行隧道传输。

相关内容