“Beyond Cloud Computing” - Network as as Platform

Miya Kohno
Distinguished Systems Engineer, Cisco Systems
1 November 2017

通信事業者ネットワークの変遷
1990年代 〜• インターネット革命•

サーキットからパケットへ•••

Everything over IP
End to End原理 (ネットワークは愚直にbitを運べ)•

http://www.soi.wide.ad.jp/class/20060032/slides/04/4.html •• ディジタル革命

電話のためのネットワークからコンピュータのためのネットワークへ

インテリジェンスはEnd Systemにインテリジェンスはクラウドに2010年代 〜•

あらゆるものがつながり•

あらゆるものが”as a Service” として提供され•あらゆるものが照合され、統計的・人工知能的に解析される

Beyond Cloud Computing ?!
クラウドの寡占

マルチクラウドの時代• Public CloudとPrivate Cloudの共存• OTTクラウドと通信事業者クラウドの共存

ネットワークの価値 – 低(b)(a)

ネットワークの価値 - 高(c)

コンピューティングとストレージの偏在now

2-3 yrs> 5-7 yrs

Beyond Cloud Computing ?!
シナリオ - (a)クラウドの寡占

ネットワークのコモディティ化が加速する- 機能は専らOverlayにより提供される• SD-WAN• Google Project Fi(b)
ネットワークの価値 – 低(a)ネットワークの価値 - 高(c)コンピューティングとストレージの偏在シナリオ - (b)ネットワークをクラウドで制御する
シナリオ - (c)ネットワークは分散コンピューティングのためのプラットフォームになる• In-Network Computing• In-Network Storage

ネットワークは分散コンピューティングのプラットフォームになり得るか
1) コンピューティングの変化
2) ネットワークの変化
3) データプレーンプログラマビリティ
3つの側面から検討してみる

分散コンピューティングプラットフォームとしてのネットワーク
AppAppAppApp

AppAppApp••AppAppApp

任意の適切な場所でコンピューティング処理を実行する
任意の適切な場所にデータを存在させるコンピューティングの変化 迅速化、分散化、モジュラー化

Source: Jan Medved

コンピューティングの変化 リソースの抽象化、共有と分離
2018

2016

CONTAINERS
2012

CLOUD
2008
VIRTUAL MACHINES

Virtual Media
Functions

WHAT’S NEXT …
Virtual Media
Functions

Virtual Media Functions

Virtual Media Functions

BARE METAL
Physical Media Functions…

SDI
Cables

Source: Horia Miclea

コンピューティングの変化 ネットワーク特性の指定可能性• Container Network Stackにおける試み• Host StackによるSRv6のサポート

LinuxCisco Contiv資料より

VPP/fd.ioネットワークの変化 現状 à ドメイン毎に分断ネットワークの変化 IPv6 centricへ• ドメインを越えたデータプレーンの統一 (Access, WAN, DC, Applications..)• Native(No more Tunnel/Overlay), Stateless, Simple

ネットワークの変化 End to End ID としての IPv6IPv6•••

ユーザ、コンテナ、サービスまでのNativeな到達性識別のためのvlan tagの必要なし
IPv4 as a Serviceデータプレーンプログラマビリティ

Programmability

Network Programmabilityにおける階層性
Service, Application Policy

Service, Application Policy
Service Orchestration
Orchestration, Control

Domain Orchestration(Centralized) Control Plane
Configuration Management

Infrastructure••

Physical
Virtualvirtual(Distributed) Control Plane
Data Plane
physical

様々な形態のデータプレーンプログラマビリティ
今、データプレーンプログラマビリティが熱い！

プログラマブルASIC

Source: 「プログラマブルデータプレーン時代に向けたネットワークオペレーションスタック」 海老澤 健太郎

https://www.slideshare.net/kentaroebisawa/onic2017

データプレーンプログラマビリティ
P4 : Programmable Protocol-Independent Packet Processing•••

再構成可能性 (Reconfigurability)
プロトコル非依存 (Protocol-Independence)
ターゲット非依存 (Target-Independence)•Openflowと比べて、抽象度と柔軟性が高い

https://p4.org/p4/clarifying-the-differences-between-p4-and-openflow/

https://p4lang.github.io/p4-spec/docs/P4-16-v1.0.0-spec.html

SRv6 in P4 !

http://p4.org/wp-content/uploads/2017/06/p4-ws-2017the-extensible-network.pdf

Segment Routing と SRv6 - Recap• Segment Routing ： Source Routing方式の一つ
Segment ID (SID) ListによりTraffic Steeringを表現する• SRv6(Segment Routing IPv6) : SID ListをIPv6 Routing Extension Headerを使ってEncodeする
NetworkServices

Code, Data

http://www.segment-routing.net/

Underlay Correlation
要求されるSLA特性によるパス選択(例) Latencyが許容されるトラフィックに対して、ホップ数の多いパスを選択する

S3

S1Client
IPv6 Hdr
SA=A, DA=D

IPv6 Hdr
SA=A, DA=D

Traffic Steering方針は、PolicyなどでEdgeが判断、またはBinding SIDを使う IPv6 Hdr

SA=A, DA=S2

SL=2Payload

SRH

S2IPv6 Hdr
SA=A, DA=S3Payload

ServerD

SL=1

D

D

S3

S3

S2

S2

Payload

Payload

説明のためにSIDを明示的に重ねていますが、実際はこの必要はありません (MPLSで言うところのloose hop) 。トラフィックを曲げるために必要なホップのSID（この場合S2）のみを指定すればOKです。

SRv6 Header
Segments Left
Locator 1

Function 1

Locator 2

Function 2

Locator 3

Function 3

Metadata TLV

SRv6 Value Proposition
End-to-Endでの共通転送メカニズム• シームレスな到達性とセグメンテーション• Access, WAN, DC, Compute共通の転送メカニズム• シンプル化- RSVP, LDPなどのコントロールプレーンの排除- LSP, Tunnel, ステートの排除• Underlayの高度化- Fast Protection, Traffic Steeringの実現

SRv6 SIDによるデータプレーンプログラマビリティ• SRv6 for Anything !
- L2/L3 VPN, Service Chaining, Content Delivery, etc.

SRv6 によるデータプレーンプログラマビリティ

A

このノードで処理 xxx を実行

このノードで処理 yyy を実行

T.Insert

END.xxx

END.yyy

S1S2

S3SRv6 node

Z

IPv6 Hdr
SA=A, DA=Z

IPv6 Hdr
SA=A, DA=S2

IPv6 Hdr
SA=A, DA=S3

IPv6 Hdr
SA=A, DA=ZPayload

SL=2

SL=1Payload

ZZ

S3 : yyy

S3 : yyy

S2 : xxx

S2 : xxx

Locator

Function

Payload

Payload1111:2222:3333:4444

5555:6666:7777:8888

SRH

5555:6666

7777:8888

FunctionArgumentLocal SID Functions (1/2)
Name

Forwarding

Function

Use case

End *LookupEndpoint function

Prefix SID

End.X *

L3 X-connect

Endpoint function with L3 X-connect

Adjacency SID

End.T *

Lookup in Table T

Endpoint function with specific IPv6 table lookup

Multi-table operationin the core

End.DT6

Decap and IPv6
Table T lookup

Endpoint with decap and IPv6 Table lookup

IPv6 L3VPN per-VRF

End.DT4

Decap and IPv4
Table T lookup

Endpoint with decap and IPv4 Table lookup

IPv4 L3VPN per-VRF

End.DX6

Decap and IPv6 XC

Endpoint with decap and IPv6 L3 X-connect

IPv6 L3VPN per-CE

End.DX4

Decap and IPv4 XC

Endpoint with decap and IPv4 L3 X-connect

IPv4 L3VPN per-CE

End.DX2

Decap and L2 XC

Endpoint with decap and L2 X-connect

L2VPNLocal SID Functions (2/2)
Name

Forwarding

Function

Use case

End.B6SRv6 policy

Endpoint bound to an SRv6 policy

Binding SID

End.B6.Encaps

SRv6 policy

Endpoint bound to an SRv6 encap
policyBinding SID

End.BM

SR-MPLS policy

Endpoint bound to an SR-MPLS policy

Binding SID

End.S

Search of a target

Endpoint in search of a target in table
T (locally forward or END behavior)

hICN

End.AS

Remove Outer IPv6 header
and SRH, forward to target
interface

Endpoint to SR-unaware via staticpolicy

Service Chaining Proxy

End.AM

Update Outer IPv6 header
DA with LAST SID andforward to target interface

Endpoint to SR-unaware viamasquerading

Service Chaining ProxySegment Routingによるサービスチェイン

SR policy:〈 S1, S2, S3, D 〉
FirewallS1IDS/IPS
S3ClientServer
DDPI box
S2

サービスをsegmentとして表現
à Flexible, Scalable, StatelessReference - Linux based NFV infrastructure

Ahmed AbdelSalam, Francois Clad, et al. “Implementation of Virtual Network Function Chaining through Segment Routing
in a Linux-based NFV infrastructure”, NetSoft 2017, IEEE

Reference - Linux based NFV infrastructure
https://github.com/amsalam20/SR-NFV_connector

NFV nodeVNF
IPv6 + SR
Namespace

Ingress ER
Classifier+ SR

SR/VNF
connector

IPv6 + SR

B:1::

IPv6 + SR

Linux VM

A:2::

IPH1:
SA=s
DA=t

Egress ER

IPv6 + SR

Linux VM

IPH1

B:2::

A:1::

Linux VM

C:1::

C:2::

IPH1 SRH IPH2

IPH1 SRH IPH2

IPH2:
SA=A:2::
DA=B:2::
SR list={B:2::, C:2::}

IPH2:
SA=A:2::
DA=C:2::
SR list ={B:2::, C:2::}

IPH1

IPH1:
SA=s
DA=t25Reference – Zebra 2.0
https://www.slideshare.net/kentaroebisawa/onic2017

26

SRv6 + Service Chaining 相互接続デモ•••••

Cisco Hardware: ASR 1K, ASR, NCS 5500
Cisco Network OS: IOS XE and IOS XR
Barefoot Networks Tofino on OCP Wedge-100BF
Linux Kernel officially upstreamed in 4.10
Fd.io

https://blogs.cisco.com/sp/segment-routing-ipv6-interoperability-demo-is-already-thereネットワークは分散コンピューティングのプラットフォームになり得る！
1) コンピューティングの変化
à 迅速化、モジュラー化により、偏在性・オンデマンド性が高まる

2) ネットワークの変化à シンプル化、ステートレス化

分散コンピューティングプラットフォームとしてのネットワーク

à コンピューティングとの方式共有

AppApp3) データプレーンプログラマビリティ

AppAppAppApp

à 柔軟なデータプレーン動作の制御
Appà Underlay高度化 と Correlation••

AppAppApp

任意の適切な場所でコンピューティング処理を実行する
任意の適切な場所にデータを存在させる