Hacker News 中文摘要

RSS订阅

承诺的局域网 -- The Promised LAN

文章摘要

The Promised LAN是一个自2021年运营的封闭式会员制网络,由朋友组成的24/7持续在线局域网派对。其文档主要保存在局域网内,网站则向感兴趣的人介绍其运作方式。该网络通过骨干网连接各局域网段,采用IPSec链接,确保节点间的通信。其社交与技术紧密结合,旨在鼓励类似结构的局域网发展。

文章总结

承诺局域网(The Promised LAN)简介

承诺局域网是一个封闭的、仅限会员加入的朋友网络,自2021年起持续运营,提供全天候的局域网(LAN)聚会。虽然大部分文档都保存在局域网内,但本网站旨在向感兴趣的人、潜在会员或朋友介绍承诺局域网的概念及其运作方式。

承诺局域网宣言

为了说明我们创建该局域网的背景、目标以及我们如何处理社交与技术动态,我们发布了一份宣言,鼓励更多类似结构的局域网出现。在继续阅读之前,建议先阅读这份宣言,因为社交与技术在这里是密不可分的。

骨干网络

每个承诺局域网的段都连接到骨干网络,因为如果每个局域网都直接连接到其他局域网,即使只有少量段,也会变得难以维护——动态IP地址会变化,密钥材料需要交换,加密套件需要协商,这些都会增加复杂性。因此,我们让所有局域网连接到最近的骨干节点,流量通过骨干网络进行路由。

网络图
网络由独立运营的异构节点组成(目前有三个节点,混合使用Debian的strongSwan和OpenBSD的iked),通过IPSec链路进行对等连接。我们选择了一组通用算法,这些算法在速度、安全性和对现有骨干节点的支持之间取得了最佳平衡。

| 算法 | | | --- | --- | | IKE SA认证 | HMAC SHA2 512 | | IKE SA加密 | AES 256 | | IKE SA DH | Curve25519 | | 子SA加密 | ChaCha20 Poly1305 | | 子SA DH | Curve25519 |

骨干网络在一个专用的/24地址段中运行,每个骨干节点根据其“节点ID”分配一个IP地址。每个骨干节点仅通过其IPSec连接硬编码直接连接的骨干节点的路由。这个节点网络作为承诺局域网的默认自由区(DFZ)运行。一旦IP链路建立,骨干节点使用BGP(目前在Debian上使用bird,在OpenBSD上使用bgpd)来向骨干网络的其他部分通告直接连接的用户局域网。

DNS

我们使用自己的非标准且可能不太明智的顶级域名(TLD),即.tpl,代表承诺局域网。每个局域网在加入时会自动获得一个域名,成员可以在加入后申请新的域名。我们有一组根DNS服务器(ns1.tplns2.tplns3.tpl),它们托管在三个不同的局域网上,每个局域网连接到不同的骨干节点,以应对网络中断的情况。我们努力保持核心服务的运行,即使某个节点完全与其他节点断开连接。每个权威域名服务器都运行nsd,其配置通过定时拉取中央git仓库进行同步。

DNS根服务器图
按照惯例(主要是为了避免管理大量的粘合记录),我们期望每个局域网在固定IP地址x.x.x.254上运行自己的权威域名服务器。这使得我们能够在局域网加入时自动化和模板化配置,成本较低。

DNS局域网图
由于每个局域网并不需要知道所有根服务器(除非他们愿意),我们在骨干节点上运行一个递归解析器,使用任播IP块(x.x.0.1),通常运行unbound

DNS递归解析器图
PKI

尽管这里的一切已经足够安全,但部署使用TLS的服务使得使用现有/现代工具变得更加容易。总的来说,PKI在这里的工作量远大于其价值,但我们决定正确地设计它。

我们运营一组根x509证书颁发机构(CA),每个CA的有效期为三年。第一年用于将根证书分发到整个局域网,并让根证书随着系统维护的节奏更新。第二年是该根证书的“操作”年,所有x509证书都由该根证书颁发,最后一年是过渡年,允许颁发的证书自然过期,而CA不会失效。

目前,我们使用ECDSA P-384密钥类型和SHA384签名颁发根证书。此外,每个CA包含X509v3名称约束(标记为critical),将有效性限制为DNS:.tplemail:.tpl

最后,我们决定使用现有的DNS来管理x509证书颁发,这样我们就不需要发送CSR并等待人工操作。部署类似ACME的工具目前显得过于复杂且难以维护。我们编写了一个相对简单的工具,因为我们可以轻松地限制问题空间和规则。每个局域网可以为给定域名设置名为_pki的DNS TXT记录,其中包含一个OpenSSH公钥。通过SSH签署新证书,检查请求的SAN是否与用于认证CA的密钥匹配,并根据PKI DNS记录做出颁发决定。

评论总结

评论内容主要围绕以下几个方面展开:

  1. 与现有技术的比较

    • 有评论提到TPL与dn42和Yggdrasil的相似性,并询问它们之间的区别。
      • "Looks similar to dn42" (评论1)
      • "How do TPL and mentioned here dn42 compare to Yggdrasil?" (评论2)
    • 也有评论将TPL与Tailscale进行比较,探讨是否可以通过Tailscale实现类似的功能。
      • "Hypothetically, it be possible to achieve the same thing with a shared tailscale network, right?" (评论10)
  2. 技术选择与实现

    • 有评论对选择IPSec而非Wireguard表示疑惑,认为IPSec配置复杂。
      • "Really want to know the rationale of choosing IPSec over Wireguard. IPSec is really tricky to get right (IMO). Maybe legacy issue?" (评论3)
    • 另有评论对TPL使用IPv4表示失望,认为IPv4已经过时。
      • "Kind of disappointed that 'The promised LAN' runs on IPv4." (评论11)
  3. 社群与参与

    • 有评论对TPL的社群性质表示兴趣,但指出缺乏如何加入的信息。
      • "This sounds really interesting and something I'd be into. No word on how to join though." (评论6)
    • 也有评论认为TPL像是一个“禁止女生进入”的树屋,缺乏透明性。
      • "It's an interesting idea. But it sounds like one big 'no girls allowed' kind of treehouse." (评论4)
  4. 对互联网现状的反思

    • 有评论认为TPL是对当前互联网状态的一种回应,提倡无算法、无信息流的网络环境。
      • "Things like this are the answer to people complaining about the current state of the Internet." (评论9)
    • 也有评论认为TPL像是重新发明了互联网。
      • "Sounds like they just reinvented internet." (评论7)
  5. 技术细节与文档

    • 有评论指出TPL的文档不够详细,建议阅读其宣言以获取更多信息。
      • "The page contains link to a manifesto/description. I think that's a more interesting read than the linked page." (评论8)
    • 另有评论提到在家庭网络中实现类似TPL的功能时遇到的挑战。
      • "Originally I wanted to do this at the home router level, but that quickly got shut down." (评论12)

总结:评论者对TPL的技术选择、社群性质以及与现有技术的比较表现出浓厚兴趣,但也对其文档透明性和参与方式提出了质疑。