DC NetworkingにおけるDisaggregationとオープンNOS
NOKIA
鹿志村康生
yasuo.kashimura@nokia.com
1© 2021Nokia

最新のデータセンターネットワークの要件

⾼スケール アプリケーション
がエッジ、地域、⾼信頼性 コアに分散コントロール

スピード感

オペレーションのシンプル化と⾃動化

CAPEXとOPEXを最⼩限に抑えながら、これらすべてを実⾏

2© 2021

Nokia

必要に応じた⾃由なカスタマイズとツールの適⽤DevOps3© 2021 Nokia

日々のネットワーク
オペレーション

ネットワークオペレーター

監査コンプライアンス

セキュリティー

• アジリティー• コーディングスキル
• 可視化
•....

可用性の担保次世代のDCネットワーキングへの道
DevOpsの考え方をネットワーキングへ - NetOps

Nokia データセンターファブリックソリューション
オープン・スケーラブル
Fabric services system
オートメーション及びオペ
レーションツールキット

Intent-driven
design andoperations

Digital sandbox
for trueemulation

Cloud-native
integration
modelCloud-native, Kubernetes-based extensible foundation

Service Router Linux
ネットワークオペレーションシステム(NOS)

7250 IXR, 7220 IXR
データセンター
ネットワーキング
プラットフォーム
4© 2021 Nokia

Open, scalable
telemetryframework

Open-source
CLI plugins(Python)

NetOpsDevelopment
Kit (NDK)StandardLinuxkernelGround-up,
model-driven
foundation

Resilient,field-provenprotocol stacks

Based onmerchantsiliconCommonhardware andsoftware design

Full range of DC
applications

SROS

本日のフォーカスDCネットワーキングにおけるNetOpsを実現するために“オープン化”
オープンソース
CLI プラグイン(Python)オープン/スケーラ
ブルな telemetry

framework

NetOpsDevelopment
Kit (NDK)

ソフトウェア / NOS
gNMI/gRPCNokia SROSベース
プロトコル

OS

モデルドリブン
CLI

ハードウェア / Whitebox

Linux
カーネル

5

© 2021 Nokia

Broadcom
Trident, Tomahawk,
Jericho

プロセス間通信
iDB

Box/モジュラー
デザイン

HW 抽象化- XDPDCネットワーキングにおけるNetOpsを実現するために“オープン化”
オープンソース
CLI プラグイン(Python)

オープン/スケーラ
ブルな telemetry

framework

NetOpsDevelopment
Kit (NDK)

ソフトウェア / NOS
gNMI/gRPC

Nokia SROSベース
プロトコル

OS

モデルドリブン
CLI

ハードウェア / Whitebox

Linux
カーネル

6

© 2021 Nokia

Broadcom
Trident, Tomahawk,
Jericho

プロセス間通信
iDB

Box/モジュラー
デザイン

HW 抽象化- XDP様々なハードウェアへの柔軟な対応
迅速な導⼊を可能にするオープンなインフラ: eXtensible Data Path (XDP)
Applications
Infrastructure

XDP
CPMHardware

XDP LC

SDK A

SDK B

NPA

NP
B

Platform Dependent (PD)

Platform Independent (PI)Management

シリコン側のSDKの差分をXDP抽象化レイヤで吸収する
ことによりSRLinuxソフトウェア側への影響を極小化
7© 2021 Nokia

拡張性•

シリコンSDKを共通のソフトウェア命令セットに抽象化することにより、ハードウェアをSR Linuxのコント
ロール/管理プレーンと完全に分離•

新しいシリコンの市場投⼊までの時間が短く、XDPより上位のアプリケーションでは変更が不要•

アタッチメントメカニズムに関係なく、ACL、QoS、その他のインターフェイスポリシーの均⼀な設定および動作モデル•

ONIEをサポートを含むホワイトボックス対応Ready

シリコンの多様性
ターゲット市場/⽤途に応じて異なるシリコンを使⽤したプ
ラットフォームを活⽤可能

Trident

Tomahawk

Jericho+…

Whitebox

XDPによるControl planeの処理
Rx 及び Tx の内部転送

CPM(Central CPU)

Rxの内部転送

Network applications1. コントロールプレーンパケットがXDP LCで受信されると、まずそのパケットがLocalで処理すべきものかどうかを判別する
2. Local処理するものでは無いと判別した場合には、そのパケッ
トはICC(Inter Card Communication)フレームとしてIngressイン
タフェース/ネットワークインスタンス等の情報と共にシリアライズされXDP CPMへ送られる
3. XDP CPMはICCフレームをデシリアライズし、該当のvEthパスへ送る

ARP

LLDP

IS-IS

SSH

BFD

Routes
ARP/NDvMGMT

vEth2/2

vEth2/1

XDP
CPM

vEth1/2

vEth1/1

1. アプリケーション(eg. BGP)からコントロールパケットが送信されると、Linuxにより該当のvEthパスからXDM CPMに送信される。XDP CPMはパケットをICCフレームにシリアライズしXDP LCに送信する
2. XDP LCはICCフレームをデシリアライズし、ASICヘッダを付加する。ASICはパケットを該当のインタフェースに送信する

DPDKmgmt0
Ethernet Bus
Eth1/1
BGP
BGP

Eth1/2© 2021 Nokia

MPLSLinuxTxの内部転送

8

BGP

Line
cardLine
card
XDP LCXDP LCEth2/1

BGP
BGP

Eth2/1

DCネットワーキングにおけるNetOpsを実現するために“オープン化”
オープンソース
CLI プラグイン(Python)

オープン/スケーラ
ブルな telemetry

framework

NetOpsDevelopment
Kit (NDK)

ソフトウェア / NOS
gNMI/gRPC

プロトコル
スタック

SR
OS

モデルドリブン
CLI

ハードウェア / Whitebox

Linux
カーネル

9

© 2021 Nokia

Broadcom
Trident, Tomahawk,
Jericho

プロセス間通信
iDB

Box/モジュラー
デザイン

HW 抽象化- XDPプロトコルスタック & CLI
Open Infrastructure Enabling Boundless Possibilities
ManagementgNMI

JSON RPC

Syslog

CLIgRPCCLIFIB

Telemetry

YANG
OSPF

LLDP

Supportd

DHCP

ACL

BGP

ISIS

L2 Learn

ARP/ND

Static L2

Static L3

QoS

Policy

OAM

LAG

BFD

MCID

LinuxFIB

ChassisApp

FDB

DeviceMgmt

PUB

Protobufs
PUB

Net inst

Hardware

IDB

NDK
SUB

SUB

Protobufs

eXtensible Data Path (XDP)

Modular Data Center | Containerized Data Center

スケールと信頼性

モデルドリブンマネジメント

オープンインフラストラクチャ• 20年以上フィールドで鍛えられてきたNokia SR OSのプロトコルスタ
ックとネットワークサービス

柔軟な書式

•

具備しているテレメトリーの活用によるプログラマビリティー

柔軟な ASIC/HWプラットフォームのサポート•

ユーザー独自のアプリケーションをシームレスにネイティブアプリケー
ションと統合可能• 100万台以上のルーターが1300以上のIPネットワークに導入
10

NDK protobufs
PUB

PUB

AAA

Customer applications
SUB

Infrastructure

MPLS

SUB

Networkapplications© 2021 Nokia

DCネットワーキングにおけるNetOpsを実現するために“オープン化”
オープンソース
CLI プラグイン(Python)

オープン/スケーラ
ブルな telemetry

framework

NetOpsDevelopment
Kit (NDK)

ソフトウェア / NOS
gNMI/gRPC

プロトコル
スタック

SR
OS

モデルドリブン
CLI

ハードウェア / Whitebox

Linux
カーネル

11

© 2021 Nokia

Broadcom
Trident, Tomahawk,
Jericho

プロセス間通信
iDB

Box/モジュラー
デザイン

HW 抽象化- XDP

プロセス間通信：Impart Database(インパートデータベース/IDB)NOSに最適化
bgp
mgragent

••
••••
•

12

ライトウェイト DB, Redisスタイル, pub/subベース
DBはTopicによって分かれる
それぞれのTopicは1つのアプリケーションのみによって所有される(Cross-Topicでの書き込み無し)
アプリケーションはIDBへのSessionをOpenしTopicをSubscribeする,また他のアプリケーションのために自身が所有するTopicに対してMessageをpublisする• エージェントが直接振る舞いを操作することも許容, eg. 独
自のRouteをpublisしFIB manageにそのRouteを選択させる
アプリケーションのStateはアプリケーション内で持ち, 他のアプリケーションが興味のあるStateのみIDBにpublisする• IDBを簡素化, 不要なDBの膨張を防止, IDBはData payloadやStructureは気にしなくて良い• Telemetryが常にアプリケーションからStream
DBの永続性は不要, Speedを重視, データストアというよりもキャッシュのイメージ
パワフルなNDKとともに提供, オペレーターは内部システムイベン
トを元にアプリケーションでイベントハンドリングを実行可能© 2021 Nokia

agent

plcy
mgr
fib
mgr

ndk
mgr

arpndmgr

app
mgr

lldp
mgr

net
instmgr

IDB

xdp
mgrmgmtsrv

staticroute
mgr

linux
mgr

bfd
mgr

chass
mgr
gNMI
JSON
RPC

aaa
mgr

mpls
mgr
pub/sub

CLI

gRPC

DCネットワーキングにおけるNetOpsを実現するために“オープン化”
オープンソース
CLI プラグイン(Python)

オープン/スケーラ
ブルな telemetry

framework

NetOpsDevelopment
Kit (NDK)

ソフトウェア / NOS
gNMI/gRPC

プロトコル
スタック

SR
OS

モデルドリブン
CLI

ハードウェア / Whitebox

Linux
カーネル

13

© 2021 Nokia

Broadcom
Trident, Tomahawk,
Jericho

プロセス間通信
iDB

Box/モジュラー
デザイン

HW 抽象化- XDP

NorthboundDatastores &Monitors

FSS

GateNetAuto-bootDevOps CLI

ZTP• カスタマイズ可能なPython実装• v4/v6• HTTP/s• Out-of-band• In-band
ONIE(OpenNetwork InstallEnvironment)• Pythonベース、完全にオープンソース• オペレーターによる拡張を無制限に可能にする
プラグイン• エイリアス、
ユーザーごとの環境

14© 2021 Nokia

subpub

外部/上位へのインタフェース
多⾯的な管理インフラ

NDK• ゼロから構築されたネイティブなTelemetryアーキテクチャー• 拡張性と堅牢性• Auto-telemetry
フレームワーク• ストリーミング
インターフェース• gRPC/protoベース• 統合された堅牢なマネジメント,
設定とTelemetryのためのプロトコル• 設定とState取得のためのプロ
グラマブル
JSONインターフェース• CLIコマンドをサポート• Nokia拡張(commitconfirmed,validate, etc)

• NetOps
Development
KitはSR Linuxのインフラスト
ラクチャをサービスとして公開• アプリケーショ
ンはトランザクション構成、ス
トリーミング、
テレメトリを活⽤可能

DCネットワーキングにおけるNetOpsを実現するために“オープン化”
オープンソース
CLI プラグイン(Python)

オープン/スケーラ
ブルな telemetry

framework

NetOpsDevelopment
Kit (NDK)

ソフトウェア / NOS
gNMI/gRPC

プロトコル
スタック

SR
OS

モデルドリブン
CLI

ハードウェア / Whitebox

Linux
カーネル

15© 2021 Nokia

Broadcom
Trident, Tomahawk,
Jericho

プロセス間通信
iDB

Box/モジュラー
デザイン

HW 抽象化- XDP

NDKによるオープンな開発
無限の可能性を実現するオープンなインフラストラクチャ
マネジメントgNMI

JSON RPC

Syslog

CLI

gRPC

CLI

YANG
OSPF

LLDP

Supportd

DHCP

ACL

DHCP relay

EVPN

BGP

ISIS

L2 Learn

ARP/ND

Static L2

Static L3

TunnelVXLAN

QoS

Policy

OAM

LAG

BFD

MCIDCustomer applications

LinuxFIBNDK protobufs

SUB© 2021 Nokia

Protobufs

PUBPUB

NDK

IDB
FDB

eXtensible Data Path (XDP)

DeviceMgmt

Modular Data Center | Containerized Data Center

SUB

SUB

Protobufs
PUB

16

App

Net inst
AAA

ハードウェアChassis

PUB

インフラストラ
クチャ

MPLS

SUB

ネットワークアプリケーションNDKによるオープンな開発

無限の可能性を実現するオープンなインフラストラクチャ
Proto-based NDK• ランゲージニュートラル
• C++, C#, DART, GO, JAVA, Python, Ruby
• On-box 又は Off-boxでのアプリケーション
インテグレーション

gNMI/gRPC

マネジメントCustomer YANG

Infrastructure© 2021 Nokia

ダイレクトアクセス

Customer application + SR Linux protobuf

Hardware17cn-app2cn-app1

ネットワークアプリケーション

Native integration• どのNorthboundインタフェースからでもアクセス可能• アプリケーション/エージェントからデータプレーンへのダイレクトアクセスも可能

cmgmt2

PUB

NDK

SUB

proto-based

IDB

eXtensible Data Path (XDP)

シンプルなエージェントアプリケーション例

Telemetry

トラフィックロ検知
ZTPの際にエージェントをインストール

エージェントは継続的にIN/OUTのTraffic量をモニター

SR Linuxは他のアプリケーションと同様にエージェントのデータをgNMIでストリーム

gNMI

Custom Agent

BGP

IS-IS

Custom YANG

Nokia YANG

Nokia YANG

Agent
Agent

DropがX%を超えたら
Alert

18

© 2021 Nokia

カスタムアプリケーション例: kbutler

Telemetry

コンピュート側とネットワーク側の情報をMapしモニター

kbutler
kbutlergNMI
kbutlerK8S API• Kbutlerは K8SサービスAPIをサブスクライブ
し新しいサービスのexposeや既存サービスの変更をモニター• どのアプリケーションがどのWorker nodeでホストされているかのViewを得るため

19© 2021 Nokia• Kbutlerは SR LinuxのNDK APIをサブスクライブしFIBの変化をモニター• Kbutlerはサービスアプリケーションが動いているWorker nodeに対して、サービスの外部公開IPアドレスのFIBエントリーが存在し、Next-hopがWorker nodeになっていることを監視• Kbutlerはオペレーション状況をSR Linux無いでレポートし何か問題・不一致が発生した場合にはすぐにAlertを上げる• Kbutlerはコンテクストに基づいたモニタリング、アラート、トラブルシュートを提供

Full stack integration: Nokia SRLinuxオリジナルCLI

Lifecycle management, YANG, Python CLI: ユーザー独自CLI

Start

nok_root

Nokia
アプリケーション Nokia YANG models
Routing

IS-IS

nok_routing

nok_systems

Stop

Restart

カスタマー
Customer YANG models
アプリケーション
cm_bgpcm_bgpcm_probe

nok_isiscm_probe

YANG Tree20

ライフサイクルマネジメント

YANG インテグレーション

Pythonベース CLI• カスタマーアプリケーションは”first class citizen”として管理され障害時のレジリエンシやシンプルな音ボーディングが提供される• 完全なYANGインテグレーションにより Native CLI, gNMI, JSON-RPC –config w/persistency, state, stats andshow commanが使用可能•

オープンソース•

複数のYANG model/pathからユーザーが必要なOutputを表示されるカスタム
showコマンド• いかなるObject, いかなるInterface•

プログラマブル i.e. コンディショナル
ステートメント© 2021 Nokia

カスタムCLIの例

DevOps CLI

Topology Validation

SR Linux CLI plugin
1

1. カスタムCLIコマンドを実行
2. CLIプラグインがトポロジーDB
から接続しているべきLLDP
Neighborの情報を取得

host1# validate topology

Python ロジック
32
4

21

© 2021 Nokia

LLDP Topology OK!

3. DBから取得したLLDP
Neighborの情報とLocalのLLDP
Neighbor stateを比較
4. 結果をOutputとして表示

まとめ• NW機器ベンダーが考えるオープンNOSについてご紹介させて頂きました。
• ハードウェアへのDependencyを可能な限り少なくし、今後のDisaggregationへ対応• 内部・外部アプリケーションへのオープン/スケーラブルなテレメトリ• NDK・CLIプラグインでの自由なユーザーアプリケーション開発• TypicalなNWアプリケーションは実績のあるソフトウェアコンポーネントを使用可能

22© 2021 Nokia