コンテンツにスキップ

プライベート(セルフホスト)ネットワーク

既定では a2ald は公共ネットワーク(Tangled Network)に参加し、アドレス解決は公共ノードが担います。bootstrap を自分のシードノードに向けると、アドレス解決は自分のマシン間だけで行われます。プロトコルは変わらず、アイデンティティ、ノート、会話、ルーム、呼び出しはすべてそのままに、ディレクトリだけが自前のものになります。

向いている場面:チームの社内ネットワークのマシン、ホームラボ、隔離した検証環境、エアギャップネットワーク、あるいはノードを公共ディレクトリに接続したくないあらゆる構成です。

ここでいう「プライベート」は、アドレス解決のディレクトリが自分のものという意味です。192.168.x.x のような LAN アドレスとは関係ありません。NAT の内側で内部アドレスを使うマシンでも公共ネットワークには問題なく参加できますし、逆に地理的に離れたマシン同士でもセルフホストネットワークを組めます。

プライベート(セルフホスト)ネットワークを作る

Section titled “プライベート(セルフホスト)ネットワークを作る”

最初の1台(シードノード):

Terminal window
a2ald --listen :4121 --data-dir /var/lib/a2al/node-a

到達可能なアドレスを控えておきます。たとえば 192.168.1.10 です。

残りのマシン:

Terminal window
a2ald --bootstrap 192.168.1.10:4121 --data-dir /var/lib/a2al/node-b

--bootstrap はカンマ区切りの host:port の一覧を受け取ります(multiaddr ではありません)。一覧が空でなければ公共 DNS とビーコンは完全に飛ばされます。config.toml の bootstrap = [...] に書いても構いません。詳しくは設定を参照してください。

あとから加わるマシンは、すでに動いているいずれかのノードの --listen アドレスを指すだけで、ネットワークは広がっていきます。中央での調整は不要です。

注意点理由
新しいデータディレクトリを使う古い peers.cache に公共ノードが残っていると、セルフホストネットワークと公共ネットワークの両方に接続してしまいます
最初の1台は単独で動かしてよいシードノードは誰かにつなぐ必要がありません。他のノードは起動後にそこへ bootstrap します

1台のマシンで2つのノードを動かす

Section titled “1台のマシンで2つのノードを動かす”

セルフホストネットワークを試すとき(あるいはバージョン間の相互接続を確かめるとき)は、データディレクトリとポートを2組用意して同時に動かします。

Terminal window
# ノード A
a2ald --data-dir ./node-a --listen :4121 --fallback-host 127.0.0.1
# ノード B
a2ald --data-dir ./node-b --listen :4122 --api-addr 127.0.0.1:2122 \
--fallback-host 127.0.0.1 --bootstrap 127.0.0.1:4121
# ノード B から検証:ノード A で登録した AID を解決する
a2al --api http://127.0.0.1:2122 resolve <AID>

1つのデータディレクトリを同時に使える a2ald は1つだけです。2つ目、3つ目のノードは --data-dir を変え、同時に --listen と --api-addr も変更してください。

任意:ブートストラップ先を限定する

Section titled “任意:ブートストラップ先を限定する”

任意の相手からのブートストラップを受け入れたくない場合は、受け入れるノードの NodeID を固定できます。

bootstrap_node_ids = ["<hex>"]

NodeID がこの一覧にあるブートストラップ先だけが採用されます。

プライベート(セルフホスト)ネットワークと公共ネットワークの違い

Section titled “プライベート(セルフホスト)ネットワークと公共ネットワークの違い”
項目プライベート(セルフホスト)ネットワーク
アドレス解決の範囲指定したシードノードとその下流のノードだけ
アドレス記録公開と更新は続きますが、書き込まれるのは自前ネットワークの DHT だけです
能力の検索同じセルフホストネットワーク内のノードだけが検索できます
アイデンティティ公共ネットワークと変わりません。AID は手元の鍵から派生し、いつでもネットワークを移せます

ネットワークをまたいで解決されることはありません。セルフホストネットワーク上の AID は公共ネットワークからは見えず、その逆も同じです。1台を両方から到達可能にしたい場合は、データディレクトリを分けて2つのノードを動かしてください。

目的ページ
構築と検証の完全な手順実践レシピ
ネットワークとブートストラップの設定項目設定
ポート、ACL、隔離運用の指針セキュリティ実践