Tailscale vs OpenVPN
概要
- tailscale 通过 权利和责任的重新分配 和 配置自动化的封装, 提供了异地组网系统的全新范式。
- 权利和责任的重新分配让系统降低了由单点故障引发的风险,提高了系统的灵活性和可扩展性
- 配置的自动化让把组网的权利下放到非专业用户,极大的降低了组网的门槛
OpenVPN
-
由专门的运维人员维护的中心化的异地组网方式
-
核心理念
- 安全
- 透明
- 专业化
- 中心化
- 高度可定制
- 集权式统一管理
-
局限
- 单点故障
- 配置效率低
- 维护成本高
- 灵活性较差
Tailscale
理念-关系-规则 三要素分析
理念
- 网络中的所有节点地位同等, 没有中心节点的权利垄断
- 让本来应该简单的事情无限简单, 首次组网零配置,配置和权限调整的复杂度由系统承担
- 去中心化的权利和责任分配,拒绝单点故障和高昂的单人维护成本
- 隐私优先,官方只提供公钥的分发和权限规则的同步
- 稳定可用,为极端情况设计了 DERP 中继(加密转发)
- 易用性优先, 提供直观简单的web管理面板,所有主要配置都提供web入口
- 可扩展性强大, 可以通过
subnet探索出组网的无限可能,用funnel功能实现快速的演示和文件分发, 支持 docker , NAS 等部署环境,满足从个人服务器到专业企业的需求
关系
-
传统的组网是由运维全权负责配置,为了避免崩溃和单点故障导致网络系统停摆,改动少
-
tailscale 将权利下发到单个用户,通过多个小网络的组合构建灵活的组网,拒绝单点故障拖垮网络
-
传统的 OpenVPN 需要高度的透明和可定制,配置极其复杂,门槛极高,普通用户和小团队没有配置的能力
-
tailscale 将配置的复杂过程完全自动化,牺牲了少量的定制化而换取了高效,稳定,低门槛的配置过程
规则
- tailscale: 管理员通过 ACL 规则对访问权限进行可控的,高定制的管理,满足细粒度的访问权限控制,由 官方或自建服务器节点进行权限同步,随时通过 web界面修改,容错率高
- OpenVPN: 需要运维人员手动配置, 容错率低而定制化复杂, 并且伴有很高的维护成本
六数据维度拆解
输入
- tailscale: 账号认证,无需任何手动配置
- OpenVPN: 需要手动配置证书, ip, 端口, 路由等参数
- 设计理念: 零配置,复杂度转移到系统内部自然完成,避免重复的配置流程
存储
- tailscale: 私钥存储在用户的设备,官方节点只负责公钥分发和规则同步
- OpenVPN: 证书分配在各个设备, 服务端掌控所有节点的身份
- 设计理念: 隐私优先,从根本上防止数据泄漏
分发
- tailscale: 默认 P2P 点对点直连,只有极端情况下在信息加密之后走 DERP 中继节点转发
- OpenVPN: 所有流量都需要通过中心节点转发
- 设计理念: 所有的信息都属于用户,保持最小攻击面
呈现
- tailscale 的全局节点状态,主要配置都能在web界面进行配置,同时提供CLI工具查看全局状态等,易用性极强
- OpenVPN 调整和状态查看都需要通过 CLI 进行,不直观,虽然效率高一些但是易用性不足
- 设计理念: 使用易用性和直观性降低操作失误概率和使用门槛以及学习成本
取舍分析
- tailscale 牺牲了离线可用和部分定制化, 换取了高可用,高容错,低门槛,低维护的巨大优势
- OpenVPN 牺牲了易用性和扩展性, 保证了离线可用和绝对控制
核心总结
-
基于 wireguard协议,核心是peer 而不是中心节点 -> 去中心化, 责任重构,风险分摊
tailscale 通过其去中心化的网络拓扑结构,有效避免了中心节点单点故障带来网络瘫痪的风险,通过权利的下方保证了系统的稳定性和可维护以及极高的灵活性, 本质上是权利从中心集权到节点对等 -
通过高度封装和意图命令转译层将复杂度转移到系统内部 -> 易用性, 低门槛,低失误率
tailscale 通过配置的全自动化,公钥的自动传递和ACL规则的自动同步, 保证了极高的易用性和极低的使用门槛,低失误率, 本质上是复杂度从用户的手动配置转移到了系统内部 -
官方服务器只复杂交换公钥和同步规则,保证最小的信息收集 -> 最小侵入, 隐私有限,边缘介入
tailscale 官方获取公钥和同步规则,对加密之后的内容完全不可见,这种最小侵入的设计极大地保证了隐私性