什么是VPN Passthrough?

VPN Passthrough

VPN Passthrough是路由器上的一项功能,它允许来自本地网络上设备的加密 VPN 数据包通过 路由器的防火墙,而不会被阻止或丢弃。VPN Passthrough本身不会建立 VPN 连接。实际的 VPN 连接是在设备(例如您的计算机或智能手机)和 VPN 服务器之间创建的。VPN Passthrough仅有助于此 VPN 流量畅通无阻地通过您的路由器。如果未启用VPN Passthrough,某些较旧的 VPN 协议可能会因与 NAT 冲突而无法正常工作。路由器使用 NAT 允许本地网络上的多个设备共享单个公有 IP 地址。NAT 类型还决定了从 Internet 访问本地网络的程度。 较旧的 VPN 协议(如 L2TP、PPTP 和 IPsec)与 NAT 不兼容 。如果您在未启用VPN Passthrough的出站连接上使用 PPTP 或 IPsec VPN,您的路由器可能会丢弃 VPN 数据包 或完全阻止 VPN 连接

VPN Passthrough本质上是通过路由器转发您的 VPN 流量,使其能够绕过 NAT 进程。例如,如果启用 IPSec 直通,则 IPsec 流量将在内部传递到应用层网关,后者会处理流量的重定向。OpenVPN、IKEv2 和 WireGuard 等较新的 VPN 协议与 NAT 兼容,因此它们不需要VPN Passthrough即可正常运行。

VPN Passthrough工作原理

VPN Passthrough有助于通过路由器的 NAT 进程顺利传输 VPN 流量。当您的 VPN 软件尝试与远程 VPN 服务器连接时,它使用 VPN 协议来封装其连接请求,然后通过路由器的 NAT。

NAT 通过将内部网络上使用的私有 IP 地址透明地转换为通过 Internet 通信所需的公有 IP 地址,允许在本地网络上的许多设备之间共享单个公有 IP 地址。它充当中介,将私有 IP 地址映射到公共 IP 地址,反之亦然。但是,PPTP、LT2P 和 IPsec 等较旧的 VPN 协议会出现问题,因为这些协议以无法为 NAT 提供足够信息的方式加密和重新打包数据包,无法将其传递给预期的接收者。可以有多个私有 IP 与单个公有地址关联,并且 NAT 不可能知道将数据转发到哪个 IP。VPN Passthrough提供了一种更优雅的解决方案,而不是在路由器上禁用 NAT(通常不建议这样做)。

VPN Passthrough通过允许加密的 VPN 流量绕过 NAT 进程来解决兼容性问题,确保 VPN 数据包不受干扰地传送到其预期的接收者。这可实现无缝 VPN 连接,同时保留 NAT 对本地网络的优势。

PPTP Passthrough

PPTP Passthrough允许 VPN 流量通过修改 PPTP 协议的运行方式来遍历 NAT 路由器或防火墙:

  1. PPTP 使用 TCP 控制通道(端口 1723)建立/管理隧道,并使用 GRE 数据通道来加密数据包。
  2. GRE 缺少端口号,这与 NAT 的端口转换需求相冲突。
  3. 直通将呼叫 ID 字段添加到 GRE 标头,作为端口号的替代品。
  4. 当 PPTP 客户端启动 VPN 连接时,它会通过端口 1723 上的 TCP 控制通道发送请求,路由器通过标准 NAT 规则允许该请求。
  5. PPTP 服务器使用插入 GRE 数据通道数据包的唯一呼叫 ID 进行响应。
  6. 路由器检查 GRE 数据包,使用呼叫 ID 和目标 IP 将它们与控制通道相关联。
  7. 路由器转换客户端的私有 IP/端口并将 GRE 数据转发到 VPN 服务器,从而建立 PPTP VPN 隧道。

IPsec Passthrough

IPsec Passthrough使用 NAT-Traversal (NAT-T) 技术工作:

  1. IPsec 通过在 IP 层对数据包进行身份验证/加密来保护 IP 通信,但与 NAT 冲突,因为它将 IP 地址嵌入到数据流中。
  2. NAT-T 将 IPsec 数据包封装在 NAT 可以处理的 UDP 数据包中。
  3. NAT 后面的 IPsec 客户端启动与服务器的连接,通过 UDP 端口 4500 发送 IKE(Internet 密钥交换)数据包。
  4. NAT 路由器检测到此 UDP 流量,并将客户端的私有 IP/端口转换为公有 IP/端口。
  5. IPsec 服务器使用 UDP 中的 IKE 数据包进行响应,NAT 将该数据包路由回客户端。
  6. IKE 协商后,IPsec 数据(ESP 数据包)也使用端口 4500 封装在 UDP 数据包中。
  7. NAT 转换 UDP/IP 报头,但保持 IPsec 负载不变,从而允许 VPN 流量通过路由器。

LT2P Passthrough

LT2P Passthrough的工作方式与 PPTP 类似,因为 L2TP 源自 PPTP 和 L2F:

  1. 与 PPTP 一样,L2TP 使用 TCP 控制通道(端口 1701)进行隧道管理,并使用 UDP 数据通道进行加密数据包。
  2. UDP 数据通道缺少端口号,与 NAT 的转换要求相冲突。
  3. L2TP 直通将会话 ID 字段添加到 L2TP over UDP 标头。此会话 ID 可替代 NAT 可用于转换的端口号。
  4. 当 L2TP 客户端启动 VPN 连接时,它会通过 TCP 控制通道(端口 1701)发送请求。路由器使用标准 NAT 规则允许此流量通过。
  5. L2TP 服务器使用唯一的会话 ID 进行响应,该 ID 插入到 UDP 数据通道数据包的 L2TP 报头中。
  6. 路由器检查 UDP 数据包,并根据会话 ID 和目标 IP 地址将它们与相应的 TCP 控制通道连接相关联。
  7. 路由器将 L2TP 客户端的私有 IP/端口转换为其公共 IP/端口,并将 UDP 数据包转发到 VPN 服务器,从而允许 L2TP VPN 隧道建立。

参考链接

What Is VPN Passthrough, and What Is It Used For? (top10vpn.com)

相关推荐
xiaoxiongip66634 分钟前
HTTP 和 HTTPS
网络·爬虫·网络协议·tcp/ip·http·https·ip
JaneJiazhao39 分钟前
HTTPSOK:智能SSL证书管理的新选择
网络·网络协议·ssl
CXDNW39 分钟前
【网络面试篇】HTTP(2)(笔记)——http、https、http1.1、http2.0
网络·笔记·http·面试·https·http2.0
无所谓จุ๊บ1 小时前
树莓派开发相关知识十 -小试服务器
服务器·网络·树莓派
道法自然04021 小时前
Ethernet 系列(8)-- 基础学习::ARP
网络·学习·智能路由器
EasyCVR2 小时前
萤石设备视频接入平台EasyCVR多品牌摄像机视频平台海康ehome平台(ISUP)接入EasyCVR不在线如何排查?
运维·服务器·网络·人工智能·ffmpeg·音视频
明月看潮生3 小时前
青少年编程与数学 02-003 Go语言网络编程 15课题、Go语言URL编程
开发语言·网络·青少年编程·golang·编程与数学
龙哥说跨境4 小时前
如何利用指纹浏览器爬虫绕过Cloudflare的防护?
服务器·网络·python·网络爬虫
懒大王就是我4 小时前
C语言网络编程 -- TCP/iP协议
c语言·网络·tcp/ip
Elaine2023914 小时前
06 网络编程基础
java·网络