组建隧道中转流量(自建IPLC实现落地)
1. 前言
突然之前,电报群热烈讨论“隧道中转流量”。非常好奇这是什么技术,本着不懂就问的真理,询问大佬。大佬回答是: 10 块包安装。emmm……生命不息,折腾不止!我自己研究去吧!Google、Baidu 一圈后,在知乎上找到较为贴切问题的帖子,出自大佬 @iCodex (帖子链接见文末)。
我也是刚刚了解 隧道 方面的知识,如有错误请大佬指出。
2. IPLC、MPLS、隧道
我们目标建立的“隧道”概念,与 IPLC 有类似之处,所以先来了解一下。IPLC 粗暴点理解就是专线,直接用网线连接两边用户,不需要经过宽带运营商的机房。具体请看图:
那什么是 MPLS ?实际上我们无法通过软件手段实现物理层面上的两台服务器直接相连,不能完全达到 IPCL 的效果。所以将通过软件手段实现的“类 IPCL ”称为 MPLS。
至于 隧道 可以理解为一条通过软件构建的虚拟的网线,它直接连接两台服务器的。构建完成的架构图:
3. 进一步了解隧道
就我目前了解,隧道的实现方案有两类:
- 使用 Zerotier、WireGuard 。将两台服务器组建在一个内网中,完成隧道部署后,两台机器就相当于在同一 WIFI 下的两台电脑,数据在内网中直接传输。
- 使用 Stunnel、GOST 的 TLS 加密隧道。服务器 A 将数据加密后传输,到达服务器 B 后,服务器 B 解密转发到目标服务器(如 油土鳖等)
第二类方案操作比较简单,理解起来也比较容易,但缺点是 TLS 等加密方案大多都是基于 TCP 的,所以对这类隧道对 UDP 的支持较差。而第一类方案可以较好地支持 UDP 转发,但由于本身是特定的加密协议ÿ