以上のように、仮想ルータは、物理ルータと同じように設定、利用できることがお分かりいただけたと思います。これを踏まえ、仮想ルータによって得られるメリットとは何か、そしてどういった環境でそのメリットがより効果を発揮するか、整理してみましょう。
まず、3種類の仮想ルータ実現方法すべてに共通するメリットとして、「運用管理の効率化」が挙げられます。サーバの仮想化で得られたプログラマブルなリソース管理と同じことが、同様にルータの仮想化でも得ることができます。
その他、各実現方法のメリットとデメリットを以下の表にまとめます。
メリット | デメリット | |
---|---|---|
ハードウェア型 | 専用ハードウェア処理機構を利用できるため高速 | 仮想化環境とは別にルータを用意する必要がある 構成によっては無駄なトラフィックが生じる 標準APIが存在しないためマルチベンダでの構築は困難 |
ソフトウェア型 | サーバ仮想化で得られるメリットをそのまま得られる すでに動作実績のある技術をそのまま仮想化環境へ適用した実装の場合、安定性が期待できる 仮想化環境のどこでルータが動作しているか把握しやすい |
仮想化環境ではI/O性能が貧弱な場合が多い(特に単位秒あたりのパケット処理性能) 構成によっては無駄なトラフィックが生じる |
分散エッジ型 | ハイパーバイザ側でパケットを処理するため比較的高速 ネットワーク構成によらず無駄なトラフィックを防ぐことが可能 |
ハイパーバイザ側の機能を個別にアップデートすることが困難な可能性がある 最新技術のため機能面・安定性については事前に十分な検証が必要 仮想化環境のどこでルータが動作しているのか追いかけるのが困難な可能性がある 現時点ではヘッダ書き換え+α程度の機能しか提供されていない模様 |
表1 仮想ルータのメリット、デメリット |
前節で、各実現方法のメリットとデメリットをまとめましたが、それぞれの実現方法には一長一短があり、単純に「どちらが優れているか」といった議論はできないと考えています。そこでここでは、各実現方法ごとにいくつかのユースケースを示したいと思います。
背後にたくさんのVMが存在し、それらのパケットを大量に処理しなければならないルータや、主に流れるパケットが輻輳制御の働かないUDPで、しかもサイズの小さいパケットを大量に処理しなければならないルータ、遅延や遅延変動を許容することができないルータの場合、ハードウェア型の仮想ルータの方が適している可能性があります。
仮想化環境上のサーバ群とオンプレミス環境をIPSecトンネルで接続するためのルータの場合、ソフトウェア型の仮想ルータが適しています。このような使い方の場合、一般的にはそれほど単位秒あたりのパケット処理性能は求められず、またIPSecの暗号処理は比較的仮想化環境の得意とする処理で、CPUリソースの有効利用にもつながります。
また現時点では、複雑なフィルタリングや帯域制御、BGPやOSPFといったルーティングプロトコルを用いた処理は、ソフトウェア型の仮想ルータの方が適している可能性があります。これらの機能は分散エッジ型ではまだ実現が難しい可能性があります。
比較的高負荷なネットワークでかつ複雑な機能が要求されない場合は、分散エッジ型の仮想ルータが適しています。ソフトウェア型の仮想ルータと比較し、単位秒あたりのパケット処理性能は分散エッジ型の方が優れているであろうこと、ネットワーク構成によらず無駄なとトラフィックの発生を防げるであろうことから、利用したい機能が満たされているのであれば分散エッジ型はとても魅力的な方法と言えます。
私は以下の理由から(現時点では)ソフトウェア型の仮想ルータに一日の長があると考えています。
唯一の不安材料は、あまり性能が出ないのではないかという点ですが、この点に関してはここ数年で目覚ましい改善が見られており(例えばKVM/QEMUではドライバや割り込みのエミュレーションをユーザーランドプロセスからカーネル内に移すことで、処理性能を大幅に改善しています)、使い方さえ間違えなければ問題になることはほぼないのではないかと考えています。
ただし、分散エッジ型の仮想ルータも今後急速に開発が進むものと思われます。もし分散エッジ型が機能面や安定性の面でソフトウェア型に追いついた時は、メンテナンス性や性能面でとても魅力的です。個人的には今後は分散エッジ型の仮想ルータがどのように進化していくのか、非常に興味と期待を持っています。
Copyright © ITmedia, Inc. All Rights Reserved.