WireGuard の二つのピアが同じ範囲を共有する: パケットを受け取るのはどちらか
重複する範囲は順序ではなく、最も具体的なプレフィックスで決まります。何かを広げる前に、まずルート、次にピア一覧を確認してください。
二つのピアが接する範囲を列挙し、トラフィックが誤った側に届きます。壊れているわけではありません——WireGuard は宛先を設定済みの範囲と照合してピアを選び、最も具体的な一致が優先されます。何かを広げる前に、どのピアがどのプレフィックスを持つべきかを決めてください。
WireGuard の内部では最長のプレフィックスが優先される
各ピアのエントリは宛先プレフィックスの集合を持ちます。パケットがインターフェースにルーティングされると、実装は最も具体的に一致するプレフィックスのエントリを探しますが、これはルーティングテーブルが適用するのと同じ規則です。したがって /24 はそれを含む /16 に勝ち、より狭いピアがトラフィックを受け取ります。
road-warrior の構成ではこれを意図的に使います。一つのピアが拠点向けの広い範囲を持ち、個々のホストは別のピアに属する /32 エントリで切り出されます。このパターンが機能するのは、切り出しの方がより具体的だからであり、順序のせいではありません。
所有関係をプレフィックスとピアの表として書き留めてください。二つのエントリが同じプレフィックスを記述しているなら、その設定はもはや意図ではなく競争を表しています。
オペレーティングシステムが先にインターフェースを選ぶ
WireGuard は一つのインターフェース上のピアの中からのみ選びます。 どのインターフェースがパケットを受け取るかは、もっと前にホストのルーティングテーブルで決まり、二つ目のデフォルトルートや古いルートがあると、ピア一覧が決して見ない場所へトラフィックを送ってしまいます。だからこそ、ピア単位の診断が正しくても障害を説明できないことがあります。ピア設定を読む前に宛先のルートを確認してください——物理インターフェースを指すルートは問題全体を回避してしまうからです。
ツールは通常、ピアの範囲からこれらのルートをインストールするので、一つのピアの一覧を変更すると、以前は別のピアに属していたトラフィックが黙って付け替えられる可能性があります。したがってピアの編集は、変装したルーティング変更です。両方を同時に確認してください——片方を直して片方を壊すことになります。
受信パケットは送信元で検査される
範囲一覧は二重の役割を果たします。 送信トラフィックでは宛先でピアを選び、受信トラフィックでは送信元アドレスを認可します。そのピアの範囲外のアドレスから届いたパケットは、どのファイアウォールが見るよりも前に破棄されます。
設定の片側だけを読むと、この非対称性を見落としがちです。サブネットに到達できるピアが、そのサブネットから送信することを許されるわけではなく、二つの方向は別々の検査で強制されます。
送信元の所有を狭くすると、これが利点になります。各ピアに自身のアドレス用の /32 を与えれば、下流のファイアウォールは照合できる信頼できる送信元を持ち、どのメンバーでも主張できるグループ全体の範囲ではなくなります。
重複した範囲はフェイルオーバーではない
同じプレフィックスを二つのピアに割り当てても、ロードバランサーや待機パスは作られません——ヘルスチェックもセッションアフィニティもありません。勝つエントリは実装の内部順序で決まり、それは設計の前提にすべき契約ではありません。別の出口が必要なら、選択が定義されている場所で表現してください。ルーティングポリシー、メトリック、またはそれぞれに文書化された所有者を持つ二つの異なるプレフィックスは、予測してテストできる動作を生みます。
無関係な障害を直すために範囲を広げるのは、もう一つのよくある間違いです。動作していたピアからトラフィックを遠ざけ、古い症状が理解される前に新しい症状が現れます。
編集する前に選択を検証する
三つのコマンドが三つの問いに順番に答えます。一つ目は各ピアが主張する範囲を列挙します。二つ目はホストが宛先に対してどのインターフェースを使うかを示します。三つ目はトラフィックが流れた後のピアのライブ状態を示します。
wg show wg0 allowed-ips ip route get 10.66.8.20 wg show wg0 ip rule show
変更の前後で実行して比較してください。ルートの出力が変わったのにトラフィックがまだ誤ったピアに届くなら、プレフィックス一覧はまだ書き留めていない形で重複しています。ルートの出力が変わっていないなら、ピア設定はそもそも参照されていませんでした。
チケットに宛先、選んだインターフェース、選んだピアを記録してください。この三つ組が、後で重複をレビュー可能にし、設定のスクリーンショットよりはるかに役立ちます。