F · Copyright©2016 NTT corp. All Rights Reserved. n MÊ [ • » qg bæq • tg B å÷ ñoMn 0 1...

27
Copyright©2016 NTT corp. All Rights Reserved. ¯ªÄnĈÜĠķ}ĜńljŬ}ãÜƂ nl u BGGƕĉy}ŨźĆ (VPUNA4 9UR= BGGƕĉy}ŨźĆH -NCRA;[[ Ûá Ǐ ďļǍDž ƒÏLJƝ æŃ Ƌ BGGƕĉy}ŨźĆ *().))** ĤƧF ƄƯşŦŕðƈ·Ã¢

Transcript of F · Copyright©2016 NTT corp. All Rights Reserved. n MÊ [ • » qg bæq • tg B å÷ ñoMn 0 1...

Page 1: F · Copyright©2016 NTT corp. All Rights Reserved. n MÊ [ • » qg bæq • tg B å÷ ñoMn 0 1 1 2 I II III IV V

Copyright©2016NTTcorp.AllRightsReserved.

n

l BGG

VPUN 9UR BGG H N R [[ BGG

*(). )) ** F

Page 2: F · Copyright©2016 NTT corp. All Rights Reserved. n MÊ [ • » qg bæq • tg B å÷ ñoMn 0 1 1 2 I II III IV V

Copyright©2016NTTcorp.AllRightsReserved.

Fn ” ”

” ”•  )(( q

” t u“

•  ”•  n fi

AnEfficientFrameworkforData-planeVerificaHonwithGeometricWindowingQueries,inproc.ofIEEEInternaHonalConferenceonNetworkProtocols,2016.

Page 3: F · Copyright©2016 NTT corp. All Rights Reserved. n MÊ [ • » qg bæq • tg B å÷ ñoMn 0 1 1 2 I II III IV V

Copyright©2016NTTcorp.AllRightsReserved.

B kn ”

n 8::

•  t u• 

n

Page 4: F · Copyright©2016 NTT corp. All Rights Reserved. n MÊ [ • » qg bæq • tg B å÷ ñoMn 0 1 1 2 I II III IV V

Copyright©2016NTTcorp.AllRightsReserved.

n•  n

r k s• 

n r s

A1�

B�A2�

A3�

B1�B2�

B3�C3�

C2�

C1�A� C�

Field1� Field2� Action�

*� [3,4]� Drop�

[4,5]� *� A1�

[6,7]� *� A3�

[0,3]� *� A2�

Field1� Field2� Action�

[0,3]� [2,5]� B2�

[4,5]� *� B1�

[7,7]� [1,3]� B3�

*� *� Drop�

Field1� Field2� Action�

[2,2]� [1,3]� C2�

[4,5]� *� C1�

[6,7]� *� C3�

*� *� Drop�

A� B� C�I�Drop�A� B� C�II�

A� B� C�III�

XII�

:�

A� B� C�

Field1�Field2�

0� 7�0�

7� I�II�III�IV�

V�VI�

VII�

VIII�

IX�

X�XI�

XII�

(3bit)

(3bit)

Page 5: F · Copyright©2016 NTT corp. All Rights Reserved. n MÊ [ • » qg bæq • tg B å÷ ñoMn 0 1 1 2 I II III IV V

Copyright©2016NTTcorp.AllRightsReserved.

n

P d D uE B C•  n

•  r k s•  l n

•  l

)1* ( * ( *,20(

B n B

•  )1* ( * ( *,20( B n m•  B n )1* ( * ( *,20( m

Page 6: F · Copyright©2016 NTT corp. All Rights Reserved. n MÊ [ • » qg bæq • tg B å÷ ñoMn 0 1 1 2 I II III IV V

Copyright©2016NTTcorp.AllRightsReserved.[Yang16]H.YangandS.S.Lam,IEEE/ACMTrans.Netw.,2016.

LKN T).M•  t u

•  ” r s ”•  k n n

n

7

f ] tr z s t

89

” *)(, n r- a Rspp r s)(

“r n s p r *)(,s

•  r s4 e , , f•  7 9 4 e , f

]a[ VR NPR

Page 7: F · Copyright©2016 NTT corp. All Rights Reserved. n MÊ [ • » qg bæq • tg B å÷ ñoMn 0 1 1 2 I II III IV V

Copyright©2016NTTcorp.AllRightsReserved.[Kazemian13]P.Kazemianetal.,USENIXNSDI,2013.

n

•  n r k n s•  )1* ( * ( *,20( B n•  B n )1* ( * ( *,20(

L NdRYVN ) M•  ”•  ”• 

U UH

r s

n

r s

Page 8: F · Copyright©2016 NTT corp. All Rights Reserved. n MÊ [ • » qg bæq • tg B å÷ ñoMn 0 1 1 2 I II III IV V

Copyright©2016NTTcorp.AllRightsReserved.

n fi ”n

Page 9: F · Copyright©2016 NTT corp. All Rights Reserved. n MÊ [ • » qg bæq • tg B å÷ ñoMn 0 1 1 2 I II III IV V

Copyright©2016NTTcorp.AllRightsReserved.

n r s

VY VPN V[ N R N V[

}

U U

n

•  2 )1* ( * ( *,20( B n m•  }2 B n )1* ( * ( *,20( m

l ” ”

k

Page 10: F · Copyright©2016 NTT corp. All Rights Reserved. n MÊ [ • » qg bæq • tg B å÷ ñoMn 0 1 1 2 I II III IV V

Copyright©2016NTTcorp.AllRightsReserved.

” r s

U U

n

78

9

•  PW2 W ”

D 4 e , fRρ 4 e f

•  Rρ2 ρ

t

W

l W ρ 8 9 ”

:{ } { , }( )

Rρ PW �

Page 11: F · Copyright©2016 NTT corp. All Rights Reserved. n MÊ [ • » qg bæq • tg B å÷ ñoMn 0 1 1 2 I II III IV V

Copyright©2016NTTcorp.AllRightsReserved.

” r } s

} U U

•  PW2 W ”

•  Rρ2 Rρ r ρ “ s

t

Rρ PW �

l ρ 8 9 W ”

n

78

9

PW 4 e , fRρ 4 e , f

W �

2 { , } { , }( )

I Rρ A PW B

Page 12: F · Copyright©2016 NTT corp. All Rights Reserved. n MÊ [ • » qg bæq • tg B å÷ ñoMn 0 1 1 2 I II III IV V

Copyright©2016NTTcorp.AllRightsReserved.

” n n

“ ” ”

Rρ � PW � } Rρ � PW � Rρ � PW � Rρ � PW �

Rρ� LKN T).M

Rρ� o Rρr wsPW � r >9BD ” sPW � mr ” ” ws

lRρ PW

w Rρ, PW “

[Yang16]H.YangandS.S.Lam,IEEE/ACMTrans.Netw.,2016.

Page 13: F · Copyright©2016 NTT corp. All Rights Reserved. n MÊ [ • » qg bæq • tg B å÷ ñoMn 0 1 1 2 I II III IV V

Copyright©2016NTTcorp.AllRightsReserved.

” r } l ys

} U U

•  QW2 W

tRρ PW �

l ρ 8 9 W ”

n

78

9

QW 4 e fRρ 4 e f

W �

:{ }{{ }r s

Rρ { QW �

•  Rρ2 ρ

Page 14: F · Copyright©2016 NTT corp. All Rights Reserved. n MÊ [ • » qg bæq • tg B å÷ ñoMn 0 1 1 2 I II III IV V

Copyright©2016NTTcorp.AllRightsReserved.

” n n r ys

“ ” ”•  O(|Rρ| + |PW| + |QW|) ” r n s

Rρ � PW � } Rρ � QW � Rρ � PW � Rρ � QW �

Rρ� LKN T).M

PW � r >9BD ” sQW � m

lQW

l ” r n n s

[Yang16]H.YangandS.S.Lam,IEEE/ACMTrans.Netw.,2016.

Page 15: F · Copyright©2016 NTT corp. All Rights Reserved. n MÊ [ • » qg bæq • tg B å÷ ñoMn 0 1 1 2 I II III IV V

Copyright©2016NTTcorp.AllRightsReserved.

k �

U U •  W� �

•  ” 8:: n ” L> [aR),M

•  8::

n

PW={ , },

W �

QW={ }

l8:: �

t - “ *)(,

pU U r k n s

[Inoue14]T.Inoueetal.,IEEEICNP,2014.

Page 16: F · Copyright©2016 NTT corp. All Rights Reserved. n MÊ [ • » qg bæq • tg B å÷ ñoMn 0 1 1 2 I II III IV V

Copyright©2016NTTcorp.AllRightsReserved.

PW( W���"��0���2)•  ' +.#�%��W �!)��� �5*�6���

•  W !��� r s

QW( W �1&�0���2)•  BDD

•  rangetree W

0

1 1

3

2

3

2

4 4

3

4 4

33

I

5 5

4

VII

5 5

444

II III

5 5

VIII IX

5555

VI V IV XXIIXI

0

1

3

III�

3

II� IV�

Adecisiondiagram6-bit 12

PW={�,�},�

W �

QW={�} �

/-��34�

W �

W <=>

Page 17: F · Copyright©2016 NTT corp. All Rights Reserved. n MÊ [ • » qg bæq • tg B å÷ ñoMn 0 1 1 2 I II III IV V

Copyright©2016NTTcorp.AllRightsReserved.

a

o•  /2 LKN T).M “•  *2 2 =RN R F NPR 7 N c V L NdRYVN ) M

- 2eV 1 -. ). -0 ).,. */ .

S [ ! )*. ( /-/ ) . ,(- .* :32bit, :104bit

“ ”

nU U n n *{0..1023},TCP

[Yang16]H.YangandS.S.Lam,IEEE/ACMTrans.Netw.,2016.[Kazemian13]P.Kazemianetal.,USENIXNSDI,2013.

Page 18: F · Copyright©2016 NTT corp. All Rights Reserved. n MÊ [ • » qg bæq • tg B å÷ ñoMn 0 1 1 2 I II III IV V

Copyright©2016NTTcorp.AllRightsReserved.

(1/2)

n t•  Rρ PW�(,������

Rρ PW�$����•  16p120

PWH QW (Purdue) 1

10

100

1000

10000

100000

1x106

Internet2 Stanford PurdueTi

me

[us]

Our methodE-APVHassel-C

120

•  =N R 9 Da aR

sPW � ** / )( 0(QW � )0 1 ) (,

(

Page 19: F · Copyright©2016 NTT corp. All Rights Reserved. n MÊ [ • » qg bæq • tg B å÷ ñoMn 0 1 1 2 I II III IV V

Copyright©2016NTTcorp.AllRightsReserved.

(2/2)

10

100

1000

10000

100000

10 100 1000 10000 100000 1x106 1x107

Tim

e [s

]

# of tests

Our methodE-APV

10

18

t (Purdue)• 

(7M) ”

•  Rρ PW •  10

Page 20: F · Copyright©2016 NTT corp. All Rights Reserved. n MÊ [ • » qg bæq • tg B å÷ ñoMn 0 1 1 2 I II III IV V

Copyright©2016NTTcorp.AllRightsReserved.

•  ”r n n s

•  •  n n )( ”

r•  n 3 Y ”• 

Page 21: F · Copyright©2016 NTT corp. All Rights Reserved. n MÊ [ • » qg bæq • tg B å÷ ñoMn 0 1 1 2 I II III IV V

Copyright©2016NTTcorp.AllRightsReserved.

0

1 1

3

2

3

2

4 4

3

4 4

33

I

5 5

4

VII

5 5

444

II III

5 5

VIII IX

5555

VI V IV XXIIXI

A:: m•  Aa V R YV N OV N c :RPV V[ :VNT NY•  r n s

Field1�

Field2�

0� 7�0�

7� I�II�III�IV�

V�VI�

VII�

VIII�

IX�

X�XI�

XII�

A� B� C�I�Drop�A� B� C�II�

A� B� C�III�

XII�

:�

A� B� C�

G > [aR R N g R UV WV T DNPWR 9 N VhPN V[ S[ < [ON BR b[ W IVRb [S F[S bN R :Rh R BR b[ WV T i >9BD *(),

VR )2 ()(VR *2 ))(

>

VR)

VR*

n

Page 22: F · Copyright©2016 NTT corp. All Rights Reserved. n MÊ [ • » qg bæq • tg B å÷ ñoMn 0 1 1 2 I II III IV V

Copyright©2016NTTcorp.AllRightsReserved.

n• 

•  n

0

1 1

2

IIII II IV V

1

IN

ON

OUTL((( ()(M

n n&

最後に,H⊂=R の判定を行い,ハイパーキューブに含まれるす

べてのパケットが宛先に到達できるかどうかを検査する.図 1

の例において,ハイパーキューブ [0,3], [2,3] について A1 から B2までの到達可能性を検査する.この例では,R = {II,V}かつ H = {II, III, IV,V} なので,H⊂

=R は満たされていない(III と IV のパケットは到達しない).つまりテスト結果は失敗となる.式 (2)を算出するためにはすべての APと交わり判定を行うため,AP 数が数万 [12]にもなると,計算時間がかなり遅くなる可能性がある.

3. 提案アルゴリズム本節では提案アルゴリズムを説明する.3. 1節でMDDを振

り返り,3. 2節でアルゴリズムの入出力を述べ,3. 3節から 3. 5

節までアルゴリズムを説明する.3. 1 MDD

図 2b が示すように,MDD [13] は BDD と同じくひとつの根を持つ無閉路有向グラフだが,2つより多くの終端節点を持つ.それぞれの終端節点はいずれかの AP番号 I, II, · · · , |P | に対応付けられている.この点を除けば,他の特徴は BDDと同じである.MDDは次のような多値関数 F を表す.

F : X → {I, II, · · · , |P |},

パケット x が i 番目の APに属するときのみ,F (x) = i となる.ヘッダ空間全体を表すには複数の BDD が必要だったが,MDDは一つで十分である.MDDは reachability treeと並行して構築・更新できるため,検証時間全体への影響は非常に小さい (実験で確認する).これまでMDDはパケット分類に使われてきた [12].ヘッダ

空間に存在する一つの点 x が与えられたとき,x がどの APに属するかを判定するのは簡単だが,ハイパーキューブの場合はそう簡単ではない.3. 2 入 出 力提案アルゴリズムは,MDDを用いて式 (2)を効率よく計算す

る.アルゴリズムの入力は MDD F とハイパーキューブ h で,出力は H である.2. 4節の APVと異なり,ハイパーキューブを表す BDDやMDDを構築する必要はない.3. 3 単一フィールド (上限のみ)

まずは,ヘッダにひとつのフィールドしかなく,下限を 0とし,上限のみを考える.フィールド長は L ビットとする.提案アルゴリズムはMDDを探索しながら各節点の状態を更新する.節点状態は三通りあって,それぞれ IN (範囲内),ON (境界上)とOUT (範囲外) で表す.探索が終わると,INとONの終端節点を返す.図 5 を使ってアルゴリズムのコンセプトを簡単に説明する.

フィールド長を L=3とする.上限は 2であり,x ∈ [000, 010]

において h(x) = ⊤となる.節点の状態は図 5に示す通りに更新される.黒い節点は IN,灰色の節点は ON,そして白い節点は OUT を表す.例えば根から赤い枝までのパスの値は 01 であり,上限の先頭 2ビットと同じであるため,子の状態は ON

になる.もうひとつの例として,終端 Iへは 00*と 011の2つ

0!

1! 1!

2!

III!I! II! IV! V!

1!

IN!

ON!

OUT!

図 5: 単一フィールド用のアルゴリズム Traverse による MDD 探索.

Algorithm 1:単一フィールド用のアルゴリズム Traverse

Input: root

Output: terminals

for each arc in breadth-first order from root dochild, parent ← arc

update child by Table 1return terminals of IN and ON.

表 1: 状態遷移

Child \Parent IN ON OUT

IN IN IN IN

ON IN Table 2 ON

OUT IN Table 2 OUT

のパスがある.011は OUTだが 00*は INであるため,終端 I

の状態は INとする.AP Iとハイパーキューブが完全には一致していなくても,交わりがあれば ,h ∧ fi |= ⊥ が成り立つためである.最終的に,OUTではない終端 I と IIが返される.提案アルゴリズムは意味的にはすべてのパスをチェックする

ことになるが,パスの数は節点よりはるかに多く,実際にすべてのパスをたどるのは効率的ではない.そこで,動的計画法によってMDDを幅優先に探索し,各枝を 2回以上通ることなく同じ結果を得られる.提案アルゴリズムを Traverse と呼ぶことにし,アルゴリ

ズム 1 に示す.まず,根の初期状態を ONとし,その他の節点は仮に OUTとしておく.幅優先に枝をたどりながら,表 1にしたがって子を更新していく.表 1について説明する.親が INであればすでに範囲内であ

ることが確定しているため,枝の値に関係なく子も必ず INになる.親が OUT の場合は範囲外であることが確定しているため,子の状態を変更する必要はない.親が ONの場合,表 2に従って枝と上限を比較する.表 2 を説明する.もし枝と上限の値が同じであれば,子も

ONとなる.枝が上限より小さい場合,子は INになり,そうでなければ変更しない.図 1 の終端 Iへの 0枝のようにビットをスキップしているときは,可能な最小値を比較するためにスキップしたビットを 0とみなす.幅優先にMDDを探索するため,すべての節点は状態が確定

してから親として参照される.また,0/1枝をともに辿ったら,その親は次の探索のために再初期化できるので,初期化のため

— 4 —

表 2: 親が ON 状態であるときの状態遷移

Arc bit \Bound bit 0 1

0 ON IN

1 Child ON

IN!

ONL/U!

OUT!

ONL!

ONU!

0!

1!

2!

3!

I!

0!

2!

1! 1!

3!

I!

(a) Single path to ONL/U! (b) Branch and join at ONL/U!

図 6: 単一フィールドにおいて上下限をともに指定する場合の状態遷移.(a) 範囲を [0000,0011] とする.(b) 範囲を [0011,1100] とする.いくつかの枝と終端節点を省略している.

だけにMDDをたどる必要はない.Traverse は各枝を最大一回しか辿らないため,計算時間

はパスの数ではなく枝の数のみに依存する.また,OUT節点の子をたどる必要はなく,たとえば図 1では右の白い部分を無視できる.実際の検査では比較的狭い範囲を指定することが多く (たとえば 192.0.2.64/29 はアドレス空間のごく一部である),MDDのかなりの部分を無視できる場合も少なくない.3. 4 単一フィールド (上下限あり)

本節では下限も与えられるとする.ふたつの境界を区別するために,下限に乗っている場合を ONL,上限に乗っている場合を ONU とし,ともに乗っている場合を ONL/U とする.根節点は ONL/U に初期化する.先ほどと同様に,各節点は

表 1 に基づいて更新される.親がいずれかの ON 状態で子がINではない場合,子は枝と上下限の値に従って更新される (表2).表 2を参照するとき,もし親が ONL か ONU なら,子は同

じ種類の ON 状態を継承する.親と異なる ON 状態であればONL/U になる.下限の場合は表 2 の 0 と 1 をそれぞれ逆にすればいい.また,枝がビットをスキップしているときは,スキップしたビットを 1にして下限と比べる.もし親が ONL/U

なら,図 6 で示すように,上限と下限の場合をそれぞれ計算してからひとつにまとめる.3. 5 複数フィールド本節では複数のフィールドがある場合を説明する.ここで

L =!

i Li とし,Li は i 番目のフィールド長を表す.単一フィールドアルゴリズム Traverse は,アルゴリズム 2 に示すようにして複数フィールドに拡張できる.フィールドごとにTraverse を呼び出し,前のフィールドで返された終端節点を次フィールドの根節点とする.図 7 に例を示す.3-bit のフィールドがふたつあり,最初の

フィールドの範囲を [000, 010],次を [011, 101]とする.なお,

Algorithm 2: 複数フィールド用のアルゴリズムInput: fields

Output: terminals

roots ← {MDD root}for each field do

terminals ← Traverse(roots)

roots ← terminalsreturn terminals

0

1 1

3

2

3

2

4 4

3

4 4

33

I

5 5

4

VII

5 5

444

II III

5 5

VIII IX

5555

VI V IV XXIIXI

0

1

3

III!

1st field!

2nd field!

図 7: 提案アルゴリズムによる MDD 探索 (複数フィールド).

最初のフィールドは図 5と同じとした.赤縁の節点は,最初のフィールドで到達可能な終端節点であり,同時に次のフィールドの根節点にもなる.これらの節点は,二回目の Traverse を実行するときに ONL/U に初期化する.最終的に {II, III, IV}が返される.複数フィールドの場合も単一フィールドの場合と同じく,計

算時間は枝の数にのみ依存する.OUT節点の下部は無視できるので,ハイパーキューブが小さいほど高速になる.

4. 実 験本節ではアルゴリズムの計算時間を評価する.Internet2 と

スタンフォード大学 [14],パデュー大学 [15] の 3 つのデータを用いた (表 3).FIB は宛先アドレスのみで指定され,ACL

は 5-tuple で指定される.パデュー大学のデータには FIB がなかったので,最短経路に基づいて生成した.実験では到達可能性を検査した.各検査はランダムに選んだインタフェース間で行った.Internet2では prefix のみを指定し,他データでは5-tupleを指定した.提案アルゴリズムと APVを C++で実装した.実験に用いた CPUは Core i7-4790 3.6GHz,メモリサイズは 16GBである.図 8に各検査にかかった平均時間を示す.提案アルゴリズム

は APVより 17倍から 143倍も速かった.これは,APVの計算時間が AP数に大きく依存するのに対し,提案アルゴリズムはひとつのMDDしか探索しないためである.次に,全検査が完了するまで合計時間 (図 3全体の時間) を比

較する.MDD と reachability tree を並行して構築したため,前処理が APVより大きく遅くなることはなかった.前計算にかかる時間はネットワーク更新の規模に依存するが,最悪ケー

— 5 —

1

2

I II

5L>M n7 P OV (

Page 23: F · Copyright©2016 NTT corp. All Rights Reserved. n MÊ [ • » qg bæq • tg B å÷ ñoMn 0 1 1 2 I II III IV V

Copyright©2016NTTcorp.AllRightsReserved.

n

IN

ONL/U

OUT

ONL

ONU

0

2

1 1

3

I

L(()) ))((Mn n

&

最後に,H⊂=R の判定を行い,ハイパーキューブに含まれるす

べてのパケットが宛先に到達できるかどうかを検査する.図 1

の例において,ハイパーキューブ [0,3], [2,3] について A1 から B2までの到達可能性を検査する.この例では,R = {II,V}かつ H = {II, III, IV,V} なので,H⊂

=R は満たされていない(III と IV のパケットは到達しない).つまりテスト結果は失敗となる.式 (2)を算出するためにはすべての APと交わり判定を行うため,AP 数が数万 [12]にもなると,計算時間がかなり遅くなる可能性がある.

3. 提案アルゴリズム本節では提案アルゴリズムを説明する.3. 1節でMDDを振

り返り,3. 2節でアルゴリズムの入出力を述べ,3. 3節から 3. 5

節までアルゴリズムを説明する.3. 1 MDD

図 2b が示すように,MDD [13] は BDD と同じくひとつの根を持つ無閉路有向グラフだが,2つより多くの終端節点を持つ.それぞれの終端節点はいずれかの AP番号 I, II, · · · , |P | に対応付けられている.この点を除けば,他の特徴は BDDと同じである.MDDは次のような多値関数 F を表す.

F : X → {I, II, · · · , |P |},

パケット x が i 番目の APに属するときのみ,F (x) = i となる.ヘッダ空間全体を表すには複数の BDD が必要だったが,MDDは一つで十分である.MDDは reachability treeと並行して構築・更新できるため,検証時間全体への影響は非常に小さい (実験で確認する).これまでMDDはパケット分類に使われてきた [12].ヘッダ

空間に存在する一つの点 x が与えられたとき,x がどの APに属するかを判定するのは簡単だが,ハイパーキューブの場合はそう簡単ではない.3. 2 入 出 力提案アルゴリズムは,MDDを用いて式 (2)を効率よく計算す

る.アルゴリズムの入力は MDD F とハイパーキューブ h で,出力は H である.2. 4節の APVと異なり,ハイパーキューブを表す BDDやMDDを構築する必要はない.3. 3 単一フィールド (上限のみ)

まずは,ヘッダにひとつのフィールドしかなく,下限を 0とし,上限のみを考える.フィールド長は L ビットとする.提案アルゴリズムはMDDを探索しながら各節点の状態を更新する.節点状態は三通りあって,それぞれ IN (範囲内),ON (境界上)とOUT (範囲外) で表す.探索が終わると,INとONの終端節点を返す.図 5 を使ってアルゴリズムのコンセプトを簡単に説明する.

フィールド長を L=3とする.上限は 2であり,x ∈ [000, 010]

において h(x) = ⊤となる.節点の状態は図 5に示す通りに更新される.黒い節点は IN,灰色の節点は ON,そして白い節点は OUT を表す.例えば根から赤い枝までのパスの値は 01 であり,上限の先頭 2ビットと同じであるため,子の状態は ON

になる.もうひとつの例として,終端 Iへは 00*と 011の2つ

0!

1! 1!

2!

III!I! II! IV! V!

1!

IN!

ON!

OUT!

図 5: 単一フィールド用のアルゴリズム Traverse による MDD 探索.

Algorithm 1:単一フィールド用のアルゴリズム Traverse

Input: root

Output: terminals

for each arc in breadth-first order from root dochild, parent ← arc

update child by Table 1return terminals of IN and ON.

表 1: 状態遷移

Child \Parent IN ON OUT

IN IN IN IN

ON IN Table 2 ON

OUT IN Table 2 OUT

のパスがある.011は OUTだが 00*は INであるため,終端 I

の状態は INとする.AP Iとハイパーキューブが完全には一致していなくても,交わりがあれば ,h ∧ fi |= ⊥ が成り立つためである.最終的に,OUTではない終端 I と IIが返される.提案アルゴリズムは意味的にはすべてのパスをチェックする

ことになるが,パスの数は節点よりはるかに多く,実際にすべてのパスをたどるのは効率的ではない.そこで,動的計画法によってMDDを幅優先に探索し,各枝を 2回以上通ることなく同じ結果を得られる.提案アルゴリズムを Traverse と呼ぶことにし,アルゴリ

ズム 1 に示す.まず,根の初期状態を ONとし,その他の節点は仮に OUTとしておく.幅優先に枝をたどりながら,表 1にしたがって子を更新していく.表 1について説明する.親が INであればすでに範囲内であ

ることが確定しているため,枝の値に関係なく子も必ず INになる.親が OUT の場合は範囲外であることが確定しているため,子の状態を変更する必要はない.親が ONの場合,表 2に従って枝と上限を比較する.表 2 を説明する.もし枝と上限の値が同じであれば,子も

ONとなる.枝が上限より小さい場合,子は INになり,そうでなければ変更しない.図 1 の終端 Iへの 0枝のようにビットをスキップしているときは,可能な最小値を比較するためにスキップしたビットを 0とみなす.幅優先にMDDを探索するため,すべての節点は状態が確定

してから親として参照される.また,0/1枝をともに辿ったら,その親は次の探索のために再初期化できるので,初期化のため

— 4 —

表 2: 親が ON 状態であるときの状態遷移

Arc bit \Bound bit 0 1

0 ON IN

1 Child ON

IN!

ONL/U!

OUT!

ONL!

ONU!

0!

1!

2!

3!

I!

0!

2!

1! 1!

3!

I!

(a) Single path to ONL/U! (b) Branch and join at ONL/U!

図 6: 単一フィールドにおいて上下限をともに指定する場合の状態遷移.(a) 範囲を [0000,0011] とする.(b) 範囲を [0011,1100] とする.いくつかの枝と終端節点を省略している.

だけにMDDをたどる必要はない.Traverse は各枝を最大一回しか辿らないため,計算時間

はパスの数ではなく枝の数のみに依存する.また,OUT節点の子をたどる必要はなく,たとえば図 1では右の白い部分を無視できる.実際の検査では比較的狭い範囲を指定することが多く (たとえば 192.0.2.64/29 はアドレス空間のごく一部である),MDDのかなりの部分を無視できる場合も少なくない.3. 4 単一フィールド (上下限あり)

本節では下限も与えられるとする.ふたつの境界を区別するために,下限に乗っている場合を ONL,上限に乗っている場合を ONU とし,ともに乗っている場合を ONL/U とする.根節点は ONL/U に初期化する.先ほどと同様に,各節点は

表 1 に基づいて更新される.親がいずれかの ON 状態で子がINではない場合,子は枝と上下限の値に従って更新される (表2).表 2を参照するとき,もし親が ONL か ONU なら,子は同

じ種類の ON 状態を継承する.親と異なる ON 状態であればONL/U になる.下限の場合は表 2 の 0 と 1 をそれぞれ逆にすればいい.また,枝がビットをスキップしているときは,スキップしたビットを 1にして下限と比べる.もし親が ONL/U

なら,図 6 で示すように,上限と下限の場合をそれぞれ計算してからひとつにまとめる.3. 5 複数フィールド本節では複数のフィールドがある場合を説明する.ここで

L =!

i Li とし,Li は i 番目のフィールド長を表す.単一フィールドアルゴリズム Traverse は,アルゴリズム 2 に示すようにして複数フィールドに拡張できる.フィールドごとにTraverse を呼び出し,前のフィールドで返された終端節点を次フィールドの根節点とする.図 7 に例を示す.3-bit のフィールドがふたつあり,最初の

フィールドの範囲を [000, 010],次を [011, 101]とする.なお,

Algorithm 2: 複数フィールド用のアルゴリズムInput: fields

Output: terminals

roots ← {MDD root}for each field do

terminals ← Traverse(roots)

roots ← terminalsreturn terminals

0

1 1

3

2

3

2

4 4

3

4 4

33

I

5 5

4

VII

5 5

444

II III

5 5

VIII IX

5555

VI V IV XXIIXI

0

1

3

III!

1st field!

2nd field!

図 7: 提案アルゴリズムによる MDD 探索 (複数フィールド).

最初のフィールドは図 5と同じとした.赤縁の節点は,最初のフィールドで到達可能な終端節点であり,同時に次のフィールドの根節点にもなる.これらの節点は,二回目の Traverse を実行するときに ONL/U に初期化する.最終的に {II, III, IV}が返される.複数フィールドの場合も単一フィールドの場合と同じく,計

算時間は枝の数にのみ依存する.OUT節点の下部は無視できるので,ハイパーキューブが小さいほど高速になる.

4. 実 験本節ではアルゴリズムの計算時間を評価する.Internet2 と

スタンフォード大学 [14],パデュー大学 [15] の 3 つのデータを用いた (表 3).FIB は宛先アドレスのみで指定され,ACL

は 5-tuple で指定される.パデュー大学のデータには FIB がなかったので,最短経路に基づいて生成した.実験では到達可能性を検査した.各検査はランダムに選んだインタフェース間で行った.Internet2では prefix のみを指定し,他データでは5-tupleを指定した.提案アルゴリズムと APVを C++で実装した.実験に用いた CPUは Core i7-4790 3.6GHz,メモリサイズは 16GBである.図 8に各検査にかかった平均時間を示す.提案アルゴリズム

は APVより 17倍から 143倍も速かった.これは,APVの計算時間が AP数に大きく依存するのに対し,提案アルゴリズムはひとつのMDDしか探索しないためである.次に,全検査が完了するまで合計時間 (図 3全体の時間) を比

較する.MDD と reachability tree を並行して構築したため,前処理が APVより大きく遅くなることはなかった.前計算にかかる時間はネットワーク更新の規模に依存するが,最悪ケー

— 5 —

•  CB • 

( )

Page 24: F · Copyright©2016 NTT corp. All Rights Reserved. n MÊ [ • » qg bæq • tg B å÷ ñoMn 0 1 1 2 I II III IV V

Copyright©2016NTTcorp.AllRightsReserved.

n0

1 1

3

2

3

2

4 4

3

4 4

33

I

5 5

4

VII

5 5

444

II III

5 5

VIII IX

5555

VI V IV XXIIXI

0

1

3

III

1st field

2nd field

IN

ONL/U

OUT

ONL

ONU

VR )2 L((( ()(MVR *2 L()) )()M

n n

&

•  n >B CB CB H

Page 25: F · Copyright©2016 NTT corp. All Rights Reserved. n MÊ [ • » qg bæq • tg B å÷ ñoMn 0 1 1 2 I II III IV V

Copyright©2016NTTcorp.AllRightsReserved.

rQW s

l

• •  ” N TR RR ”

n

QW 4 e f

W �

t - “ *)(,

pU U r k n s

W �

Page 26: F · Copyright©2016 NTT corp. All Rights Reserved. n MÊ [ • » qg bæq • tg B å÷ ñoMn 0 1 1 2 I II III IV V

Copyright©2016NTTcorp.AllRightsReserved.

0

1

B

3

2

4 4

3

5 5

T

l•  8:: ” “•  k n k

•  C 8:: ” “

r OV s

nr

OVs

�� ����

��

f ] t

n

Page 27: F · Copyright©2016 NTT corp. All Rights Reserved. n MÊ [ • » qg bæq • tg B å÷ ñoMn 0 1 1 2 I II III IV V

Copyright©2016NTTcorp.AllRightsReserved.

N TR RR

Rρ, PW, QW

8::