SlideShare ist ein Scribd-Unternehmen logo
1 von 35
Downloaden Sie, um offline zu lesen
© 2014 VMware Inc. All rights
reserved.
L2 over L3 トンネル方式について考える
VXLAN、NVGRE、STT、Geneve などの各方式比較検討
ヴイエムウェア(株)
ネットワーク&セキュリティー事業
部
テクニカル・リーダー
進藤 資訓 / @motonori_shindo
2014 / 07 / 16
Tunneling vs Encapsulation
•  トンネリング・プロトコル
–  Signaling + Encapsulation
•  通常なにかしらの “シグナリング” を持ち、トンネルの維持・管理をする機構がプトロコルに含ま
れている
•  Encapsulation も必要
–  例) PPTP、L2TP、IPsec (IKE)、など
•  Encapsulation
–  なにかをなにかで “くるむ” 仕組み
–  例) GRE、VXLAN、NVGRE、STT、(Ethernet, IP, TCP, ….)
•  今日お話ししするのは厳密には “Encapsulation” です。
•  また、コントロールプレーンのお話は(とても大切ですが)しません。
2
代表的な L2 over L3 encapsulation	
•  GRE (Generic Routing Encapsulation) *
•  VXLAN (Virtual Extensible LAN)
•  NVGRE (Network Virtualization using GRE)
•  STT (Stateless Transport Tunneling)
* 厳密に言うと GRE は L2 over L3 とは限りません。
VXLAN	
•  Cumulus / Arista / Broadcom / Cisco / VMware / Citrix / RedHat らが提唱
–  draft-mahalingam-dutt-dcops-vxlan-09.txt
•  VLAN ID (12bit) を VNI (24bit) に拡張
•  UDP/IP で Encapsulation
–  L3 オーバーレイ
–  マルチパス可能
•  Ethernet Frame を仮定
•  ハードウェアで処理し易いように設計
•  エコシステムの形成
VXLAN ヘッダー	
	
 	
 	
 	
 0	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 1	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 2	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 3	
 
	
 	
 	
 	
 0	
 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	
 
	
 	
 	
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+	
 	
 
	
 	
 	
 |R|R|R|R|I|R|R|R|	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 Reserved	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 |	
 	
 
	
 	
 	
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+	
 	
 
	
 	
 	
 |	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 VXLAN	
 Network	
 Identifier	
 (VNI)	
 |	
 	
 	
 Reserved	
 	
 	
 	
 |	
 	
 
	
 	
 	
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Fabric のトレンド
•  Service Oriented Architecture の台頭
•  2 or 3階層のネットワークから Leaf /
Spineネットワークへ
•  非常に高い密度と帯域の要求
•  Layer 3 で ECMP
•  オーバーサブスクライブの低減
•  低く、かつ、一様な遅延特性
•  Wire & configure once なネットワーク	
•  一様なネットワーク設定
WAN/Internet
WAN/Internet
マルチパス特性	
•  背景
–  East-West トラフィックの増大に対応するため、マルチパスによる Fabric ネットワークが
広く用いられるようになってきている。
•  要件
–  1つのフローは同じパスを通ること
–  マルチパスを有効に活用するために十分なエントロピーを持つこと
VXLAN のマルチパス	
VXLAN
(8)	
UDP (8)	
IP (20)	
Hash (src/dst MAC addr,
src/dst IP addr,
src/dst port number, etc.) *	
dst port = 4789
src port = Hash()	
Ether	
 IP	
 TCP	
 Data
元パケット	
* 何をハッシュするか、どのようにハッシュするかは厳密には決められておらず、実装依存です
VXLAN エコシステム
•  スイッチ・ルータ
–  Arista、Brocade、Cisco、Cumulus、
DELL、HP、Huawei、Juniper、Open
vSwitch、Pica8
•  オペレーティングシステム
–  Linux、VMware
•  アプライアンス
–  A10、Citrix、F5
•  テスター
–  IXIA、Spirent
•  ASIC / NIC
–  Broadcom、Intel (Fulcrum)、Emulex、
Mellanox
•  Cloud Orchestrator
–  CloudStack、OpenStack、vCAC 9
Note: this is not an exhaustive list
NVGRE	
•  Microsoft / Arista / Intel / Google / HP / Broadcom / Emulex らが提唱
–  draft-sridharan-virtualization-nvgre-04.txt
•  24bit の Virtual Subnet ID (VSID) と 8bit の FlowID
•  Encapsulation は GRE のまま
–  Key Field に VSID + FlowID
–  L3 オーバーレイ
–  マルチパス可能(理論上)
•  Windows との親和性
NVGRE ヘッダー	
	
 	
 	
 	
 0	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 1	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 2	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 3	
 
	
 	
 	
 	
 0	
 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	
 
	
 	
 	
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+	
 
	
 	
 	
 |0|	
 |1|0|	
 	
 	
 Reserved0	
 	
 	
 	
 	
 |	
 Ver	
 |	
 	
 	
 Protocol	
 Type	
 0x6558	
 	
 	
 	
 	
 	
 	
 	
 |	
 
	
 	
 	
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+	
 
	
 	
 	
 |	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 Virtual	
 Subnet	
 ID	
 (VSID)	
 	
 	
 	
 	
 	
 	
 	
 |	
 	
 	
 	
 FlowID	
 	
 	
 	
 	
 |	
 
	
 	
 	
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
NVGRE のマルチパス	
GRE (8)	
IP (20)	
Hash (src/dst MAC addr,
src/dst IP addr,
src/dst port number, etc.) *	
FlowID = Hash()	
Ether	
 IP	
 TCP	
 Data
元パケット	
* 何をハッシュするか、どのようにハッシュするかは厳密には決められておらず、実装依存です
ルータ・スイッチは GRE
の Key Field まで含め
て ECMP する必要があ
る!
NVGRE エコシステム
•  スイッチ・ルータ
–  Huawei
–  Arista や Brocade も対応は表明しているが、まだモノは出ていない??
•  オペレーティングシステム
–  Microsoft (Windows Server 2012 R2)
•  アプライアンス
–  F5
•  ASIC / NIC
–  Emulex、Mellanox
•  Cloud Orchestrator
–  System Center 2012 R2
13
Note: this is not an exhaustive list
STT (Stateless Transport Tunneling)	
•  VMware が提唱する L2 over L3 Encapsulation 手法
–  draft-davie-stt-06.txt
•  Why yet another L2 over L3 encapsulation ?
–  性能
–  多くのコンテクスト情報
–  マルチパス可能
–  ソフトウェア指向
TSO (TCP Segmentation Offload)	
•  最近の(ここ4〜5年に出た)NIC には様々なハードウェア・アクセラレーション機能
が搭載されている
–  RSS、GSO/TSO、Checksum Offload、etc.
•  TSO は、通常 OS(ソフトウェア)が行わなければいけないSegmentation 処理を
NICがハードウェアで行ってくれる
–  最大 64K bytes のパケットを送れる à Context Switch を劇的に減らせる
•  NICには “TCP” に見えるようなパケットで Encapsulation してやる事により、TSO
のメリットを享受できる!
Encapsulation / Segmentation 処理の流れ	
STT (18)	
TCP’ (20)	
IP (20)	
Payload 1	
STT (18)	
TCP’ (20)	
IP (20)	
Payload 2	
TCP’ (20)	
IP (20)	
Payload n	
TCP’ (20)	
IP (20)	
L2 Frame (up to ≒ 64K) 	
	
(HWによる)
Segmentation
処理
TCP-like ヘッダー	
	
 	
 	
 	
 0	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 1	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 2	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 3	
 
	
 	
 	
 	
 0	
 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	
 	
 	
 	
 	
 	
 	
 	
 |	
 
	
 	
 	
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+	
 
	
 	
 	
 |	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 Sequence	
 Number(*)	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 |	
 
	
 	
 	
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+	
 
	
 	
 	
 |	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 Acknowledgment	
 Number(*)	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 |	
 
	
 	
 	
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+	
 
	
 	
 	
 |	
 	
 Data	
 |	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 |U|A|P|R|S|F|	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 |	
 
	
 	
 	
 |	
 Offset|	
 Reserved	
 	
 |R|C|S|S|Y|I|	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 Window	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 |	
 
	
 	
 	
 |	
 	
 	
 	
 	
 	
 	
 |	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 |G|K|H|T|N|N|	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 |	
 
	
 	
 	
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+	
 
	
 	
 	
 |	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 Checksum	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 |	
 	
 	
 	
 	
 	
 	
 	
 	
 Urgent	
 Pointer	
 	
 	
 	
 	
 	
 	
 	
 |	
 
	
 	
 	
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+	
 
	
 	
 	
 |	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 Options	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 |	
 	
 	
 	
 Padding	
 	
 	
 	
 |	
 
	
 	
 	
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+	
 
	
 	
 	
 |	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 data	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 |	
 
	
 	
 	
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
STT ヘッダー	
	
 	
 	
 	
 0	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 1	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 2	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 3	
 
	
 	
 	
 	
 0	
 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	
 
	
 	
 	
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+	
 
	
 	
 	
 |	
 	
 Version	
 	
 	
 	
 	
 	
 |	
 Flags	
 	
 	
 	
 	
 	
 	
 	
 	
 |	
 	
 L4	
 Offset	
 	
 	
 	
 |	
 	
 Reserved	
 	
 	
 	
 	
 |	
 
	
 	
 	
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+	
 
	
 	
 	
 |	
 	
 	
 	
 Max.	
 Segment	
 Size	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 |	
 PCP	
 |V|	
 	
 	
 	
 	
 VLAN	
 ID	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 |	
 
	
 	
 	
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+	
 
	
 	
 	
 |	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 |	
 
	
 	
 	
 +	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 Context	
 ID	
 (64	
 bits)	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 +	
 
	
 	
 	
 |	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 |	
 
	
 	
 	
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+	
 
	
 	
 	
 |	
 	
 	
 	
 	
 Padding	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 |	
 	
 	
 	
 data	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 |	
 
	
 	
 	
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 +	
 
	
 	
 	
 |	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 |
スループットと CPU 使用率	
0
10
20
30
40
50
60
70
80
90
100
0
1
2
3
4
5
6
7
8
9
10
Linux Bridge OVS Bridge OVS-GRE OVS-STT
スループット CPU (Receive) CPU (Send)
(Gbps)	
 (%)	
出典: http://networkheresy.com/2012/06/08/the-overhead-of-software-tunneling/
STT のマルチパス	
STT (18)	
TCP’ (20)	
IP (20)	
Hash (src/dst MAC addr,
src/dst IP addr,
src/dst port number, etc.)	
dst port = 7471 (TBD)
src port = Hash() 	
Ether	
 IP	
 TCP	
 Data
元パケット	
* 何をハッシュするか、どのようにハッシュするかは厳密には決められておらず、実装依存です
Geneve (Generic Network Virtualization
Encapsulation)
•  VMware, Microsoft, RedHat, Intel が提唱する新たな encapsulation
–  draft-gross-geneve-00.txt
•  ゴール
–  拡張性を備えること
•  Service Chaining や Metadata のサポート
–  NIC 等のオフロード機能を有効に活用できること
–  これら2つを「同時に」満たすこと!
•  特徴
–  Option フィールドで TLV 形式の情報を追加できる
–  ハードウェアが TSO を実行できるように、どこから TSO すべきかを NIC が判断可能
–  OAM や Option 解釈必須の有無などを指定可能
21
Geneve Header & Option Header	
Geneve	
 Header	
 
	
 	
 	
 	
 0	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 1	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 2	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 3	
 
	
 	
 	
 	
 0	
 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	
 
	
 	
 	
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+	
 
	
 	
 	
 |Ver|	
 	
 Opt	
 Len	
 	
 |O|C|	
 	
 	
 	
 Rsvd.	
 	
 |	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 Protocol	
 Type	
 	
 	
 	
 	
 	
 	
 	
 |	
 
	
 	
 	
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+	
 
	
 	
 	
 |	
 	
 	
 	
 	
 	
 	
 	
 Virtual	
 Network	
 Identifier	
 (VNI)	
 	
 	
 	
 	
 	
 	
 |	
 	
 	
 	
 Reserved	
 	
 	
 |	
 
	
 	
 	
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+	
 
	
 	
 	
 |	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 Variable	
 Length	
 Options	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 |	
 
	
 	
 	
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+	
 
	
 
Option	
 
	
 	
 	
 	
 0	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 1	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 2	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 3	
 
	
 	
 	
 	
 0	
 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	
 
	
 	
 	
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+	
 
	
 	
 	
 |	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 Option	
 Class	
 	
 	
 	
 	
 	
 	
 	
 	
 |	
 	
 	
 	
 	
 	
 Type	
 	
 	
 	
 	
 |R|R|R|	
 Length	
 	
 |	
 
	
 	
 	
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+	
 
	
 	
 	
 |	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 Variable	
 Option	
 Data	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 |	
 
	
 	
 	
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Geneve 実装
•  Open vSwitch (OVS)に実装され、master branch にマージ
–  VNI の指定が可能
–  Geneve Options の指定は(まだ)できない
–  OAM フラグを立てることはできない?
–  Critical フラグは Critical Options があれば自動的に立つ(ようにコード上は読める)
•  Wireshark に Geneve の dissector が実装され、master branch にマージ
•  Geneve に対応した NIC は今後リリース予定
23
Running Geneve on Open vSwtich
24
host-1:~$ sudo ovs-vsctl add-br br0
host-1:~$ sudo ovs-vsctl add-br br1
host-1:~$ sudo ovs-vsctl add-port bra eth0
host-1:~$ sudo ifconfig eth0 0
host-1:~$ sudo dhclient br0
host-1:~$ sudo ifconfig br1 10.0.0.1 netmask 255.255.255.0
host-1:~$ sudo ovs-vsctl add-port br1 geneve1 -- set interface 
geneve1 type=geneve options:remote_ip=192.168.203.149
host-2:~$ sudo ovs-vsctl add-br br0
host-2:~$ sudo ovs-vsctl add-br br1
host-2:~$ sudo ovs-vsctl add-port bra eth0
host-2:~$ sudo ifconfig eth0 0
host-2:~$ sudo dhclient br0
host-2:~$ sudo ifconfig br1 10.0.0.2 netmask 255.255.255.0
host-2:~$ sudo ovs-vsctl add-port br1 geneve1 -- set interface 
geneve1 type=geneve options:remote_ip=192.168.203.151
Dissecting Geneve Packets by Wireshark (1)
25
Dissecting Geneve Packets by Wireshark (2)
26
Geneve に関する情報
•  英語
–  http://tools.ietf.org/html/draft-gross-geneve-00
–  http://cto.vmware.com/geneve-vxlan-network-virtualization-encapsulations/
–  http://www.enterprisenetworkingplanet.com/netsp/geneve-generic-network-
virtualization-encapsulation-protocol-advances-video.html
–  http://searchsdn.techtarget.com/news/2240219051/VMware-Microsoft-end-
encapsulation-protocol-turf-war-with-GENEVE
–  http://www.plexxi.com/2014/06/attention-overlay-tunnel-construction-ahead
•  日本語
–  http://blog.shin.do/2014/05/geneve-encapsulation/
–  http://blog.shin.do/2014/07/geneve-on-open-vswitch/
27
Geneve replaces VXLAN / STT / NVGRE ?
•  Geneve は VXLAN を置き換えるか?
–  NO
–  VXLAN のエコシステムはすでに短時間で置き換えることができないほど大きく成長して
いる
–  VMware は引き続き VXLAN をサポートし、パートナーと連携をしていく
•  Geneve は STT を置き換えるか?
–  短期的には NO。長期的には Maybe。
–  Geneve が広く受け入れられ、多くの NIC でオフロードができるようになるのが前提
•  Geneve は NVGRE を置き換えるか?
–  短期的には NO。長期的には Maybe。
–  Geneve が Windows に実装され、現在の NVGRE と同程度のエコシステムが形成され
れば・・・
28
トンネルは適材適所
29
http://cto.vmware.com/geneve-vxlan-network-virtualization-encapsulations/ より引用
世の中一筋縄にはいかない^^
•  Geneve に反対している人たちもいる!
•  主な主張
–  Geneve で実現しようとしていることは、既存の encapsulation (L2TPv3 static
tunneling や VXLAN)もしくはそれらの若干の拡張で実現可能!?
–  Service Chaining や Metadata を encapsulation と bind すべきではない
(Encapsulation 独立であるべき)!?
–  VNI が 24bit では不十分!?
30
L2TPv3 static tunneling
•  L2TP は本来シグナリングを伴うが、L2TPv3 static tunneling はシグナリングを使
わず、両端に静的に設定を設定をすることで L2TPv3 を encapsulation (i.e.
Pseudo Wire)として使う方法
•  L2TPv3 自体は2005年に RFC (3931) になっており、枯れた仕様。Cisco IOS や
Linux の実装あり。
31
	
 	
 	
 	
 0	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 1	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 2	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 3	
 
	
 	
 	
 	
 0	
 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	
 
	
 	
 	
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+	
 
	
 	
 	
 |T|x|x|x|x|x|x|x|x|x|x|x|	
 	
 Ver	
 	
 |	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 Reserved	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 |	
 
	
 	
 	
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+	
 
	
 	
 	
 |	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 Session	
 ID	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 |	
 
	
 	
 	
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+	
 
	
 	
 	
 |	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 Cookie	
 (optional,	
 maximum	
 64	
 bits)...	
 
	
 	
 	
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+	
 
	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 |	
 
	
 	
 	
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
L2TPv3 static tunneling を L2 over L3 encapsulation
とみた場合
•  Session ID (32bit) が VNI に相当する
•  L2TPv3 は IP でも UDP でもトランスポートできるが、マルチパス性を考えると
UDP が有利
•  より多くのコンテキスト情報(メタデータやService Chaining)は両端に静的に設定
し、Session ID で暗黙に表現することになる
–  したがって 32bit の Session ID を純粋に VNI として使うことはできない
•  厳密には L2TPv3 には規定はないが、L2TPv2 の名残りの「オフセット」フィールド
を使い、パケットのどこから TSO をするべきか伝えることは可能かも??
32
VXLAN Generic Protocol Extension (a.k.a. eVXLAN)
•  Cisco、Huawei、Intel、Microsoftらが提唱
–  draft-quinn-vxlan-gpe-03.txt
•  VXLAN の拡張
–  複数プロトコルのサポート
•  IPv4 (0x01)、IPv6 (0x02)、Ethernet (0x03)、Network Service Header [NSH] (0x04)
–  OAM サポート
–  バージョン
•  Cisco ACI で使われている
33
	
 	
 
	
 	
 	
 	
 0	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 1	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 2	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 3	
 
	
 	
 	
 	
 0	
 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	
 
	
 	
 	
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+	
 
	
 	
 	
 |R|R|R|R|I|P|R|O|Ver|	
 	
 	
 Reserved	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 |Next	
 Protocol	
 	
 |	
 
	
 	
 	
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+	
 
	
 	
 	
 |	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 VXLAN	
 Network	
 Identifier	
 (VNI)	
 |	
 	
 	
 Reserved	
 	
 	
 	
 |	
 
	
 	
 	
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
VXLAN-gpe を L2 over L3 encapsulation とみた場合
•  ほぼ VXLAN と同様の特性
–  VNI 長
–  マルチパス性
–  ハードウェアでの実装のし易さ
•  最大の特徴は NSH ヘッダを使った Service Chaining を可能にすること!
•  拡張性はなし
34
ありがとうございました	
35

Weitere ähnliche Inhalte

Was ist angesagt?

OpenStack超入門シリーズ いまさら聞けないSwiftの使い方
OpenStack超入門シリーズ いまさら聞けないSwiftの使い方OpenStack超入門シリーズ いまさら聞けないSwiftの使い方
OpenStack超入門シリーズ いまさら聞けないSwiftの使い方
Toru Makabe
 

Was ist angesagt? (20)

知っているようで知らないNeutron -仮想ルータの冗長と分散- - OpenStack最新情報セミナー 2016年3月
知っているようで知らないNeutron -仮想ルータの冗長と分散- - OpenStack最新情報セミナー 2016年3月 知っているようで知らないNeutron -仮想ルータの冗長と分散- - OpenStack最新情報セミナー 2016年3月
知っているようで知らないNeutron -仮想ルータの冗長と分散- - OpenStack最新情報セミナー 2016年3月
 
大規模サービスを支えるネットワークインフラの全貌
大規模サービスを支えるネットワークインフラの全貌大規模サービスを支えるネットワークインフラの全貌
大規模サービスを支えるネットワークインフラの全貌
 
細かすぎて伝わらないかもしれない Azure Container Networking Deep Dive
細かすぎて伝わらないかもしれない Azure Container Networking Deep Dive細かすぎて伝わらないかもしれない Azure Container Networking Deep Dive
細かすぎて伝わらないかもしれない Azure Container Networking Deep Dive
 
Kuberneteの運用を支えるGitOps
Kuberneteの運用を支えるGitOpsKuberneteの運用を支えるGitOps
Kuberneteの運用を支えるGitOps
 
10分でわかる Cilium と XDP / BPF
10分でわかる Cilium と XDP / BPF10分でわかる Cilium と XDP / BPF
10分でわかる Cilium と XDP / BPF
 
BuildKitの概要と最近の機能
BuildKitの概要と最近の機能BuildKitの概要と最近の機能
BuildKitの概要と最近の機能
 
ロードバランスへの長い道
ロードバランスへの長い道ロードバランスへの長い道
ロードバランスへの長い道
 
BGP Unnumbered で遊んでみた
BGP Unnumbered で遊んでみたBGP Unnumbered で遊んでみた
BGP Unnumbered で遊んでみた
 
AWSとオンプレミスを繋ぐときに知っておきたいルーティングの基礎知識(CCSI監修!)
AWSとオンプレミスを繋ぐときに知っておきたいルーティングの基礎知識(CCSI監修!)AWSとオンプレミスを繋ぐときに知っておきたいルーティングの基礎知識(CCSI監修!)
AWSとオンプレミスを繋ぐときに知っておきたいルーティングの基礎知識(CCSI監修!)
 
ML2/OVN アーキテクチャ概観
ML2/OVN アーキテクチャ概観ML2/OVN アーキテクチャ概観
ML2/OVN アーキテクチャ概観
 
Zabbix最新情報 ~Zabbix 6.0に向けて~ @OSC2021 Online/Fall
Zabbix最新情報 ~Zabbix 6.0に向けて~ @OSC2021 Online/FallZabbix最新情報 ~Zabbix 6.0に向けて~ @OSC2021 Online/Fall
Zabbix最新情報 ~Zabbix 6.0に向けて~ @OSC2021 Online/Fall
 
Grafana LokiではじめるKubernetesロギングハンズオン(NTT Tech Conference #4 ハンズオン資料)
Grafana LokiではじめるKubernetesロギングハンズオン(NTT Tech Conference #4 ハンズオン資料)Grafana LokiではじめるKubernetesロギングハンズオン(NTT Tech Conference #4 ハンズオン資料)
Grafana LokiではじめるKubernetesロギングハンズオン(NTT Tech Conference #4 ハンズオン資料)
 
PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)
PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)
PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)
 
TLS 1.3 と 0-RTT のこわ〜い話
TLS 1.3 と 0-RTT のこわ〜い話TLS 1.3 と 0-RTT のこわ〜い話
TLS 1.3 と 0-RTT のこわ〜い話
 
Docker Compose 徹底解説
Docker Compose 徹底解説Docker Compose 徹底解説
Docker Compose 徹底解説
 
OpenStack超入門シリーズ いまさら聞けないSwiftの使い方
OpenStack超入門シリーズ いまさら聞けないSwiftの使い方OpenStack超入門シリーズ いまさら聞けないSwiftの使い方
OpenStack超入門シリーズ いまさら聞けないSwiftの使い方
 
RHEL7/CentOS7 NetworkManager徹底入門
RHEL7/CentOS7 NetworkManager徹底入門RHEL7/CentOS7 NetworkManager徹底入門
RHEL7/CentOS7 NetworkManager徹底入門
 
eBPFを用いたトレーシングについて
eBPFを用いたトレーシングについてeBPFを用いたトレーシングについて
eBPFを用いたトレーシングについて
 
How to run P4 BMv2
How to run P4 BMv2How to run P4 BMv2
How to run P4 BMv2
 
OpenStackで始めるクラウド環境構築入門(Horizon 基礎編)
OpenStackで始めるクラウド環境構築入門(Horizon 基礎編)OpenStackで始めるクラウド環境構築入門(Horizon 基礎編)
OpenStackで始めるクラウド環境構築入門(Horizon 基礎編)
 

Andere mochten auch

“見てわかる” ファイバーチャネルSAN基礎講座(第4弾)~続・間違わない!FC SAN導入のヒントとコツ~
“見てわかる” ファイバーチャネルSAN基礎講座(第4弾)~続・間違わない!FC SAN導入のヒントとコツ~“見てわかる” ファイバーチャネルSAN基礎講座(第4弾)~続・間違わない!FC SAN導入のヒントとコツ~
“見てわかる” ファイバーチャネルSAN基礎講座(第4弾)~続・間違わない!FC SAN導入のヒントとコツ~
Brocade
 
“見てわかる”ファイバーチャネルSAN基礎講座(第6弾: 最終回)~困った時もこれで安心(?)、FC SANにおけるトラブルシューティングのコツとは??~
“見てわかる”ファイバーチャネルSAN基礎講座(第6弾: 最終回)~困った時もこれで安心(?)、FC SANにおけるトラブルシューティングのコツとは??~“見てわかる”ファイバーチャネルSAN基礎講座(第6弾: 最終回)~困った時もこれで安心(?)、FC SANにおけるトラブルシューティングのコツとは??~
“見てわかる”ファイバーチャネルSAN基礎講座(第6弾: 最終回)~困った時もこれで安心(?)、FC SANにおけるトラブルシューティングのコツとは??~
Brocade
 
“見てわかる” ファイバーチャネルSAN基礎講座(第2弾)~FC SAN設計における勘所とは?~
“見てわかる” ファイバーチャネルSAN基礎講座(第2弾)~FC SAN設計における勘所とは?~“見てわかる” ファイバーチャネルSAN基礎講座(第2弾)~FC SAN設計における勘所とは?~
“見てわかる” ファイバーチャネルSAN基礎講座(第2弾)~FC SAN設計における勘所とは?~
Brocade
 
“見てわかる” ファイバーチャネルSAN基礎講座(第3弾)~間違わない!FC SAN導入のヒントとコツ~
“見てわかる” ファイバーチャネルSAN基礎講座(第3弾)~間違わない!FC SAN導入のヒントとコツ~“見てわかる” ファイバーチャネルSAN基礎講座(第3弾)~間違わない!FC SAN導入のヒントとコツ~
“見てわかる” ファイバーチャネルSAN基礎講座(第3弾)~間違わない!FC SAN導入のヒントとコツ~
Brocade
 
“見てわかる” ファイバーチャネルSAN基礎講座(第5弾)~さあ、いよいよ、運用です!~
“見てわかる” ファイバーチャネルSAN基礎講座(第5弾)~さあ、いよいよ、運用です!~“見てわかる” ファイバーチャネルSAN基礎講座(第5弾)~さあ、いよいよ、運用です!~
“見てわかる” ファイバーチャネルSAN基礎講座(第5弾)~さあ、いよいよ、運用です!~
Brocade
 
【Brocade OpenStack ソリューション】Vyatta vRouter プラグイン
【Brocade OpenStack ソリューション】Vyatta vRouter プラグイン【Brocade OpenStack ソリューション】Vyatta vRouter プラグイン
【Brocade OpenStack ソリューション】Vyatta vRouter プラグイン
Brocade
 

Andere mochten auch (13)

ストレージネットワーク基礎講座
ストレージネットワーク基礎講座ストレージネットワーク基礎講座
ストレージネットワーク基礎講座
 
“見てわかる” ファイバーチャネルSAN基礎講座(第1弾)~まず理解しよう! 基本の “キ”~
“見てわかる” ファイバーチャネルSAN基礎講座(第1弾)~まず理解しよう! 基本の “キ”~“見てわかる” ファイバーチャネルSAN基礎講座(第1弾)~まず理解しよう! 基本の “キ”~
“見てわかる” ファイバーチャネルSAN基礎講座(第1弾)~まず理解しよう! 基本の “キ”~
 
SAN デザイン講座
SAN デザイン講座SAN デザイン講座
SAN デザイン講座
 
Fibre Channel 基礎講座
Fibre Channel 基礎講座Fibre Channel 基礎講座
Fibre Channel 基礎講座
 
“見てわかる” ファイバーチャネルSAN基礎講座(第4弾)~続・間違わない!FC SAN導入のヒントとコツ~
“見てわかる” ファイバーチャネルSAN基礎講座(第4弾)~続・間違わない!FC SAN導入のヒントとコツ~“見てわかる” ファイバーチャネルSAN基礎講座(第4弾)~続・間違わない!FC SAN導入のヒントとコツ~
“見てわかる” ファイバーチャネルSAN基礎講座(第4弾)~続・間違わない!FC SAN導入のヒントとコツ~
 
ブロケード FC ファブリックスイッチ オペレーション講座(後編)
ブロケード FC  ファブリックスイッチ オペレーション講座(後編)ブロケード FC  ファブリックスイッチ オペレーション講座(後編)
ブロケード FC ファブリックスイッチ オペレーション講座(後編)
 
“見てわかる”ファイバーチャネルSAN基礎講座(第6弾: 最終回)~困った時もこれで安心(?)、FC SANにおけるトラブルシューティングのコツとは??~
“見てわかる”ファイバーチャネルSAN基礎講座(第6弾: 最終回)~困った時もこれで安心(?)、FC SANにおけるトラブルシューティングのコツとは??~“見てわかる”ファイバーチャネルSAN基礎講座(第6弾: 最終回)~困った時もこれで安心(?)、FC SANにおけるトラブルシューティングのコツとは??~
“見てわかる”ファイバーチャネルSAN基礎講座(第6弾: 最終回)~困った時もこれで安心(?)、FC SANにおけるトラブルシューティングのコツとは??~
 
FCスイッチゾーニング設定ガイド
FCスイッチゾーニング設定ガイドFCスイッチゾーニング設定ガイド
FCスイッチゾーニング設定ガイド
 
“見てわかる” ファイバーチャネルSAN基礎講座(第2弾)~FC SAN設計における勘所とは?~
“見てわかる” ファイバーチャネルSAN基礎講座(第2弾)~FC SAN設計における勘所とは?~“見てわかる” ファイバーチャネルSAN基礎講座(第2弾)~FC SAN設計における勘所とは?~
“見てわかる” ファイバーチャネルSAN基礎講座(第2弾)~FC SAN設計における勘所とは?~
 
“見てわかる” ファイバーチャネルSAN基礎講座(第3弾)~間違わない!FC SAN導入のヒントとコツ~
“見てわかる” ファイバーチャネルSAN基礎講座(第3弾)~間違わない!FC SAN導入のヒントとコツ~“見てわかる” ファイバーチャネルSAN基礎講座(第3弾)~間違わない!FC SAN導入のヒントとコツ~
“見てわかる” ファイバーチャネルSAN基礎講座(第3弾)~間違わない!FC SAN導入のヒントとコツ~
 
“見てわかる” ファイバーチャネルSAN基礎講座(第5弾)~さあ、いよいよ、運用です!~
“見てわかる” ファイバーチャネルSAN基礎講座(第5弾)~さあ、いよいよ、運用です!~“見てわかる” ファイバーチャネルSAN基礎講座(第5弾)~さあ、いよいよ、運用です!~
“見てわかる” ファイバーチャネルSAN基礎講座(第5弾)~さあ、いよいよ、運用です!~
 
ブロケード FC ファブリックスイッチオペレーション講座(前編)
ブロケード FC ファブリックスイッチオペレーション講座(前編)ブロケード FC ファブリックスイッチオペレーション講座(前編)
ブロケード FC ファブリックスイッチオペレーション講座(前編)
 
【Brocade OpenStack ソリューション】Vyatta vRouter プラグイン
【Brocade OpenStack ソリューション】Vyatta vRouter プラグイン【Brocade OpenStack ソリューション】Vyatta vRouter プラグイン
【Brocade OpenStack ソリューション】Vyatta vRouter プラグイン
 

Ähnlich wie L2 over L3 ecnaspsulations

Control distribution of virtual machines
Control distribution of virtual machinesControl distribution of virtual machines
Control distribution of virtual machines
irix_jp
 
#dnstudy 01 ドメイン名の歴史
#dnstudy 01 ドメイン名の歴史#dnstudy 01 ドメイン名の歴史
#dnstudy 01 ドメイン名の歴史
Takashi Takizawa
 
MySQL 入門的なはなし
MySQL 入門的なはなしMySQL 入門的なはなし
MySQL 入門的なはなし
Yuya Takeyama
 
沖縄オープンラボラトリ OpenStackハンズオンセミナー午後1
沖縄オープンラボラトリ OpenStackハンズオンセミナー午後1沖縄オープンラボラトリ OpenStackハンズオンセミナー午後1
沖縄オープンラボラトリ OpenStackハンズオンセミナー午後1
Hideki Saito
 

Ähnlich wie L2 over L3 ecnaspsulations (20)

VMware NSXがサポートするトンネル方式について
VMware NSXがサポートするトンネル方式についてVMware NSXがサポートするトンネル方式について
VMware NSXがサポートするトンネル方式について
 
http2 最速実装 v2
http2 最速実装 v2 http2 最速実装 v2
http2 最速実装 v2
 
BGP as a method for Abstraction
BGP as a method for AbstractionBGP as a method for Abstraction
BGP as a method for Abstraction
 
IPv6の現状
IPv6の現状IPv6の現状
IPv6の現状
 
MySQL 5.7 InnoDB 日本語全文検索(その2)
MySQL 5.7 InnoDB 日本語全文検索(その2)MySQL 5.7 InnoDB 日本語全文検索(その2)
MySQL 5.7 InnoDB 日本語全文検索(その2)
 
Segment Routing @ SDN Japan 2013
Segment Routing @ SDN Japan 2013Segment Routing @ SDN Japan 2013
Segment Routing @ SDN Japan 2013
 
Control distribution of virtual machines
Control distribution of virtual machinesControl distribution of virtual machines
Control distribution of virtual machines
 
ネットワークプログラマビリティ勉強会
ネットワークプログラマビリティ勉強会ネットワークプログラマビリティ勉強会
ネットワークプログラマビリティ勉強会
 
#dnstudy 01 ドメイン名の歴史
#dnstudy 01 ドメイン名の歴史#dnstudy 01 ドメイン名の歴史
#dnstudy 01 ドメイン名の歴史
 
VagrantとChefで開発スピードを上げる話
VagrantとChefで開発スピードを上げる話VagrantとChefで開発スピードを上げる話
VagrantとChefで開発スピードを上げる話
 
MySQL 入門的なはなし
MySQL 入門的なはなしMySQL 入門的なはなし
MySQL 入門的なはなし
 
DB tech showcase_tokyo2018_LOCONDO
DB tech showcase_tokyo2018_LOCONDODB tech showcase_tokyo2018_LOCONDO
DB tech showcase_tokyo2018_LOCONDO
 
Locondo 20190215@ec tech_group
Locondo 20190215@ec tech_groupLocondo 20190215@ec tech_group
Locondo 20190215@ec tech_group
 
HTTP2 最速実装 〜入門編〜
HTTP2 最速実装 〜入門編〜HTTP2 最速実装 〜入門編〜
HTTP2 最速実装 〜入門編〜
 
Rails 6.1 → 7.0アップデート記録
Rails 6.1 → 7.0アップデート記録Rails 6.1 → 7.0アップデート記録
Rails 6.1 → 7.0アップデート記録
 
沖縄オープンラボラトリ OpenStackハンズオンセミナー午後1
沖縄オープンラボラトリ OpenStackハンズオンセミナー午後1沖縄オープンラボラトリ OpenStackハンズオンセミナー午後1
沖縄オープンラボラトリ OpenStackハンズオンセミナー午後1
 
Bird in show_net
Bird in show_netBird in show_net
Bird in show_net
 
JOSUG 34th Meetup
JOSUG 34th Meetup JOSUG 34th Meetup
JOSUG 34th Meetup
 
Apache Drill で日本語を扱ってみよう + オープンデータ解析
Apache Drill で日本語を扱ってみよう + オープンデータ解析Apache Drill で日本語を扱ってみよう + オープンデータ解析
Apache Drill で日本語を扱ってみよう + オープンデータ解析
 
HTTP/2 入門
HTTP/2 入門HTTP/2 入門
HTTP/2 入門
 

Mehr von Motonori Shindo

L2 over l3 ecnaspsulations (english)
L2 over l3 ecnaspsulations (english)L2 over l3 ecnaspsulations (english)
L2 over l3 ecnaspsulations (english)
Motonori Shindo
 

Mehr von Motonori Shindo (18)

おうち Lab で GitDNSOps / GitDNS Ops in My Home Lab
おうち Lab で GitDNSOps / GitDNS Ops in My Home Labおうち Lab で GitDNSOps / GitDNS Ops in My Home Lab
おうち Lab で GitDNSOps / GitDNS Ops in My Home Lab
 
Tanzu Mission Control における Open Policy Agent (OPA) の利用
Tanzu Mission Control における Open Policy Agent (OPA) の利用Tanzu Mission Control における Open Policy Agent (OPA) の利用
Tanzu Mission Control における Open Policy Agent (OPA) の利用
 
Open Policy Agent (OPA) と Kubernetes Policy
Open Policy Agent (OPA) と Kubernetes PolicyOpen Policy Agent (OPA) と Kubernetes Policy
Open Policy Agent (OPA) と Kubernetes Policy
 
Open Policy Agent (OPA) 入門
Open Policy Agent (OPA) 入門Open Policy Agent (OPA) 入門
Open Policy Agent (OPA) 入門
 
Cluster API によるKubernetes環境のライフサイクル管理とマルチクラウド環境での適用
Cluster API によるKubernetes環境のライフサイクル管理とマルチクラウド環境での適用Cluster API によるKubernetes環境のライフサイクル管理とマルチクラウド環境での適用
Cluster API によるKubernetes環境のライフサイクル管理とマルチクラウド環境での適用
 
宣言的(Declarative)ネットワーキング
宣言的(Declarative)ネットワーキング宣言的(Declarative)ネットワーキング
宣言的(Declarative)ネットワーキング
 
Service Mesh for Enterprises / Cloud Native Days Tokyo 2019
Service Mesh for Enterprises / Cloud Native Days Tokyo 2019Service Mesh for Enterprises / Cloud Native Days Tokyo 2019
Service Mesh for Enterprises / Cloud Native Days Tokyo 2019
 
Idea Hackathon at vFORUM 2019 Tokyo
Idea Hackathon at vFORUM 2019 TokyoIdea Hackathon at vFORUM 2019 Tokyo
Idea Hackathon at vFORUM 2019 Tokyo
 
Containers and Virtual Machines: Friends or Enemies?
Containers and Virtual Machines: Friends or Enemies?Containers and Virtual Machines: Friends or Enemies?
Containers and Virtual Machines: Friends or Enemies?
 
Open Source Projects by VMware
Open Source Projects by VMwareOpen Source Projects by VMware
Open Source Projects by VMware
 
Serverless Framework "Disptach" の紹介
Serverless Framework "Disptach" の紹介Serverless Framework "Disptach" の紹介
Serverless Framework "Disptach" の紹介
 
フロー技術によるネットワーク管理
フロー技術によるネットワーク管理フロー技術によるネットワーク管理
フロー技術によるネットワーク管理
 
Viptela 顧客事例
Viptela 顧客事例Viptela 顧客事例
Viptela 顧客事例
 
ViptelaのSD-WANとクラウド最適化ネットワーク
ViptelaのSD-WANとクラウド最適化ネットワークViptelaのSD-WANとクラウド最適化ネットワーク
ViptelaのSD-WANとクラウド最適化ネットワーク
 
OpenStack Congress and Datalog (English)
OpenStack Congress and Datalog (English)OpenStack Congress and Datalog (English)
OpenStack Congress and Datalog (English)
 
OpenStack Congress and Datalog (Japanese)
OpenStack Congress and Datalog (Japanese)OpenStack Congress and Datalog (Japanese)
OpenStack Congress and Datalog (Japanese)
 
L2 over l3 ecnaspsulations (english)
L2 over l3 ecnaspsulations (english)L2 over l3 ecnaspsulations (english)
L2 over l3 ecnaspsulations (english)
 
CloudStack 4.1 + NVP Integration
CloudStack 4.1 + NVP IntegrationCloudStack 4.1 + NVP Integration
CloudStack 4.1 + NVP Integration
 

L2 over L3 ecnaspsulations

  • 1. © 2014 VMware Inc. All rights reserved. L2 over L3 トンネル方式について考える VXLAN、NVGRE、STT、Geneve などの各方式比較検討 ヴイエムウェア(株) ネットワーク&セキュリティー事業 部 テクニカル・リーダー 進藤 資訓 / @motonori_shindo 2014 / 07 / 16
  • 2. Tunneling vs Encapsulation •  トンネリング・プロトコル –  Signaling + Encapsulation •  通常なにかしらの “シグナリング” を持ち、トンネルの維持・管理をする機構がプトロコルに含ま れている •  Encapsulation も必要 –  例) PPTP、L2TP、IPsec (IKE)、など •  Encapsulation –  なにかをなにかで “くるむ” 仕組み –  例) GRE、VXLAN、NVGRE、STT、(Ethernet, IP, TCP, ….) •  今日お話ししするのは厳密には “Encapsulation” です。 •  また、コントロールプレーンのお話は(とても大切ですが)しません。 2
  • 3. 代表的な L2 over L3 encapsulation •  GRE (Generic Routing Encapsulation) * •  VXLAN (Virtual Extensible LAN) •  NVGRE (Network Virtualization using GRE) •  STT (Stateless Transport Tunneling) * 厳密に言うと GRE は L2 over L3 とは限りません。
  • 4. VXLAN •  Cumulus / Arista / Broadcom / Cisco / VMware / Citrix / RedHat らが提唱 –  draft-mahalingam-dutt-dcops-vxlan-09.txt •  VLAN ID (12bit) を VNI (24bit) に拡張 •  UDP/IP で Encapsulation –  L3 オーバーレイ –  マルチパス可能 •  Ethernet Frame を仮定 •  ハードウェアで処理し易いように設計 •  エコシステムの形成
  • 5. VXLAN ヘッダー 0 1 2 3 0 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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |R|R|R|R|I|R|R|R| Reserved | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | VXLAN Network Identifier (VNI) | Reserved | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  • 6. Fabric のトレンド •  Service Oriented Architecture の台頭 •  2 or 3階層のネットワークから Leaf / Spineネットワークへ •  非常に高い密度と帯域の要求 •  Layer 3 で ECMP •  オーバーサブスクライブの低減 •  低く、かつ、一様な遅延特性 •  Wire & configure once なネットワーク •  一様なネットワーク設定 WAN/Internet WAN/Internet
  • 7. マルチパス特性 •  背景 –  East-West トラフィックの増大に対応するため、マルチパスによる Fabric ネットワークが 広く用いられるようになってきている。 •  要件 –  1つのフローは同じパスを通ること –  マルチパスを有効に活用するために十分なエントロピーを持つこと
  • 8. VXLAN のマルチパス VXLAN (8) UDP (8) IP (20) Hash (src/dst MAC addr, src/dst IP addr, src/dst port number, etc.) * dst port = 4789 src port = Hash() Ether IP TCP Data 元パケット * 何をハッシュするか、どのようにハッシュするかは厳密には決められておらず、実装依存です
  • 9. VXLAN エコシステム •  スイッチ・ルータ –  Arista、Brocade、Cisco、Cumulus、 DELL、HP、Huawei、Juniper、Open vSwitch、Pica8 •  オペレーティングシステム –  Linux、VMware •  アプライアンス –  A10、Citrix、F5 •  テスター –  IXIA、Spirent •  ASIC / NIC –  Broadcom、Intel (Fulcrum)、Emulex、 Mellanox •  Cloud Orchestrator –  CloudStack、OpenStack、vCAC 9 Note: this is not an exhaustive list
  • 10. NVGRE •  Microsoft / Arista / Intel / Google / HP / Broadcom / Emulex らが提唱 –  draft-sridharan-virtualization-nvgre-04.txt •  24bit の Virtual Subnet ID (VSID) と 8bit の FlowID •  Encapsulation は GRE のまま –  Key Field に VSID + FlowID –  L3 オーバーレイ –  マルチパス可能(理論上) •  Windows との親和性
  • 11. NVGRE ヘッダー 0 1 2 3 0 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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |0| |1|0| Reserved0 | Ver | Protocol Type 0x6558 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Virtual Subnet ID (VSID) | FlowID | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  • 12. NVGRE のマルチパス GRE (8) IP (20) Hash (src/dst MAC addr, src/dst IP addr, src/dst port number, etc.) * FlowID = Hash() Ether IP TCP Data 元パケット * 何をハッシュするか、どのようにハッシュするかは厳密には決められておらず、実装依存です ルータ・スイッチは GRE の Key Field まで含め て ECMP する必要があ る!
  • 13. NVGRE エコシステム •  スイッチ・ルータ –  Huawei –  Arista や Brocade も対応は表明しているが、まだモノは出ていない?? •  オペレーティングシステム –  Microsoft (Windows Server 2012 R2) •  アプライアンス –  F5 •  ASIC / NIC –  Emulex、Mellanox •  Cloud Orchestrator –  System Center 2012 R2 13 Note: this is not an exhaustive list
  • 14. STT (Stateless Transport Tunneling) •  VMware が提唱する L2 over L3 Encapsulation 手法 –  draft-davie-stt-06.txt •  Why yet another L2 over L3 encapsulation ? –  性能 –  多くのコンテクスト情報 –  マルチパス可能 –  ソフトウェア指向
  • 15. TSO (TCP Segmentation Offload) •  最近の(ここ4〜5年に出た)NIC には様々なハードウェア・アクセラレーション機能 が搭載されている –  RSS、GSO/TSO、Checksum Offload、etc. •  TSO は、通常 OS(ソフトウェア)が行わなければいけないSegmentation 処理を NICがハードウェアで行ってくれる –  最大 64K bytes のパケットを送れる à Context Switch を劇的に減らせる •  NICには “TCP” に見えるようなパケットで Encapsulation してやる事により、TSO のメリットを享受できる!
  • 16. Encapsulation / Segmentation 処理の流れ STT (18) TCP’ (20) IP (20) Payload 1 STT (18) TCP’ (20) IP (20) Payload 2 TCP’ (20) IP (20) Payload n TCP’ (20) IP (20) L2 Frame (up to ≒ 64K) (HWによる) Segmentation 処理
  • 17. TCP-like ヘッダー 0 1 2 3 0 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 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Sequence Number(*) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Acknowledgment Number(*) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Data | |U|A|P|R|S|F| | | Offset| Reserved |R|C|S|S|Y|I| Window | | | |G|K|H|T|N|N| | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Checksum | Urgent Pointer | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Options | Padding | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | data | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  • 18. STT ヘッダー 0 1 2 3 0 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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Version | Flags | L4 Offset | Reserved | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Max. Segment Size | PCP |V| VLAN ID | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | + Context ID (64 bits) + | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Padding | data | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | |
  • 19. スループットと CPU 使用率 0 10 20 30 40 50 60 70 80 90 100 0 1 2 3 4 5 6 7 8 9 10 Linux Bridge OVS Bridge OVS-GRE OVS-STT スループット CPU (Receive) CPU (Send) (Gbps) (%) 出典: http://networkheresy.com/2012/06/08/the-overhead-of-software-tunneling/
  • 20. STT のマルチパス STT (18) TCP’ (20) IP (20) Hash (src/dst MAC addr, src/dst IP addr, src/dst port number, etc.) dst port = 7471 (TBD) src port = Hash() Ether IP TCP Data 元パケット * 何をハッシュするか、どのようにハッシュするかは厳密には決められておらず、実装依存です
  • 21. Geneve (Generic Network Virtualization Encapsulation) •  VMware, Microsoft, RedHat, Intel が提唱する新たな encapsulation –  draft-gross-geneve-00.txt •  ゴール –  拡張性を備えること •  Service Chaining や Metadata のサポート –  NIC 等のオフロード機能を有効に活用できること –  これら2つを「同時に」満たすこと! •  特徴 –  Option フィールドで TLV 形式の情報を追加できる –  ハードウェアが TSO を実行できるように、どこから TSO すべきかを NIC が判断可能 –  OAM や Option 解釈必須の有無などを指定可能 21
  • 22. Geneve Header & Option Header Geneve Header 0 1 2 3 0 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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |Ver| Opt Len |O|C| Rsvd. | Protocol Type | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Virtual Network Identifier (VNI) | Reserved | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Variable Length Options | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Option 0 1 2 3 0 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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Option Class | Type |R|R|R| Length | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Variable Option Data | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  • 23. Geneve 実装 •  Open vSwitch (OVS)に実装され、master branch にマージ –  VNI の指定が可能 –  Geneve Options の指定は(まだ)できない –  OAM フラグを立てることはできない? –  Critical フラグは Critical Options があれば自動的に立つ(ようにコード上は読める) •  Wireshark に Geneve の dissector が実装され、master branch にマージ •  Geneve に対応した NIC は今後リリース予定 23
  • 24. Running Geneve on Open vSwtich 24 host-1:~$ sudo ovs-vsctl add-br br0 host-1:~$ sudo ovs-vsctl add-br br1 host-1:~$ sudo ovs-vsctl add-port bra eth0 host-1:~$ sudo ifconfig eth0 0 host-1:~$ sudo dhclient br0 host-1:~$ sudo ifconfig br1 10.0.0.1 netmask 255.255.255.0 host-1:~$ sudo ovs-vsctl add-port br1 geneve1 -- set interface geneve1 type=geneve options:remote_ip=192.168.203.149 host-2:~$ sudo ovs-vsctl add-br br0 host-2:~$ sudo ovs-vsctl add-br br1 host-2:~$ sudo ovs-vsctl add-port bra eth0 host-2:~$ sudo ifconfig eth0 0 host-2:~$ sudo dhclient br0 host-2:~$ sudo ifconfig br1 10.0.0.2 netmask 255.255.255.0 host-2:~$ sudo ovs-vsctl add-port br1 geneve1 -- set interface geneve1 type=geneve options:remote_ip=192.168.203.151
  • 25. Dissecting Geneve Packets by Wireshark (1) 25
  • 26. Dissecting Geneve Packets by Wireshark (2) 26
  • 27. Geneve に関する情報 •  英語 –  http://tools.ietf.org/html/draft-gross-geneve-00 –  http://cto.vmware.com/geneve-vxlan-network-virtualization-encapsulations/ –  http://www.enterprisenetworkingplanet.com/netsp/geneve-generic-network- virtualization-encapsulation-protocol-advances-video.html –  http://searchsdn.techtarget.com/news/2240219051/VMware-Microsoft-end- encapsulation-protocol-turf-war-with-GENEVE –  http://www.plexxi.com/2014/06/attention-overlay-tunnel-construction-ahead •  日本語 –  http://blog.shin.do/2014/05/geneve-encapsulation/ –  http://blog.shin.do/2014/07/geneve-on-open-vswitch/ 27
  • 28. Geneve replaces VXLAN / STT / NVGRE ? •  Geneve は VXLAN を置き換えるか? –  NO –  VXLAN のエコシステムはすでに短時間で置き換えることができないほど大きく成長して いる –  VMware は引き続き VXLAN をサポートし、パートナーと連携をしていく •  Geneve は STT を置き換えるか? –  短期的には NO。長期的には Maybe。 –  Geneve が広く受け入れられ、多くの NIC でオフロードができるようになるのが前提 •  Geneve は NVGRE を置き換えるか? –  短期的には NO。長期的には Maybe。 –  Geneve が Windows に実装され、現在の NVGRE と同程度のエコシステムが形成され れば・・・ 28
  • 30. 世の中一筋縄にはいかない^^ •  Geneve に反対している人たちもいる! •  主な主張 –  Geneve で実現しようとしていることは、既存の encapsulation (L2TPv3 static tunneling や VXLAN)もしくはそれらの若干の拡張で実現可能!? –  Service Chaining や Metadata を encapsulation と bind すべきではない (Encapsulation 独立であるべき)!? –  VNI が 24bit では不十分!? 30
  • 31. L2TPv3 static tunneling •  L2TP は本来シグナリングを伴うが、L2TPv3 static tunneling はシグナリングを使 わず、両端に静的に設定を設定をすることで L2TPv3 を encapsulation (i.e. Pseudo Wire)として使う方法 •  L2TPv3 自体は2005年に RFC (3931) になっており、枯れた仕様。Cisco IOS や Linux の実装あり。 31 0 1 2 3 0 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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |T|x|x|x|x|x|x|x|x|x|x|x| Ver | Reserved | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Session ID | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Cookie (optional, maximum 64 bits)... +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  • 32. L2TPv3 static tunneling を L2 over L3 encapsulation とみた場合 •  Session ID (32bit) が VNI に相当する •  L2TPv3 は IP でも UDP でもトランスポートできるが、マルチパス性を考えると UDP が有利 •  より多くのコンテキスト情報(メタデータやService Chaining)は両端に静的に設定 し、Session ID で暗黙に表現することになる –  したがって 32bit の Session ID を純粋に VNI として使うことはできない •  厳密には L2TPv3 には規定はないが、L2TPv2 の名残りの「オフセット」フィールド を使い、パケットのどこから TSO をするべきか伝えることは可能かも?? 32
  • 33. VXLAN Generic Protocol Extension (a.k.a. eVXLAN) •  Cisco、Huawei、Intel、Microsoftらが提唱 –  draft-quinn-vxlan-gpe-03.txt •  VXLAN の拡張 –  複数プロトコルのサポート •  IPv4 (0x01)、IPv6 (0x02)、Ethernet (0x03)、Network Service Header [NSH] (0x04) –  OAM サポート –  バージョン •  Cisco ACI で使われている 33 0 1 2 3 0 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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |R|R|R|R|I|P|R|O|Ver| Reserved |Next Protocol | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | VXLAN Network Identifier (VNI) | Reserved | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  • 34. VXLAN-gpe を L2 over L3 encapsulation とみた場合 •  ほぼ VXLAN と同様の特性 –  VNI 長 –  マルチパス性 –  ハードウェアでの実装のし易さ •  最大の特徴は NSH ヘッダを使った Service Chaining を可能にすること! •  拡張性はなし 34