SD-WANのスケーラビリティ

ViptelaのSD-WANはIPsecによるオーバーレイネットワークです。今回はこのオーバーレイネットワークのスケーラビリティについて少し考えてみたいと思います。

オーバーレイネットワークの進化の方向性

オーバーレイ技術の歴史を振り返ると、その技術の進化の方向性としては、私は3つほどあるのではないかと思っています。

オーバーレイネットワークの進化の方向性
オーバーレイネットワークの進化の方向性

一つはカプセル化技術の進化です。古くはGREから、そしてその後もさまざまなカプセル化技術(IP in IP、MPLS、L2TP、VXLANなど)が生まれてきました。オーバーレイの二つ目の進化の軸はシグナリングです。こちらも過去さまざまな方式が生まれましたが、歴史的に振り返ってみると、勝者はBGP(あるいはその拡張)ということになるのではないかと思います。MPLS/BGP VPNの成功や最近のEVPNなどがそれを証明しているように思います。3つ目の進化の軸はスケーラビリティです。今回はここに注目してみたいと思います。

なぜフルメッシュが困難なのか?

一般的に大規模なフルメッシュのオーバーレイネットワークを構築するのは大変困難です。大きく分けると2つ理由あります。一つは設定(プロビジョニング)の困難さです。初期設定時に多くの工数がかかるものもちろんですが、むしろ大変なのはサイトを追加する時です。フルメッシュを維持するためには、対向の全てのノードにも再設定をしなければいけません。初期構築時は仮に頑張れても、運用に入った後に全てのノードの再設定をしなければいけないのは大きな苦痛を伴います。もう一つの困難さはステート維持です。使用するオーバーレイ技術が何かしらのステートを持つ場合、nノードからなるフルメッシュなネットワークでは、全体としてn^2のオーダー(O(n^2))のステートを維持管理していかなければいけません。IPsecの鍵もこのようなステートの一種です。IPsecのフルメッシュネットワークが難しいのは上記の二つの理由に依るところが大きいと言えます。

サイト追加時のプロビジョニングの苦痛を解決する策としては、過去にも提案がありました。例えばRFC6224です。提案者の名前から通称「Kompella方式」とも呼ばれる方法です。

Kompella方式
Kompella方式

この方式のポイントは「オーバー・プロビジョニング」をする、という点にあります。この方式では、例えばFrame RelayのネットワークであればDLCIをあらかじめ余計に割り当てておき、サイトが追加になった際にローカルの設定変更だけで残りのリモートサイトには変更が必要ないように工夫されています。

また、CoSine CommunicationsのIPSXは仮想ルータをIPsecで結んでオーバレイネットワーク(VPN)を作ることができました。

CoSine IPSX
CoSine IPSX

CoSineのInVisonというNMSには自由にハブ&スポークやフルメッシュのIPsecを構成する機能がありましたので、ある意味プロビジョニング上の問題は解決することができていたとも言えます。2000年当時、1仮想ルータで1000のIPsecトンネルを終端することができた(ハブ&スポーク)を構成することができた)のはかなり頑張っていたのではないかと思いますが、では1000個の仮想ルータでフルメッシュのIPsecトンネルを作れたかというと、それは全くもって不可能な話でした。

IPsecをスケールさせるのが難しい理由

IPsecをスケールさせるのが難しいのには二つの理由があります。IPsecの鍵交換プロトコルであるIKEで使われる処理(Diffie Hellmanの鍵交換)が非常に重たい処理であるという点。Diffie Hellmanの鍵交換がどれくらい重いのか、少し考えて見ましょう。

https://www.cryptopp.com/benchmarks.html を見ると様々な暗号化アルゴリズムのベンチマーク結果が出ています。この中からAES-CBC-256bitとDiffie Hellmanの鍵交換の結果を以下に掲載します。

Diffie Hellman鍵交換とAESによる暗号化処理の比較
Diffie Hellman鍵交換とAESによる暗号化処理の比較

AESなどの暗号化アルゴリズムの性能はスループット(MiB/s)で測るのに対し、Diffie Hellmanの鍵交換は1オペレーションの実行時間(msec/operation)で測りますので単純に比較はできませんが、仮に1500バイトのデータをAES-CBC-256bitで暗号化するのを1オペレーションとみなしてそれにかかる時間を計算して見ると上記のようになります。Diffie Hellmanの鍵交換はAES-CBC-256bitに比べると二桁ほど重い処理であることがわかります。このようにDiffie Hellmanの鍵交換処理は非常に重たい処理なのです。

IPsecのフルメッシュネットワークが難しいもう一つの理由が、IKEによって作られる鍵が “pair-wise” である、という点です。鍵がpair-wiseであるというのは、相手が異なれば異なる鍵を使う、すなわちペアごとに異なる鍵が存在するということです。nノードのフルメッシュのネットワークの場合にはO(n^2)の個の鍵が存在することになります。暗号鍵があるということは、必ず鍵の更新(Rekey)をしなければいけないということを意味します。どんな暗号化システムでも、同じ鍵を使い続けていけば暗号強度は必ず低下してくるからです。上記のように重たい処理であるDiffie Hellmanの鍵交換を全体としてO(n^2)回やらなければいけないのでとても大変です。O(n^2)問題を甘く見てはいけません。例えば1,000ノードのフルメッシュを構成するとおよそ500,000のペアが存在することになります。仮にIKEのPhase 1のRekey時間を24時間としましょう。24時間はたった86,400秒しかありません。この間に500,000回の鍵交換をしなければいけないわけですから、毎秒5〜6回のペースで鍵交換をし続けなければいけないことになります。3,000ノードのフルメッシュなら毎秒50回以上になります。

このように非常に重たい処理のIKEですが、IPsecにとって本当に必須のものなのでしょうか? 実際、多くの場合IPsecを使う際にはIKEが使われます。しかし、IPsecにとってIKEが唯一無二の鍵交換プロトコルというわけではありません。実は、IPsecにはKINKやPhoturisといった別の鍵交換プロトコルもあります。極端な話、手動で鍵を設定することもできるわけです(もちろん鍵の更新をしなければセキュアとは言い難いですが・・)。つまりIPsecにとってIKEは必須ではないのです。

IKEはセキュアなチャネルがないところにセキュアなチャネルを開設するプロトコルです。従ってすでにセキュアなチャネルがあれば、必ずしもIKEを使う必要はないという点に注意してください。「Viptelaのアーキテクチャー」の回で、コントローラとvEdgeの間のコントロールチャネルはTLSもしくはDTLSが使われているというご説明をしました。すでにそこにセキュアなチャネルがあるわけですから、それを使えば良いのです!

Viptelaによるスケーラブルなオーバーレイネットワーク

ViptelaのコントローラであるvSmartはBGPをベースに拡張をされたOMP (Overlay Management Protocol)というプロトコルを使って経路の配布を行っており、OMPはTLS/DTLSによるセキュアなチャネルの上で動いています。vSmartはBGPのルートリフレクタと同様の役割を果たしていて、経路情報をすべてのvEdgeに配布するようになっています。実はこのOMPは、経路だけではなくIPsecで使う鍵の配布も行えるように拡張をされているのです。このためOMPでの鍵交換は非常にシンプルなものになっています。

統合されたルーティングとセキュリティ
統合されたルーティングとセキュリティ

vEdgeは自分宛に送るパケットの暗号化に使う鍵を自らランダムに生成し、それをvSmartに送ります。すると、vSmartは他のすべてのvEdgeにその鍵を配布してくれます。これだけで鍵を更新することができるわけです。

各vEdgeがやらなければいけないのはランダムな鍵を自ら生成するだけです。これは非常に軽い処理ですので、例えば極端に短い時間(例えば30秒)で鍵更新をするということも可能です。IPsec/IKEのフルメッシュネットワークで30秒で鍵更新をするのはほぼ不可能だと思いますが、Viptelaではそれが可能です。Viptelaのアーキテクチャでは鍵の更新は経路のアップデートとほぼ同程度の処理です。BGPの環境で30秒に一度程度の経路アップデートをさばくのはさほど大変なことではないのはみなさん肌でご理解いただいていると思います。ViptelaのIPecの鍵更新は経路の更新と本質的に同じ処理ですので、BGPと同様のスケーラビリティをIPsecについても実現できる、と考えていただければいいかと思います。

また、鍵はvEdge毎に1つしかないことも注目すべき点です。したがって鍵はpair-wiseにはならず、IKEの時のような鍵の個数をO(n^2)からO(n)に大幅に減らすことができるのでスケーラビリティを確保することができます。

今日の多くのSD-WANソリューションは、IPsecによるオーバーレイネットワークを使ったものが多いです。SD-WANソリューションには通常何かしらのコントローラがありますので、プロビジョニングに関する問題は多くの場合解決されていると考えて良いと思います。しかし、維持しなければいけないステートの問題、特にIPsecの鍵交換のスケーラビリティに関して未解決のものが多いです。ViptelaのSD-WANソリューションのオーバーレイネットワークは、IKEを使わず鍵もpair-wiseに作らないので、他のIPsec/IKEベースのオーバーレイネットワークに比べると遥かにスケールする仕組みになっています。

Viptelaのオーバーレイネットワーク
Viptelaのオーバーレイネットワーク

実際に、ViptelaのSD-WANを使っているお客様の中には3,000拠点のIPsecフルメッシュなネットワークを実現されているされているお客様がおられます。そのお客様の利用事例についてはまた日を改めてご紹介をしたいと思います。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です