• 検索結果がありません。

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

N/A
N/A
Protected

Academic year: 2021

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

Copied!
37
0
0

読み込み中.... (全文を見る)

全文

(1)

プログラマブル・データプレーン時代に向けた

ネットワーク・オペレーション・スタック

ONIC Japan 2017

(2)

Locations

Head Quarters

San Diego (USA)

Development

Tokyo (Japan) + San Jose (USA)

Investors

Ex-executives of Internet and Mobile industry.

(3)

プログラマブル・データプレーンの時代 とは?

「現在」

「課題」 と 「未来」

ネットワーク・オペレーション・スタックの実装例

(4)

データプレーン

とは?

イーサネットヘッダを解析

宛先アドレスをKEYに

MACテーブルを参照

学習済みポートへ転送

テーブル参照

(Match)

ヘッダ解析

(Parse)

変更・転送

(Action)

パケット処理 パイプライン

(5)

最も柔軟な

データプレーン

とは?

どんな処理も実装できる(プログラマブル)

(6)

ハードウェア・データプレーン(ASIC) を使う利用

ピーク性能

Gbps単価

CPU

300Gbps

10,000円

ASIC

6.5Tbps

461円

※ 数字は概算(桁感の例)です。CPU/ASIC 1個搭載のサーバー/スイッチ価格を300万円として比較。

※ 数字は概算(桁感の例)です

※ CPU/ASIC 1個搭載のサーバー/スイッチ価格を300万円として比較。

※ CPU: XEON® PLATINUM 8180 (PCIe 3 x 48 = 300Gbps)

(7)

ハードウェア・データプレーン(ASIC) を使う利用

機能追加時に必要な開発体制とコスト

ピーク性能

Gbps単価

開発体制

開発コスト

(人件費除く)

CPU

300Gbps

10,000円

数人

数百万円

ASIC

6.5Tbps

461円

数十人

数億円

※ 数字は概算(桁感の例)です。CPU/ASIC 1個搭載のサーバー/スイッチ価格を300万円として比較。

ASIC 作り直し

(8)

ASICのスケーラビリティ + CPUの開発コスト

ピーク性能

Gbps単価

開発体制

開発コスト

(人件費除く)

CPU

300Gbps

10,000円

数人

数百万円

ASIC

6.5Tbps

461円

数十人

数億円

プログラマブル

ASIC

6.5Tbps

461円

数人

数百万円

※ 数字は概算(桁感の例)です。CPU/ASIC 1個搭載のサーバー/スイッチ価格を300万円として比較。

(9)

「プログラマブル・データプレーン」の時代

イノベーションがスケールする時代

試作・試行コストが小さくなる ⇒ サーバーで起きたイノベーションをネットワークへ

コスト&性能の良いプラットフォームでイノベーションが実現

個人で開発への参加が可能 ⇒ オープンな活動の活性化

より多くの人が新しい試みに参加できるように

(10)

• In-band Network Telemetry (INT)

• パケットがマッチしたルールやQueueの情報をパケット自身に含める事により、SNMP等

ではモニタリングできなかった粒度でネットワークの状況を把握

• 遅延や特定アプリケーションの性能劣化原因を特定

• トラフィックエンジニアリングへの利用

• Tbps Class Load Balancer

• ラックあたり Tbps クラスのトラフィックに対応したLoad Balancerを低コストで構築

• トラフィック種別により振り分けに利用するフィールドを変更

• Pre-processing & Content aware routing for Massive IoT

• 様々な Client からのデータをサーバーが処理しやすいように前処理

• データ種別に応じた計算。bit -> Byte データ展開。

• ペイロード中のIDに応じたサーバーへの振り分け、ストレージへの直接保存

• アプリケーション毎のペイロード・データフォーマットの定義

(11)

ムーアの法則の終焉

待っていても性能は向上しない時代

いかに高価なCPUをオフロードするか?

プログラマブル・データプレーンが必要とされる

もう 1つの理由

出典 :https://www.karlrupp.net/2015/06/40-years-of-microprocessor-trend-data/

(12)

ムーアの法則の終焉

待っていても性能は向上しない時代

いかに高価なCPUをオフロードするか?

プログラマブル・データプレーンが必要とされる

もう 1つの理由

出典 :https://www.karlrupp.net/2015/06/40-years-of-microprocessor-trend-data/

「ユースケース最適」 な

ハードウェアの選択 が必要に

(13)

プログラマブル・データプレーンの現在

(14)

「プログラマブル・データプレーン」 で 「プログラム」 できること

ヘッダ フォーマットの定義

パースグラフの構築

ヘッダ解析

(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

(15)

プログラマブル・データプレーン(ハードウェア)の現在

メーカー・ 製品名称

タイプ

開発環境

Cavium XPliant

ASIC

XDK

製品出荷実績多数 (クラウド事業者)

OEM:Arista, Brocade

Barefoot Tofino

ASIC

P4

大規模事業者を中心とした限定出荷

検証・開発用筐体は一般入手可能

Netronome NFP

NPU

C-based

SmartNIC 1枚から広く入手可能

OEM多数(非公開・アプライアンス製品等)

NetFPGA (Xilinx)

FPGA

SDNet

NetFPGAは研究・教育目的が中心

Xilinx FPGA 搭載ボード(+SDNet)としても入手可能

(16)

https://www.amazon.co.jp/

Edgecore AS7512” で検索

Cavium Xpliant

(17)
(18)

(最もハードルが高い)

(19)

プログラマブル・データプレーン

「課題」 と 「未来」

(最もハードルが高い)

(20)

プログラマブル・データプレーンの課題 (1)

メーカー・ 製品名称

タイプ

開発環境

Cavium XPliant

ASIC

XDK

Barefoot Tofino

ASIC

P4

Netronome NFP

NPU

C-based

NetFPGA (Xilinx)

FPGA

SDNet

過去の学習が生かされない

言語もツールも異なる

SDK入手に別途契約が必要な場合も

「自由にプログラム」

からは、やや遠い

(21)

P4:汎用データプレーン・プログラミング言語の登場

P4 Source Code

パケット処理パイプラインの定義

パーサーやテーブル、アクション、など

P4 Compiler

P4をTarget上で実行可能な形式にコンパイル

Target毎に提供される

Target

(P4対応Dataplane)

P4 Dataplane runtime に従いパケットを処理

Hardware: ASIC, NPU, FPGA | Software: CPU

(22)

P4プログラム (例)

ヘッダ定義

パーサー定義

テーブル定義

• C 構造体のようにプロトコルヘッダを定義

• パーサー、テーブル、パイプラインを簡単な構文で記述可能

(23)

P4

対応状況

メーカー・ 製品名称

タイプ

開発環境

P4

対応状況(入手状況)

Cavium XPliant

ASIC

XDK

(エンドースメント・プレスリリース有り)

対応予定

Barefoot Tofino

ASIC

P4

Capilano SDE

(製品購入者+契約)

Netronome NFP

NPU

C-based

Agilio P4C SDK

(製品購入者)

NetFPGA (Xilinx)

FPGA

SDNet

P4→NetFPGA / P4-SDNet

(登録必要)

Netronome:

https://www.netronome.com/products/datapath-programming-tools/

(24)

P4 on Linux (ソフトウェア・リファレンス実装)

https://github.com/p4lang

P4 対応 Software Switch (サンプルCLI付き)

P4 チュートリアル&サンプル

(P4 source code, Protocol agent ...)

P4 コンパイラ

P4 ソフトウェア実装|ビルド・実行手順サンプル

(25)

プログラマブル・データプレーンの課題 (2)

データプレーンをどうコントロールするか?

プログラマブル・データプレーン時代に必要な

「ネットワーク・オペレーション・スタック」 とは?

(26)

Dataplane

(ASIC, NPU, FPGA, CPU)

Dataplane

Abstraction

Pipeline

Profile

Modular

Protocol Agents

Config

Manager

CLI

API

User

Applications

アプリケーションのためのAPI

• 都度コンパイルでなく、gRPC/REST等APIで制御可能

異なるデータプレーン・ハードウェアへの対応

パケット処理パイプラインの管理

• (Match/Action Table)

プロトコル・エージェントの入れ替え

ユーザーアプリケーションの動作

• シェルアクセス

• サーバー同様の開発ツールチェイン

プログラマブル・データプレーン時代の

「ネットワーク・オペレーション・スタック」 に何が求められるか?

(27)

Open Network OS の現状

Dataplane

Abstraction

Pipeline

Profile

Modular

Protocol

Agents

User

Apps

APIs for

Apps

OpenSwitch

SnapRoute + Dell

×

×

SONiC

×

×

ONL

(28)

プログラマブル・データプレーン時代の

(29)

Modular

Routing

Agents

REST API

(WebAPI)

User

Apps

Linux shell

(CLI as an Application)

Config Broker

(data store)

Modular

Routing

Agents

FEA (Forwarding Engine Abstraction)

Data Path

Profile

Manager

Flexible Data Plane

User

Apps

Management Plane

Data Plane

External Apps

Mngment System

Operator

Flex ASIC

(XPliant etc.)

Pont

OS²

コンセプト&アーキテクチャ

Application

Friendly API

Linux Kernel

Network Stack

P4 (SmartNIC,

NPU, FPGA)

Native

Applications

Applications

Native

Native

Applications

SDK

(Language API)

Flexible

Data plane

プロファイル選択により入れ替え可能な

パケット処理エンジン

オープンソースにより構成された

ビルディング・ブロック

ネットワークプログラマビリティを実現する

アプリケーション・フレンドリーな開発環境

(30)

プログラマブルASICデモ |GTP Parser & Match/Action + Stats on Cavium XPliant

Open Compute Project |

サンノゼ... 2017年3月

Computex Taipei |

台湾・台北 ... 2017年6月

RAN

EPC

SGi

Service Functions

Internet

eNodeB

SGW

PGW

GW

(31)

GTP TEID match/action & statistics (デモ構成図)

100GbE

100GbE

host1

host2

= IP Interface

• Parse GTP Header

• Match/Action based on GTP TEID

• stats via REST API

XPliant スイッチ(White Box)

GTP トラフィック生成用サーバー(VM)

10.0.40.1/24

10.0.40.2/24

GTP Traffic

(TEID=100/200/300/400)

Mngmnt

Port

Mngmnt

Port

デモ GUI

(Webブラウザ)

REST API

(32)

Modular

Routing

Agents

REST API

(WebAPI)

User

Apps

Linux shell

(CLI as an Application)

Config Broker

(data store)

Modular

Routing

Agents

FEA (Forwarding Engine Abstraction)

Data Path

Profile

Manager

Flexible Data Plane

User

Apps

Management Plane

Data Plane

External Apps

Mngment System

Operator

Flex ASIC

(XPliant etc.)

Linux Kernel

Network Stack

P4 (SmartNIC,

NPU, FPGA)

Native

Applications

Applications

Native

Native

Applications

SDK

(Language API)

Zebra 2.0

Open Source

Network Stack

Fresh rewrite of Zebra/Quagga

Data Plane agnostic NetOS Stack

Pont

OS²

Seamless integration with multiple

Proprietary Data Plane platforms

Performance and quality control

for service providers

(33)

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

(34)

Zebra 2.0 Architecture

CLI

openconfigd

Linux dataplane

quaggad

bgpd / ospfd

ribd

fea

quagga

openconfigd

zebra

gRPC

gRPC

(yang model)

vtysh

Tap

interface

netlink

Hardware dataplane

HW API (SAI, XDK etc.)

zebra

proto

gRPC

bgpd/ospfd

gRPC

gRPC

etcd

JSON

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

(35)

Zebra 2.0 DEMO

Zebra2.0 + OpenConfigd + Quagga ospfd/bgpd

On LXC Containers

(36)

• Basic routing/switching features (ACL, NAT etc.)

• New Protocols

• Segment Routing (SRv6)

• Forwarding Engine Abstraction

• ASIC support (via SAI)

• P4 dataplane (via SAI or P4-PI)

• New Protocol Agents

• BGP, OSPFv2, OSPFv3, IS-IS

(37)

プログラマブル・データプレーン時代に目指すもの

データプレーンに自由を

参照

関連したドキュメント

VRP is an NP-hard problem [7]; heuristics and evolu- tionary algorithms are used to solve VRP. In this paper, mutation ant colony algorithm is used to solve MRVRP with

Keywords and Phrases: moduli of vector bundles on curves, modular compactification, general linear

The theorem also implies that all p-adic L-functions for elliptic curves at odd primes p of semi-stable ordinary reductions are integral elements in the Iwasawa algebra.. See

In this expository paper, we illustrate two explicit methods which lead to special L-values of certain modular forms admitting complex multiplication (CM), motivated in part

Actually one starts there from an abelian surface satisfying certain condition, the most stringent being that the Galois representation ρ ∨ A,p must be congruent modulo p to

The relevant very Zariski dense subsets are then constructed using the control/classicality theorems of Stevens and Coleman together with the usual Eichler-Shimura isomorphism

本資料は Linux サーバー OS 向けプログラム「 ESET Server Security for Linux V8.1 」の機能を紹介した資料です。.. ・ESET File Security

Although I admittedly do not understand string theory from a physical point of view, I do think (most of my colleagues from algebraic QFT do not share such optimistic ideas) that