プログラマブル・データプレーン時代に向けた ネットワーク・オペレーション・スタック

Similar documents
Ponto Networks, Inc. Delaware C corp, established Dec 2015 PontOS Dataplane agnostic Network Operation System + Stack providing performance, programma

PowerPoint プレゼンテーション

PowerPoint プレゼンテーション

2017 5G 時代の モバイルユーザープレーン 再検討 松嶋聡 ソフトバンク

[公開OK][空閑さん資料]kuga-ovs-fpga.pptx

total.dvi

TCP/IP Internet Week 2002 [2002/12/17] Japan Registry Service Co., Ltd. No.3 Internet Week 2002 [2002/12/17] Japan Registry Service Co., Ltd. No.4 2

Trema を使って OpenFlow プログラミングを 始めてみませんか? 鈴木一哉 Trema 開発チーム 2012/4/13

160311_icm2015-muramatsu-v2.pptx

ProgrammableFlow Controller

_JANOG44_LINE_tsuchiya

Software-Defined Tester(SDT) を用いた高精度遅延測定による SDN/NFV 品質向上 富士通アドバンストテクノロジ株式会社システム技術統括部大久保克彦 0 Copyright 2017 FUJITSU AD

R80.10_FireWall_Config_Guide_Rev1

アジェンダ 会社紹介 OFCONFIGについて NETCONFおよびYANGについて OFCONFIGユースケース A.I.Corporation 2

Microsoft PowerPoint - NV研究会_201404_amemiya_fin.pptx

発表者紹介 名前 谷所基行 ( たにしょもとゆき ) 自画像 画数 8[ 画 ] 描画時間 5[s] 仕事 スイッチ装置アーキテクチャ検討 ASSP ドライバー開発 NPU マイクロコード開発 測定器ファームウェア開発 (SDT) その他 ときどき ハッカソンに参加 1

Microsoft PowerPoint - TD_CGN.pptx

SCREENOS NAT ScreenOS J-Series(JUNOS9.5 ) NAT ScreenOS J-Series(JUNOS9.5 ) NAT : Destination NAT Zone NAT Pool DIP IF NAT Pool Egress IF Loopback Grou

Dell EMC Networking OS10 - Configuration and Programmability

IP IPv4-IPv6

PowerPoint Presentation

【公開】村越健哉_ヤフーのIP CLOSネットワーク

Microsoft PowerPoint - ykashimu_dslite_JANOG26_rev

Agenda IPv4 over IPv6 MAP MAP IPv4 over IPv6 MAP packet MAP Protocol MAP domain MAP domain ASAMAP ASAMAP 2

ScreenOS 5.0 ScreenOS 5.0 Deep Inspection VLAN NetScreen-25/-50/-204/-208 HA NetScreen-25 HA Lite NetScreen-25 NetScreen-50) ALG(Application Layer Gat

nakayama15icm01_l7filter.pptx

初めてのBFD

Microsoft PowerPoint - ONIC_SD-WAN_ver3

BRANCH SRX <2010Q3 > 2 Copyright 2010 Juniper Networks, Inc.

Cisco Aironet 1130AG アクセス ポイント クイック スタート ガイド

アライドテレシス ディストリビューション・スイッチ AT-x600シリーズで実現するMicrosoft® NAP

LSM-L3-24設定ガイド(初版)

Microsoft Azure Microsoft Corporation Global Blackbelt Sales Japan OSS TSP Rio Fujita

_‚Ofl¼

fusion.PDF

Packet Tracer: 拡張 ACL の設定 : シナリオ 1 トポロジ アドレステーブル R1 デバイスインターフェイス IP アドレスサブネットマスクデフォルトゲートウェイ G0/ N/A G0/

Packetmasters/ Sessionmaster Network Packet Brokers ネットワーク パケットブローカ

Managed Firewall NATユースケース

00.目次_ope

MK_ computing-and-SRv6

Configuring_01

PowerPoint プレゼンテーション

Symantec AntiVirus の設定

Exam : 日本語版 Title : Introducing Cisco Data Center Networking Vendor : Cisco Version : DEMO 1 / 4 Get Latest & Valid J Exam's Question a

Macintosh HD:Users:ks91:Documents:lect:nm2002s:nm2002s03.dvi

update

PowerPoint プレゼンテーション

VoIP Broadcasting System 2/2 IP Convergence Communication Solution IP paradigm Integration & Management VoIP IP VoIP VoIP IT < >

PIM-SSMマルチキャストネットワーク

Presentation Template Koji Komatsu

untitled


Dynamic VPN Dynamic VPN IPSec VPN PC SRX IPSec VPN SRX PC IPSec 2 Copyright 2010 Juniper Networks, Inc.

ループ防止技術を使用して OSPFv3 を PE-CE プロトコルとして設定する

Microsoft PowerPoint ppt [互換モード]

! 行行 CPUDSP PPESPECell/B.E. CPUGPU 行行 SIMD [SSE, AltiVec] 用 HPC CPUDSP PPESPE (Cell/B.E.) SPE CPUGPU GPU CPU DSP DSP PPE SPE SPE CPU DSP SPE 2

untitled

untitled

total-all-nt.dvi

All Rights Reserved. Copyright(c)1997 Internet Initiative Japan Inc. 1

Openconfigを用いたネットワーク機器操作

IPv6 リンクローカル アドレスについて

EtherChannelの設定

パケットモニター (Wireshark) の使い方 第 1 版 1.Wireshark とは ネットワーク上 (LAN ケーブルに流れている ) のパケットを取得して その中の情報を画面に表示するソフトウェア (LAN アナライザーまたはパケットモニター ) の 1 つに Wiresh

Office 365 とのドメイン間フェデレーション

Catalyst 3560-C and 2960-C Getting Started Guide (Japanese)

Microsoft PowerPoint - NxLecture ppt [互換モード]

Jan, 2004 Plenary Meeting ARIB 5 Jan, 2005 Plenary Meeting x86 BML Browser on DirectFB Jan, 2006 Technical Jamboree ARIB Extension for DirectFB 2

PowerPoint プレゼンテーション

MidoNet は 2014 年 11 月よりオープンソースに Apache2 ライセンス 機能 : 分散仮想スイッチ 分散仮想ルーター 分散仮想 L4 ロードバランサー 分散仮想 L4 ファイヤーウォール 分散 NAT ドキュメント CLI デプロイメントツール ドキュメント類 オープンソースに含

Introduction Purpose This training course demonstrates the use of the High-performance Embedded Workshop (HEW), a key tool for developing software for

Congress Deep Dive

QOS.dvi

Systemwalker IT Service Management Systemwalker IT Service Management V11.0L10 IT Service Management - Centric Manager Windows

ip nat outside source list コマンドを使用した設定例

Juniper Networks Corporate PowerPoint Template

Cisco Nexus 9000 シリーズ データセンター スイッチ ガイド

EANTC 1 CSP 2 SDN WAN Automation Engine Cisco WAN Automation Engine Cisco WAN Automation Engine Cisco WAN Automation Engine Cisco WAN Automation Engin

Transcription:

プログラマブルデータプレーン (P4) & ネットワーク オペレーションスタック Okinawa Open Days 2017 Forum 海老澤健太郎 @ Ponto Networks, Inc. ebiken@pontonetworks.com プログラマブルデータプレーン (P4)& ネットワーク オペレーションスタック OkinawaOpenDays フォーラム 2017/12/07 1

Ponto Networks, Inc. Delaware C corp, established Dec 2015 PontOS Dataplane agnostic Network Operation System + Stack providing performance, programmability, openness, scalability and modularity leveraging multiple hardware accelerated dataplanes like programmable silicon powered WhiteBox switches, NPU/FPGA powered SmartNICs and more. Headquarters San Diego, California (USA) Development Tokyo (Japan) + San Jose (USA) Investors Ex-executives of Internet and Mobile industry プログラマブルデータプレーン (P4)& ネットワーク オペレーションスタック OkinawaOpenDays フォーラム 2017/12/07 2

データプレーン とは? イーサネットヘッダを解析 宛先アドレスを KEY に MAC テーブルを参照 学習済みポートへ転送 ヘッダ解析 (Parse) テーブル参照 (Match) 変更 転送 (Action) パケット処理パイプライン プログラマブルデータプレーン (P4)& ネットワーク オペレーションスタック OkinawaOpenDays フォーラム 2017/12/07 3

最も柔軟な データプレーン とは? CPU どんな処理も実装できる ( プログラマブル ) プログラマブルデータプレーン (P4)& ネットワーク オペレーションスタック OkinawaOpenDays フォーラム 2017/12/07 4

ハードウェア データプレーン (ASIC) を使う利用 ピーク性能 Gbps 単価 CPU 300Gbps 10,000 円 ASIC 6.5Tbps 461 円 数字は概算 ( 桁感の例 ) です CPU/ASIC 1 個搭載のサーバー / スイッチ価格を 300 万円として比較 CPU: XEON PLATINUM 8180 (PCIe 3 x 48 = 300Gbps) ASIC: Barefoot Tofino (100GbE x 65 port) を Layer 2/3 switch として利用 数字は概算 ( 桁感の例 ) です CPU/ASIC 1 個搭載のサーバー / スイッチ価格を 300 万円として比較 プログラマブルデータプレーン (P4)& ネットワーク オペレーションスタック OkinawaOpenDays フォーラム 2017/12/07 5

ハードウェア データプレーン (ASIC) を使う利用 機能追加時に必要な開発体制とコスト CPU ASIC ピーク性能 300Gbps 6.5Tbps Gbps 単価 10,000 円 461 円 開発体制 数人 数十人 開発コスト ( 人件費除く ) 数百万円 数億円 ASIC 作り直し 数字は概算 ( 桁感の例 ) です CPU/ASIC 1 個搭載のサーバー / スイッチ価格を 300 万円として比較 プログラマブルデータプレーン (P4)& ネットワーク オペレーションスタック OkinawaOpenDays フォーラム 2017/12/07 6

ASIC のスケーラビリティ + CPU の開発コスト CPU ASIC プログラマブル ASIC ピーク性能 300Gbps 6.5Tbps 6.5Tbps Gbps 単価 10,000 円 461 円 461 円 開発体制 数人 数十人 数人 開発コスト ( 人件費除く ) 数百万円 数億円 数百万円 数字は概算 ( 桁感の例 ) です CPU/ASIC 1 個搭載のサーバー / スイッチ価格を 300 万円として比較 プログラマブルデータプレーン (P4)& ネットワーク オペレーションスタック OkinawaOpenDays フォーラム 2017/12/07 7

プログラマブル データプレーン の登場 イノベーションがスケールする時代に 試作 試行コストが小さくなる サーバーで起きたイノベーションをネットワークへコスト & 性能の良いプラットフォームでイノベーションが実現 個人で開発への参加が可能 オープンな活動の活性化より多くの人が新しい試みに参加できるように プログラマブルデータプレーン (P4)& ネットワーク オペレーションスタック OkinawaOpenDays フォーラム 2017/12/07 8

プログラマブル データプレーン で プログラム できること ヘッダフォーマットの定義パースグラフの構築 マッチフィールドの定義テーブルタイプの定義 (Exact / Masked) MAC address IPv4 address proto + TCP ports ( any header fields ) アクションの定義フィールド操作ロジック drop copy forward push / pop add(+) sub(-) multiple(*) bit shift (<<) (>>) ヘッダ解析 (Parse) テーブル参照 (Match) 変更 転送 (Action) プログラマブルデータプレーン (P4)& ネットワーク オペレーションスタック OkinawaOpenDays フォーラム 2017/12/07 9

プログラマブル データプレーン ( ハードウェア ) の現在 メーカー 製品名称タイプ開発環境 Cavium XPliant ASIC XDK Barefoot Tofino ASIC P4 製品出荷実績多数 ( クラウド事業者 ) OEM:Arista, Brocade 大規模事業者を中心とした限定出荷検証 開発用筐体は一般入手可能 Netronome NFP NPU C-based SmartNIC 1 枚から広く入手可能 OEM 多数 ( 非公開 アプライアンス製品等 ) NetFPGA (Xilinx) FPGA SDNet NetFPGA は研究 教育目的が中心 Xilinx FPGA 搭載ボード (+SDNet) としても入手可能 代表的な製品のみ記載 他多数のメーカーもプログラマブル ASIC/NPU/FPGA リリースを予定している プログラマブルデータプレーン (P4)& ネットワーク オペレーションスタック OkinawaOpenDays フォーラム 2017/12/07 10

プログラマブル データプレーンの課題 (1) メーカー 製品名称タイプ開発環境 Cavium XPliant ASIC XDK Barefoot Tofino ASIC P4 Netronome NFP NPU C-based NetFPGA (Xilinx) FPGA SDNet 自由にプログラム からは やや遠い 言語もツールも異なる過去の学習が生かされない SDK 入手に別途契約が必要な場合も プログラマブルデータプレーン (P4)& ネットワーク オペレーションスタック OkinawaOpenDays フォーラム 2017/12/07 11

P4: 汎用データプレーン プログラミング言語の登場 Programming Protocol-Independent Packet Processors P4 Source Code P4 Compiler Target (P4 対応 Dataplane) パケット処理パイプラインの定義パーサーやテーブル アクション など P4 を Target 上で実行可能な形式にコンパイル Target 毎に提供される P4 Dataplane runtime に従いパケットを処理 Hardware: ASIC, NPU, FPGA Software: CPU プログラマブルデータプレーン (P4)& ネットワーク オペレーションスタック OkinawaOpenDays フォーラム 2017/12/07 12

ヘッダ定義パーサー定義テーブル定義 P4 プログラム ( 例 ) パイプライン定義 C 構造体のようにプロトコルヘッダを定義 パーサー テーブル パイプラインを簡単な構文で記述可能 プログラマブルデータプレーン (P4)& ネットワーク オペレーションスタック OkinawaOpenDays フォーラム 2017/12/07 13

プログラマブル データプレーンを用いたアプリケーション検討のワーキンググループ発足 (2017 年 11 月 ) https://p4.org/members/announcing-the-p4-applications-working-group/ プログラマブルデータプレーン (P4)& ネットワーク オペレーションスタック OkinawaOpenDays フォーラム 2017/12/07 14

p4alu Arithmetic Logic Unit written in P4 Source Code on GitHub https://github.com/ebiken/p4sandbox/tree/master/p4alu Generic P4 information in Japanese ( 日本語 ) How to Run P4 Behavior Model v2 (JAPANESE) https://www.slideshare.net/kentaroebisawa/how-to-run-p4-bmv2 プログラマブルデータプレーン (P4)& ネットワーク オペレーションスタック OkinawaOpenDays フォーラム 2017/12/07 15

ALU Integer Operand Integer Operand opcode op1 result op2 Integer Result プログラマブルデータプレーン (P4)& ネットワーク オペレーションスタック OkinawaOpenDays フォーラム 2017/12/07 16

p4alu header format Integer Operand Integer Operand opcode op1 result op2 Integer Result プログラマブルデータプレーン (P4)& ネットワーク オペレーションスタック OkinawaOpenDays フォーラム 2017/12/07 17

P4 parser プログラマブルデータプレーン (P4)& ネットワーク オペレーションスタック OkinawaOpenDays フォーラム 2017/12/07 18

P4 action プログラマブルデータプレーン (P4)& ネットワーク オペレーションスタック OkinawaOpenDays フォーラム 2017/12/07 19

P4 table & control プログラマブルデータプレーン (P4)& ネットワーク オペレーションスタック OkinawaOpenDays フォーラム 2017/12/07 20

Setup netns based hosts BMv2 running p4alu プログラマブルデータプレーン (P4)& ネットワーク オペレーションスタック OkinawaOpenDays フォーラム 2017/12/07 21

Compile and Run on BMv2 プログラマブルデータプレーン (P4)& ネットワーク オペレーションスタック OkinawaOpenDays フォーラム 2017/12/07 22

Configure Tables via runtime_cli Forward Packet from/to port#0 <-> port#1 Apply action based on opcode opcode: 1 => p4alu_add opcode: 2 => p4alu_sub BMv2 Runtime CLI command format プログラマブルデータプレーン (P4)& ネットワーク オペレーションスタック OkinawaOpenDays フォーラム 2017/12/07 23

Packet Format (sending from host0) opcode: 0x01 => p4alu_add opcode: 0x02 => p4alu_sub プログラマブルデータプレーン (P4)& ネットワーク オペレーションスタック OkinawaOpenDays フォーラム 2017/12/07 24

CuiShark by @slankdev https://github.com/slankdev/cuishark packets after going through p4alu op2 result op1 opcode プログラマブルデータプレーン (P4)& ネットワーク オペレーションスタック OkinawaOpenDays フォーラム 2017/12/07 25

CuiShark by @slankdev https://github.com/slankdev/cuishark packets after going through p4alu op2 result op1 opcode プログラマブルデータプレーン (P4)& ネットワーク オペレーションスタック OkinawaOpenDays フォーラム 2017/12/07 26

プログラマブル データプレーンの課題 データプレーンをどうコントロールするか? プログラマブル データプレーン時代に必要な ネットワーク オペレーション スタック とは? プログラマブルデータプレーン (P4)& ネットワーク オペレーションスタック OkinawaOpenDays フォーラム 2017/12/07 27

プログラマブル データプレーン時代の ネットワーク オペレーション スタック に何が求められるか? 1. 異なるデータプレーン ハードウェアへの対応 2. パケット処理パイプラインの管理 (Match/Action Table) 3. プロトコル エージェントの入れ替え 4. ユーザーアプリケーションの動作 シェルアクセス サーバー同様の開発ツールチェイン 5. アプリケーションのための API 都度コンパイルでなく grpc/rest 等 API で制御可能 User Applications Modular Protocol Agents Dataplane Abstraction API Config Manager Pipeline Profile Dataplane (ASIC, NPU, FPGA, CPU) CLI プログラマブルデータプレーン (P4)& ネットワーク オペレーションスタック OkinawaOpenDays フォーラム 2017/12/07 28

PontOS² コンセプト & アーキテクチャ External Apps Mngment System Operator Application Friendly API ネットワークプログラマビリティを実現するアプリケーション フレンドリーな開発環境 Management Plane User User Apps Apps SDK (Language API) REST API (WebAPI) Linux shell (CLI as an Application) オープンソースにより構成されたビルディング ブロック Flexible Data plane プロファイル選択により入れ替え可能なパケット処理エンジン Native Applications Native Native Applications Applications Modular Modular Routing Routing Agents Agents FEA (Forwarding Engine Abstraction) Flex ASIC (XPliant etc.) Data Plane Flexible Data Plane Linux Kernel Network Stack Config Broker (data store) Data Path Profile Manager P4 (SmartNIC, NPU, FPGA) プログラマブルデータプレーン (P4)& ネットワーク オペレーションスタック OkinawaOpenDays フォーラム 2017/12/07 29

プログラマブル ASIC デモ GTP Parser & Match/Action + Stats on Cavium XPliant Computex Taipei 台湾 台北... 2017 年 6 月 Open Compute Project サンノゼ... 2017 年 3 月 RAN EPC SGi Internet Service Functions enodeb SGW PGW GW GTP-U Tunnel GTP-U Tunnel VLAN, etc. プログラマブルデータプレーン (P4)& ネットワーク オペレーションスタック OkinawaOpenDays フォーラム 2017/12/07 30

GTP TEID match/action & statistics ( デモ構成図 ) GTP トラフィック生成用サーバー (VM) host1 host2 10.0.40.1/24 10.0.40.2/24 Mngmnt Port デモ GUI (Web ブラウザ ) 100GbE 100GbE REST API GTP Traffic (TEID=100/200/300/400) XPliant スイッチ (White Box) Parse GTP Header Match/Action based on GTP TEID stats via REST API Mngmnt Port = IP Interface プログラマブルデータプレーン (P4)& ネットワーク オペレーションスタック OkinawaOpenDays フォーラム 2017/12/07 31

PontOS² Implementation ( 実装 ) Zebra 2.0 Open Source Network Stack Fresh rewrite of Zebra/Quagga Data Plane agnostic NetOS Stack PontOS² Seamless integration with multiple Proprietary Data Plane platforms Performance and quality control for service providers Management Plane User User Apps Apps Native Applications Native Native Applications Applications Modular Modular Routing Routing Agents Agents REST API (WebAPI) FEA (Forwarding Engine Abstraction) Flex ASIC (XPliant etc.) Data Plane External Apps Mngment System SDK (Language API) Flexible Data Plane Linux Kernel Network Stack Operator Linux shell (CLI as an Application) Config Broker (data store) Data Path Profile Manager P4 (SmartNIC, NPU, FPGA) プログラマブルデータプレーン (P4)& ネットワーク オペレーションスタック OkinawaOpenDays フォーラム 2017/12/07 32

Zebra 2.0 on GitHub!! https://github.com/coreswitch/zebra https://github.com/coreswitch/openconfigd Zebra 2.0 Installation Install openconfigd $ go get github.com/coreswitch/openconfigd/openconfigd Install CLI $ go get github.com/coreswitch/openconfigd/cli_command $ cd $GOPATH/src/github.com/ coreswitch /openconfigd/cli $./configure; make $ sudo make install $ cd $GOPATH/src/github.com/coreswitch/openconfigd/bash_completion.d $ sudo cp cli /etc/bash_completion.d/ Install zebra $ go get github.com/coreswitch/zebra/rib/ribd プログラマブルデータプレーン (P4)& ネットワーク オペレーションスタック OkinawaOpenDays フォーラム 2017/12/07 33

Written from scratch in Go openconfigd configuration system yang model CLI (Junos like) etcd for scalability zebra/ribd dataplane management (ex: FIB) zebra/fea multiple dataplane support link/port, bridge domain etc. New bgpd/ospfd multi-core support quaggad & zebra protocol for backward compatibility Zebra 2.0 Architecture openconfigd quagga quaggad bgpd / ospfd Tap interface vtysh grpc (yang model) zebra proto Linux dataplane netlink プログラマブルデータプレーン (P4)& ネットワーク オペレーションスタック OkinawaOpenDays フォーラム 2017/12/07 34 CLI openconfigd grpc ribd grpc fea zebra grpc JSON grpc etcd bgpd/ospfd HW API (SAI, XDK etc.) Hardware dataplane

Zebra 2.0 アーキテクチャの特徴 オープンかつモジュラーなアーキテクチャ 例 :openconfigd 部分だけを利用して他製品に組み込み Lagopus Router https://github.com/lagopus/vsw 新しい技術のユースケース確認が身近に 例 :SRv6 対応 (2017 年 11 月 ) オープン & オープンソースのデータプレーン管理プラットフォーム プログラマブルデータプレーン (P4)& ネットワーク オペレーションスタック OkinawaOpenDays フォーラム 2017/12/07 35

Zebra2.0 SRv6 on Linux dataplane https://github.com/coreswitch/zebra/blob/master/docs/srv6.md プログラマブルデータプレーン (P4)& ネットワーク オペレーションスタック OkinawaOpenDays フォーラム 2017/12/07 36

Zebra2.0 + OpenConfigd + Quagga ospfd/bgpd On LXC Containers https://github.com/coreswitch/zebra/blob/master/docs/quagga-lxc.md プログラマブルデータプレーン (P4)& ネットワーク オペレーションスタック OkinawaOpenDays フォーラム 2017/12/07 37

Basic routing/switching features (ACL, NAT etc.) New Protocol Support SRv6 Network Programming Forwarding Engine Abstraction ASIC support (via SAI) P4 dataplane (via SAI or P4-PI) New Protocol Agents BGP, OSPFv2, OSPFv3, IS-IS Zebra 2.0 (future roadmap) プログラマブルデータプレーン (P4)& ネットワーク オペレーションスタック OkinawaOpenDays フォーラム 2017/12/07 38

プログラマブル データプレーン時代に目指すもの データプレーンに自由を スケーラブルなデータプレーンを 個人 がプログラムできる時代に プログラマブルデータプレーン (P4)& ネットワーク オペレーションスタック OkinawaOpenDays フォーラム 2017/12/07 39