MPLS JAPAN 2019
Data & Control Plane を繋ぐ API
Kentaro Ebisawa, Principal Researcher
Toyota Motor Corporation
InfoTech, Connected Advanced Development Div.
~現状と実装 ~
MPLS JAPAN 2019Data & Control Plane を繋ぐ API|海老澤健太郎@トヨタ自動車
昨年の今頃
そして、1年が経ち …
MPLS JAPAN 2019Data & Control Plane を繋ぐ API|海老澤健太郎@トヨタ自動車
多様なプラットフォームの拡充
NPUSwitch ASIC FPGA CPU
処理性能(スループット)
ターゲット(チップ・エミュレーター)
Ethernet Switch
高性能
xx Tbps
Barefoot (Intel)
xxx Gbps x Gbps
Xilinx, Intel
xx Gbps
Netronome (BMv2, eBPF)
SmartNIC
高性能 + 拡張性
Server VM/CT
拡張性・仮想環境
プラットフォーム種別
P4 で記述したプログラムが動作する環境(チップ・エミュレーター)
MPLS JAPAN 2019Data & Control Plane を繋ぐ API|海老澤健太郎@トヨタ自動車
広がるデータプレーン・プログラミングの輪
「日本 P4 ユーザ会」 発足
2019年6月28日
https://p4users.org/committee-members/
MPLS JAPAN 2019Data & Control Plane を繋ぐ API|海老澤健太郎@トヨタ自動車
https://p4users.org/
MPLS JAPAN 2019Data & Control Plane を繋ぐ API|海老澤健太郎@トヨタ自動車
日本 P4 ユーザ会 2019 開催
システムインテグレーター
コミュニティ
リサーチ
ユーザー(狭義の)
テクノロジープロバイダー
2019年10月11日
MPLS JAPAN 2019Data & Control Plane を繋ぐ API|海老澤健太郎@トヨタ自動車
日本 P4 ユーザ会 2019 開催
145人+スタッフ
MPLS JAPAN 2019Data & Control Plane を繋ぐ API|海老澤健太郎@トヨタ自動車
次の1年
コントロールプレーン
実装手法の検討
これまでの1年
データプレーン
実装手法の理解拡大
MPLS JAPAN 2019Data & Control Plane を繋ぐ API|海老澤健太郎@トヨタ自動車
コントロールプレーンの実装場所
dataplane
(parser & match / action table)
protocol daemons
(ospf, is-is, bgp, mpls …)
Controller & Application
dataplane
(parser & match / action table)
Controller & Application
プロトコルデーモンを介した制御 コントローラーからの直接制御
MPLS JAPAN 2019Data & Control Plane を繋ぐ API|海老澤健太郎@トヨタ自動車
コントロールプレーンの実装場所
dataplane
(parser & match / action table)
protocol daemons
(ospf, is-is, bgp, mpls …)
Controller & Application
プロトコルデーモンを介した制御 良いところ
• コントローラーとの接続が切れても動作
• 各ノードの自律的な動作が可能
• コントローラーがシンプルに
苦労するところ
• 多機能&安定なプロトコル実装
• データプレーンとのインテグレーション(開発)
• データプレーン変更へのプロトコル実装の追従
• データプレーン変更時のAPI変更
MPLS JAPAN 2019Data & Control Plane を繋ぐ API|海老澤健太郎@トヨタ自動車
コントロールプレーンの実装場所
dataplane
(parser & match / action table)
Controller & Application
コントローラーからの直接制御良いところ
• ユースケースに応じたコントロールプレーンと
データプレーン両方の変更が容易
• データプレーン変更時もAPIの変更は不要
(データのみ変更)
苦労するところ
• コントローラーが複雑に(パス計算など)
• コントローラーとの接続断時の冗長化
MPLS JAPAN 2019Data & Control Plane を繋ぐ API|海老澤健太郎@トヨタ自動車
“カスタマイズされたデータプレーン”
& “コントロールプレーン”
実装例
MPLS JAPAN 2019Data & Control Plane を繋ぐ API|海老澤健太郎@トヨタ自動車
Lumina
Flow
Manager
Lumina
SDN
Controller
https://noviflow.com/
WAN Edge & CORE (SD-CORE)
• MPLS VPN ベースのサービスを短期間・低コストで実現
• MPLS forwarding
• Segment Routing
• Traffic Engineering
• Streaming Telemetry
• Service Automation(マルチドメイン)
• Tofino (P4) ベースの White Box Switch
• OpenDaylight (SDN Controller)
MPLS JAPAN 2019Data & Control Plane を繋ぐ API|海老澤健太郎@トヨタ自動車
• ロードバランサー、パケットブローカー、INT(遅延測定)など
• コントローラー(CyberMapper)を通じ REST API で操作
• OpenFlow や P4 Runtime を用いたアクセスも可能
https://noviflow.com/
MPLS JAPAN 2019Data & Control Plane を繋ぐ API|海老澤健太郎@トヨタ自動車
• Programmable Spine / Leaf Switch を利用した "Software Defined Fabric"
• サーバーの仮想スイッチと連携し ASIC へとオフロード
• 低遅延や拡張性を実現
https://www.kaloom.com/
MPLS JAPAN 2019Data & Control Plane を繋ぐ API|海老澤健太郎@トヨタ自動車
"Using Programmable Chip and Open Source SW Toward Disaggregated
Network Packet Broker and 5G UPF“, P4 Workshop, May 1st, 2019
• "Prism Controller" を用い P4 で作ったデータプレーンを管理
• モバイルプロトコル(GTP)にも対応
• Network Packet Broker (NPB), 5G UPF (with N4 interface)
http://www.kulcloud.com/
MPLS JAPAN 2019Data & Control Plane を繋ぐ API|海老澤健太郎@トヨタ自動車
「ボトムアップ」 から 「トップダウン」 へ
"How We Might Get Humans Out of the Way - Keynote by Nick McKeown", ONF Connect 2019
https://www.opennetworking.org/onf-connect-2019-resources/
https://www.opennetworking.org/wp-content/uploads/2019/09/Connect-2019-Nick-McKeown.pdf
ASIC の機能 ⇒ スイッチが実現可能な機能 スイッチで実現したい機能 ⇒ ASICの機能
MPLS JAPAN 2019Data & Control Plane を繋ぐ API|海老澤健太郎@トヨタ自動車
「ボトムアップ」 から 「トップダウン」 へ
"How We Might Get Humans Out of the Way - Keynote by Nick McKeown", ONF Connect 2019
https://www.opennetworking.org/onf-connect-2019-resources/
https://www.opennetworking.org/wp-content/uploads/2019/09/Connect-2019-Nick-McKeown.pdf
ASIC の機能 ⇒ スイッチが実現可能な機能 スイッチで実現したい機能 ⇒ ASICの機能
実現可能な
ユースケースの数
トップダウンの力
MPLS JAPAN 2019Data & Control Plane を繋ぐ API|海老澤健太郎@トヨタ自動車
コントロールプレーンの実装場所
dataplane
(parser & match / action table)
Controller & Application
コントローラーからの直接制御コントローラーによる独自データプレーン
直接制御によるユースケースの拡大
「データプレーンの変化に追従可能」 な
プロトコル実装の不在
(少なくても現時点では)
コントローラーからのデータプレーン直接制御が
より多くの恩恵をもたらたす
MPLS JAPAN 2019Data & Control Plane を繋ぐ API|海老澤健太郎@トヨタ自動車
“データプレーン” と “コントロールプレーン”
を繋ぐ API
MPLS JAPAN 2019Data & Control Plane を繋ぐ API|海老澤健太郎@トヨタ自動車
APIの標準化・コントロールプレーンとの連携
ONS 2018, "Tutorial: P4 and P4Runtime Technical Introduction and Use Cases for Service Providers"
https://events.linuxfoundation.org/wp-content/uploads/2017/12/Tutorial-P4-and-P4Runtime-Technical-Introduction-and-Use-Cases-for-Service-Providers-Carmelo-Cascone-Open-Networking-Foundation.pdf
https://p4.org/specs/
MPLS JAPAN 2019Data & Control Plane を繋ぐ API|海老澤健太郎@トヨタ自動車
P4 で記述できないスイッチ機能へのアクセス
P4の記述と同期して動作する必要がある設定・統計の管理(Port ID, Stats etc.)
P4Runtime provides a flexible mechanism for configuring the forwarding pipeline on a network switch.
gNMI is a framework for network device management that uses gRPC as the transport mechanism.
Open Sourced on 2019年9月10日
https://github.com/stratum/stratum
MPLS JAPAN 2019Data & Control Plane を繋ぐ API|海老澤健太郎@トヨタ自動車
https://www.apresiatac.jp/blog/201910071861/
MPLS JAPAN 2019Data & Control Plane を繋ぐ API|海老澤健太郎@トヨタ自動車
まとめ
White Box & Disaggregation により
トップダウンなネットワーク設計が可能に
実現したいユースケース
コントロールプレーンの選択・実装
データプレーンの実装・統合
APIの標準化・オープンソース化により
コントロールプレーンもオープンな技術で実装可能に

MPLS Japan 2019 : Data & Control Plane を繋ぐ API

  • 1.
    MPLS JAPAN 2019 Data& Control Plane を繋ぐ API Kentaro Ebisawa, Principal Researcher Toyota Motor Corporation InfoTech, Connected Advanced Development Div. ~現状と実装 ~
  • 2.
    MPLS JAPAN 2019Data& Control Plane を繋ぐ API|海老澤健太郎@トヨタ自動車 昨年の今頃 そして、1年が経ち …
  • 3.
    MPLS JAPAN 2019Data& Control Plane を繋ぐ API|海老澤健太郎@トヨタ自動車 多様なプラットフォームの拡充 NPUSwitch ASIC FPGA CPU 処理性能(スループット) ターゲット(チップ・エミュレーター) Ethernet Switch 高性能 xx Tbps Barefoot (Intel) xxx Gbps x Gbps Xilinx, Intel xx Gbps Netronome (BMv2, eBPF) SmartNIC 高性能 + 拡張性 Server VM/CT 拡張性・仮想環境 プラットフォーム種別 P4 で記述したプログラムが動作する環境(チップ・エミュレーター)
  • 4.
    MPLS JAPAN 2019Data& Control Plane を繋ぐ API|海老澤健太郎@トヨタ自動車 広がるデータプレーン・プログラミングの輪 「日本 P4 ユーザ会」 発足 2019年6月28日 https://p4users.org/committee-members/
  • 5.
    MPLS JAPAN 2019Data& Control Plane を繋ぐ API|海老澤健太郎@トヨタ自動車 https://p4users.org/
  • 6.
    MPLS JAPAN 2019Data& Control Plane を繋ぐ API|海老澤健太郎@トヨタ自動車 日本 P4 ユーザ会 2019 開催 システムインテグレーター コミュニティ リサーチ ユーザー(狭義の) テクノロジープロバイダー 2019年10月11日
  • 7.
    MPLS JAPAN 2019Data& Control Plane を繋ぐ API|海老澤健太郎@トヨタ自動車 日本 P4 ユーザ会 2019 開催 145人+スタッフ
  • 8.
    MPLS JAPAN 2019Data& Control Plane を繋ぐ API|海老澤健太郎@トヨタ自動車 次の1年 コントロールプレーン 実装手法の検討 これまでの1年 データプレーン 実装手法の理解拡大
  • 9.
    MPLS JAPAN 2019Data& Control Plane を繋ぐ API|海老澤健太郎@トヨタ自動車 コントロールプレーンの実装場所 dataplane (parser & match / action table) protocol daemons (ospf, is-is, bgp, mpls …) Controller & Application dataplane (parser & match / action table) Controller & Application プロトコルデーモンを介した制御 コントローラーからの直接制御
  • 10.
    MPLS JAPAN 2019Data& Control Plane を繋ぐ API|海老澤健太郎@トヨタ自動車 コントロールプレーンの実装場所 dataplane (parser & match / action table) protocol daemons (ospf, is-is, bgp, mpls …) Controller & Application プロトコルデーモンを介した制御 良いところ • コントローラーとの接続が切れても動作 • 各ノードの自律的な動作が可能 • コントローラーがシンプルに 苦労するところ • 多機能&安定なプロトコル実装 • データプレーンとのインテグレーション(開発) • データプレーン変更へのプロトコル実装の追従 • データプレーン変更時のAPI変更
  • 11.
    MPLS JAPAN 2019Data& Control Plane を繋ぐ API|海老澤健太郎@トヨタ自動車 コントロールプレーンの実装場所 dataplane (parser & match / action table) Controller & Application コントローラーからの直接制御良いところ • ユースケースに応じたコントロールプレーンと データプレーン両方の変更が容易 • データプレーン変更時もAPIの変更は不要 (データのみ変更) 苦労するところ • コントローラーが複雑に(パス計算など) • コントローラーとの接続断時の冗長化
  • 12.
    MPLS JAPAN 2019Data& Control Plane を繋ぐ API|海老澤健太郎@トヨタ自動車 “カスタマイズされたデータプレーン” & “コントロールプレーン” 実装例
  • 13.
    MPLS JAPAN 2019Data& Control Plane を繋ぐ API|海老澤健太郎@トヨタ自動車 Lumina Flow Manager Lumina SDN Controller https://noviflow.com/ WAN Edge & CORE (SD-CORE) • MPLS VPN ベースのサービスを短期間・低コストで実現 • MPLS forwarding • Segment Routing • Traffic Engineering • Streaming Telemetry • Service Automation(マルチドメイン) • Tofino (P4) ベースの White Box Switch • OpenDaylight (SDN Controller)
  • 14.
    MPLS JAPAN 2019Data& Control Plane を繋ぐ API|海老澤健太郎@トヨタ自動車 • ロードバランサー、パケットブローカー、INT(遅延測定)など • コントローラー(CyberMapper)を通じ REST API で操作 • OpenFlow や P4 Runtime を用いたアクセスも可能 https://noviflow.com/
  • 15.
    MPLS JAPAN 2019Data& Control Plane を繋ぐ API|海老澤健太郎@トヨタ自動車 • Programmable Spine / Leaf Switch を利用した "Software Defined Fabric" • サーバーの仮想スイッチと連携し ASIC へとオフロード • 低遅延や拡張性を実現 https://www.kaloom.com/
  • 16.
    MPLS JAPAN 2019Data& Control Plane を繋ぐ API|海老澤健太郎@トヨタ自動車 "Using Programmable Chip and Open Source SW Toward Disaggregated Network Packet Broker and 5G UPF“, P4 Workshop, May 1st, 2019 • "Prism Controller" を用い P4 で作ったデータプレーンを管理 • モバイルプロトコル(GTP)にも対応 • Network Packet Broker (NPB), 5G UPF (with N4 interface) http://www.kulcloud.com/
  • 17.
    MPLS JAPAN 2019Data& Control Plane を繋ぐ API|海老澤健太郎@トヨタ自動車 「ボトムアップ」 から 「トップダウン」 へ "How We Might Get Humans Out of the Way - Keynote by Nick McKeown", ONF Connect 2019 https://www.opennetworking.org/onf-connect-2019-resources/ https://www.opennetworking.org/wp-content/uploads/2019/09/Connect-2019-Nick-McKeown.pdf ASIC の機能 ⇒ スイッチが実現可能な機能 スイッチで実現したい機能 ⇒ ASICの機能
  • 18.
    MPLS JAPAN 2019Data& Control Plane を繋ぐ API|海老澤健太郎@トヨタ自動車 「ボトムアップ」 から 「トップダウン」 へ "How We Might Get Humans Out of the Way - Keynote by Nick McKeown", ONF Connect 2019 https://www.opennetworking.org/onf-connect-2019-resources/ https://www.opennetworking.org/wp-content/uploads/2019/09/Connect-2019-Nick-McKeown.pdf ASIC の機能 ⇒ スイッチが実現可能な機能 スイッチで実現したい機能 ⇒ ASICの機能 実現可能な ユースケースの数 トップダウンの力
  • 19.
    MPLS JAPAN 2019Data& Control Plane を繋ぐ API|海老澤健太郎@トヨタ自動車 コントロールプレーンの実装場所 dataplane (parser & match / action table) Controller & Application コントローラーからの直接制御コントローラーによる独自データプレーン 直接制御によるユースケースの拡大 「データプレーンの変化に追従可能」 な プロトコル実装の不在 (少なくても現時点では) コントローラーからのデータプレーン直接制御が より多くの恩恵をもたらたす
  • 20.
    MPLS JAPAN 2019Data& Control Plane を繋ぐ API|海老澤健太郎@トヨタ自動車 “データプレーン” と “コントロールプレーン” を繋ぐ API
  • 21.
    MPLS JAPAN 2019Data& Control Plane を繋ぐ API|海老澤健太郎@トヨタ自動車 APIの標準化・コントロールプレーンとの連携 ONS 2018, "Tutorial: P4 and P4Runtime Technical Introduction and Use Cases for Service Providers" https://events.linuxfoundation.org/wp-content/uploads/2017/12/Tutorial-P4-and-P4Runtime-Technical-Introduction-and-Use-Cases-for-Service-Providers-Carmelo-Cascone-Open-Networking-Foundation.pdf https://p4.org/specs/
  • 22.
    MPLS JAPAN 2019Data& Control Plane を繋ぐ API|海老澤健太郎@トヨタ自動車 P4 で記述できないスイッチ機能へのアクセス P4の記述と同期して動作する必要がある設定・統計の管理(Port ID, Stats etc.) P4Runtime provides a flexible mechanism for configuring the forwarding pipeline on a network switch. gNMI is a framework for network device management that uses gRPC as the transport mechanism. Open Sourced on 2019年9月10日 https://github.com/stratum/stratum
  • 23.
    MPLS JAPAN 2019Data& Control Plane を繋ぐ API|海老澤健太郎@トヨタ自動車 https://www.apresiatac.jp/blog/201910071861/
  • 24.
    MPLS JAPAN 2019Data& Control Plane を繋ぐ API|海老澤健太郎@トヨタ自動車 まとめ White Box & Disaggregation により トップダウンなネットワーク設計が可能に 実現したいユースケース コントロールプレーンの選択・実装 データプレーンの実装・統合 APIの標準化・オープンソース化により コントロールプレーンもオープンな技術で実装可能に