NTT東西地域会社のNGN(次世代ネットワーク)を構築する上で最も重要なルーター「IPエッジ」。そこには複雑なサービス制御と10Gビット/秒という高速処理の両立が求められる。IPエッジに採用された米シスコの「ASR 1000」はどのようにしてその両立を実現したのか,開発責任者がその秘密を明かした。
シスコが3月に発表したASR 1000は,主にNGNのエッジ向けルーターとして開発された。NTTのNGNに特化しているわけではなく,通信事業者によってアーキテクチャが異なるNGN全般に対応できる設計になっている。
ASR 1000の開発責任者であるステファン・ダイカーホフ ミッドレンジ・ルーティング・ビジネス・ユニット副社長兼ゼネラル・マネージャによれば,シスコはASR 1000の開発に当たり,主要な通信事業者から様々なフィードバックを受け,それぞれのアーキテクチャに依存せずに利用できるように設計したという。実際,英BTのNGNである「21st Century Network」(21CN)にもASR 1000が導入される予定だ。
1チップの大規模コンピューティング
ASR 1000の最大の特徴は,多数のユーザーによる双方向のマルチメディア・コミュニケーションなど,NGNで見込まれる大容量のトラフィックをさばきつつ,複雑なセッション管理を柔軟にこなす処理能力である。
例えばNTTのNGNでは,IPエッジは単にパケットを転送するだけはなく,SIP(session initiation protocol)などのプロトコルを使って端末やサーバーと連携し,一つひとつのセッションに対して帯域を確保する(図1)。こうした機能は「SBC」(session border controller)と呼ばれる。つまり,NGNの最大の特徴である「帯域確保型通信」はSBCによって実現されている。
図1●NGNの構成とASR 1000の配置 ASR 1000は,NGNのエッジ部に置かれ,NGNに出入りするすべてのIPパケットの制御を受け持つ。様々なサービスを実現するための複雑な制御機能と高い転送能力の両立が求められる。 [画像のクリックで拡大表示] |
SBCは従来のIP電話でも使われていた。ただ,実装方法は汎用プロセッサ・ベースのアプライアンスで動作するソフトウエア処理だった。
これに対してNTTのNGNでは,エッジ・ルーターには,(1)通信内容に応じてセッションごとに割り当て帯域を動的に変える,(2)1セッション当り10Mビット/秒クラスの大容量通信を扱う──という厳しい要件が課される。従来のようなソフトウエア処理では,仕様変更に柔軟に対応できるが,NGNに必要な高速処理ができない。「NTTが求める,2000万程度の規模のユーザーに双方向マルチメディア・コミュニケーションを提供できるネットワークを構築するには,全く別次元のルーターが必要になる」(ダイカーホフ氏)。
NTTのNGNに限らず次世代のネットワークでは,いずれ同じような条件を課されるはず。そこでシスコがNGN向けエッジ・ルーターの開発に際して選択した方法は,40個もの汎用プロセッサを1チップに集積するという“力技”だった。いわば,1チップで大規模な並列コンピューティングを実装し,ソフトウエア処理を高速実行できるようにしたのだ。「将来,様々なサービスを追加しても,パケット処理性能を落とさないようなルーターを開発した」(ダイカーホフ氏)。
160のパケットを同時に処理
こうした通信事業者のニーズに応えるためにシスコがASR 1000のパケット処理エンジンとして新規開発したのが,「QuantumFlow Processor」(QFP)というチップセットである。厳密には,パケット処理全般を受け持つ「パケット・プロセッサ」と,I/OインタフェースとQoS処理を受け持つ「トラフィック・マネージャ」の2チップで構成する(写真1)。前者のパケット・プロセッサには,40個のプロセッサ・コア(PPE:packet processing engine)が集積されている。
写真1●QFPを搭載したASR 1000向けモジュール IPパケットのフォワーディングとQoS処理を受け持つ「エンベデッドサービス プロセッサ」(ESP)というモジュールの基板写真。左下の大きな二つのチップがQFPである。 |
トラフィック・マネージャはパケットを受け取ると,パケット・プロセッサ内のバッファに入れる(図2の(1))。ここでは,パケット・ヘッダーだけではなく,パケット全体が検査対象となる。続いて,パケット処理のために空いているスレッドの一つが割り当てられる(同(2))。パケット・プロセッサのPPEは,同時に4スレッドを,それぞれ完全に独立して動かせる。
図2●ASR 1000の心臓部QFPでの処理内容 ASR 1000の処理は,「QuantumFlow Processor」(QFP)というチップセットが実行する。パケットの転送処理を担う「パケット・プロセッサ」(コードネームはPopeye),QoS処理を受け持つ「トラフィック・マネージャ」(コードネームはSpinach)の2チップ構成である。 |
つまり,同時利用できるスレッドが160あり,一度に処理できるパケットも160個ということになる。これが,QFPがNGNにおける高速処理を支えられる理由である。さらに,このPPEは,C言語を使って機能を実装できるようにした。通信事業者ごとのNGNアーキテクチャに合わせて容易に機能を変更できるため,複雑なサービス制御機能も実装しやすい。
パケット・プロセッサで処理を終えたパケットは,トラフィック・マネージャに渡される(同(3))。トラフィック・マネージャは,パケット・プロセッサの処理結果に応じてパケットをキューに入れる。そして,割り当て帯域や優先度などに応じてパケットをキューから取り出し,外部に転送する(同(4))。
パケット・プロセッサからトラフィック・マネージャを独立させたことで管理できるキューの数が増えたことも,ASR 1000の性能向上に役立った 。トラフィック・マネージャは1チップで12万8000個のキューを管理でき,多様なポリシーに基づいてQoS制御できる。