最近,有一些读者,还有一些客户,总是疑问SD-WAN和OpenVPN到底有啥不一样?有什么优势?
我今天来解答一下,这里先给出结论:
- OpenVPN是开源协议,跨境传输时,极大概率被GFW拦截;SD-WAN是自定义协议,可以通过。
- OpenVPN本质是一个隧道,SD-WAN更像一个代理,前者需要封装流量,传输效率更低,SD-WAN可以通过优化传输协议、PoP点就近接入等手段,提高传输效率。
- OpenVPN的使用有一定的技术门槛,比如多个子网互联,搭建和维护复杂。
先声明,我们今天讨论的都是企业级的跨境互联问题,我们仅为企业客户提供网络解决方案。
OpenVPN
OpenVPN是一种开源的虚拟专用网络(VPN)解决方案,用于建立安全的网络连接,广泛的用于个人和企业。
在国内,许多企业使用OpenVPN搭建员工居家办公网络,是一种低成本的构建私有网络解决方案,但是也带来一个问题:
许多个人利用开源的OpenVPN软件私自搭建翻墙工具。
所以,这才导致GFW经常封控OpenVPN协议的流量。
另一方面,就算GFW不封堵,跨境传输也必然很慢,严重影响网络体验。
GFW如何封堵OpenVPN
因为OpenVPN是开源软件,协议都是公开的,它的数据包头部如下:
c
struct openvpn_header {
unsigned char magic_byte; // 固定为0x17 或者 0x18,取决于协议版本
unsigned char type; // 包类型(如:建立链接、数据、确认等)
unsigned char ver; // 协议版本
unsigned char reserved; // 保留字段
unsigned char hard_length; // 头部的长度(不包括此字段)
unsigned char soft_length; // 头部的长度(包括此字段)
// 其他字段,如加密算法、压缩算法等
};
数据包的第一个字节是0x17或者0x18,很容易识别出是使用OpenVPN的流量。
我曾经在某网络安全上市公司工作过,做过网络行为管控软件,大概了解GFW的封堵原理,这个仅仅猜测,仅供参考。
第一步:它会放过所有的流量,直接把流量镜像拷贝一份。
这一步,可能会有人疑问,你都直接放过流量了,再分析流量有什么用?确实是这样的,假如先分析流量,觉得没问题了,然后再让流量通过,这就极大的拖慢了网络速度,造成网络拥堵,肯定不能这么干。
第二步: 对拷贝出的流量进行分析,假如识别出是OpenVPN的流量,下发封堵的5元组。
所谓5元组,即源IP、目的IP、源端口、目的端口、协议。
第三步:封堵流量。
根据第二步下发的5元组,精准封堵新进来的流量。
从上面的步骤可以看出,就算OpenVPN建立连接成功,但是开始传输数据的时候,就会被识别出来,接下来的流量就被封控了。
SD-WAN助力跨境互联
OpenVPN像是一个通用型的工具。
它的一切都已经固定不变了,比如传输协议、部署架构、业务功能已经固定了,而且有一定的使用门槛,甚至异地互联的时候还需要公网IP,跨境传输慢等等。
SD-WAN像是一个可定制化的工具,可根据实际需求,可提供多样化的功能。
比如它的传输协议,可以根据需要更改;传输线路,可以根据需要优化;如果企业有公网IP,可以给企业私有化部署;就算没有公网IP,也可以完成组网。使用上,也更加简单,降低技术门槛。
总之,根据需要,可以开发定制特定的功能。