data plane programmability 現状と展望...data plane programmability 現状と展望| mpls japan...
TRANSCRIPT
Data Plane Programmability現状と展望
MPLS Japan 2018年11月19日
「Network Programmability」セッション
株式会社トヨタIT開発センター
海老澤健太郎
Data Plane Programmability 現状と展望 | MPLS Japan 2018 | 2018/11/19 2
https://www.linkedin.com/in/ebiken/
コネクティッドカー向け次世代ネットワークの研究(データ収集&解析基盤)
データセンター(データ解析基盤)
携帯網 固定網
EdgeComputing
5G/4G WiFi
プロトタイピング
In Network Computing
Data Plane Programmability 現状と展望 | MPLS Japan 2018 | 2018/11/19 3
ネットワークプログラマビリティ??
データプレーンプログラマビリティ??
Data Plane Programmability 現状と展望 | MPLS Japan 2018 | 2018/11/19 4
Orchestrator Application
Controller
Network Device
Data Plane
Control Plane / Configuration
Data Plane Programmability 現状と展望 | MPLS Japan 2018 | 2018/11/19 5
Orchestrator Application
Controller
Network Device
Data Plane
Control Plane / Configuration
ネットワークプログラマビリティ
自動化(非CLIな設定管理)Software Defined (SDN)
Data Plane Programmability 現状と展望 | MPLS Japan 2018 | 2018/11/19 6
Orchestrator Application
Controller
Network Device
Data Plane
Control Plane / Configuration
ネットワークプログラマビリティ
自動化(非CLIな設定管理)Software Defined (SDN)
データプレーンプログラマビリティ
パケット処理
本日は Switch ASICを中心に
Data Plane Programmability 現状と展望 | MPLS Japan 2018 | 2018/11/19 7
データープレーンをプログラムする
ヘッダフォーマットの定義パースグラフの構築
ヘッダ解析(Parse)
テーブル参照(Match)
マッチフィールドの定義テーブルタイプの定義
(Exact / Masked)
MAC address
IPv4 address
proto + TCP ports
( any header fields )
変更・転送(Action)
アクションの定義フィールド操作ロジック
bit shift (<<) (>>)
add(+) sub(-) multiple(*)
drop forward
copy push / pop
Data Plane Programmability 現状と展望 | MPLS Japan 2018 | 2018/11/19 8
データープレーンをプログラムする
ヘッダフォーマットの定義パースグラフの構築
ヘッダ解析(Parse)
テーブル参照(Match)
マッチフィールドの定義テーブルタイプの定義
(Exact / Masked)
MAC address
IPv4 address
proto + TCP ports
( any header fields )
変更・転送(Action)
アクションの定義フィールド操作ロジック
bit shift (<<) (>>)
add(+) sub(-) multiple(*)
drop forward
copy push / popパケット処理 「パイプライン」
Data Plane Programmability 現状と展望 | MPLS Japan 2018 | 2018/11/19 9
データプレーンプログラマビリティで可能になる事
機能追加サイクルの短縮 新機能のプロトタイピング
リソース配分最適化によるスケーラビリティの向上
ユーザー固有のカスタマイズパケット転送以外の処理
In Network Computingの実現
Data Plane Programmability 現状と展望 | MPLS Japan 2018 | 2018/11/19 10
データプレーンプログラマビリティを用いたプロトタイプ実装例
https://www.barefootnetworks.com/use-cases/ad-telemetry/
スイッチ統計情報用ヘッダを定義し挿入
Data Plane Programmability 現状と展望 | MPLS Japan 2018 | 2018/11/19 11
データプレーンプログラマビリティを用いたプロトタイプ実装例
P4-14によるSRv6プロトタイプhttps://github.com/ebiken/p4srv6
Barefoot社協力のもと P4-16版も準備中(100GbE x32port のスイッチでテスト可能)
データプレーンプログラマビリティ現状と展望
Data Plane Programmability 現状と展望 | MPLS Japan 2018 | 2018/11/19 12
Data Plane Programmability 現状と展望 | MPLS Japan 2018 | 2018/11/19 13
データプレーンプログラマビリティ 「3つの視点」
データプレーンプログラミングは普及するのか?
どこまで自作するのか?できるのか?サポートしてくれる人はいるのか?
プログラマブルな Switch ASIC はこの先、生き残り進化していくのか?
Data Plane Programmability 現状と展望 | MPLS Japan 2018 | 2018/11/19 14
データプレーンプログラマビリティ 「3つの視点」
データプレーンプログラミングは普及するのか?
どこまで自作するのか?できるのか?サポートしてくれる人はいるのか?
プログラマブルな Switch ASIC はこの先、生き残り進化していくのか?
Data Plane Programmability 現状と展望 | MPLS Japan 2018 | 2018/11/19 15
プログラミングの普及に必要な事は?
誰もが利用できるプログラミング言語
多用な動作環境
身近に利用者がいる
Data Plane Programmability 現状と展望 | MPLS Japan 2018 | 2018/11/19 16
これまでのプログラム言語・開発環境
ベンダー タイプ 開発環境:言語
Cisco ASIC? 非公開
Juniper ASIC? 非公開
Cavium ASIC XDK(CLOSED)
Netronome NPU Network Flow C Compiler:Embedded C
Xilinx FPGA Vivado:Verilog, System C(高位合成)
プラットフォーム毎に異なる言語や開発環境
過去の学習・Code資産が生かされない
Data Plane Programmability 現状と展望 | MPLS Japan 2018 | 2018/11/19 17
P4:オープンなドメイン特化型プログラム言語
P4 Source Code パケット処理パイプラインの定義パーサーやテーブル、アクション、など
P4 Compiler P4をTarget上で実行可能な形式にコンパイルTarget毎に提供される
Target (P4対応Dataplane)P4 Dataplane runtime に従いパケットを処理Hardware: ASIC, NPU, FPGA | Software: CPU
“Programming Protocol-Independent Packet Processors”
https://p4.org/
Data Plane Programmability 現状と展望 | MPLS Japan 2018 | 2018/11/19 18
P4に対応した動作環境
ベンダー タイプ ASICや開発環境名
Barefoot ASIC Tofino(ASIC) P4 Studio(開発環境)
Mellanox ASIC Spectrum(ASIC)
Netronome NPU Agilio P4C SDK(開発環境)
Xilinx FPGA SDNet(開発環境)
Netcope FPGA P4 Cloud (開発環境)Online P4 to FPGA synthesis
eBPF CPU p4c-ebpf (Open Source)
BMv2(Software Switch)
CPU p4c (Open Source)
Data Plane Programmability 現状と展望 | MPLS Japan 2018 | 2018/11/19 19
P4 Workshop 2018 in Tokyo
講演企業Barefoot NetworksNet One Systems
P4.org AristaCisco
Apresia & EdgecoreKaloom Software
P4 Workshop 2018 in Tokyo【データプレーンプログラミングの世界】
主催:P4.org、Barefoot Networks、ネットワンシステムズ株式会社(協賛)
10月23日当日の風景|参加者100名以上
Data Plane Programmability 現状と展望 | MPLS Japan 2018 | 2018/11/19 20
データプレーンプログラマビリティ 「3つの視点」
データプレーンプログラミングは普及するのか?
どこまで自作するのか?できるのか?サポートしてくれる人はいるのか?
プログラマブルな Switch ASIC はこの先、生き残り進化していくのか?
Data Plane Programmability 現状と展望 | MPLS Japan 2018 | 2018/11/19 21
ネットワーク機器に必要な機能
P4 Data Plane(ASIC / NPU / FPGA)
Forwarding Plane Abstraction
(FIB/Port => Match Action Rule)
Protocol Agents(OSPF, BGP, VLAN, SRv6, MPLS etc.)
ConfigBroker(Data Store)
CLI API(NetConf etc.)
Data Plane Programmability 現状と展望 | MPLS Japan 2018 | 2018/11/19 22
動かすまでに 「最低限」必要な作業
P4 Data Plane(ASIC / NPU / FPGA)
Forwarding Plane Abstraction
(FIB/Port => Match Action Rule)
Protocol Agents(OSPF, BGP, VLAN, SRv6, MPLS etc.)
ConfigBroker(Data Store)
CLI API(NetConf etc.)
①開発
②開発
⑥開発 or 移植
④カスタマイズ
⑦開発 or 移植
⑤結合 ③開発
Data Plane Programmability 現状と展望 | MPLS Japan 2018 | 2018/11/19 23
動かすまでに 「最低限」必要な作業
P4 Data Plane(ASIC / NPU / FPGA)
Forwarding Plane Abstraction
(FIB/Port => Match Action Rule)
Protocol Agents(OSPF, BGP, VLAN, SRv6, MPLS etc.)
ConfigBroker(Data Store)
CLI API(NetConf etc.)
①開発
②開発
⑥開発 or 移植
④カスタマイズ
⑦開発 or 移植
⑤結合 ③開発
データプレーンをプログラムしているのかネットワークOSを開発しているのか??
Data Plane Programmability 現状と展望 | MPLS Japan 2018 | 2018/11/19 24
データープレーンプログラミングの範囲
パイプラインの特定部分のみ開発(NOS提供有り)
カスタマイズ委託
パイプライン全て開発(NOS提供有り)
パイプライン全て開発(NOS提供無し)|自前保守
(開発・保守支援の有無含め)ユーザーの状況に合った選択肢がある事が重要
開発範囲
広い
狭い
商用ベンダーのP4対応状況
Data Plane Programmability 現状と展望 | MPLS Japan 2018 | 2018/11/19 25
Data Plane Programmability 現状と展望 | MPLS Japan 2018 | 2018/11/19 26
ベンダーの状況|Cisco
Reference: P4 Workshop 2018 in Tokyo“Cisco Nexus 3400 Series P4-Programmable Switches | P4 Benefits, Deployment Models and Use Cases” Slide 5
Data Plane Programmability 現状と展望 | MPLS Japan 2018 | 2018/11/19 27
ベンダーの状況|Cisco
Reference: P4 Workshop 2018 in Tokyo“Cisco Nexus 3400 Series P4-Programmable Switches | P4 Benefits, Deployment Models and Use Cases” Slide 7
Data Plane Programmability 現状と展望 | MPLS Japan 2018 | 2018/11/19 28
ベンダーの状況|Cisco
Reference: P4 Workshop 2018 in Tokyo“Cisco Nexus 3400 Series P4-Programmable Switches | P4 Benefits, Deployment Models and Use Cases” Slide 8
daPIPEData Plane Incremental Programming Environment
統合された開発環境
パイプラインの1部割当
Data Plane Programmability 現状と展望 | MPLS Japan 2018 | 2018/11/19 29
ベンダーの状況|Arista
Reference: P4 Workshop 2018 in Tokyo“Arista 7170 Introduction and Demonstration” Slide 5
Data Plane Programmability 現状と展望 | MPLS Japan 2018 | 2018/11/19 30
ベンダーの状況|Arista
Reference: P4 Workshop 2018 in Tokyo“Arista 7170 Introduction and Demonstration” Slide 23
Data Plane Programmability 現状と展望 | MPLS Japan 2018 | 2018/11/19 31
ベンダーの状況|Arista
Reference: P4 Workshop 2018 in Tokyo“Arista 7170 Introduction and Demonstration” Slide 24
Data Plane Programmability 現状と展望 | MPLS Japan 2018 | 2018/11/19 32
ベンダーの状況|Arista
新しいプロファイルもrpmコマンドでインストール可能
通常のプロファイルと同様に設定変更により即座に反映
Reference: P4 Workshop 2018 in Tokyo“Arista 7170 Introduction and Demonstration” Slide 35,36
詳細はArista 7170ホワイトペーパー参照https://www.arista.com/assets/data/pdf/Whitepapers/7170_White_Paper.pdf
Data Plane Programmability 現状と展望 | MPLS Japan 2018 | 2018/11/19 33
ベンダーの状況|Mellanox
Data Plane Programmability 現状と展望 | MPLS Japan 2018 | 2018/11/19 34
ベンダーの状況|Mellanox
製品としての提供時期はMellanox営業SEにお問い合わせください
Data Plane Programmability 現状と展望 | MPLS Japan 2018 | 2018/11/19 35
ベンダーの状況|Juniper
BLOG: Juniper Advancing Disaggregation Through P4 Runtime Integration (Feb 20, 2018)https://forums.juniper.net/t5/Engineering-Simplicity/Juniper-Advancing-Disaggregation-Through-P4-Runtime-Integration/ba-p/319195
“P4 as the language that describes the contractbetween the control plane and the data plane”
“The architecture applies uniformly to devices across different ASIC families”“The P4 Agent is sufficiently decoupled from the on-box operating system”
Data/Control Plane間のインターフェース(Contract)を記述するために P4を利用
ASICに依存しない抽象化レイヤを用意P4Agentを分離する形で既存NOSと統合
抽象化レイヤ(AFT/AFI)
ベンダーの状況|Juniper
Data Plane Programmability 現状と展望 | MPLS Japan 2018 | 2018/11/19 36
Juniper P4Runtime 実装 on GitHub
https://github.com/Juniper/JP4Agent
Docker実行環境
注:VMX tarball (jnprP4vmx.tgz) を Juniperから入手する必要あり
Virtual Control Plane(いわゆる JUNOS)
Virtual Forwarding Plane
Data Plane Programmability 現状と展望 | MPLS Japan 2018 | 2018/11/19 37
ベンダーの状況|APRESIA Systems
Reference: P4 Workshop 2018 in Tokyo“Wedge 100 BF Switch Introduction and SRv6 Demonstration | APRESIA Systems & Edgecore” Slide 6
技術支援を提供
Data Plane Programmability 現状と展望 | MPLS Japan 2018 | 2018/11/19 38
ベンダーの状況|APRESIA Systems
Reference: P4 Workshop 2018 in Tokyo“Wedge 100 BF Switch Introduction and SRv6 Demonstration | APRESIA Systems & Edgecore” Slide 8
Data Plane Programmability 現状と展望 | MPLS Japan 2018 | 2018/11/19 39
ベンダーの状況|APRESIA Systems
Reference: P4 Workshop 2018 in Tokyo“Wedge 100 BF Switch Introduction and SRv6 Demonstration | APRESIA Systems & Edgecore” Slide 16
オープンソースのP4状況コミュニティ開発の可能性
Data Plane Programmability 現状と展望 | MPLS Japan 2018 | 2018/11/19 40
オープンソースのP4状況
Data Plane Programmability 現状と展望 | MPLS Japan 2018 | 2018/11/19 41
P4.orghttps://github.com/p4lang
P4 対応 Software Switch (サンプルCLI付き)
P4チュートリアル&サンプル(P4 source code, Protocol agent ...)
P4 コンパイラ
P4ソフトウェア実装|ビルド・実行手順サンプルhttps://www.slideshare.net/kentaroebisawa/how-to-run-p4-bmv2
オープンソースのP4状況
Data Plane Programmability 現状と展望 | MPLS Japan 2018 | 2018/11/19 42
STRATUMhttps://www.opennetworking.org/stratum/
オープンソースのP4状況
Data Plane Programmability 現状と展望 | MPLS Japan 2018 | 2018/11/19 43
STRATUMhttps://www.opennetworking.org/stratum/
詳細は次のセッションで...
P4/Stratum活用に向けたプログラマブルスイッチの実装・検討武井勇樹(NTT)
Data Plane Programmability 現状と展望 | MPLS Japan 2018 | 2018/11/19 44
データプレーンプログラマビリティ 「3つの視点」
データプレーンプログラミングは普及するのか?
どこまで自作するのか?できるのか?サポートしてくれる人はいるのか?
プログラマブルな Switch ASIC はこの先、生き残り進化していくのか?
プログラマブルなSwitch ASIC は生き残るのか?
Data Plane Programmability 現状と展望 | MPLS Japan 2018 | 2018/11/19 45
Data Plane Programmability 現状と展望 | MPLS Japan 2018 | 2018/11/19 46
プログラマブルな Switch ASICは生き残るのか?
ASIC単価=開発コスト(膨大)÷出荷数
生き残るためには「数」が重要
開発コスト(膨大)< ASIC単価×出荷数
Data Plane Programmability 現状と展望 | MPLS Japan 2018 | 2018/11/19 47
「数」 を増やすために必要な事
https://www.crunchbase.com/organization/barefoot-networks
ユーザー企業による利用・投資
https://www.sdxcentral.com/articles/news/barefoot-scores-tofino-deals-with-alibaba-baidu-and-tencent/2017/05/
ネットワーク機器ベンダーに採用
Cisco
Arista
ODMBareMetal Switch
https://www.barefootnetworks.com/products/getting-started/
Barefoot Tofino ASIC の状況
Data Plane Programmability 現状と展望 | MPLS Japan 2018 | 2018/11/19 48
プログラマビリティはASICの基本機能に
“Programmable” を売りにしていないBroadcomもプログラマビリティをサポート
(Juniper / Mellanoxだけでなく)
Time To Market の重要性先行者の圧力
(Cavium XPliant / Barefoot Tofino etc.)
https://www.broadcom.com/blog/new-trident-3-switch-delivers-smarter-programmability-for-enterprise-and-service-provider-datacenters
プログラマブルなSwitch ASIC 進化の可能性
Data Plane Programmability 現状と展望 | MPLS Japan 2018 | 2018/11/19 49
Data Plane Programmability 現状と展望 | MPLS Japan 2018 | 2018/11/19 50
ドメイン特化型アーキテクチャの必要性
Hennessy and David Patterson Deliver Turing Lecture at ISCA 2018https://www.acm.org/hennessy-patterson-turing-lecture
“A New Golden Age for Computer Architecture:Domain-Specific Hardware/Software Co-Design,
Enhanced Security, Open Instruction Sets, and Agile Chip Development,”
Data Plane Programmability 現状と展望 | MPLS Japan 2018 | 2018/11/19 51
Switch ASIC 進化の可能性
Reference: https://www.barefootnetworks.com/technology/
Data Plane Programmability 現状と展望 | MPLS Japan 2018 | 2018/11/19 52
「パケット転送」以外のユースケースへの適用
Key-value store
NetCache : Balancing Key-Value Stores with Fast In-Network Caching Key-value stores power online services.Jin, Xin; Li, Xiaozhou; Zhang, Haoyu; Soule, Robert; Lee, Jeongkeun; Foster, Nate; Kim, Changhoon; Stoica, I. (2017). Sosp, (Figure 1), 121?136. https://doi.org/10.1145/3132747.3132764
Map Reduce
Network Map Reduce.Song, H., Gong, J., & Chen, H. (2016).Retrieved from http://arxiv.org/abs/1609.02982
DAIET ... Data Aggregation In nETworkhttps://sands.kaust.edu.sa/daiet/Poster: Amedeo Sapio, Ibrahim Abdelaziz, Marco Canini and Panos Kalnis.“DAIET: A System for Data Aggregation Inside the Network.”In ACM Symposium on Cloud Computing 2017, Santa Clara, California, USA.
コンセンサス(合意)
Paxos Made Switch-y.Dang, H. T., Canini, M., Pedone, F., & Soule, R. (2016).ACM SIGCOMM Computer Communication Review, 46(1), 18~24. https://doi.org/10.1145/2935634.2935638
Eris: Coordination-Free Consistent Transactions Using In-Network Concurrency Control.Li, J., Michael, E., K Ports, D. R., & K, D. R. (2017).Sosp. https://doi.org/10.1145/3132747.3132751
NetPaxos: Consensus at Network Speed.Dang, H. T., Sciascia, D., Canini, M., Pedone, F., & Soule, R. (2015).Proceedings of the 1st ACM Sigcomm Symposium on SDN Research (SOSR), 5:1--5:7. https://doi.org/10.1145/2774993.2774999
NetChain: Scale-Free Sub-RTT Coordination.Nsdi, 35~49. Retrieved from http://dl.acm.org/citation.cfm?doid=3132747.3132761
Data Plane Programmability 現状と展望 | MPLS Japan 2018 | 2018/11/19 53
CANデータ物理量変換(試作)
Programmable Switch
Match:車種+フィールドIDAction:値の変換
Match:車種+フィールドIDAction:値の変換
. . .
. . .
. . .
変換後の車両情報車両情報
BYTEアライメントではないデータの超高速ストリーム処理
Data Plane Programmability 現状と展望 | MPLS Japan 2018 | 2018/11/19 54
IRTF Computing in the Network (COIN)
性能の向上と新たなネットワーク化されたアプリケーションを実現可能にすべくネットワーク内コンピューティングの研究を育成・促進する
Initial Meeting: IETF 103 Bangkok (2018年11月9日)Wiki: https://trac.ietf.org/trac/irtf/wiki/coin
Mailing List: https://www.irtf.org/mailman/listinfo/coin
https://trac.ietf.org/trac/irtf/attachment/wiki/coin/coin_ietf103_chair_slides%20-%20Finalv3.pptx
IRTF Computing in the Network (COIN)
Data Plane Programmability 現状と展望 | MPLS Japan 2018 | 2018/11/19 55
アーキテクチャの違いによる制約
プログラミングモデルやアーキテクチャによる制約を意識した適用場所(アプリケーション)の研究が必要
チューリング完全(ではない)
メモリサイズの制約
演算処理の制約(例:浮動小数点)
パケット毎に適用可能な処理(Action)制約
複数パケットにまたがる処理の難しさ
IRTF Computing in the Network (COIN)
Data Plane Programmability 現状と展望 | MPLS Japan 2018 | 2018/11/19 56
今後の予定
チャーターの議論(メーリングリストなどを通じて)
Interim Meeting の実施(未定:2019年1月頃?)
Research Group としての承認取得
Meeting at IETF104 Plague (RG承認された場合)
まとめ
Data Plane Programmability 現状と展望 | MPLS Japan 2018 | 2018/11/19 57
Data Plane Programmability 現状と展望 | MPLS Japan 2018 | 2018/11/19 58
Data Plane Programmability 現状と展望
商用利用が可能な環境の整備が進む
オープンなプログラム言語の普及商用ベンダーのサポート
商用NOSへ部分的適用も可能に
現在
プログラマビリティはASICの標準機能に
ASIC仕様としてプログラマブルな部分が増加傾向
近未来
パケット転送以外の分野への適用も
アカデミアでの研究は盛んにSwitch ASICの進化
GPGPUと同じ道をたどれるか?
将来