サイト間 VPN のアドレス空間をどう見積もるか
トランスポート端点、内部リンク、保護された LAN、ゲートウェイのサブネットは四つの別々の予算である。機器数ではなくトポロジーから各々を見積もる。
VPN のサブネットはどれくらいの大きさにすべきかと問えば、正直な答えは「その質問の中に四つの異なるサブネットが隠れているかもしれない」である。サイト VPN には、トランスポート端点、番号付きのトンネルリンク、保護された LAN のプレフィックス、そして管理ゲートウェイではプロバイダーが確保するインフラ用サブネットが関わりうる。特定の設計で存在するのはそのうち一つか二つだ。オフィスの機器数から見積もると、誰も満足しない /24 に行き着く。
何かを割り当てる前に四つの役割を名づける
トランスポート端点は、二台のゲートウェイがインターネットや専用線を越えて互いに到達するためのアドレスで、その数は LAN ではなくゲートウェイと冗長化のモデルから決まる。内部トンネルリンクは、設計がポイントツーポイントのインターフェースに番号を振る場合にだけ存在し、ポリシーベースの IPsec 構成は通常そうしない。保護されたプレフィックスは経路化可能でなければならない実際のオフィス網や VPC 網であり、プロバイダーが確保するサブネットは管理サービスに属する。
何かを足す前に既存のものを棚卸しする。ここでの高くつく誤りは、すでに別の場所で経路化されているプレフィックスを再利用することだ。パイロット案件の古いトンネルが一つあるだけで計画は台無しになる。棚卸しは日付とともに書き残す。廃止したリンクの記憶はリンク自体より長生きするからだ。
ip -br addr show ip route show | head -40
この二つのコマンドは、接続済みのネットワークとその外側すべてに届く経路のローカルな見え方を与える。棚卸しはすべてのサイトで繰り返す。一つのサイトの出力だけで組んだ計画は次のサイトと衝突する。一つのブロックも割り当てる前に出力を集めておく。
数えるのはリンクとトポロジー、機器ではない
ポイントツーポイントの隣接が八つある設計は八つのブロックを消費する。一つではない。/30 では各ブロックが二台のホストを結ぶのに四つのアドレスを使うので、計画は十六の利用可能な端点に対して三十二のアドレスを抱えることになり、予算はその数字に耐えなければならない。/31 のリンクを支える基盤なら半分で済むが、両端とサービスがそのモデルに合意している場合に限る。予算は切り下げではなく切り上げる。後からブロックを縮めるのは、稼働中のリンクの再採番を意味するからだ。
プロバイダーの制約は一般論に優先する。文書化された内部トンネル範囲は、手元のルーターで /31 が動く場所でも /30 を要求することがあり、管理ゲートウェイは自分のサブネットに特定のマスクを求めることがある。他の基盤から借りた経験則を当てる前に、サービスの要件を読む。
マルチポイントのオーバーレイはまた算術を変える。ゲートウェイごとに一つのアドレスで、それらの間の到達性はオーバーレイが担う。サイト数にブロックの大きさを掛ける前に、実装が実際にどちらのトポロジーを使うのかを決める。
成長は計画の中で独自の行を持つに値する。一貫したインフラ範囲を確保するのは妥当であり、その中にどの小規模な割り当てが入っているかを書き留めるのも同じだ。次のエンジニアがその確保を一つのブロードキャストドメインと読み違えないようにする。
ゲートウェイのサブネットを LAN のプールから外す
管理ゲートウェイのインフラはクライアントのプールではない。確保されたゲートウェイサブネットのアドレスはサービス自身の構成要素を載せており、遠隔勤務者がそこから取ることはない。そのサブネットを利用者数から見積もるのは分類の誤りで、大きな範囲を無駄にするか、ゲートウェイを飢えさせるかのどちらかになる。
同じことはクラウド VPN 接続のトンネル範囲にも当てはまる。プロバイダーはトンネルごとに小さな内部範囲を自分の用途として割り当てる。その範囲は支店のサーバーが住む場所ではなく、配ってよいものでもない。
aws ec2 describe-vpn-connections --query "VpnConnections[].{Id:VpnConnectionId,Tunnels:Tunnels[].OutsideIpAddress}" --output table
外部アドレスを一覧すると、プロバイダーが何を割り当てたか、どの冗長トンネルが今稼働しているかが確認できる。接続が存在する前に書かれた設計文書を読むより速い。
プレフィックスごとに役割・所有者・成長を記録する
運用との接触に耐える計画は、各プレフィックスについて、どの役割を担うか、遠端を誰が割り当てるか、どれだけ余裕があるかを記す。所有者の欄がなければ、二つのチームが同じ四半期に同じ /24 を割り当て、衝突はトンネルが上がるときに初めて表に出る。
これらの範囲は、他のトンネル経由で来る家庭用や支店のプレフィックスから遠ざけておく。サイト間接続が交渉に成功したのに何も通らないのは、アドレス空間の重複がよくある原因だからだ。
内部リンクのアドレスを割り当てても、その背後の LAN は広告されない。経路やトラフィックセレクター、戻り経路、アクセス規則は別の作業項目であり、番号付きインターフェースが経路制御までやってくれるかのように書くべきではない。