データプレーンのオープン化
Shishio Tsuchiya
shtsuchi@arista.com

1

Copyright
Copyright©
©AristaArista2017.
2017.All
Allrightsrightsreserved.
reserved.

Agenda• これまでのデータプレーン• NVO3 Encapsulation Consideration• これからのデータプレーン

2

Copyright © Arista 2017. All rights reserved.

Traditional data center vs Cloud data center

Source: Credit Suisse IT Survey, Jan ‘15
3

Copyright © Arista 2017. All rights reserved.

2011年ごろのデータセンターネットワーク-MPLS Japan2011パネル「クラウド環境におけるネットワークの課題と展望」なども参考に-

Ring ProtocolSTP

•
••
•
•

4

フラットなレイヤー2のネットワークデザイン
データセンター内ではスパニングツリーが使用
ベンダー独自のリングプロトコル (またはG.8032)がデータセンター間で使用される
VMライブマイグレーションは必要 (GARPによって移動を通知)
VLANがユーザ毎にアサインされる

Copyright © Arista 2017. All rights reserved.

問題点•

データセンター間/データセンター内-•

データセンター間-•要求に応じた帯域増強
ベンダーロックイン技術からの解放
柔軟性のあるトポロジーデザイン
トラフィックエンジニアリング
BUM(Broadcast/Unknown unicast/Multicast) トラフィックの最適化

ゲートウェイ-5

VLANスケーラビリティ > 4K
MACアドレステーブルのスケーラビリティ
VMライブマイグレーションや簡単に使うためのブロードキャストドメインの拡張
East / Westトラフィック帯域の増加
高速収束
自動化/オーケストレーション

ARP/NDPスケーラビリティ
IETF ARMD(Address Resolution for Massive numbers of hosts in the Data center) Groupは一つの informational RFCを発
行 RFC6820 Address Resolution Problems in Large Data Center Networks

Copyright © Arista 2017. All rights reserved.大規模データセンタールーティングでのBGPの使用
65000

65001

65002

65003

Spine

Layer3

Leaf
Layer2
64512

64513

64514

64515

64516

64517

• スケールアウトするClosデザイン• 安定した標準的なBGPプロトコルをToR/Leafスイッチに使用• 安定性にフォーカスし、VMモビリティはラック内に留める
6

Copyright © Arista 2017. All rights reserved.

IP Closデザインの利点
65000

65001

65002

65003

10.10.1.0/24 65000,64517*
65001,64517*
65002,64517*
65003,64517*

64512

64517 10.10.1.0/24• ECMPで全てのLeaf-Spineリンクを使用する• それぞれのフローはECMPハッシュにてバランスされる（既に実装されている)• ルーティングパスはBGPパス属性により可視化される
7

Copyright © Arista 2017. All rights reserved.

問題に関するソリューション技術VXLAN

NVGRESTTOTV

Intend toon 1st draft

Experimental
2011年8月

Informational
2011年9月

Informational
2012年2月

Standard
2010年4月

結果

RFC7348(Information)

RFC7637(Information)

expireexpire

特許NAMicrosoft

NiciraCisco

実装

Linux 3.7
OVS
Hyper-V
DPDK
Broadcom Trident2

Hyper-V
DPDK
Broadcom Trident2

トランスポート

UDPGRE

TCP Like

UDP

ロードバランス○△○○

中間ノードの実装による
Key Fieldまで計算
8Copyright © Arista 2017. All rights reserved.

OVS
Hyper-V
Cisco NX

Virtual eXtensible LAN (VXLAN)フレームフォーマット
•フラグ(8 bits):-•

VXLANセグメントID/VXLANネットワーク
識別子 (VNI):-•IANAはVXLANのポートとして4789をアサインした。
このポートをデフォルトの宛先ポートとして使う

送信元ポート:-9

これは、通信するVMが配置されている個々のVXLANオーバーレイネットワークを指定するために使用される24ビットの値です。 異なるVXLAN
オーバーレイネットワーク内のVMは互いに通信できません。

宛先ポート:-•

有効なVXLANのネットワークIDの場合、Iフラグは1をセットしなければならない。他の7ビット(R)は予約フィールドで送信時に0をセットしなければならず、受信時に無視される

UDPソースポート番号は、ロードバランスの際のハッシュの計算に使用される。動的にプライベートポート範囲49152-65535である事が推奨される

Copyright © Arista 2017. All rights reserved.

Outer UDP Header:+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+|
Source Port|Dest Port = 4789|+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+|UDP Length|
UDP Checksum|+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+VXLAN Header:+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+|R|R|R|R|I|R|R|R|
Reserved|+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+|VXLAN Network Identifier (VNI) | Reserved|+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

まとめ• 事実として- VXLANはRFC7348でInformationalで発行- Linux/OVS/Hyper-V/DPDK/ASICと多くの実装が存在- ECMPロードバランスやイーサチャネルでの実装も考慮≫(IP/UDP:送信元ポートのランダム化)- IPR（知的財産権: Intellectual Property Right)は特に無かった- VXLANは実質的な業界標準のプロトコルとは言えるが、IETF標準では無い
10Copyright © Arista 2017. All rights reserved.

Agenda• これまでのデータプレーン• NVO3 Encapsulation Consideration• これからのデータプレーン

11

Copyright © Arista 2017. All rights reserved.

IETF NVO3(Network Virtualization Overlays) WG• NVO3 WGはデータセンター内の仮想化を可能にするIPベースのアンダーレイを基本としたプロトコル拡張を前提• NVO3は仮想ネットワークにマルチテナントとワークロードの可動性にレイヤー2およびレイヤー3のサービスを提供

12

Copyright © Arista 2017. All rights reserved.

Geneve: Generic Network Virtualization Encapsulation
https://tools.ietf.org/html/draft-ietf-nvo3-geneve• Ver:•••

Outer UDP Header:+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- 0,知らないバージョンの際は破棄|
Source Port = xxxx|
Dest Port = 6081|+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Opt Len:|UDP Length|
UDP Checksum|+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- オプションフィールドの長さ,Geneveの最小サイズ
GeneveHeader:は8バイト/最大サイズは260バイト+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+|Ver| Opt Len |O|C|
Rsvd. |
Protocol Type|
Oビット:+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- OAMビット、パケットはデータペイロードの代わりに|Virtual Network Identifier (VNI)|
Reserved |コントロールパケットを含む+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+|
Variable Length Options|
Cビット:+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- Critical Option,このビットが設定されている時にはエンドポイントは解析をしなければならない• Protocol Type:- 続くプロトコルのイーサタイプを定義

13

Copyright © Arista 2017. All rights reserved.

Generic UDP Encapsulation
https://tools.ietf.org/html/draft-ietf-nvo3-gue• Vビット:- 0:Version番号• Cビット:- コントロールメッセージの際にセット、無い場合はデータメッセージ• Hlen:- GUEヘッダーの長さ、オプション拡張ヘッダーを含むが最初の4バイトヘッダーは含まない。
(header_len - 4) / 4で計算され、全てのGUEヘッダーは4の倍数となる。最大ヘッダー長は128バイ
ト• Proto/ctype:- Cビットが含まれてる場合には制御メッセージのタイプが表示される。Cビットが含まれていない場合はencapsulateされたプロトコル番号が入る

14

Copyright © Arista 2017. All rights reserved.

012
30 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+¥|
Source port|
Destination port(6080)| |+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ UDP|
Length|Checksum| |+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+/| V |C|
Hlen | Proto/ctype |Flags|+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+||~
Extensions Fields (optional)~||+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+||~
Private data (optional)~||+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

Generic Protocol Extension for VXLAN
https://tools.ietf.org/html/draft-ietf-nvo3-vxlan-gpe
Outer UDP Header:+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+|
Source Port|
Dest Port = 4790|+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+|UDP Length|
UDP Checksum|+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+• Ver:- 0:VXLAN GPEバージョン• Instance ビット(Iビット):- VNIが正常の時にセットする• Next Protocol Bit(Pビット):•VXLAN GPE Header:+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- Next Protocolフィールドが存在する時セット|R|R|Ver|I|P|B|O|
Reserved|Next Protocol |+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
BUM Traffic Bit (Bビット)|
VXLAN Network Identifier (VNI) |Reserved|+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- BUM(Broadcast/Unknown Unicast/Multicast)の際にセット• OAM Flag Bit (Oビット) :- OAMパケットの時にセット• Next Protocol:- 続くプロトコルヘッダを提示

15

0x1 :
0x2 :
0x3 :
0x4 :
0x5 :

Copyright © Arista 2017. All rights reserved.

IPv4
IPv6
Ethernet
Network Service Header
Multiprotocol Label SwitchingNVO3スタンダードEncapsulationで話されてる事
イーサネットヘッダー

イーサネット
ヘッダー

外部IPヘッダー

外部IPヘッダー

NVO3ヘッダー

NVO3ヘッダー
拡張ヘッダー

オリジナル
パケット

• 管理性
- ICMP/ECMPなど既存の仕組みを実装可能か？

• 拡張性- 将来的な拡張:Telemetry/Security/GBP(セキュリティ/QoS)に適用可能か?

16

Copyright © Arista 2017. All rights reserved.

拡張ヘッダー

オリジナル
パケットNVO3 Encapsulation Considerations
https://tools.ietf.org/html/draft-ietf-nvo3-encap
技術

GeneveGUE

VXLAN-GPE

トランスポート

IP/UDP

IP/UDP

IP/UDP

基本ヘッダー長

8バイト

4バイト

8バイト
(NSHとの組み合わせで16バイト

拡張性

可変長オプション

拡張フィールド

単独では拡張性がない
NSHと組み合わせる必要がある

最大ヘッダー長260バイト128バイト

8バイト(264 バイト NSH)

Next Protocol
識別子

Ether type

Protocol ID

New Registry• NVO3はデザインチームを構成し、提案中のencapsulationを比較検討した• 現状のプロトコルにはハードウェアの実装やVXLANとの下位互換に問題• デザインチームではGeneveがもっともNVO3の最初の標準化プロコトルにふさわしいと推薦した
17

Copyright © Arista 2017. All rights reserved.

まとめ• IETF NVO3 WGではスタンダードなencapsulation
方式を検討• Geneve/GUE/VXLAN-GPEの３つの候補があり、何れもハードウェア対応やVXLANとの下位互換には問題があるが、Geneveを最初の標準プロトコルを目標にすると合意した

18

Copyright © Arista 2017. All rights reserved.

Agenda• これまでのデータプレーン• NVO3 Encapsulation Consideration• これからのデータプレーン

19

Copyright © Arista 2017. All rights reserved.

NVO3プロトコル、ハードウェアで大変なところ
イーサネットヘッダー

技術

GeneveGUE

VXLAN-GPE

外部IPヘッダー

筆者IntelvmwareFacebook
HuaweiMicrosoft

Cisco
Intel

vmwarecisco

N/A

NVO3ヘッダー
拡張ヘッダー

IPR(Royalty-Free)

拡張ヘッダー

オリジナル
パケット

最大ヘッダー長260バイト128バイト8バイト(264 バイト NSH)

Next Protocol
識別子

Ether type

Protocol ID

New Registry• 固定長のヘッダーと違い、可変長• ものによっては並列に処理をしなければいけない• どれがメインになるのかが分からない
20

Copyright © Arista 2017. All rights reserved.

ソフトウェアインプリメンテーション
NVO3

SRv6

イーサネットヘッダー

イーサネット
ヘッダー

外部IPヘッダー

IPv6

NVO3ヘッダー

SRH

拡張ヘッダー

SRL1

拡張ヘッダー

SRL2

オリジナル
パケット

オリジナル
パケット

技術

GeneveGUE

VXLAN-GPE

筆者IntelvmwareFacebook
HuaweiMicrosoftCisco
Intel

実装状況

3.18
OVS
DPDK
Hyper-V

3.18

4.6
OVSDPDK• この３つだけで十分か？
• SRv6とかもやりたいの？
21

Copyright © Arista 2017. All rights reserved.

Cavium XPliant Packet Architecture
VXLAN
RFC

T2, TH etc

2011

2013

約24ヶ月のギャップ
NewProtocol

XP / 7160

2017
http://www.cavium.com/XPliant-Ethernet-Switch-Product-Family.html

ソフトウェアアップグレードによる• 各ヘッダー毎に並列処理を実施
迅速なサポート• フィールドアップグレード可能なチップセット• XPAをプログラム可能にするAPIのオープン化 OpenXPS
22

Copyright © Arista 2017. All rights reserved.

Broadcom BCM56870 SERIES
High-Capacity StrataXGS® Trident 3 Ethernet Switch Series• Triden3は既存のTrident2/Triden2+の機能と互換性を持ちつつ、フィールドアップグレード可能なシリコン• GENEVE, NSH, VXLAN, GPE, MPLS, MPLS over GRE/UDP,GUE, ILA ,PPPoEなど新しいプロトコルもサポート• XGSファミリーはOpenNSL(Open Network Switch Library)も提供
https://www.broadcom.com/blog/new-trident-3-switch-delivers-smarter-programmability-for-enterp

23

Copyright © Arista 2017. All rights reserved.

P4+Barefoot Capilano/Tofino
https://p4.org/

https://barefootnetworks.com/technology/

••
•
••
24

P4:Programming Protocol-Independent Packet Processors
ターゲット非依存:CPU/FPGA/SOC/NPU/ASIC
プロトコル非依存:ヘッダー情報などを直接記載する
再構成可能:ターゲットが変わってもそのまま使用出来る様にする
TofinoはスイッチングASICS / Capilano SDE(Software Development Environment)と使用する事でP4記載のコードを利用可能
Copyright © Arista 2017. All rights reserved.

Arista EOS Vision and P4 Vision

NOS
P4.orgFulcrum-FM

BRCMDNX

BRCMXGSCAVIUM
-XPA

A

B

Cisco
UADP
2.0

Barefoot
Tofino• Arista EOSは既に4種類のシリコンファミリーで単一バイナリーでサポート• またSDKやOpen APIを提供する事で多くのプログラム性を提供• P4はターゲット非依存なネットワークプログラム言語を提供する事でサポートSDK内での柔軟性を提供
25

Copyright © Arista 2017. All rights reserved.

まとめ• ヘッダーチェーニングなどの今後の拡張性を踏まえて、各シリコンベンダーはプログラマブルパイプラインおよびフィールドアップグレード可能なチップをリリース• P4では更にプロトコル非依存/ターゲット非依存のプ
ログラム言語を定義する事で多くのユースケースで使用が可能か!?

26

Copyright © Arista 2017. All rights reserved.

Thank You
www.arista.comCopyright
Copyright©
©Arista
Arista2016.
2017.All
Allrights
rightsreserved.
reserved.