O slideshow foi denunciado.
Utilizamos seu perfil e dados de atividades no LinkedIn para personalizar e exibir anúncios mais relevantes. Altere suas preferências de anúncios quando desejar.
ロードバランスへの⻑⾧長い道
加藤  淳
2016/2/13
Who  am  I  ?
•  ネットワークエンジニア
•  某外資系メーカ勤務
Twitter:  @jkatojp
Jun  Kato  /  加藤  淳
お題:  ロードバランス
•  2点間での複数経路路の均等な選択
•  レイヤ2:  LAG,  EtherChannel,  …
•  レイヤ3:  ECMP  (等コストマルチパス)
GigaEther  x  10本
10GigaEthe...
Per-‐‑‒Packet  vs.  Per-‐‑‒Flow
ロードバランス
Per-‐‑‒Packetロードバランス
•  パケットごとに経路路を振り分ける
•  ほぼ理理想的にロードバランスする
•  リンク間に遅延差があるとリオーダー  (届
く順番の⼊入れ違い)  が起きTCP再送など上
位通信でパフォーマンスが...
Per-‐‑‒Flowロードバランス
•  ⼀一般的に採⽤用されている
•  フローごとに経路路を振り分ける
•  経路路の遅延差によるリオーダーが発⽣生し
ない
•  リンク障害の影響を限定できる
•  完全なロードバランスは難しい
→特定フ...
Per-‐‑‒Flowロードバランス
•  何を  Flow  と定義するかは実装依存
•  パラメータにより決まる
– 発信元/宛先IPアドレス
– 発信元/宛先TCP/UDPポート番号
– MPLSラベル
– ⼊入⼒力力インターフェイス
•...
ハッシュ計算イメージ
Calcula&on	
  Result	
Router-­‐
id	
ip	
  src,	
  
dst	
TCP,	
  
UDP	
  Port	
  
src,	
  dst	
%
2.  Hash関数を
計算し...
ハッシュ計算イメージ
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で...
Per-‐‑‒Flowロードバランスの敵
•  トンネリング、カプセリング
•  ロードバランス⽤用フローの情報を隠蔽
– IPSecトンネル
– GREトンネル
– GTPトンネル
– L2VPN
– など
GTPトンネル  (携帯)
•  S5問題
•  LTE携帯  SGW-‐‑‒PGW間のGTPトンネルで発⽣生
•  ⼤大量量の携帯データトラフィックが集中する区間
•  発信元/宛先UDPポート番号がすべて同じ
EUTRAN	
   EPC	...
GTPトンネル  (携帯)
•  S5問題  (巨⼤大トラフィックが単⼀一フロー)
•  関係者は⾮非常に限られますが…
SGW PGWルータ ルータ
10GE  x  n 10GE  x  n 10GE  x  n
対策  (機能追加)
UD...
では、
フローが多いケース
は全然問題ない??
では、
フローが多いケース
は全然問題ない??
→  No!!	
  
某インターネットバックボーン
•  特定区間で極端な偏りが発⽣生した事例例
偶数本ECMPの時に偏りが発⽣生!
IXで2本のECMP 次のルータで2本以上のECMP
IX	
  
O IA [Nexthop R5] [110/0] via [L...
フローの極性化  (Polarization)
どのルータもハッシュの
Bottom  Bit  をキーにECMP
を選択していると仮定
このルータに届くフローの
ハッシュは  Bottom  Bit  が
すべて同じ値(1)  のため、
続く...
フローの極性化発⽣生イメージ
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...
フローの極性化まとめ
•  特定の条件が重なることにより稀に発⽣生
する  (知らない⼈人も多い)
•  条件1:
– 連続するルータで同じハッシュ関数を使⽤用
•  条件2:
– 上流流で複数のノードにトラフィックを分散
•  条件3:
– ...
フロー極性化の対策
(メーカー視点)
•  ルータIDなど、ノード毎に結果をシャッフル
させるパラメータをハッシュ関数に埋め込む
のが有効
•  ルータIDを連番で振っていて1ビットしか違
わない場合など、シャッフルの効果が出にく
く、追加対策...
ロードバランスへの⻑⾧長い道
まとめ
•  Per-‐‑‒Packet  より  Per-‐‑‒Flow
•  Per-‐‑‒Flowではパケット毎にハッシュ計算
•  トンネリング・カプセリングは要注意
•  すべてのネットワークトポロジーに...
Próximos SlideShares
Carregando em…5
×

ロードバランスへの長い道

インターネットやIPネットワークにおける複数経路の選択アルゴリズム

  • Entre para ver os comentários

ロードバランスへの長い道

  1. 1. ロードバランスへの⻑⾧長い道 加藤  淳 2016/2/13
  2. 2. Who  am  I  ? •  ネットワークエンジニア •  某外資系メーカ勤務 Twitter:  @jkatojp Jun  Kato  /  加藤  淳
  3. 3. お題:  ロードバランス •  2点間での複数経路路の均等な選択 •  レイヤ2:  LAG,  EtherChannel,  … •  レイヤ3:  ECMP  (等コストマルチパス) GigaEther  x  10本 10GigaEther  x  1本 同じ合計帯域 10Gbpsでも 扱いはまるで違う
  4. 4. Per-‐‑‒Packet  vs.  Per-‐‑‒Flow ロードバランス
  5. 5. Per-‐‑‒Packetロードバランス •  パケットごとに経路路を振り分ける •  ほぼ理理想的にロードバランスする •  リンク間に遅延差があるとリオーダー  (届 く順番の⼊入れ違い)  が起きTCP再送など上 位通信でパフォーマンスが劣劣化する – 広域では伝送経路路により数ms単位の遅延差 – 電⼦子回路路でいう  Skew  みたいなもの •  1本リンク障害があると通信すべてに影響 •  ほとんど採⽤用されていない
  6. 6. Per-‐‑‒Flowロードバランス •  ⼀一般的に採⽤用されている •  フローごとに経路路を振り分ける •  経路路の遅延差によるリオーダーが発⽣生し ない •  リンク障害の影響を限定できる •  完全なロードバランスは難しい →特定フローだけ⼤大量量のトラフィックとか… →ロード「シェア」リングと呼んだりする
  7. 7. Per-‐‑‒Flowロードバランス •  何を  Flow  と定義するかは実装依存 •  パラメータにより決まる – 発信元/宛先IPアドレス – 発信元/宛先TCP/UDPポート番号 – MPLSラベル – ⼊入⼒力力インターフェイス •  ハッシュ関数で計算 – ビット四則/論論理理演算、CRC32など
  8. 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. 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値がこの値となる パケット  (フロー)  の 集合
  10. 10. Per-‐‑‒Flowロードバランスの敵 •  トンネリング、カプセリング •  ロードバランス⽤用フローの情報を隠蔽 – IPSecトンネル – GREトンネル – GTPトンネル – L2VPN – など
  11. 11. GTPトンネル  (携帯) •  S5問題 •  LTE携帯  SGW-‐‑‒PGW間のGTPトンネルで発⽣生 •  ⼤大量量の携帯データトラフィックが集中する区間 •  発信元/宛先UDPポート番号がすべて同じ EUTRAN   EPC   MME   PSTN/ISDN   PGW   eNodeB   UE   HSS/SLF   SGW   IMS   INTERNET  
  12. 12. GTPトンネル  (携帯) •  S5問題  (巨⼤大トラフィックが単⼀一フロー) •  関係者は⾮非常に限られますが… SGW PGWルータ ルータ 10GE  x  n 10GE  x  n 10GE  x  n 対策  (機能追加) UDP上位のGTPヘッダの   TE  ID  (ユーザ情報)  を ハッシュキーに追加 発信元IP,宛先IP,発信元UDPポー ト,宛先UDPポートまで同じ 1つのフローとして認識識 ⼀一本しか通らない! ⾼高集約化 ⾼高集約化 数千〜~数万ユーザのセッションが カプセル化されて単⼀一のIPフローに ⼀一本じゃ ⾜足りない
  13. 13. では、 フローが多いケース は全然問題ない??
  14. 14. では、 フローが多いケース は全然問題ない?? →  No!!  
  15. 15. 某インターネットバックボーン •  特定区間で極端な偏りが発⽣生した事例例 偶数本ECMPの時に偏りが発⽣生! IXで2本のECMP 次のルータで2本以上のECMP IX   O IA [Nexthop R5] [110/0] via [Link1] [110/0] via [Link2] B [Network A] [200/0] via [Nexthop R5] O IA [Nexthop R5] [110/0] via [R1] [110/0] via [R2] Network   A   R1 IX R3 R2 R4 R5
  16. 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. 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
  18. 18. フローの極性化まとめ •  特定の条件が重なることにより稀に発⽣生 する  (知らない⼈人も多い) •  条件1: – 連続するルータで同じハッシュ関数を使⽤用 •  条件2: – 上流流で複数のノードにトラフィックを分散 •  条件3: – 上流流と下流流で分散させる経路路数がともに偶数 など、公約数をもつ  (互いに素ではない)
  19. 19. フロー極性化の対策 (メーカー視点) •  ルータIDなど、ノード毎に結果をシャッフル させるパラメータをハッシュ関数に埋め込む のが有効 •  ルータIDを連番で振っていて1ビットしか違 わない場合など、シャッフルの効果が出にく く、追加対策が必要 •  MD5などシャッフル性の⾼高いアルゴリズムは 有効だが、計算量量が多くパケット毎の処理理に ⾒見見合わない •  設定によるアルゴリズム選択オプション
  20. 20. ロードバランスへの⻑⾧長い道 まとめ •  Per-‐‑‒Packet  より  Per-‐‑‒Flow •  Per-‐‑‒Flowではパケット毎にハッシュ計算 •  トンネリング・カプセリングは要注意 •  すべてのネットワークトポロジーに無条 件で理理想的に機能するハッシュアルゴリ ズムは存在しない •  必要に応じ⼿手動設定でアルゴリズム変更更

×