DPI (Deep Packet Inspection)入門

ビジネス推進本部 第1応用技術部
コアネットワークチーム
松本 考之 安田 賢治

IPトラフィックをどのように管理するか

IPトラフィックを管理するには、まずIPトラフィックの概要、つまりこのIPトラフィックは「どこに」、「何を」、「どのように」通信しようとしているのか、などのIPトラフィックの特徴を把握し、識別する必要があります。
その上で、あらかじめ決定しておいたポリシーに従って、IPトラフィックを制御し、必要な管理機能や、セキュリティ機能を提供します。

IPトラフィックの運用

DPI技術は以下の図のようにcyclicな運用が帯域制御メーカーから提唱されています(図1)

・誰が : 誰が
・分 類 : どんなプロトコル/アプリを
・分 析 : 筐体内でのプロトコル別統計は分かった
・レポート : 何時(からいつまで)
・制 御 : 流した(結果)しぼった(ブロックした)
無題49
図1:DPI cyclic運用図

IPトラフィックの特徴を識別する方法

IPトラフィックの特徴の例として挙げた「どこに」、「何を」、「どのように」を識別する方法はシンプルで容易なものから、複雑で高度なものまで、様々な方法が開発、提供されています。
例えば、「どこに」という情報はおなじみの宛先IPアドレスを利用して識別することができ、「どこに」をキーワードとしてIPトラフィックを識別し、特定のIPアドレス宛の通信を遮断することで、一つの立派な管理機能を提供していることになります。
また、「何を」「どのように」といった要素もICMPのタイプやコード、TCPのポート番号などを識別することで、様々なIPトラフィックの特徴や用途を把握することができます(図2)
無題50

図2:TCPのポート番号を利用したトラフィック識別の例

DPIを利用したIPトラフィックの識別

このような既存のIPトラフィック識別を利用した管理やセキュリティ機能の提供は、IPトラフィックの黎明期から行われてきました。
しかし、IPトラフィックが普及していくにつれて、さらに高度なトラフィック識別機能の要求や、悪意をもったユーザによるIPトラフィックの偽装、といった要求や問題が発生するようになりました(図3)
無題51

図3:TCPポート番号を変更してトラフィックを偽装する例

そのような高度なトラフィック識別機能や、悪意をもったユーザによる既存の識別機能の回避を防ぐために用いられるテクノロジがDPIです。

DPIは既存のIPトラフィック識別機能がIPアドレスやTCPのポート番号など、主にOSI参照モデルの第4層までをトラフィック識別の要素としていたのに対し、OSI参照モデルの第5層以降、TCP/IP参照モデルのアプリケーション層の内容を参照してIPトラフィックの識別を行います。

OSI参照モデルの第4層までを識別する場合、IPやTCPヘッダにあらかじめ定義されたフィールド(IPアドレスやポート番号)を読み取りますが、DPIが参照する第5層以降のデータは通信データそのものを含むため、アドレスやポート番号に比べて非常に多彩なパターンの情報を読み取り、識別する必要があります。
このような多彩なパターンの識別のためにDPIではアンチウィルスソフトウェア等で利用されている、シグネチャによるパターンマッチを利用してトラフィックの識別を行っています。

このようなシグネチャによるパターンマッチは非常に負荷の高い識別機能となりますが、高い負荷と引き換えにより高度なトラフィック識別機能を提供することができます。
加えて、トラフィック識別の精度も向上することにより、悪意のあるユーザによるトラフィックの偽装を防ぎ、そのようなユーザからのIPトラフィックも正しく識別することができるようになりました(図4)
無題52

図4:DPIによるトラフィック識別の例

DPIによるトラフィック識別の例

httpトラフィックを識別対象として、DPIを利用しない既存のトラフィック識別例とDPIを利用する場合のトラフィック識別例を挙げます。
DPIを利用しない場合、OSI参照モデルで第4層までの情報でトラフィック識別を行います。httpトラフィックの場合、識別はTCPのポート番号80番であることを検出してhttpトラフィックである、と判断します。
DPIを利用する場合、TCPのポート番号に加えて、アプリケーション層のデータも参照し、シグネチャを利用したパターンマッチングによってトラフィック識別を行います。
さらに、アプリケーション層のデータの特徴を識別することで、httpを利用したWebメール通信なのか、動画通信なのか、IPメッセージングサービスなのか、等、通信の用途まで識別することができます。

また、このようなアプリケーション層のデータを直接参照してトラフィック識別を行うことで、悪意あるユーザがTCPポート番号80番を利用してファイル共有アプリケーションを動作させる等、トラフィック識別機能の迂回や偽装、誤判定を防ぎ、正しくトラフィック識別を行うことができるようになります。

DPIのシグネチャについて

DPIがトラフィックを正しく識別するために利用するシグネチャは変化するIPトラフィックを利用したアプリケーションに対応すべく、常に更新されています。
多くのDPI製品ベンダーでは月に複数回の頻度でシグネチャの更新を行い、ユーザに対して対応する(=識別することができる)トラフィックの種類や内容を公開しています。

暗号化通信に対する対応

アプリケーション層のデータ部分を参照するDPIでは、SSL/TLS等で暗号化されたhttpsやHTTP/2のトラフィックを識別することが困難です。
各DPIベンダーは暗号化されたアプリケーション層データだけではなく、SSL/TLSシーケンス中の情報や、パケット長、トラフィックパターン等をシグネチャ化してトラフィック識別機能を提供しています。
また、将来的にはユーザに明示的に許可を得た上でDPI装置がSSL/TLS通信を終端して一度暗号化を解除した上で、トラフィック識別を行う方法も検討されています。
Explicit Trusted Proxy in HTTP/2.0

DPI機能の提供形態

DPI機能はルータ等のネットワークデバイスで利用できる機能として発展してきました。
しかし、IPトラフィックアプリケーションの高度化に伴い、それらを識別するDPI機能が必要とするCPU処理能力も増大しています。
そのため、多くのベンダーはDPIに必要なCPU処理能力を確保するため、DPI専用の物理アプライアンス装置を開発してきました。
このような物理アプライアンスで提供されるDPI機能は、あらかじめ定義された様々な定型処理を効率よく実施できるように最適化されていますが、それと引き換えに機能の柔軟性を欠き、様々なユーザの要求に対応するのが難しくなっています。

そのため、DPIベンダーはDPI機能の設定、提供方式を、定型処理から、プログラマブルで柔軟な設定が可能な提供形態に移行しています。
プログラマブルにDPIの機能を利用可能な製品は、柔軟性の高さゆえに導入時の設計難易度が高くなることがありますが、そのかわり全てのCPU処理能力を必要な機能提供だけに絞ることが可能となります。
その結果、機器の投資に対するリターン、即ち利用できる機能とパフォーマンスの大幅な向上を見込むことができるようになりました。

また、このようなプログラマブル、即ち物理アプライアンスからソフトウェア化を果たしたDPI機能は、クラウドに構築されたインフラにDPI機能を提供する際に、非常に容易にNFVとして機能提供することが可能になりました(図5)

無題53

図5:NFVとしてDPIを利用する場合の例

仮想化されたDPIを利用する場合、集約度が高いほど仮想化による効率化、コスト集約のメリットが大きくなります。
上図のように、各ユーザに設置されていた物理アプライアンスDPI装置を、サービスプロバイダーの仮想化基盤に集約して移設し、DPI機能はサービスプロバイダーが各ユーザにサービスとして提供します。
このようなDPI機能のクラウド化、サービス化によって、仮想化のメリットを最大化し、それによるコスト低減効果をサービスプロバイダーも、サービスプロバイダーのDPIサービスを利用するユーザも享受することができるようになります。

DPIによるトラフィック識別の利用方法

このコラムの冒頭にある通り、メディアインフラとして利用されているIPトラフィックにはより高度な管理機能や、セキュリティ機能が必要とされています。
DPIによりIPトラフィックの種類、用途、利用しているアプリケーション(FacebookやYouTube等)まで識別することが可能になると、アプリケーションごとのトラフィックの許可、遮断、帯域制御といった管理、セキュリティ機能を提供することができるようになります。
また、ISP等の通信事業者は、DPIによって識別した特定のアプリケーション通信に対する課金の有無や、コンテンツキャッシュによるユーザへの高いQoEの提供を特定のアプリケーションに対して提供するサービスなどに利用することができます。

まとめ

1. IPトラフィックを効果的に管理するには、IPトラフィックの用途や目的を正確に識別する必要がある。

2. DPIを利用することで、高い精度でIPトラフィックの識別を行い、トラフィック識別を条件とした管理機能、セキュリティ機能の提供が可能になる

3. DPIは柔軟な機能提供を可能とするため、既存の定型機能に加えて、プログラマブルな設定方法を採用している。そのため、全てのハードウェア資源を必要とする機能の提供だけに使うことができる。

執筆者プロフィール

松本 考之
ネットワンシステムズ株式会社 ビジネス推進本部 第1応用技術部 コアネットワークチーム
所属
1998年にネットワンシステムズ入社
SNAを皮切りに低レイヤから徐々にレイヤを上げながら、様々なプロトコルや製品を担当し、現在はハイレイヤー製品であるDPIプロダクトを担当
9600bpsの記憶を持ちながら100Gbpsの天下を眺め、留まることのない技術革新の世界を堪能している
・CCIE #7970

安田 賢治
ネットワンシステムズ株式会社 ビジネス推進本部 第1応用技術部 コアネットワークチーム
所属
ビジネス推進本部 第1応用技術部 コアネットワークチームのJuniperルータ担当として従事
過去に営業部経験を持ち、モバイルビジネスにも精通している

イベント/レポート

pagetop