「さくらのクラウド」におけるL2ネットワークの課題
さくらインターネット株式会社 研究所 ⼤大久保 修⼀一

2011年10⽉月24⽇日 　MPLS Japan 2011
(C)Copyright 1996-2011 SAKURA Internet Inc.

⾃自⼰己紹介• 2003年4⽉月 さくらインターネット⼊入社– ネットワークの運⽤用に携わる• 2009年7⽉月 さくらインターネット研究所– 発⾜足と同時に異動– クラウド、IPv4アドレス枯渇について研究活動• 2011年3⽉月 クラウドサービスの開発に従事– 主にネットワーク部分を担当

2

さくらのクラウド概要• IaaS• 来⽉月(2011/11)中旬リリース予定• 主な機能– 仮想サーバ– 仮想ディスク
– 仮想スイッチ– 仮想アプライアンス

3

コントロールパネルのイメージ

4コントロールパネルのイメージ

5ネットワークの物理構成

インターネット
ルータ
たくさんのVLANを通しておく

VPN

ルータ

ルータ

802.1QタグVLAN
コアスイッチコアスイッチLAG
エッジスイッチルータ

エッジスイッチ

エッジスイッチ

802.1QタグVLAN
エッジスイッチ

802.1QタグVLAN

bonding

仮想スイッチ

仮想スイッチ

仮想スイッチ

仮想スイッチ

VM

VM

VM

VM

VM

ホストサーバ

VM

ホストサーバ

VM

ホストサーバ

VM

ホストサーバ6

仮想システムプロビジョニング例
これを、IaaSインフラ上に展開してみる
インターネット
VLAN101

VPN
VLAN102

ルータ

VLAN106

FW
VLAN103
LB

VPN

VLAN104
WebサーバWebサーバVLAN105

とりあえず、
VLANでやってます

DBサーバ

DBサーバ
7

クラウド上に配置したシステム
VPN

インターネット

L2網(コアスイッチ、エッジスイッチ、仮想スイッチ)
VLAN101
VLAN102
VLAN103
VLAN104
VLAN105
VLAN106

仮想スイッチ

仮想スイッチルータ

FW
ホストサーバA

LB

WEB

WEB

ホストサーバB

仮想スイッチ

DB

DB

VPN

ホストサーバC

81ゾーンあたりの規模• VLAN数: MAX4,096 (VLAN ID数の制限による)• コアスイッチ数: 2台 (2台1セット)• エッジスイッチ数: 数⼗十台 (2台1セット)• ホストサーバ数: 数百台• VM数: MAX8,000• VMあたり仮想NIC数: 平均2個 (想定値)• MACアドレス数: 16,000 (8,000 2)• ルータ、コアスイッチ、エッジスイッチ、仮想スイッチに収容できる能⼒力力が必要。
9

機器選定時・検証時に発⽣生した問題• 実際に使⽤用できるVLAN数が意外と少ない• ショートパケットでワイヤレート出ない• 実際に収容できるMACアドレス数が少ない• conﬁgが⻑⾧長くなってオペレーションに⽀支障がある

10

VLAN数の制限
ロジカルポート数の不⾜足
L2スイッチ40ポート4,000VLAN 4,000VLAN 4,000VLAN 4,000VLAN
約4,000×40ポート =約160,000ロジカルポート必要
ロジカルポート数が12,000や24,000の制限があるL2スイッチもある
11

VLAN数の制限• VLAN 1002番– FCoEのIDとして予約されている装置がある• VLAN 1002~1005と1006以降いくつか– routed interfaceに割り当てられたり、予約されていたりする装置がある(show vlan internal usage)• VLAN 3584~– 使⽤用できない装置がある• Conﬁgできても、正式サポート数が少ない装置がある• クラウドコントローラにて、これらをお客様に割り当てないようにする必要あり
12

ショートパケットでワイヤレート出ない

Etherのフレームフォーマット
IFG
(12)

プリアンブル(8)

宛先MAC
(6)

送信元
MAC(6)

ペイロードタイプ(2) (46-1500) FCS(4)
最⼩小 64Bytes
最⼩小 84Bytes

最⼩小フレーム⻑⾧長でワイヤレート出るには？
14.88Mpps = 10,000,000,000 / 8 / 84
ワイヤレートでないスイッチはよくある 　→ 現実的に問題ない範囲ならOKとする。
13

Conﬁgが⻑⾧長くなるinterface	 Vlan	 1	 	 	 no	 shutdown	 !	 
interface	 Vlan	 2	 	 	 no	 shutdown	 !	 	 
・・・省略・・・	 	 
interface	 Vlan	 1998	 	 	 no	 shutdown	 !	 
interface	 Vlan	 1999	 	 	 no	 shutdown	 !	 
interface	 Vlan	 2000	 	 	 no	 shutdown	 

1VLAN毎に設定が必要
VLAN設定をまとめれるとうれしい14

MACアドレスの制限
MACアドレスのハッシュコリジョン問題
同じハッシュ値をとる５つ⽬目のMACアドレスが来ると学習できない

4段の例
ハッシュ値1

gg:gg:gg:gg:gg:gg	 

hh:hh:hh:hh:hh:hh	 

ii:ii:ii:ii:ii:ii	 

jj:jj:jj:jj:jj:jj	 

ハッシュ値2
ハッシュ値3
ハッシュ値4

VMに割り当てるMACアドレスをランダムにすることで、コリジョンの可能性を減らすことができる
15

MACアドレスの制限

VLANでMACエントリを消費• スペックでは32,000のMACアドレステーブル• ただし、1VLAN設定すると、3エントリ消費• 4,000VLAN設定すると、12,000エントリ消費• 残り、20,000エントリしか使えない。。。

16

OUI取得しましたhttp://standards.ieee.org/cgi-bin/ouisearch?9C-A3-BA

他のクラウドや他の物理ネットワークとのL2レベルでの相互接続も問題なし！
17

VLAN ID数制限の克服• 1ゾーンあたり最⼤大4,096VLANしか使⽤用できない(実際はもっと少ない) 。
• VLANが不⾜足したら、別のゾーンを作成（ルータ、コアスイッチを新設）• 別ゾーンに収容されたお客様が相互接続したい場合はどうするか？
• ゾーン間のL2接続を⾏行行う「ブリッジ」機能を実装

18

ブリッジによる相互接続
ゾーンA

ゾーンB
VLAN100

VLAN100

VLAN200

VLAN200

各ゾーンのVLANを任意に⾃自由に接続
VLAN ID変換装置

ブリッジ

ブリッジ

ブリッジ

ゾーンC

ゾーンD
VLAN600

VLAN700

VLAN800
VLAN50019複数網の相互接続（将来の構想）

専⽤用サーバ
VLAN: 100PBB Edge
I-SID: 10,000

さくらのVPS
VLAN: 200PBB Edge
I-SID: 10,000

PBB(802.1ah)網

I-SID: 10,000
PBB Edge
VLAN: 300

クラウド
Aゾーン

I-SID: 10,000
PBB Edge

他サービス、他社L2サー
ビスとの相互接続
VLAN: 500

キャリアさんの広域イーサ
VLAN: 400

クラウド
Bゾーン20今後のネットワークプラン• Ether over InﬁniBand(⽯石狩から導⼊入)– 配線数の削減– コストそのまま、帯域増加• 完全トンネル⽅方式(２~３年後？)– VM間のL2通信を、ホストサーバにてIPトンネル– バックボーンをL3で組める– VLAN数、MACアドレス数の制限がほぼなくなる– スケールする構成に21

Ether over InﬁniBand

ストレージ

Ethernet Switch
Ether over InﬁniBand

InﬁniBand

ホストサーバ22

完全トンネル⽅方式• Open vSwitch– GREでEtherをIPで⾶飛ばす機能が載っている– 某社が頑張っているらしい・・・• 富⼠士通研究所さんの事例– http://www.ieice.org/ken/paper/20100805B000/– Linux GRETAPを使った⽅方式• 新しいプロトコル仕様(IETFに提案されている)– http://tools.ietf.org/html/draft-sridharan-virtualizationnvgre-00– http://tools.ietf.org/html/draft-mahalingam-dutt-dcopsvxlan-00– どちらも、ユーザの識別は24bit、IP上にオーバレイする

Etherのスイッチを使わずに、Etherのネットワークが組めるようになる時代が来る！

23

まとめ

• 現在はVLANを⽤用いて実装している。
• VLAN数とMACアドレス数がネックになる。
• VLAN数の制限については「ゾーン」という単位で網を分割している。
• ゾーン間をVLAN IDを変換する「ブリッジ」という機能で接続できる。
• 将来はトンネル⽅方式に移⾏行行したい。

24