ネットワーク抽象モデルを用いた IP-VPN 向け SDN コントローラの

ネットワーク抽象化を用いたSDN 制御基盤と
IP-VPN 向けコントローラの実現
日本電気株式会社 情報・ナレッジ研究所
鈴木一哉、森本昌治、飯澤洋平、金子紘也
2014/6/17
謝辞:
本技術は、総務省の「ネットワーク仮想化技術の研究開発」による委託を受けて実施した研究開発による成果です。
SDN (Software-Defined Networking)とは
自律分散制御型ネットワーク
Software-Defined Networking
Software
仮想NW
Config
Config
Config
Config
OSPF/
BGP
Config
2
ITRC meet35
SDN制御基盤
▐ SDN制御基盤上の制御ソフトウエア群によって仮想ネットワークを構成
 物理ネットワークとは独立に、ソフトウエアによって独自の機能や構成を定義
計測
アクセス制御
Traffic
engineering
SDN
コントローラ
仮想L2/L3
制御ソフトウエア
SDN制御基盤
Southbound Interface
(OpenFlow, etc)
物理
ネットワーク
3
ITRC meet35
SDNコントローラの課題 – cont’d
様々な物理ネットワークに対応
物理ネットワーク
制御プロトコル
L2 OpenFlow
OpenFlow v1.0, v1.3, etc. with various vender extensions
Legacy L2/L3
CLI, I2RS, etc.
Transport
OpenFlow, TL1, etc.
他のシステムを経由
Via NMS, via other OpenFlow controllers, etc.
幅広いユースケースに対応
Use-cases
Brief Description
Carrier Edge
Smart routing among NFV services
IP-VPN service
Network domain as a virtual single BGP entity
Router-less
transport
Network domain as a virtual single BGP entity, underlying
packet transport or optical network
Cloud DC
L2 slicing over distributed DC locations, using hop-by-hop
and overlay tunnels
Enterprise NW
Network slicing based on user authentication
4
ITRC meet35
SDNコントローラの課題
SDNコントローラ
OpenFlow
コントローラ開発
フレームワーク
•
•
•
•
POX / NOX
FloodLight
Trema
…
 柔軟・汎用的
 プログラミングが必要
 複雑になりがち
5
ITRC meet35
ネットワーク仮想化
ソリューション
•
•
•
•
Quantum API
VMWare NSX
ProgrammableFlow
…
 簡単な設定で動作
 目的に特化
 柔軟性が低い
本研究のゴールとアイデア
様々な物理ネットワーク
幅広いユースケース
用途に応じたSDNコントローラを容易に
開発したい
様々なプロトコル
単一のネットワーク抽象化モデル
(物理NW/仮想NWをオブジェクトとして表現し、オブ
ジェクトに対する操作として機能を表現)
様々な機能構成
6
ITRC meet35
オブジェクトと機能要素(Operator)の組み
合わせによってSDNコントローラを構成
提案するSDN制御基盤の基本コンセプト
Net Apps.
Net Apps.
SDN制御基盤
Operator
Network “object”
(Abstracted representation
of physical / logical
network instance)
Abstraction model
Network abstraction
OpenFlow
7
ITRC meet35
Packet
transport
(Both view and control)
Optical
node
Physical
network
ネットワーク抽象化モデル
1. Topology: “What a network is”: static/dynamic state of a network
 Network graph: common to any network object
 Attributes: varies to network instances
2. Flow: “How the network behaves”: behavioral model of a network
 Filter: definition of a “flow”
 Flow path: unicast or multicast tree, multiple flow groups
 Edge behavior: (OpenFlow) action at the edge
+α. “Packets”: raw channel between C-U planes
 Packet_in/out (OpenFlow case)
Network Abstraction Model
Topology
Node
Port
Packets
Link
• Physical / logical NW graph • Packet-in/out
• State change notification
(OpenFlow case)
• Statistics
8
ITRC meet35
Flows
• Route control
• Flow (OpenFlow),
RIB/FIB, etc…
ネットワーク抽象化モデル – cont’d
Network Abstraction Model
Topology
基底クラス
継承
OpenFlow
Node
Port
Packets
Link
• Physical / logical NW graph • Packet-in/out
• State change notification
(OpenFlow case)
• Statistics
Overlay
Flows
Mobile
• Route control
• Flow (OpenFlow),
RIB/FIB, etc…
Transport
それぞれ物理ネットワークの特定に応じた”attribute”を追加
9
ITRC meet35
Operatorの例: Aggregator
▐ Original Network の Topology を集約し、1 Node のみで構成される
Aggregated Network を生成
Aggregated Network
nodeA
Aggregator
node1
Original Network
ITRC meet35
node3
link3
link1
node2
10
link2
link4
node4
Operatorの例: Slicer
▐ Original Network の Topology のコピーし、名前空間を論理分割した
Sliced Network を生成
Sliced Network 1
1
node1
2
3
link1
link2
1
node2
Sliced Network 2
node1
1
3
2
3
2
Slicer
1
node1
2
3
link1
link2
1
node2
2
Original Network
11
ITRC meet35
3
link1
link2
1
2
node2
3
ユースケース検討 : IP-VPN 向けコントローラ
▐ ネットワーク全体を、仮想的に一つのルータとして動作
 IP-VPN サービス提供に利用可能
IP-VPN 向けコントローラ
Customer NWs
A
Customer NWs
OpenFlow
Customer NWs
A
A
B
A
B
B
B
C
C
Customer NWs
ルータA
A
ルータB
B
ルータC
C
顧客NWは、それぞれの顧客毎に用意されたルータに接続しているように見える
12
ITRC meet35
A
B
C
ユースケース検討 : IP-VPN 向けコントローラ
▐ 宛先 IP アドレスに応じて、適切な顧客ネットワークにパケットを転送
▐ 顧客ネットワークの経路情報は、BGP を用いて収集
Customer NWs
192.168.1.0/24
192.168.2.0/24
192.168.3.0/24
13
ITRC meet35
Customer NWs
BGP
BGP
192.168.4.0/24
192.168.5.0/24
192.168.6.0/24
ユースケース検討 : 経路情報の収集
顧客NWの経路情報を収集するための BGP 処理機能をコントローラ上で実行
コントローラは、BGP プロトコル転送用パスを構成
IP-VPN 向けコントローラ
BGP プロトコル転
送用パス設定
SDN制御基盤
BGP 処理機能
(顧客 A)
BGP 処理機能
(顧客 B)
192.168.2.0/24
192.168.1.0/24
192.168.1.0/24
192.168.2.0/24
顧客A
192.168.3.0/24
顧客B
14
ITRC meet35
192.168.3.0/24
ユースケース検討 : 顧客トラフィック用パスの設定
収集した経路情報に基づいて、顧客トラフィック用パスを構成
IP-VPN 向けコントローラ
BGP 処理機能
(顧客 A)
IBGP (経路情報の通知)
BGP 処理機能
(顧客 B)
L3転送制御
SDN制御基盤
192.168.2.0/24
192.168.1.0/24
192.168.1.0/24
顧客A
192.168.3.0/24
顧客B
15
192.168.2.0/24
ITRC meet35
192.168.3.0/24
SDN 制御基盤を用いた IP-VPN 向けコントローラ
▐ IP-VPN サービス提供には、以下の二種類の "フロー" 設定が必要
 顧客トラフィック転送 (L3 転送制御)
 BGP プロトコル転送 (L2 転送制御)
▐ それぞれの制御を分離
 顧客毎に分離 (ポート単位)
 プロトコル単位での分離 (BGPとそれ以外)
 → Slicer を利用
▐ 網内制御を、ユーザアプリケーション(L2/L3転送制御)から分離
 → Aggregator を利用
16
ITRC meet35
SDN 制御基盤を用いた IP-VPN 向けコントローラ
L3転送制御
L3転送制御
L3転送制御
L3転送制御
L2転送制御
L2転送制御
L2転送制御
L2転送制御
SDN 制御基盤上のユーザアプリ
ケーションとして実装
Slicer
Aggregator
OpenFlowDriver
OpenFlow
17
ITRC meet35
SDN 制御基盤のコンポーネント
を利用
実装
▐ SDN 制御基盤利用による効果
 ユーザアプリケーション部分(L3転送制御)の実装がシンプルに
 役割を明確化したことにより、オペレータ (Aggregator, Slicer) の実装もシ
ンプルに
 一方で、コンポーネント間の通信処理部分の実装が必要
SDN制御基盤使用の有無によるライン数の比較
SDN制御基盤を使用 (Python)
18
L3転送制御
1.5KL
Aggregator
1.0KL
Slicer
1.5KL
Driver
2.8KL
ITRC meet35
SDN制御基盤を未使用 (C言語)
L3転送制御
経路計算
2.7KL
1.1KL
Topology Discovery
4.8KL
まとめ・今後の課題
▐ 簡単かつ柔軟なSDN制御基盤の提案
 機能・プロトコル中心からオブジェクト中心へ
• ネットワーク抽象化モデルに基づいてインタフェースを統一
 プログラミングからコンポーネントの組み合わせへ
• 再利用可能なコンポーネント群(objectとoperator)
• コンポーネントの組み合わせによるSDNコントローラーの作成
▐ SDN 制御基盤を用いた IP-VPN サービス向けコントローラの実現
▐ 今後の課題
 テストベッド上での動作、各種トライアルの実施
 コンポーネントの充実化、ネットワーク抽象化モデルの洗練化、等
19
ITRC meet35