主机评测 - mesh
type: channel
link: https://zjpc.cc/tag/mesh/
items: 如何使用 Netmaker 快速组建 WireGuard mesh 网络

如何使用 Netmaker 快速组建 WireGuard mesh 网络
type: item
date: 2022-01-25T16:45:56+08:00
description: 什么是 NetmakerNetmaker 是一个开源的、基于 [[WireGuard]] 的网络（overlay network) 控制工具，可以非常快速的用来组建 WireGuard 网络。如果你有两台连接互联网的设备，那么 Netmaker 可以组建一个安全的网络，并打通一个安全的隧道提供给两台机器通信。而如果你有数千台机器分布在不同的地区，不同的数据中心，不同的网络中，那么 Netmaker 也可以组建一个网络来提供给这些不同的节点通信。如果熟悉 AWS，那么 Netmaker 就像 VPC 一样，不过 Netmaker 可以应用在任意的机器中。从 Netmaker 网络中的机器来看，同一个网络中的机器尽管在世界各地，但其相互通信就像是在同一个局域网中一样。Netmaker 和其他一些产品非常相似，比如 [[Tailscale]], [[ZeroTier]]，[[Nebula]] 但不同于这些产品的是，Netmaker 连接更快，更加灵活。Netmaker 使用 [[WireGuard]] 所以更快，Netmaker 中的节点不管是服务端还是Agent都完全可配置，所以提供了更大的灵活性。Netmaker 优于 [[Tailscale]] 的地方还在于 ，Netmaker 不需要 Google, Microsoft 或者 GitHub 账号。Netmaker 可以认为是一个可以自行托管的 Tailscale。Netmaker 工作原理Netmaker 依赖于 WireGuard 来在机器间创建隧道（tunnel), Netmaker 通过管理不同机器的 WireGuard 来创建网络。简单来说，Netmaker 实现 Client/Server 架构：the admin server 管理端，称为 Netmaker，管理网络的界面the agent，客户端，称为 Netclient，客户端通过 gRPC 与服务端通信作为 Network 管理端，你可以通过管理端来创建网络，管理连接的设备。服务端会保存所有网络和设备的配置信息，这些信息会被 netclient (agent) 来获取使用。客户端（netclient) 是一个二进制文件，netclient 会在节点被添加到网络中的时候安装到不同的机器中，netclient 可以在大多数系统中运行，不管是虚拟机，物理机，或者 IoT 设备都可以运行 netclient。netclient 会连接服务端，通过服务端的配置来自动管理 WireGuard，动态更新 Peers。通过不断向网络中添加节点的方式，可以创建一个动态的，完全可以配置的虚拟网络。Netmaker server 不会路由网络流量，否则这个网络就变成了一个中心辐射模型（hub-and-spoke model），这会使得中心服务器变成瓶颈，并且拖慢网络。相反，Network 会告诉网络中的节点他们之间可以相互直接通信，这被称为 full mesh network（网状网络），这会让节点和节点的连接更快。即使管理端宕机，只要现存的节点没有变化，那么这个网络依然可以正常工作。应用场景 Use CasesNetmaker 有非常多的应用场景，事实上，现在可能就已经在使用了。用例：自动创建 WireGuard mesh network在云环境和数据中心之间创建 flat, secure 网络给 IoT 设备提供更安全的网络访问增强家庭，或办公网络的安全性在现存网络上增加一层加密安全的 site-to-site 连接管理 cryptocurrency proof-of-stake 机器创建动态的安全的 Kubernetes underlay network更多的用例也可以参考官网。架构Netmaker 的架构图：概念熟悉一下 Netmaker 中常常被提到的概念，有助于理解。WireGuard[[WireGuard]] 相对比较新，但非常强大，WireGuard 被加入到了 Linux kernel。WireGuard 可以非常简单快速地在设备之间创建加密通道。从 WireGuard 官网的介绍中可以看到，“WireGuard 可以被认为是工业界最安全，最方便使用，最简单的 VPN 解决方案”。之前的解决方案，比如 OpenVPN，或者 IPSec 都被认为又重又复杂，并且性能也不是很好。所有现存的 VPN tunneling 方案都会导致网络延迟增大。WireGuard 是第一个实现了几乎接近有线连接网络速度的 VPN，可以看到 WireGuard 对现有网络连接几乎没有影响。随着 WireGuard 的发布，没有任何理由去使用其他隧道加密技术了。Mesh Network当提到 mesh network （网状网络）的时候…