MPLS VPN か IPsec オーバーレイか:決めるべき三つの契約
プロバイダーの VPN はパケットを転送し、ルーティングを分離する。暗号化は誰も偶然には買わない第三の契約であり、すべての約束に所有者を与えるべきだ。
三つの約束は一つの広域見積もりの中にあり、一つを買っても他のものは買えない。誰かがあなたのパケットを転送し、誰かがあなたのルーティングを他のすべての顧客から分離し、誰かが転送中にペイロードが読めるかどうかを決める。それらの約束は別々の当事者に属していても、一つの実行可能な設計を説明できる。それらを分けることが決定であり、技術の名前を選ぶことではない。
一つの広域見積もりの中の三つの約束
第一の約束は転送であり、どの拠点がどのアクセス回線で接続し、誰がそれらの間でパケットを転送するかという点にある。第二はルーティングであり、どのプレフィックスが互いに到達でき、誰が変更を承認し、あなたのトラフィックが別のテナントからどう分離されるかという点にある。第三は保護であり、何が暗号化され、どの端点の間で、誰が鍵を持つかという点にある。それぞれを書面で求めよ、答えはどれも別の文書に住んでいるからだ。
プロバイダーの見積もりは第一に値段を付け、第二を前提とし、第三をあなたに任せがちだ。それは不誠実ではなく、三つは別のチームが売っている。設計レビューで、セキュリティチームは暗号化を前提にし、ネットワークチームはキャリアが処理していると前提していたと分かったときに問題になる。文を三つに分けるのに一時間かかり、その会議を防げる。
ラベルが説明するのは転送であり、接続点のサービスではない
マルチプロトコルラベルスイッチングは、パケットがプロバイダーのネットワーク内をどう移動するかを語る。顧客が何に接続するか、顧客がプロバイダーのエッジと何を交換するかは語らない。プロバイダーは MPLS 上のルーティングされた IP VPN も、まったく別の接続モデルを持つレイヤー2サービスも構築でき、どちらも「MPLS 接続」としてあなたに届きうる。
IETF のプロバイダー提供 VPN の用語は、まさにこのための語彙を定義しており、顧客エッジ、プロバイダーエッジ、そしてその間に作られるサービスモデルを指す。見積もりが層を曖昧にするときに使い、受け渡しが物理的に何なのかを問え。
ルーティングされたサービスは、プロバイダーエッジとのルーティング関係をあなたに与えるので、プレフィックスの追加は二つの組織での変更要求になる。レイヤー2の受け渡しはあなた自身のルーティングを運び、運用負担をあなたの側へ移す。どちらが抽象的に優れているわけではなく、答えはあなたのトポロジーがどれだけ頻繁に変わるか、午前三時に誰に応答してほしいかから導かれる。
暗号化は偶然に委任できない約束である
専用転送はペイロードを読めなくしない。プロバイダーの分離はテナントを運用上分けるだけで、経路上のバイトを誰が検査できるかについての声明ではない。キャリアがトラフィックを読めないことが要件なら、その要件にはあなたが制御する仕組みが必要で、IPsec が通常のものだ。
IPsec は専用転送の上でもインターネットアクセスの上でも同じように動くので、管理された到達性と自前の信頼境界を同時に必要とするときには「MPLS か IPsec か」は偽の選択だ。トンネルがどこで終わるかを決めよ、ルーターで終わるトンネルはそのルーターの背後のセグメントを平文のまま残すからだ。次に、各ピアを誰が管理するかを決めよ、第三者が持つ鍵はあなたが所有する境界ではないからだ。
すべての約束に名前と測定できる境界を与えよ
約束ごとに、所有者と測定できる境界を一行で書け。アクセス回線の可用性はその供給者に属し、バックボーンの遅延はプロバイダーに属し、トンネルの生死は端点を運用する者に属する。誰も測定しない単一のエンドツーエンドの数値は、誰もあなたに負っていない数値だ。
サービスレベル契約は契約とその範囲から来るのであり、技術名の文字からではない。IPsec はベストエフォートのインターネット転送を必要とせず、MPLS もそれ自体で遅延保証を運ばず、どちらも下層のネットワークとあなたが選ぶ端点に依存する。
描いた経路を、その故障も含めて試験せよ
余裕のあるインターフェースを持つ専用転送でも、オーバーレイがヘッダーを加えると、確立したセッションが大きな応答で止まるという形で失敗しうる。推論するのではなく使用可能なサイズを試験し、エンドツーエンドで通る最大のパケットを書き留めよ。帯域について議論する前にそうせよ、大きなパケットを落とす経路はアプリケーションの問題に見えるからだ。その数値は、各アクセス回線の MTU の隣の設計文書に属する。
ping -M do -s 1400 -c 3 <vpn-gateway>
traceroute -n <vpn-gateway>
それらのコマンドは一つのサイトの Linux ホストから来るが、他のプラットフォームは同じ試験を別の書き方で行う。あるサイトがより小さな値を必要とするなら、それは記録すべき設計制約であり、報告すべき障害ではない。同じ規律はスループットにも当てはまる、暗号化は処理を要し、端点は容量計算の一部になるからだ。
署名の前に二つの図を描け、すべての所有者が記された通常の経路と、同じ記号を持つ故障経路だ。後者は、紙の上では冗長に見え、実際には一つの装置に依存する設計を暴く。障害が来たとき、その図こそが混乱した朝を短いトリアージに変える。