開源網格VPN meshboi及其背後原理

banq發表於2021-07-16

網格Mesh VPN如NebulaTailscaleZerotierTinc有助於在網際網路上建立對等(網格)網路。這些工具安全、高效且透明地使多臺分散式計算機能夠進行通訊,就好像它們物理連線到同一網路交換機(第 2 層或第 3 層,取決於所使用的工具和配置)。這些工具有很多用例,但一些流行的用例是:
  • 允許跨多個雲的例項上的服務進行通訊
  • 允許漫遊使用者安全遠端訪問家庭網路
  • 將“家庭實驗室”網路與雲網路連線起來

這些工具使這種通訊對於透過網格傳送和接收資料包的應用程式透明地發生,同時還可以解決 Internet 網路中的常見障礙,例如防火牆和 NAT。
網格模型與傳統的“明星”VPN 解決方案形成對比,例如 OpenVPN 或 StrongSwan。在星型 VPN 中,peer 之間的流量需要透過中央 VPN 伺服器,這會增加延遲並降低可擴充套件性(中央伺服器只能處理這麼多流量)。
meshboi 是一種玩具網格VPN 實現,專為娛樂和學習目的而建立。它允許以類似於NebulaTailscale等工具的方式在網際網路上建立對等網路。Meshboi 是用 Go 編寫的,純粹是為了娛樂和學習而建立的(所以請使用其他出色的工具之一來執行生產環境!)。
 
在建立這樣的工具時,有幾個核心問題需要解決。
  • 可發現性/自舉——如果兩個對等點想要互相交談,他們如何知道如何找到對方以形成連結?
  • 透明度- 該工具應允許應用程式將其流量傳送到網格上的對等點,而無需應用程式瞭解網格上的任何細微之處。該工具應該抽象出網格 VPN 的概念,以便應用程式不需要修改並且可以像普通網路應用程式一樣執行。
  • 網路地址轉換 (NAT) - 大多數網際網路仍然基於 IPv4,因此允許兩臺計算機之間的通訊都在 NAT 之後存在複雜性。在某些情況下,一層或什至兩者都可以位於多層 NAT (CGNAT) 之後。
  • 防火牆- 在任何兩對計算機之間,通常有很多防火牆通常(並且可能是正確的!)阻止未經請求的網路流量進入網路。雖然其中一些防火牆是可配置的,並且可以開啟,但在某些環境中,防火牆不受使用者控制(想想公司網路或咖啡館中的 wifi 熱點)。某些 ISP 甚至可能會阻止某些型別的流量。
  • 安全性- 如果某個工具將本地網路暴露給 Internet,則應確保流量受到保護,以免第三方讀取或篡改。大多數這些網格 VPN 工具使用的模型是,來自網際網路的流量不受信任,但一旦進入,它就會受到信任。

 
如果您追求生產就緒的網格 VPN 解決方案,那麼有很多解決方案比 meshboi 效果更好。特別是,像 Tailscale 和 Nebula 這樣的解決方案可以做如下事情:
  • 多平臺支援(OSX、Windows)
  • 更好的身份驗證(基於證書或基於 SSO)
  • 有更好的表現
  • 一般穩健性
  • 已稽核安全

詳細點選標題

 

相關文章