階層化コントローラアーキテクチャによる...sdn controller rest interface flowmod...

14
階層化コントローラアーキテクチャによる SDN における運用問題解決手法 中山 裕貴 、林 經正 、阿多 信吾 株式会社ボスコ・テクノロジーズ 大阪市立大学 3 ICM 研究会 @ 石垣島

Upload: others

Post on 11-Aug-2020

0 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 階層化コントローラアーキテクチャによる...SDN Controller Rest Interface Flowmod Packet-in Packet-out 2015/03/20 3 月 ICM 研究会 @ 石垣島 7 packet-in 問題も解決可能

階層化コントローラアーキテクチャによる SDN における運用問題解決手法

中山 裕貴†、林 經正†、阿多 信吾‡

† 株式会社ボスコ・テクノロジーズ

‡大阪市立大学

3 月 ICM 研究会 @ 石垣島

Page 2: 階層化コントローラアーキテクチャによる...SDN Controller Rest Interface Flowmod Packet-in Packet-out 2015/03/20 3 月 ICM 研究会 @ 石垣島 7 packet-in 問題も解決可能

SDN の導入意欲の向上

•  近年ネットワークオペレーションコストの削減を目指して SDN 導入が検討されている –  人手の介入が減ることによるヒューマンエラーの削減 –  ベンダ非依存な物理インフラを構築することによる運用管理の容易化

–  ネットワーク業務の簡素化

•  SDN には多種多様の実装形態がある

•  OpenFlow はプロトコルが明確に存在し、多数のスイッチベンダが対応 –  様々な場面において OpenFlow の導入検討が進む

2015/03/20 3 月 ICM 研究会 @ 石垣島 2

Page 3: 階層化コントローラアーキテクチャによる...SDN Controller Rest Interface Flowmod Packet-in Packet-out 2015/03/20 3 月 ICM 研究会 @ 石垣島 7 packet-in 問題も解決可能

導入した際の落とし穴

•  OpenFlow を導入するも様々な問題が発生 –  パフォーマンス

•  フロー数の不足 –  現在のスイッチでは 2 ~ 4k –  実際に需要は 200k (現在も毎月 1k ずつ増加)

•  packet-in 処理が重い –  秒間 300 packet-in しか処理できず、他はブロードキャスト

–  ベンダロックインの加速 •  コントローラ + OpS + スイッチのトータルソリューションとしてロックインさせる動向

•  OpenFlow は転送方法を指定することに特化したプロトコル –  実際は OVSDB や OFConfig, CLI も使用するなどスイッチの 実装に強く依存するものを使用

–  optional の実装の有無

2015/03/20 3 月 ICM 研究会 @ 石垣島 3

Page 4: 階層化コントローラアーキテクチャによる...SDN Controller Rest Interface Flowmod Packet-in Packet-out 2015/03/20 3 月 ICM 研究会 @ 石垣島 7 packet-in 問題も解決可能

これまでの解決策と問題点 •  フロー数問題

–  OF スイッチに FPGA の導入 •  フロー数、CAPEX 増加 •  ベンダロックイン加速

–  ソフトウェアスイッチの 導入

•  CAPEX 低下 •  転送性能、精度が低い

•  packet-in の問題 –  分散コントローラの導入

•  これまで多数の研究が多数存在 •  実際の導入方針・方法は未定

•  ベンダロックイン回避 –  現在のところ解はなく、ベンダロックインが促進

0

1

2

3

4

10 20 30 40 50 60 70 80 90 100

Late

ncy

[mse

c]

Time [sec]

SoftwareHardware標準偏差

soft: 442.75 hard: 6.43

2015/03/20 3 月 ICM 研究会 @ 石垣島 4

Page 5: 階層化コントローラアーキテクチャによる...SDN Controller Rest Interface Flowmod Packet-in Packet-out 2015/03/20 3 月 ICM 研究会 @ 石垣島 7 packet-in 問題も解決可能

目的

•  OpenFlow 導入時の各課題の解決 –  フロー数問題を低価格で実現 –  中央コントローラでの packet-in 処理を削減 –  ベンダロックインを回避したい

•  スイッチ上でコントローラを動作させるモデルの提案 •  実際にどの程度の効果が得られるか検証

2015/03/20 3 月 ICM 研究会 @ 石垣島 5

Page 6: 階層化コントローラアーキテクチャによる...SDN Controller Rest Interface Flowmod Packet-in Packet-out 2015/03/20 3 月 ICM 研究会 @ 石垣島 7 packet-in 問題も解決可能

ローカルコントローラの導入効果 (1) •  コントローラのアプリを用いることによる任意の機能と インタフェースを実現可 –  ベンダロックインを回避

•  REST API を用いて ユーザ(業務)に インタフェースを任せる

–  ハードウェアでなく ソフトウェアで機能追加

•  ローカルコントローラで フローを保持し、ハードウェアには アクティブなフローのみを入れておく

OpenFlowSwitch

Hardware Platform

Kernel

Hardware

User

Linux

SDKOF Controller

App

OFAgent

App…

SDN Controller

Rest InterfaceFlowmodPacket-inPacket-out

2015/03/20 3 月 ICM 研究会 @ 石垣島 6

ベンダロックイン回避、フロー数問題は解決可能

Page 7: 階層化コントローラアーキテクチャによる...SDN Controller Rest Interface Flowmod Packet-in Packet-out 2015/03/20 3 月 ICM 研究会 @ 石垣島 7 packet-in 問題も解決可能

ローカルコントローラの導入効果 (2) •  スイッチとコントローラが1対1で packet-in 処理可能

–  packet-in 処理の 9 割以上 ARP, BGP などのプロトコル もしくは ping, Ethernet OAM などの OAM 機能

•  本来スイッチ単体で完結すべき処理をわざわざ中央制御 •  OAM 機能の中には中央制御するべきものもある

–  packet-in 分の遅延を削減 •  従来のスイッチの処理 時間と比較し、packet-in の伝送分の遅延のオーダが 大きい

OpenFlowSwitch

Hardware Platform

Kernel

Hardware

User

Linux

SDKOF Controller

App

OFAgent

App…

SDN Controller

Rest InterfaceFlowmodPacket-inPacket-out

2015/03/20 3 月 ICM 研究会 @ 石垣島 7

packet-in 問題も解決可能

Page 8: 階層化コントローラアーキテクチャによる...SDN Controller Rest Interface Flowmod Packet-in Packet-out 2015/03/20 3 月 ICM 研究会 @ 石垣島 7 packet-in 問題も解決可能

ローカルコントローラアプリの実装

•  フローテーブルの拡張 –  フローテーブルをコントローラ アプリ内で保持し、アクティブ なフローのみハードウェアに格納

–  実際にアクティブなフローは 5% 程度

•  フローをハードウェアに追加する際は idle_timeout を設定 •  ハードウェアに存在するフローの統計情報は flow-removed メッセージに含まれる統計情報を利用

•  ローカルコントローラのテーブルの一部を抽象化することで ARP 等の処理にも柔軟に対応

2015/03/20 3 月 ICM 研究会 @ 石垣島 8

OpenFlowSwitch

OF AgentLinux

Hardware Platform

OF ControllerApp

SDN Controller

OpenFlow Channel

Rest Interface

First Packet

Subsequent Packets

3

2

1

321 packet-in

flow-modpacket-out

フローテーブルの拡張およびスイッチ単体で プロトコル処理が完結

Page 9: 階層化コントローラアーキテクチャによる...SDN Controller Rest Interface Flowmod Packet-in Packet-out 2015/03/20 3 月 ICM 研究会 @ 石垣島 7 packet-in 問題も解決可能

評価環境

•  性能評価 –  既存の OpenFlow スイッチは CPU のスペックが低い –  どの程度までならば実用的か評価

•  評価内容 –  First packet の遅延 –  経路の切り替え時間

Controller + Switch

Capture Machine

Repeater HubClients

� �

��������� �� ��� ���

������� ���� �� ��

������ � ��� �� ��

コントローラ RYU 3.18

使用言語 Python

その他 マルチスレッド無し CPython, PyPy 等は使用せず

2015/03/20 3 月 ICM 研究会 @ 石垣島 9

Page 10: 階層化コントローラアーキテクチャによる...SDN Controller Rest Interface Flowmod Packet-in Packet-out 2015/03/20 3 月 ICM 研究会 @ 石垣島 7 packet-in 問題も解決可能

First packet の遅延分析

パケット受信 => packet-in 送信 0.35 ms packet-in 送信 => packet-in 受信 0.05 ms packet-in 受信 => packet-out (flow-mod) 送信 3.4 ms packet-out 送信 => packet-out 受信 0.05 ms packet-out 受信 => パケット送出 0.35 ms

0

1

2

3

4

5

1 2 3 4 5 6 7 8 9 10

Late

ncy

[mse

c]

Time [sec]

SoftwareHardware

Hybrid

First packet のみ遅延

2015/03/20 3 月 ICM 研究会 @ 石垣島 10

Second packet以降はハードウェア処理

•  100 フロー格納した場合の処理時間の評価

ネットワークを介す場合、コントローラでの処理 時間を超える

ローカルコントローラによるメリット

Page 11: 階層化コントローラアーキテクチャによる...SDN Controller Rest Interface Flowmod Packet-in Packet-out 2015/03/20 3 月 ICM 研究会 @ 石垣島 7 packet-in 問題も解決可能

フロー数の増加に伴う遅延の変化

0 200 400 600 800

1000 1200 1400 1600 1800 2000

1k 2k 5k 10k

20k

50k

100k

200k

Late

ncy

of fi

rst p

acke

t [m

sec]

Flow entries

ABC

リアルタイム切り替えの 基準値 = 200 ms

•  First packet の遅延をローカルコントローラ内のフロー数 ごとに評価

A の場合、10k までならば 200 ms 以内で交換可能

� �

��������� �� ��� ���

������� ���� �� ��

������ � ��� �� ��

C の場合、50k までならば 200 ms 以内で交換可能

C の場合、100k までならば 400 ms 以内で交換可能

2015/03/20 3 月 ICM 研究会 @ 石垣島 11

Page 12: 階層化コントローラアーキテクチャによる...SDN Controller Rest Interface Flowmod Packet-in Packet-out 2015/03/20 3 月 ICM 研究会 @ 石垣島 7 packet-in 問題も解決可能

GARP による経路切り替えの影響 •  冗長構成において VRRP で監視しあい、切り替えが 生じると GARP を送出 –  回線オーダの変更、計画工事、故障時 –  GARP を受信後 packet-in し、フローが 切り替わるまでの時間を評価

0

5

10

15

20

25

0 500 1000 1500 2000 2500

Requ

ired

time

[sec

]

Number of packet-in

ABC

2015/03/20 3 月 ICM 研究会 @ 石垣島 12

Controller + Switch

VRRP

Gateway

Other Edge

コントローラでの処理時間がネック

スイッチでのフロー書き込みがネック

(参考) 中央のスイッチで制御している システムでは 300 packet-in / sec 程度しか コントローラで捌けない

ローカルコントローラではスイッチごとに 500 packet-in / sec で処理可能

Page 13: 階層化コントローラアーキテクチャによる...SDN Controller Rest Interface Flowmod Packet-in Packet-out 2015/03/20 3 月 ICM 研究会 @ 石垣島 7 packet-in 問題も解決可能

近年のスイッチ事情 •  OpenFlow スイッチは Linux をベースにし、その上で OVS (厳密にはその派生)を動作させているものが多い –  OVS がハードの API を叩いている

•  任意のプログラムを実行できる環境も増え始めている –  任意の python スクリプトを実行できる環境 –  deb パッケージをインストール可能 –  複雑なハードウェア API が OpenFlow に置き換えられたスイッチと考えこともできる

•  任意のプログラムを動作させるためにはそれなりの スペックが必要 –  CPU は 1 GHz 超え、RAM も 2GB 以上となっている

これまでの OpenFlow の課題をソフトウェアで十分解決可能

2015/03/20 3 月 ICM 研究会 @ 石垣島 13

Page 14: 階層化コントローラアーキテクチャによる...SDN Controller Rest Interface Flowmod Packet-in Packet-out 2015/03/20 3 月 ICM 研究会 @ 石垣島 7 packet-in 問題も解決可能

まとめと今後の課題

•  まとめ –  OpenFlow 導入時の課題を解決しつつ、任意の機能を 実行できる特徴を活かす仕組みを検討

•  フロー数問題を低価格で実現 •  中央コントローラでの packet-in 処理を削減 •  ベンダロックインを回避したい

–  実際にどの程度の効果が得られるか検証 •  200ms 以内の切り替えであれば 50k 程度のフローは容易に実現 •  中央コントローラへの packet-in の 9 割程度はローカルで処理可能

–  スイッチの動向から本実装は容易に実現可能 •  今後の課題

–  テーブル検索時の処理を最適化し、パフォーマンスを向上

2015/03/20 3 月 ICM 研究会 @ 石垣島 14