Weitere ähnliche Inhalte Ähnlich wie ロードバランスへの長い道 (20) ロードバランスへの長い道2. Who am I ?
• ネットワークエンジニア
• 某外資系メーカ勤務
Twitter: @jkatojp
Jun Kato / 加藤 淳
7. Per-‐‑‒Flowロードバランス
• 何を Flow と定義するかは実装依存
• パラメータにより決まる
– 発信元/宛先IPアドレス
– 発信元/宛先TCP/UDPポート番号
– MPLSラベル
– ⼊入⼒力力インターフェイス
• ハッシュ関数で計算
– ビット四則/論論理理演算、CRC32など
8. ハッシュ計算イメージ
Calcula&on
Result
Router-‐
id
ip
src,
dst
TCP,
UDP
Port
src,
dst
%
2. Hash関数を
計算しHash
キーを得る
1. Hash関数に
キーとなる値の
セットを⼊入⼒力力
最終的に得られる値: 0, 1, 2, 3 のどれか
(ECMP 4本の場合)
0
1
2
3
3. Hashキーを
ECMP数やBundle
Member数に合わ
せ変換する (剰余
算)
4. 最終的に得られた
値を元に ECMP や
Bundle Member へ
振り分け
特定⻑⾧長Hashキー
9. ハッシュ計算イメージ
0 1 2 3
4 5 6 7
8 9 10 11
12 13 14 15
Hashキー計算結果
(パケット毎に決まる固有の値)
0 1 0 1
0 1 0 1
0 1 0 1
0 1 0 1
ECMP 2本の場合
2で割って剰余を得る 剰余値0,1ごとに
各リンク割り当て
0 1 2 0
0 2 0 1
2 0 1 2
0 1 2 0
ECMP 3本の場合
3で割って剰余を得る
剰余値0,1,2ごとに
各リンク割り当て
Calcula&on
Result
Router-‐
id
ip
src,
dst
TCP,
UDP
Port
src,
dst
%
特定⻑⾧長Hashキー
0 1 2 3
4 0 1 2
3 4 0 1
2 3 4 0
ECMP 5本の場合
5で割って剰余を得る 剰余値0..4ごとに
各リンク割り当てIPアドレスとTCP/UDP
ポートから計算される
Hash値がこの値となる
パケット (フロー) の
集合
11. GTPトンネル (携帯)
• S5問題
• LTE携帯 SGW-‐‑‒PGW間のGTPトンネルで発⽣生
• ⼤大量量の携帯データトラフィックが集中する区間
• 発信元/宛先UDPポート番号がすべて同じ
EUTRAN
EPC
MME
PSTN/ISDN
PGW
eNodeB
UE
HSS/SLF
SGW
IMS
INTERNET
12. GTPトンネル (携帯)
• S5問題 (巨⼤大トラフィックが単⼀一フロー)
• 関係者は⾮非常に限られますが…
SGW PGWルータ ルータ
10GE x n 10GE x n 10GE x n
対策 (機能追加)
UDP上位のGTPヘッダの
TE ID (ユーザ情報) を
ハッシュキーに追加
発信元IP,宛先IP,発信元UDPポー
ト,宛先UDPポートまで同じ
1つのフローとして認識識
⼀一本しか通らない!
⾼高集約化
⾼高集約化
数千〜~数万ユーザのセッションが
カプセル化されて単⼀一のIPフローに
⼀一本じゃ
⾜足りない
16. フローの極性化 (Polarization)
どのルータもハッシュの
Bottom Bit をキーにECMP
を選択していると仮定
このルータに届くフローの
ハッシュは Bottom Bit が
すべて同じ値(1) のため、
続く ECMP で必ず⼀一⽅方を通
り、ロードバランスしない
Polarization: 主に等コスト経路路 (ECMP)シナリオにおいて、
多段接続で同じロードバランスの⽅方法を使⽤用することにより、
後続のルータでロードバランスの不不均等が発⽣生する現象
ASR9000/XR:
Loadbalancing
architecture
and
characteris&cs
hNps://supporOorums.cisco.com/document/111291/asr9000xr-‐loadbalancing-‐architecture-‐and-‐characteris&cs
17. フローの極性化発⽣生イメージ
A9K
A9K
A9K
0 1 0 1
0 1 0 1
0 1 0 1
0 1 0 1
ECMP 2本
2の剰余で振分け
0 1 2 3
4 5 6 7
8 9 10 11
12 13 14 15
0 1 2 3
4 5 6 7
8 9 10 11
12 13 14 15
0 1 2 3
4 5 6 7
8 9 10 11
12 13 14 15
1st Hop と 2nd Hop は
同⼀一のHash計算⽅方法
偶数のみ届く
奇数のみ届く
1st Hop
2nd Hop
0 1 2 3
4 5 6 7
8 9 10 11
12 13 14 15
ECMP 6本
6の剰余で振分け
0 1 2 3
4 5 6 7
8 9 10 11
12 13 14 15
0 1 2 3
4 5 6 7
8 9 10 11
12 13 14 15
振り分けられるはずのパケットが上位から届かない!
0 1 2 3
4 5 0 1
2 3 4 5
0 1 2 3