コンソールには緑のトンネルが表示されているのに、オンプレミスの監視はどのインスタンスにも到達できず、トンネルの再作成が明白な対処に見えます。しかしそうであることはまれです。確立済みのトンネルが証明するのは、二つのゲートウェイが IKE 交換を終えたことだけです。パケットが VPC に一度でも許可されたかどうかは何も語りません。

その緑のアイコンと応答の間には四つの判断があり、それらは予測可能な順序で失敗します。最も安価なものから順に片付けてください。

三つのオブジェクト、そのうち暗号化するのは一つだけ

VPN ゲートウェイは、対向側が暗号化の宛先とする外部アドレスを保有します。コンソールでは手作業で作成することはなく、接続フォームの中でアドレスを選択または予約すると、ゲートウェイがそれとともに現れます。HA ゲートウェイは二つのインターフェースで二つのアドレスを取り、これは後段のクォータ確認で効いてきます。

トンネルは、そのゲートウェイと対向側の間の組み合わせです。共有シークレットと、保護を約束するトラフィックセレクタを運びます。サイレント障害の多くは、このセレクタから始まります。ローカルセレクタが 10.0.0.0/24 を覆うトンネルは、状態がどれほど健全に見えても 10.0.1.0/24 を配送しません。

遠端は独自のリスト(通常は暗号化ドメインと呼ばれます)を持ち、終端側のハードウェアがそれをこちら側と比較します。与えられていないセレクタを交渉する側はありません。

ルーティング種別が、ルートテーブルに何が届くかを決める

Cloud VPN には三つのルーティング形態があり、きれいには混ざりません。ポリシーベースは静的なセレクタの組を保ち、ルートベースは静的なルートを自分で追加することを前提とし、動的ルーティングは BGP を介して Cloud Router でプレフィックスを広告します。意図して一つを選んでください。

手書きの静的ルートを併設した動的トンネルは、BGP セッションが揺れるたびに空になるルートテーブルを生みます。

動的だけが、トンネルを作り直さずに保護対象プレフィックスを変更できる形態であり、Cloud Router を検証すべきオブジェクトの集合に引き込みます。対向側が BGP を話せないハードウェアファイアウォールなら、静的セレクタは依然として使えます。その場合、両端に同じ範囲が必要で、より具体的なエントリが両側で勝たなければなりません。一つのサブネットだけ食い違う組は確立し、その後トラフィックの半分しか運びません。

暗黙の拒否はトンネルの背後にある

受信トラフィックは最下位の優先度にある暗黙の拒否に対して評価され、その規則はパケットが暗号化されて届いたことを気にしません。ファイアウォール規則がオンプレミスの範囲と使用中のポートを名指しするまで、パケットは復号され、検査され、破棄されます。VPN ログは、トンネルが約束したとおりに動いたため、その間ずっときれいなままです。

トンネルが上がっていてプローブがタイムアウトするときは、代わりにファイアウォールの拒否ログを読み、そのうえで規則を送信元範囲と必要なポートに絞ってください:

gcloud compute firewall-rules create allow-from-dc \
  --network=vpn-vpc \
  --direction=INGRESS \
  --source-ranges=192.168.10.0/24 \
  --allow=tcp:22,tcp:5432,icmp

片方向だけ通るのはファイアウォールの手がかり

送信は、暗黙の許可規則によりインスタンスがどこへでも送信できるため、別の振る舞いをします。VM に到達できないデータセンターは、多くの場合、逆方向には完全に機能する送信経路の背後にあります。この非対称性が、両方向を同時に壊すルーティング障害とファイアウォールの漏れを切り分けます。もう一つ規則を編集する前に、逆方向を試験してください。

アドレスの作成もクォータ操作です。使用中の外部アドレスの上限に近いプロジェクトは、権限エラーに見えるエラーで接続を拒否します。

セレクタ、クォータ、そして四つの確認

コンソールで作成したトンネルは、生成されたルートが正しくトラフィックを運んでいても、gcloud compute vpn-tunnels describe から空のリモートトラフィックセレクタを返すことがあります。トンネルが誤りだと判断する前に、API が記録した内容を実際に保護している範囲と比較してください。API や SDK で作成すればセレクタは明示的に保たれます。

クォータも見落としやすい点です。増加はメンテナンス時間の最中ではなく前に申請し、アドレス数はゲートウェイと同じプロジェクトで確認してください。

外側から内側へ進めてください:対向側の状態、両方のセレクタ一覧、各側のルート、送信元範囲とポートに対する受信規則、そしてパケットキャプチャです。サブネットを追加する次のエンジニアが三つとも必要とするため、トンネルが新しいうちに、ゲートウェイのアドレス、両方のセレクタ一覧、ルーティング種別を変更チケットに書いてください。

関連記事