Mais conteúdo relacionado
Semelhante a キャリア網の完全なソフトウェア制御化への取り組み (沖縄オープンデイズ 2017) / Telecommunication Infrastructure as Code (20)
キャリア網の完全なソフトウェア制御化への取り組み (沖縄オープンデイズ 2017) / Telecommunication Infrastructure as Code
- 2. 2Copyright©2017 NTT corp. All Rights Reserved.
Agenda
1. はじめに
2. キャリア網のInfrastructure as Code
3. できる,できつつあること,悩み
4. ネットワークのモデル化
5. 実装中のプロトタイプ
6. PoC紹介
- 3. 3Copyright©2017 NTT corp. All Rights Reserved.
自己紹介
名前
n 奥田兼三
所属
n NTT ネットワーク基盤技術研究所
業務
n 将来キャリア網における自動制御化の検討
n 実験網の構築・運用 (AS4697 NTTV6NET)
n OSSを組合せて色々作ってみるプロジェクト
- 5. 5Copyright©2017 NTT corp. All Rights Reserved.
なぜソフトウェアで制御したいのか
n キャリア網をXaaS化して,いろんな人に
使ってもらうため
‣ APIやCLIによる制御
‣ リソースの即時提供
‣ テキストベースで構成・運用定義を記述可能
n 自社内の単純労働の削減
‣ 技術者の単純労働を削減して,
新しいことや面白いことを考える時間を増やす
- 7. 7Copyright©2017 NTT corp. All Rights Reserved.
キャリア網の Infrastructure as Code
n 任意の仮想ネットワークをデプロイ/オペレーションできる
n 構成や運用の定義はテキストベースで記述できる
n 定義に基づいて自動でデプロイ/オペレーションされる
転送ネットワーク
仮想基盤
L2/L3スイッチ
仮想基盤
光伝送ネットワーク
firewall idscgncache
L2/L3スイッチ
NW制御機能
Controller/Orchestrator
リポジトリ
SDx configuration/state repository運用端末
terminal
構成/運用定義
コミット
REST/JSON,YANG
インターフェース
GUI/CLI/API
構成/運用定義
コミット
gRPC
対象/設定項目
gRPC
変更通知
gRPC
- 8. 8Copyright©2017 NTT corp. All Rights Reserved.
キャリア網の Infrastructure as Code
n ソフトウェアで制御できれば嬉しいことは色々ある
‣ ステートを一箇所に集約できれば,ウェブスケール的なアプローチが取れる
n しかし,まだまだNGNな作りのキャリア網
‣ 非SDNな装置や,従来型の設計思想
リポジトリ
SDx configuration/state repository構成/運用定義
コミット
gRPC
構成/運用定義
を投入
REST/JSON,YAML,YANG
運用システム
Operation system
タスクとデータを取得
gRPC
変更通知
gRPC
NW制御機能
Controller/Orchestrator
運用端末
terminal
制御
various protocols
- 9. 9Copyright©2017 NTT corp. All Rights Reserved.
今できること・できつつあること
n 制御やネットワーク仮想化の要素技術は揃いつつある
‣ コントローラ,ベンダ間の抽象化 (Ansible, OpenConfig, NSO, …)
‣ NFVI (KVM, OpenStack, Kubernetes, OpenShift, …)
‣ ネットワーク仮想化 (VxLAN, SR, NSH, …)
n 決まったシナリオで構成定義・運用定義することは既存のソ
フトウェアの組合せでも可能
‣ OSSの組み上げによる仮想ネットワークのデプロイ,セキュリティ運
用シナリオの自動化PoCを実施
- 10. 10Copyright©2017 NTT corp. All Rights Reserved.
運用シナリオ自動化のPoC
セキュリティ機能のオンデマンド・アタッチ
n OSSの組み上げで固定的なシナリオの自動制御が可能であることを実証
n データはRDBに格納したが,シナリオ在りきのテーブルやワークフローに…
ユーザ拠点
アクセスNW
ベストエフォート
帯域保証VPN
専用線
キャリアクラウド
キャリアクラウド
SD-WAN
ベストエフォート
帯域保証VPN
専用線収容局
SDN
コントローラ
NW制御機能
クラウド
コントローラ
②NWグラフにDPIを挿入
CPE
CPE
IoT
VDI
エッジクラウド
センサ ワークフロー制御
Probe
Probe
Probe分析
Probe分析
Probe分析
Probe
Probe
DPI
③構成変更
④DPI機能のオンデマンド有効化
ワークフロー
状態制御 排他制御
NSO
RDB
- 12. 12Copyright©2017 NTT corp. All Rights Reserved.
モデル化やデータの管理方法の悩み
n ネットワークの要素と制御のモデル化
‣ 物理/仮想ネットワークのトポロジを抽象的に定義したい
‣ 要素・機能・制御を抽象化して共通化したい
‣ 定義記述用のテキストフォーマット (DSL)
‣ トポロジーに依存せずに記述できる運用定義
n 管理したい様々なデータ
‣ 物理/仮想ネットワークのトポロジ
‣ 物理と仮想の関連付け
‣ 装置,リンク,プロトコル,ソフトウェアの状態
‣ オペレーションにおける状態遷移や排他制御
n データ格納機能と制御機能
‣ 運用機能や制御機能をスケールさせられる構成
‣ 特定のコントローラに依存したくない
- 13. 13Copyright©2017 NTT corp. All Rights Reserved.
理想としては…
n 物理/仮想ネットワークのトポロジ
‣ 最適化アルゴリズムを活用できるようにしたい
n 要素・機能・制御の抽象化と共通化
‣ 実装や装置が違っても同じL3を提供するならL3とし
て抽象化されてほしい
‣ VMにルータやスイッチが乗っていても,VMのデプロ
イとして共通化したい
‣ 抽象的な定義を具体化させて定義を拡張したい
n 物理と仮想の関連
‣ 仮想のオブジェクトからシームレスに物理まで到達し
たい
n 特定のコントローラに依存したくない
- 15. 15Copyright©2017 NTT corp. All Rights Reserved.
モデル化の考え方
n 物理/仮想ネットワークのトポロジ
‣ グラフ理論で表現する
‣ ネットワークの要素はノードとエッジ
n 要素・機能・制御の抽象化と共通化
‣ オブジェクト指向による定義
‣ 共通的な機能でくくりクラスにまとめ,クラスに共通な機能とし
て定義
‣ 具体化されたクラスで制御が変わるなら上書きする
n 物理と仮想の関連付け
‣ 関連記述に特化したグラフデータベースで記述
n コントローラ非依存
‣ 実際の制御機能をrunnerとして定義する
- 16. 16Copyright©2017 NTT corp. All Rights Reserved.
要素・機能・制御の抽象化と共通化
n グラフ理論の適用
‣ ネットワークのオブジェクトはエッジとノードの二種類
n オブジェクト指向の適用
‣ ネットワークの要素はエッジとノードのサブクラス
‣ ノード→終端→VM→L3サーバ→ロボットVM
n 制御と要素の分離
‣ オブジェクトの種類毎に共通的な制御を定義する
‣ 抽象化レベル毎に応じた,適切な命令セットの定義
ノード(a.k.a 装
置)
中継ノード
NW機器, VNF
終端ノード
VM
DNS, RADIUS
SV
DNS, RADIUS
エッジ(a.k.a パ
ス)
ケーブル
電話線
1000Base-T
10Gbase-SR
仮想リンク
L2
VLAN
VxLAN
L2TP
L3
TCP
UDP
IPSec
制御
ノード生成
VM生成
ロボットVM生成
DNS VM生成
VNF生成
IoTGW VNF生
成
SSE VNF生成
ノード削除
VM削除
VNF削除
エッジ生成
L2パス生成
操作
設定追加
設定削除
- 17. 17Copyright©2017 NTT corp. All Rights Reserved.
検討中の4つのDSL
• 仮想ネットワークそのものの定義(他DSLへの参照やメタデータ)を記述する
network descriptor (ND): yaml形式
• ネットワーク・トポロジの雛形を定義する
• GTに基き仮想ネットワークをインスタンス化する
graph template (GT): yaml形式等
• ネットワークを構成するオブジェクト(ノード,エッジ)のクラスを定義する
class descriptor (CD): yaml形式
• オブジェクトや仮想ネットワークに関連する操作を定義
• 実際に制御を実行する任意ランナーを指定する (st2, ansible, salt, heat,
openshift, k8s等)
procedure descriptor (PD): mistralv2, ansible, heat/hot等
- 18. 18Copyright©2017 NTT corp. All Rights Reserved.
graph: ←NW構成
nodes:←ノード
iotgw:
class: ntt.iot.iotgw
iotradius:
class: ntt.iot.iotradius
userapl:
class: middleb.robotapl
edges:←リンク
e1: iotgw, router
class ntt.nw.vlan
e2: iotgw,radius
class ntt.nw.vxlan
e3: iotgw,userapl
class ntt.nw.vlan
DSLと仮想ネットワークの関係
n 仮想ネットワークのデプロイ方法等はPDに記述
n PDからクラスのメソッドを呼び出して実際のデプロイが走る
network_descriptor_version:
2017-05-30
namespace: network_a
description: networkAのND
author: kenzo okuda, NTT
email: okuda...
parameters:
hoge: aaa
huga: bbb
class:
- ntt_iot_classes
- ntt_nw_classes
procedures:←制御プロセス
deploy:←局建
runner_type: st2
entry_point: ntt.iot.init_wf
parameters:
…
adduser:←SO
runner_type: st2
entry_point: ntt.iot.so_wf
parameters:
…
Network Descriptor
仮想ネットワークを定義
class ntt.iot.iotgw {
…}
config (HA_Proxy)
deploy {…}
}
class ntt.iot.iotradius {
…
}
Class Descriptor
オブジェクトのクラスを定義
class ntt.nw.vlan {
…}
VID
}
Procedure Descriptor
制御を定義
ntt.iot.init_wf:
- iotgw.deploy
- iotradius.deploy
- userapl.build
ntt.iot.so_wf
- userapl.deploy
- iotradius.adduser
- iotgw.adduser
class middleb.robotapl
extends ntt.iot.vm {
…
build {…}
deploy {…}
}
Class Descriptor
クラスを継承
L2SW
OLT
キャリアNW
(MPLS-VPN等)
NFVI基盤(OpenStack) NFVI基盤(OpenStack)
DC内NW
(Leaf-Spine)
DC内NW
(Leaf-Spine)
GWR GWR
GWR
エッジDC コアDC
CPE
Router
DHCP
-PD
DNS
IoT-
GW
IoT-
Radius
IoTサービス
IPv6インフラサービス
ユーザ
APL
ロボット
制御
物理基盤
vlan
vxlan
IPsec
vlan
vlan
vxlan
vxlan
vlan
Graph Template
トポロジーの雛形を定義
- 19. 19Copyright©2017 NTT corp. All Rights Reserved.
仮実装中のリポジトリの構成
n 複数のDBとgRPCによるAPIを組み合わせてリポジトリを構成
‣ ND-registry: ネットワーク定義をKVSに格納
‣ CD-registry: クラス定義をKVSに格納
‣ PD-registry: Runnerに処理させる処理手順を格納
‣ GT-db: トポロジーの雛形を保持
‣ PG-db: 物理ネットワークのトポロジーを格納
‣ GI-db: インスタンスのトポロジーを格納+世代管理
‣ NI-registry: インスタンスの属性情報
‣ API/backend: 制御機能や運用システムからの問合せを処理する
API
(gRPC)
NI-registry
(KVS)
GI-db
(graphDB)
GT-db
(graphDB)
ND-registry
(KVS)
CD-registry
(KVS)
PD-registry
(KVS)
Backend
(Python/Go)
yaml等の世代管理
(git)
PG-db
(graphDB)
- 21. 21Copyright©2017 NTT corp. All Rights Reserved.
PoC:DPIのオンデマンド・アタッチ
n 想定サービス: クラウド上のロボット制御機能が,宅内のロボットを遠隔制御
n セキュリティ向上のため,サービスにセキュリティ機能を動的に追加するデモ
ユーザ拠点
アクセスNW
ベストエフォート
帯域保証VPN
専用線
キャリアクラウド
キャリアクラウド
SD-WAN
ベストエフォート
帯域保証VPN
専用線収容局
SD-WAN
コントローラ
制御機能
クラウド
コントローラ
②NWグラフにDPIを挿入
CPE
CPE
IoT
VDI
エッジクラウド
センサ ワークフロー制御
Probe
Probe
Probe分析
Probe分析
Probe分析
Probe
Probe
DPI
③構成変更
④DPI機能のオンデマンド有効化
モデルベースのリポジトリ
NWグラフ
DB
構成定義
状態制御
gRPC
gRPC 排他制御
状態情報
運用定義
- 22. 22Copyright©2017 NTT corp. All Rights Reserved.
PoC環境
n リポジトリ: 制御パラメータ(IPアドレス等),状態情報(状態・排他制御)を保持
n 制御機能: データを一切持たず,リポジトリに問い合わせ,タスクを実行させる
監視装置
同左
エッジDC
凡例:青背景 VM, 紺背景 コンテナ, 緑線 正常パケットの方向, 赤線 攻撃パケットの方向
エッジDC
Spine/Leaf
L2SW
IoT-GW
ロボット脳
ElastAlert
エッジDC
Router
vMX
【Probe】
Router
vMX
【セキュリティ分析器】
SNORT
【クリーナー】
IPTables
ElastAlert
• イベント検知&通知
elasticsearch
• ログ情報の蓄積
fluentd
• Syslog受信
NAPALM
• Router情報取得
GoBGP
• BGPデーモン
SNORT
• IDS
VRF VRF
VRF
GoBGP
NAPALM
StackStorm
• ワークフロー実行
repository
Repository
• データの格納
- 23. 23Copyright©2017 NTT corp. All Rights Reserved.
デモの流れ
n フェーズ1 - 怪しさ検知
‣ ユーザが,セキュリティ機能を有効化する
‣ 事前に仕込んである機能(Probe)が,異常かもしれない徴候を検知
n フェーズ2 - 詳細分析
‣ セキュリティ分析機能を起動
‣ セキュリティ分析機能にトラヒックをミラー
‣ 攻撃が発生しているか否かを分析し,攻撃があればアラート
n フェーズ3 - 攻撃遮断
‣ クリーニング機能を起動する
‣ ルータからクリーニング機能に対象トラヒックをステアリング
‣ クリーニング機能で対象トラヒックをクリーニングする
• 正常トラヒックは再度ルータに戻す
- 24. 24Copyright©2017 NTT corp. All Rights Reserved.
同左エッジDC
エッジDC
フェーズ1 - 怪しさ検知
n API経由で有効化されたProbeが怪しい挙動を検知
凡例:青背景 VM, 紺背景 コンテナ, 緑線 正常パケットの方向, 赤線 攻撃パケットの方向
エッジDC
Spine/Leaf
L2SW
IoT-GW
ロボット脳
監視装置
ElastAlert
Router
vMX
【Probe】
Router
vMX
①Probeで通常存在しない
コンテナ発コネクション確立(SYNパケット)
を検知してSyslog通知
正常
正常
悪意
syslog
1
悪意
VRF VRF
VRF
正常
悪意
NAPALM
GoBGP
repository
- 25. 25Copyright©2017 NTT corp. All Rights Reserved.
同左エッジDC
エッジDC
GoBGP
フェーズ2 - 詳細分析
n セキュリティ分析器を起動してトラヒックをミラー,詳細分析を行う
凡例:青背景 VM, 紺背景 コンテナ, 緑線 正常パケットの方向, 赤線 攻撃パケットの方向
エッジDC
Spine/Leaf
L2SW
IoT-GW
ロボット脳
監視装置
ElastAlert
Router
vMX
【Probe】
Router
vMX
【セキュリティ分析器】
SNORT
①怪しさ検知の結果、WFが起動される
②SNORTコンテナの起動
③Routerのミラーリング開始設定
④SNORTで詳細分析開始
→悪意パケットを検出するとSyslog通知
正常
正常
悪意
syslog
1
悪意
2
VRF VRF
VRF
4
正常
悪意
BGP Flowspec
3
3
NAPALM
repository
- 26. 26Copyright©2017 NTT corp. All Rights Reserved.
同左エッジDC
フェーズ3 - 攻撃遮断
n クリーナーを起動し,トラヒックをステアリングすることで,悪意パケット
を破棄
凡例:青背景 VM, 紺背景 コンテナ, 緑線 正常パケットの方向, 赤線 攻撃パケットの方向
エッジDC
Spine/Leaf
L2SW
IoT-GW
ロボット脳
エッジDC
監視装置
ElastAlert
Router
vMX
【Probe】
Router
vMX
【クリーナー】
IPTables
【セキュリティ分析器】
SNORT
正常
正常
悪意
syslog
1
①詳細分析の結果、WFが起動される
②クリーナコンテナを起動
③Routerの経路設定変更
ロボット制御コンテナからロボット向け
パケットをクリーナー経由に変更
④クリーナーでは悪意パケットを破棄
4
3
悪意
3
VRF VRF
VRF
正常
破棄
2
NAPALM
GoBGP
BGP Flowspec
repository
- 27. 27Copyright©2017 NTT corp. All Rights Reserved.
デモ画面
Mattermost
StackStormによる
ワークフロー進捗表示
Dockerコンテナ表示
ミラー経路
パケットキャプチャ表示
クリーナ経路
パケットキャプチャ表示
通常パケット送信 攻撃パケット送信
通常パケット受信 攻撃パケット受信
- 28. 28Copyright©2017 NTT corp. All Rights Reserved.
おわりに
n キャリア網のソフトウェア制御化に向けた
取り組みを紹介した
‣ 要素技術は発展しているが,全体をインテグレートで
きるプロダクトはまだあまりない
‣ 今の一番の悩みはネットワークのモデル化
‣ オブジェクト指向とグラフDBによるモデル化
n OpenNaef は良さそう
‣ これから動かしてみて参考になる部分はどんどん取
り込みたい
‣ OpenNaef でNodeとPortを区別することにした最大
の理由は?