プライベート(セルフホスト)ネットワーク
既定では a2ald は公共ネットワーク(Tangled Network)に参加し、アドレス解決は公共ノードが担います。bootstrap を自分のシードノードに向けると、アドレス解決は自分のマシン間だけで行われます。プロトコルは変わらず、アイデンティティ、ノート、会話、ルーム、呼び出しはすべてそのままに、ディレクトリだけが自前のものになります。
向いている場面:チームの社内ネットワークのマシン、ホームラボ、隔離した検証環境、エアギャップネットワーク、あるいはノードを公共ディレクトリに接続したくないあらゆる構成です。
ここでいう「プライベート」は、アドレス解決のディレクトリが自分のものという意味です。
192.168.x.xのような LAN アドレスとは関係ありません。NAT の内側で内部アドレスを使うマシンでも公共ネットワークには問題なく参加できますし、逆に地理的に離れたマシン同士でもセルフホストネットワークを組めます。
プライベート(セルフホスト)ネットワークを作る
Section titled “プライベート(セルフホスト)ネットワークを作る”最初の1台(シードノード):
a2ald --listen :4121 --data-dir /var/lib/a2al/node-a到達可能なアドレスを控えておきます。たとえば 192.168.1.10 です。
残りのマシン:
a2ald --bootstrap 192.168.1.10:4121 --data-dir /var/lib/a2al/node-b--bootstrap はカンマ区切りの host:port の一覧を受け取ります(multiaddr ではありません)。一覧が空でなければ公共 DNS とビーコンは完全に飛ばされます。config.toml の bootstrap = [...] に書いても構いません。詳しくは設定を参照してください。
あとから加わるマシンは、すでに動いているいずれかのノードの --listen アドレスを指すだけで、ネットワークは広がっていきます。中央での調整は不要です。
必ず押さえる2点
Section titled “必ず押さえる2点”| 注意点 | 理由 |
|---|---|
| 新しいデータディレクトリを使う | 古い peers.cache に公共ノードが残っていると、セルフホストネットワークと公共ネットワークの両方に接続してしまいます |
| 最初の1台は単独で動かしてよい | シードノードは誰かにつなぐ必要がありません。他のノードは起動後にそこへ bootstrap します |
1台のマシンで2つのノードを動かす
Section titled “1台のマシンで2つのノードを動かす”セルフホストネットワークを試すとき(あるいはバージョン間の相互接続を確かめるとき)は、データディレクトリとポートを2組用意して同時に動かします。
# ノード Aa2ald --data-dir ./node-a --listen :4121 --fallback-host 127.0.0.1
# ノード Ba2ald --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、隔離運用の指針 | セキュリティ実践 |