Dojo
最新
最佳
搜索
订阅
解道Jdon
架构设计
领域驱动
DDD介绍
DDD专辑
战略建模
领域语言UL
领域事件
商业分析
工作流BPM
规则引擎
架构师观点
数据工程
产品经理
系统思维
微服务
微服务介绍
微服务专辑
模块化设计
SOA
API设计
clean架构
SpringBoot
分布式事务
分布式架构
Kubernetes
DevOps
编程设计
GoF设计模式
模式专辑
面向对象
函数式编程
编程语言比较
编程工具比较
形式逻辑
前端编程
Reactive编程
Jdon框架
Rust语言
ChatGPT
Web3
模因梗
幽默梗
程序员吐槽
面试技巧
Java入门
数字化转型
认知偏差
道德经
GitHub工具
更多话题
开源网格VPN meshboi及其背后原理
21-07-16
banq
网格Mesh VPN如
Nebula
、
Tailscale
、
Zerotier
和
Tinc
有助于在互联网上创建对等(网格)网络。这些工具安全、高效且透明地使多台分布式计算机能够进行通信,就好像它们物理连接到同一网络交换机(第 2 层或第 3 层,取决于所使用的工具和配置)。这些工具有很多用例,但一些流行的用例是:
允许跨多个云的实例上的服务进行通信
允许漫游用户安全远程访问家庭网络
将“家庭实验室”网络与云网络连接起来
这些工具使这种通信对于通过网格发送和接收数据包的应用程序透明地发生,同时还可以解决 Internet 网络中的常见障碍,例如防火墙和 NAT。
网格模型与传统的“明星”VPN 解决方案形成对比,例如 OpenVPN 或 StrongSwan。在星型 VPN 中,peer 之间的流量需要通过中央 VPN 服务器,这会增加延迟并降低可
扩展性
(中央服务器只能处理这么多流量)。
meshboi 是一种玩具网格VPN 实现,专为娱乐和学习目的而创建。它允许以类似于
Nebula
和
Tailscale
等工具的方式在互联网上创建对等网络。Meshboi 是用 Go 编写的,纯粹是为了娱乐和学习而创建的(所以请使用其他出色的工具之一来运行生产环境!)。
在创建这样的工具时,有几个核心问题需要解决。
可发现性/自举——如果两个对等点想要互相交谈,他们如何知道如何找到对方以形成链接?
透明度- 该工具应允许应用程序将其流量发送到网格上的对等点,而无需应用程序了解网格上的任何细微之处。该工具应该抽象出网格 VPN 的概念,以便应用程序不需要修改并且可以像普通网络应用程序一样运行。
网络地址转换 (NAT) - 大多数互联网仍然基于 IPv4,因此允许两台计算机之间的通信都在 NAT 之后存在复杂性。在某些情况下,一层或什至两者都可以位于多层 NAT (CGNAT) 之后。
防火墙- 在任何两对计算机之间,通常有很多防火墙通常(并且可能是正确的!)阻止未经请求的网络流量进入网络。虽然其中一些防火墙是可配置的,并且可以打开,但在某些环境中,防火墙不受用户控制(想想公司网络或咖啡馆中的 wifi 热点)。某些 ISP 甚至可能会阻止某些类型的流量。
安全性- 如果某个工具将本地网络暴露给 Internet,则应确保流量受到保护,以免第三方读取或篡改。大多数这些网格 VPN 工具使用的模型是,来自互联网的流量不受信任,但一旦进入,它就会受到信任。
如果您追求生产就绪的网格 VPN 解决方案,那么有很多解决方案比 meshboi 效果更好。特别是,像 Tailscale 和 Nebula 这样的解决方案可以做如下事情:
多平台支持(OSX、Windows)
更好的身份验证(基于证书或基于 SSO)
有更好的表现
一般稳健性
已审核安全
详细点击标题
GitHub开源免费源代码