2014-‐‑‒09-‐‑‒08 ERATO湊Pワークショップ BDD/MDD を⽤用いた パケット処理理⼿手法 井上 武(NTT未来ねっと研究所) Joint work with • 間野 暢, ⽔水⾕谷 后宏, 明⽯石 修 (NTT未来研) • 湊 真⼀一 (北北⼤大) Copyright©2014 NTT corp. All Rights Reserved. アウトライン パケット コンピュータNW • パケット分類処理理とは • 新しいNWアーキテクチャにおける課題 • BDD/MDD演算を⽤用いた提案⼿手法 • MDD(multi-‐‑‒valued decision diagram) • 実験結果 Copyright©2014 NTT corp. All Rights Reserved. 2 パケット分類処理理とは • ルータのパケット処理理⽅方法を決定するNWの基本機能 • 転送先ルータの選択 • セキュリティのためのアクセス制御 • 通信トラフィックの統計情報収集 • パケットにマッチする最上位ルールを選択 • ルール:パケットヘッダのビットパターン → 処理理⽅方法 • ヘッダ:IPアドレス,TCPポートなど(5-‐‑‒12種,数百ビット) • ビットパターン:各フィールドを 範囲(prefix)で指定 IPアドレス TCPポート 処理理⽅方法 1.1.1.0〜~7 80 ルータ1に転送 1.1.1.0〜~255 any 廃棄 1.1.2.0〜~255 <1024 ルータ1に転送 any any ルータ2に転送 Copyright©2014 NTT corp. All Rights Reserved. 3 伝統的なパケット分類⼿手法 • ⾼高い性能要件 • 数⼗十万ルール • 毎秒 10M パケット(100 nsec/パケット) • Trie ルール数がさほど多くないことを利利⽤用 • ルール集合をフィールド条件に従って分割していく • 葉葉に複数のルールが残るときは,線形検索索で最上位ルールを選択 • 段数が少なく,CPUキャッシュに収まるくらい⼩小さいこと IP∈1.1.2.0〜~255 {4} 1024 {1,2,4} TCP=80 {3,4} {2,4} Trie 80 ルータ2 {3,4} IP=1.1.1.0〜~255 ルータ1 TCP {ルール1,2,3,4} IP {1,2,4} Copyright©2014 NTT corp. All Rights Reserved. 4 ヘッダ空間の分割 新しいNWアーキテクチャへの移⾏行行 • インターネットは分散アーキテクチャ • 各ルータが⾃自律律的に動作するため,運⽤用管理理が困難だった • 組織内NWのルータは⾃自律律分散でなくてもよいのでは? • SDN(software-‐‑‒defined networking)へ • コントローラでNW全体を集中管理理し,ルータを制御する • NW全体を⾒見見渡して⾏行行う⾼高度度な運⽤用管理理がやりやすくなる • 例例)品質保証,設定検証,故障箇所特定(下図) パケット観測 観測パケットに期待される挙動 パケットが出ていかない? コントローラ ルータ誤動作によりファイアウォールを 通さなかったので廃棄された,と判明 Copyright©2014 NTT corp. All Rights Reserved. 5 パケット分類の新たな課題(1/3) • 従来は各ルータの処理理⽅方法を決定すれば⼗十分だった A3 A1 Field2 A2 B2 A1 A3 7 Drop 0 C2 B3 C3 7 Drop Field2 7 B1 B2 B1 B3 0 0 Field1 7 C Drop C1 C3 C2 A2 B Field2 A C1 0 0 Field1 0 7 Field1 7 各ルータのヘッダ空間 (3ビット×2フィールド) Copyright©2014 NTT corp. All Rights Reserved. 6 パケット分類の新たな課題(2/3) • ルータ単体の処理理⽅方法ではなく,NW全体での経路路ごと にパケットを分類する必要がある • すると,ヘッダ空間は複雑に細分化される A Drop II A B C B C III A : B C XII A B C NW全体での経路路パターン 7 I II III Field2 I 0 0 VII IX IV V VI VIII XXI Field1 XII 7 細分化されるヘッダ空間 Copyright©2014 NTT corp. All Rights Reserved. 7 パケット分類の新たな課題(3/3) • ヘッダ空間は数億にも(!)細分化される • 従来の trie はルール集合を分割しながら構築していくため, 肥⼤大化してしまう(CPUキャッシュやメモリから溢れる) Field2 7 I II III 0 0 • 既存研究と同程度度の性能要件(10M/s)を満たせないと, パケットロスや障害の⾒見見逃しなどの問題が発⽣生する VII IX IV V VI VIII XXI Field1 XII 7 数億ルール IPアドレス TCPポート NW全体での経路路 1.1.1.0〜~7 80 {…} : : {ルール1,…,億} IP=1.1.1.1 … {…} … この巨⼤大な表を作ったら負け なお,経路路パターン数は数万でおさまる Copyright©2014 NTT corp. All Rights Reserved. 8 アイデア:BDD/MDD演算の利利⽤用 • NW全体のヘッダ空間を,巨⼤大なルール表にしてはならない • 各ルータのルール表を直接「演算」して,NW全体を表すデー タ構造を構築できないか A3 Field2 A2 B2 A1 A3 Drop 0 0 BDD BDD 7 Field1 BDD 7 C2 B3 B2 7 B1 B3 0 0 7 I II III C C3 Drop Field2 7 B BDD BDD7 Field1 BDD Field2 A1 B1 Drop C1 C3 C2 A2 Field2 A C1 0 0 BDD BDD7 Field1 BDD 演算 0 MDD 0 VII IX IV V VI VIII XXI XII 7 Field1 • まず,ルールごとに⼩小さな BDD を作り,BDD の演算を利利⽤用 して⼀一つのデータ構造にまとめたらいいのではないか • 複数の値(経路路パターン)に対応づけたいので,ゴールは MDD(葉葉種の多い BDD)にしよう Copyright©2014 NTT corp. All Rights Reserved. 9 パケット分類BDD/MDDの構築(1/3) 1. ルール表の各エントリにマッチする BDD を構築する • ヘッダの各ビットを変数とする 2. 直積のような操作をし,経路路パターンごとにヘッダ空 間を表す別の BDD(次スライド)を構築する A3 A A1 B B2 B3 C3 BDD BDD 直積 Field1 Field2 Action Field1 Field2 Action [0,3] [2,5] B2 [2,2] [1,3] C2 [4,5] * B1 [4,5] * C1 [7,7] [1,3] B3 [6,7] * C3 * * Drop * * Drop 直積 Copyright©2014 NTT corp. All Rights Reserved. … 処理理⽅方法 廃棄 A1から転送 A3から転送 A2から転送 C C2 … Field2 [3,4] any any any B1 … Field1 any [4,5] [6,7] [0,3] A2 C1 10 パケット分類BDD/MDDの構築(2/3) 2. 経路路パターンごとにヘッダ空間を表す BDD を構築する Field2 7 I II III 経路路 I(⿊黒)のみを 表す BDD I A B C 0 01 0 1 0 21 32 45 43 43 45 45 56 1 0 II A B VII IX IV V VI VIII XXI Field1 XII 7 C …… この BDD をひとつずつ検査して パケットを分類することもできるが, とても遅い Copyright©2014 NTT corp. All Rights Reserved. 経路路パターン(I, …)と同数の BDD 11 パケット分類BDD/MDDの構築(3/3) 3. 経路路パターン(I, …)を葉葉とする MDD に集約する … 01 0 1 21 32 経路路 I の BDD 45 43 43 45 45 56 1 0 0 1 1 3 2 3 3 3 Field2 2 7 I II III 3 0 NW全体の経路路パターンを表すMDD 4 5 5 II III 4 I 4 4 5 5 VI V 4 5 IV VII 4 5 5 5 VIII XI XII 4 0 4 5 VII IX IV V VI VIII XXI Field1 XII 7 5 IX Copyright©2014 X NTT corp. All Rights Reserved. 12 実験:BDD/MDDサイズ(ノード数) • (実験的には)BDD 合計サイズより MDD が⼩小さくなる • ただし,ビット順(変数順)を逆にすると,MDD のほう が⼤大きくなる • MDD は葉葉の種類が多い(〜~数万)ため,suffix ルール (逆順)にするとノードが共有されにくいようだ MDDサイズ アドレス・ポート番号の構造(prefix) 1.E+07 は MDD にとって好ましいようだ ビット正順 ビット逆順 パデュー⼤大NW パデュー⼤大NW 1.E+06 1.E+05 Internet2 スタンフォード⼤大NW 1.E+04 1.E+04 1.E+05 1.E+06 1.E+07 Copyright©2014 NTT corp. All Rights Reserved. BDD合計サイズ 13 ビット集約によるMDDパスの短縮 0 1 • メモリと引き替えに⾼高速化 2 • Kビット集約:パス⻑⾧長 1/K倍 • 2K 枝:メモリ∝2K/K 4 • ノード数 1/K倍 • ⼦子/ノード 2K K=2 0,1 5 5 II III 1 2 3 3 6ホップ 4 4 4 I 5 5 VI V 3 4 5 IV VII 1 2 3 0 K=8 にしても 16倍ですむ 21/1 = 2 22/2 = 1 24/4 = 4 28/8 = 32 3,4 2,3 1 3 4 4 4 5 5 5 5 VIII XI XII IX 5 X K=2 1,2 0,1 0 3 2 3 3,4 2,3 3,4 2,3 3,4 2,3 3ホップ 3 2 0 1 5,6 4,5 3 2 3 III 0 2 1 3 5,6 4,5 1 0 1 2 II 3 2 1I 0 4 IV 3 0 0 5,6 4,5 5,6 4,5 2 1 1 2 2 0 1 3 0 5,6 4,5 3 1 2 3 5,6 4,5 0 3 1 Copyright©2014 NTT corp. All Rights Reserved. 5 V 6 VI 7 VII 1 3 8 VIII 10 X 2 2 5,6 4,5 0 0 14 23 9 IX 5,6 4,5 1 0 3 11 XI 実験:メモリ使⽤用量量と分類速度度 • メモリ使⽤用量量と分類速度度を評価(ビット集約 K=8) • CPUキャッシュを効果的に利利⽤用できるほどのメモリ使⽤用量量 • BDD/MDD 変換中のメモリ使⽤用量量は数⼗十倍(<2GB)で問題ない • ⽬目標である 10M/s を超える分類速度度を達成 60 50 40 30 20 10 0 メモリ使⽤用量量 [MB] 50 40 30 20 10 0 分類速度度 [M packet/s] ⽬目標 Copyright©2014 NTT corp. All Rights Reserved. 15 まとめ • 新しいNWアーキテクチャに適したパケット分類 ⼿手法を提案した • 各ルールを表す BDD の集合から,演算によって MDD を構築する • 実験により,毎秒 10M パケットの分類速度度を確 認した • 今後の予定 • 信学会IN研(⽊木曜),IEEE ICNP(2014/10)発表 • ドラフト版 http://bit.ly/pcsdn • 実⽤用化に向けた研究開発も進展中 Copyright©2014 NTT corp. All Rights Reserved. 16
© Copyright 2024 ExpyDoc