コピーしたWireGuardプロファイル:両方の端末が失敗する理由
コピーしたプロファイルが複製するのは鍵であり、端末ではありません。ハンドシェイクログを確認し、共有された同一性を確かめてから、二つ目を正しく発行します。
ノートPCではトンネルが動いていたので、設定ファイルをスマートフォンとタブレットにも移したところ、三台すべてでハンドシェイクが途切れ始めた。入力ミスもなく、サーバー設定も編集していない。WireGuardのプロファイルは複数の端末が使えるパスワード付きアカウントではない。鍵ペアであり、ピアを識別するのは公開鍵の側だけである。ファイルをコピーすれば同一性もコピーされ、サーバーはいま、どれも同じだと主張する複数の端末に対して単一のエンドポイント関係を保とうとしている。サーバー側から見れば二台目の端末は存在せず、アドレスが動き続ける一つのピアがあるだけだ。
各端末でハンドシェイクログから始める
各端末でクライアントを開き、何も変更する前に最後のハンドシェイク時刻と現在のエンドポイントを記録する。健全な構成では端末を使っている間これらの値は安定している。同一性が重複しているとタイムスタンプが交互に現れ、サーバーに記録されたエンドポイントはプロファイルを持つ端末とは別の端末を指していることがある。この交互の現れ方が特徴であり、症状が設定ミスではなく不安定な接続に見える理由でもある。端末が壊れているのではなく、互いを中断させているのだ。
読み取りは端末そのもので行い、観察のそれぞれを特定の機械に結び付ける。サポートチャットからコピーしたタイムスタンプはその結び付きを失い、後にはほとんど価値がない。
二台が一つの同一性を共有しているかを確かめる
比べるのは公開鍵であり、秘密鍵では決してない。公開鍵は秘密鍵から導かれるので、同じ秘密鍵を含む二つのプロファイルは同じ公開鍵を生み、サーバーからは区別できない。二台が同じ公開鍵を報告するなら、疑問は決着しており、keepaliveの調整は何の助けにもならない。不安定なハンドシェイクを伴う二つの異なる鍵はまったく別の場所を指すので、比較はどんな変更よりも先に来なければならない。
wg show wg0 public-key
wg show wg0 latest-handshakes
wg show wg0 endpoints
wg show wg0 transfer
これらのコマンドが出力するのは公開情報とカウンターだけで、サポートのやり取りに必要なのはそれだけだ。公開鍵が一つで、二つのネットワークの間を動き続けるエンドポイントを持つサーバーのピア項目は、複製の当然の結果である。新しい送信元からの認証済みパケットが、トラフィックの送り先を更新するからだ。この挙動は設計どおりに動くプロトコルであり、だからこそネットワーク障害と取り違えられやすい。
二つ目の同一性を正しく用意する
必要とする端末で新しい鍵ペアを生成し、得られた公開鍵を、独自の許可アドレスを持つ別のピアとしてサーバーに追加する。秘密鍵は端末で作られ、そこにとどまるべきだ。ほかで生成して貼り付けた鍵は少なくとも一か所余分に通っており、その旅路はいま信頼の物語の一部になっている。
umask 077
wg genkey > newdevice.key
wg pubkey < newdevice.key
サーバー側には公開鍵と、元の端末と衝突しない許可アドレスの割り当てが必要だ。新しい鍵を示しながら古いトンネルアドレスを保つプロファイルは、サーバーが受け入れたうえで誤って経路制御するピアを生む。これは拒否されたハンドシェイクよりも繊細な故障である。接続の前にアドレスの割り当てを確認し、最初の不可解なパケット損失の後になってから確認してはならない。
元を壊さずに複製を退ける
新しい同一性が機能したら、元の端末がまだ使っているサーバー項目を削除するのではなく、コピーしたプロファイルを元の端末の周辺から外す。コピーが露出した可能性があるなら、代わりに直ちに失効させ、そのうえで再発行する。便利さは共有の秘密を出回らせておく理由にはならない。
購読ごとに複数の端末を本当に支える管理サービスなら、そう明言し、自らの画面から別々の資格情報を発行する。一つのプロファイルを手作業で複製することは決してそのモデルではない。サービスのブランドが無制限の端末をほのめかしていても同じだ。
二台を別々に、そして一緒に試す
まず各端末を単独で検証する:ハンドシェイク、動く転送カウンター、そしてトンネルだけが届く宛先。そのうえで二台を同時に動かし、サーバーがエンドポイントをどう見るかを観察する。二つの異なる鍵は、跳ねる一つの項目ではなく、安定した二つのピア項目を生むはずだ。
新しい公開鍵は配備の記録と一緒に保管し、どの端末がどれを持つかを書き留める。その一覧がなければ、次にプロファイルをコピーする人が同じ失敗を繰り返し、交互に現れるハンドシェイクはまたネットワークのせいにされる。