約束のLAN - The Promised Lan
(tpl.house)- 約束のLANは、小規模な知人ベースのクローズドな24/7 LANパーティーネットワークである
- 各LANはBackboneネットワークを通じて接続され、保守性とセキュリティのバランスを追求している
- 独自の**.tpl TLD**と複数のDNSルートサーバーにより、ネットワーク分離と障害復旧性を向上
- x509ベースのPKI体系を通じて、TLSと証明書管理をシステム化
- DNSとSSHベースの簡素化された証明書発行構造により、内部保守の効率を強化
紹介
- 約束のLANはクローズドなメンバーシップネットワークで、2021年から運用されている継続的なLANパーティー空間である
- 公式ドキュメントの大半は内部LANに保管されており、本ウェブサイトは参加希望者や知人向けにネットワークの紹介を提供している
約束のLAN宣言文(Manifesto)
- LANを始めた背景、目標、社会的・技術的アプローチをまとめた宣言文を公開している
- 宣言文は類似構造のLAN構築を促すことを目的としており、技術面と社会面が密接に結びついている
Backboneネットワーク構造
-
各約束のLANセグメントは直接接続の代わりにBackboneネットワークノードへ接続する
- LAN同士の直接接続は、IP変更、鍵交換、暗号ネゴシエーションなど管理の複雑性増大により非効率である
-
さまざまなOS(Debian, OpenBSD)で、それぞれstrongSwanとikedを使用し、IPSecベースのPeering構成で動作する
-
選定したアルゴリズムは、速度・安全性・互換性の最適点を探ったものとなっている
- IKE SA認証: HMAC SHA2 512
- IKE SA暗号化: AES 256
- IKE SA DH: Curve25519
- Child SA暗号化: ChaCha20 Poly1305
- Child SA DH: Curve25519
-
/24の専用割り当て帯域で、各BackboneにNode IDベースのIPを付与
-
各Backboneには、IPSec接続されたノードのルートのみがハードコードされている
-
Default Free Zone(DFZ)のコンセプトで動作し、IP接続後はBGP(birdまたはbgpdを利用)で全Backbone間にユーザーLANを広報する
DNSシステム
- .tplという独自TLDを使用し、LANが参加すると自動でドメインを割り当てる
- 新規ドメインの要求も可能で、ルートDNSサーバー(ns1.tpl, ns2.tpl, ns3.tpl)は3つの異なるLANのBackboneに設置されている
- 単一ノード障害時でも中核サービスの継続性確保を目指している
- 権威ネームサーバーにはnsdを使用し、中央gitリポジトリを定期的にpullして設定ファイルを同期する
- 各LANは独自ネームサーバーをx.x.x.254固定IPで運用し、自動構成とテンプレート化を容易にしている
- 各LANはルート全体の一覧を必ずしも知っている必要はない
- Backboneは**anycasted IP(x.x.0.1)でrecursive resolver(unbound)**を動かし、DNSクエリを処理する
PKI体系
- すでに内部的には十分安全だが、TLS適用と既存ツール互換性のためにPKI体系を構築
- root x509 CAを3年周期で運用する
- 1年目: ルートを配布・更新
- 2年目: 本格的な証明書発行
- 3年目: 証明書の失効・移行期間
- ルートはECDSA P-384, SHA384署名を使用し、X509v3 Name Constraints機能で.tplドメイン/メールに制限する
- DNSベースの証明書発行プロセスを設計: 各ドメインについて**_pki TXTレコード**にOpenSSH公開鍵を登録
- 証明書はSSH認証とDNS確認後に発行され、ACMEなどの外部システムなしで内部ルールと自動化により処理される
1件のコメント
Hacker Newsの意見
「LAN Party」の意味が人によってかなり違うのが面白い 自分にとって伝統的なLAN Partyは、みんなが自分のコンピューターを持ち寄って、同じ場所でゲームをしたりファイルをやり取りしたりするものだが、自分のやり方は友人たちが家に来て、あらかじめ自分がセットアップしておいたコンピューターをそのまま使う形だ 自分でコンピューターを持ってこないので、ファイル交換やデモの共有はほとんどなく、核となるのは対面での交流だ 最近ではLANが複数の家を仮想的につなぐ構造へと発展していて、自宅でそれぞれ楽しみながら昔のLAN Partyに近い活動ができるという点が興味深い lanparty.house という自宅紹介もある この中で、いったいどの定義がより「間違っている」と最も多く指摘されるのか気になる
このセットアップはものすごく印象的だ これから先は自分もこういう形のほうが良さそうだと思うが、昔のLAN Partyの魅力は、みんながそれぞれ個性的なPCを持ち寄って、お互いに眺めたり手伝ったりしながら組んだ思い出があることだ PCの飾り方も、RGB LEDから水冷システムまで友人ごとに違っていて、そうした多様性が集まっていたのが魔法のような体験だった 重いPCを苦労して運ぶこと自体も、それだけ手間と愛着の表現だった
1999年ごろ、3dFXビデオカードを持っている人だけがダウンロードして遊べる Unreal Tournament 専用デモがあった ところが実際には、ゲームディレクトリに「glide2.dll」というテキストファイルを作るだけで、ソフトウェアレンダリングモードで動かせた 当時は大きな教育室にコンピューターがたくさんあり、ドアに黒い厚紙を貼って空室のように偽装し、退勤後に同じ趣味の同僚たちとよく集まってデモマップを何時間も楽しんでいた Half-Life デスマッチや Counterstrike も追加して遊んだが、専用グラフィックカードがなく、320x200 解像度のソフトウェアレンダリングでもかなり幸せだった 本当に楽しい時代だった
The Promised LAN は厳密に言えば WAN party に近いが、「LAN Party」という名前には仮想LANまで含まれると思う 実際、最近では同じ空間で同じオンラインゲームをノートPC、タブレット、スマートフォンなどで一緒に遊ぶ場合も、十分にLAN Partyの精神に合っていると考える Diablo のようなシリーズもオンライン中心に進化したし、MMOも同様だ ルームメイトや友人と同じ空間でゲームをすれば、いつでも最高のLAN Partyだと言える
自分にとってLAN Partyの重要な要素は、プレイヤーたちがみな同じ空間に集まっていることだ 遠隔の友人たちとオンラインで遊ぶ時間は、単に「ゲームナイト」と呼んでいる
lanparty.house のウェブサイト、本当に楽しく読んだ テキサス州 Austin に引っ越すエピソードが特に印象的だったが、奥さんが Palo Alto の学区が全米12位だから引っ越しに反対していたのに、Austin の学区が8位だと知った途端すぐ気が変わるくだりが面白かった 中国系の親御さん特有の教育熱心さが感じられて、とても愛らしかった
本文に manifesto/詳細説明文 へのリンクがある この内容のほうが元ページよりずっと面白い読み物だと思う
実際、manifest は2番目の段落にリンクされていた ページと manifest を続けて読むと、かなり良い体験だった
そのリンクのおかげで、元文をざっと見たときに見落としていた内容を知ることができた 内容自体が心温まるもので、自分も似たものを構築してみたくなる 特にレシートプリンターでお互いにメッセージを送る部分が本当に巧妙だった
うわあ、個人的にはここがいちばん良かった
「.tpl」という非標準TLDを使っている点に言及している 自分はむしろ悪い選択ではないと思う インターネットはもともと中央集権化のために設計されたものではないし、今の ICANN のような中央権力には抵抗すべきだと思う ホストファイルを手動で差し替える代わりに、個人が直接IDを管理できる方法が出てくればもっと良いだろう
dn42 と非常によく似ていると感じた dn42 ホームページ 参照
どんなゲームを主に遊んでいるのかの説明が足りず、気になる アイデアは興味深いが、情報があまりに限られていて、男の子だけを受け入れるツリーハウスのような雰囲気も感じる
「男の子だけ入れるツリーハウスみたいだ」という意見について、私はこうした形の小規模な私的集まりも十分に許容され、社会的に健全だと思う 似た趣味や特性を持つ人たちが自発的に集まりを作ることは、むしろ望ましい
そもそも最初から Hacker News などで紹介するために作ったプロジェクトではなく、外部の人の興味を引こうという意図がないように見えても構わない
TPL ではゲームよりも主にソーシャル活動が行われている IRC もあるし、各自が自分なりの変わったサービスを立てたりもする 参加すると LaTeX ベースの接続情報ドキュメントが渡され、接続方法などがきちんと書かれていて、主要なバックボーン担当者と1対1で接続する案内もある
半ば非公開の friend-to-friend ネットワークに近く見える たいていこういう形だと、集団構成に偏りが出るのは避けられないと思う
これだけ閉鎖的で、実際に何のサービスなのかをきちんと明かしていないのを見ると、単なるゲームよりファイル共有寄りなのではという印象を受ける ゲームをするためにここまで複雑に作る理由があるのだろうかと思う。Discord なら簡単にできるので
IPSec を Wireguard の代わりに選んだ理由が気になる 個人的には設定も難しいと感じるので、レガシーな事情でもあるのかと思った
おそらく L2TP-IPSec を使って Layer 2 転送をしようとしたのではないかと推測する Wireguard で同じことをやるなら、GRE トンネリングのような追加構成が必要になるはずだ
個人的には Tailscale や Headscale のような Wireguard ベースのソリューションのほうが好みだ この場合、DNS などさまざまな細部を自動で簡単に管理できる
自分が IPSec を使う最大の理由は、Mac、iPhone と自分のルーターのすべてが追加インストールなしで標準対応しているからだ 追加プログラムなしで手軽に構築できる
一般的に企業やサテライトオフィスを立ち上げるときも、この方式が標準だ 多くの人が IPSec の設定に慣れているので、それほど難しいとは感じない
私が気に入ったのは、アルゴリズムやフィード抜きで、似た趣味を持つ人たちが本当に何か面白いことをできるネットワークだという点だ 今のインターネットの問題を解決する良い事例だと思うし、みんなが友人たちと直接ネットワークを作ることこそ、インターネットの始まりだったと思う
本当のP2P LANがアマチュア無線(Microwave 無線リンク)で運用されている例もある hamwan.org 参照 自分が知っていた人たちも Culver City/West LA でそういうものを構築していて、速度は遅かったが、自立的にメールや写真の送受信までできていた
こういうネットワークのアイデアがとても気に入った 自分の「いつか必ずやること」リストにも入っていたが、そのリストはどんどん長くなる一方なのでうらやましい 昔のインターネットにあった小さなコミュニティが恋しいし、信頼ベースの限定された空間から大きな可能性が生まれると思う