t0mmy

2020年12月30日に参加

学習履歴詳細

network系の学習

やったこと

ネットワークスペシャリスト合格教本 2022年

  • サーバ負荷分散
  • サーバ冗長化
  • 経路冗長化
  • NIC 冗長化

学んだこと

LBによる負荷分散

外部からのリクエストを、LB管理下のサーバに振り分ける。
その際、外部からのリクエストの宛先IPは、LBから振り分けられたサーバに変換する。
動作的には、リバースプロキシに近い。

LB管理下のサーバのヘルスチェックも可能

レイヤーに応じて、ヘルスチェックの手段が異なる

  • レイヤー3 : pingを使用
  • レイヤー4 : TCPセッションの確立を試みる
  • レイヤー7 : 特定のリクエストを送信し、そのレスポンスを確認

ヘルスチェック機能を実現できる点は、DNSによるラウンドロビンには無い利点。

LBの振り分け戦略

色々ある。

  • ラウンドロビン
  • 事前に振り分け比重を決める
  • 事前に優先度を決める
  • レスポンスが最短のサーバ
  • コネクションが最小(≒まだまだ余裕のある)のサーバ
  • 何かしらの個別ルール

DSR (Direct Server Return)

LBを通したリクエストについて、レスポンスはLBを通過しないという戦略。
■request経路
client -> LB -> server

■response経路(DSR)
client <- server

利点

  • LBの負荷軽減
  • LB周辺ネットワークの帯域節約

特徴

VIPを用いてLBからserverへ振り分ける時、VIPは変化せず、MACアドレスのみ(LBからserverのMACアドレスへ)変化する。

DSRを使用する場合は、サーバー側には以下の設定が必要。

  • LBと同じVIPを設定する
    • クライアントとやり取りするため、IPアドレスが必要
    • LBと同じIPアドレスであれば、クライアントは、サーバのレスポンスをLBのレスポンスとして解釈できる
    • -> サーバとLBのVIPが異なる場合、クライアントからすると、LBに送信したはずのリクエストが、LB以外のIPアドレスからレスポンスとして帰ってくることになり、通信が成立しなくなる
  • VIPに対する ARP に応答しないこと
    • ARPに応答するのはLBとするため

LBによるセッション維持

■背景
現代では、Cookieを用いたステートフル通信が浸透している。
このため、セッションが維持されている限り、通信相手は(LBで振り分けた)サーバと同一である必要がある。
これを実現するのがセッション維持機能。

■仕組み
LBによって異なる

■セッションIDを識別するために
Cookieの中身を確認してセッションIDを識別する場合、HTTPSパケットを復号する必要がある。
これは、LBにこの機能を持たせる(≒LBにTLS終端機能を搭載する)ことで解決できる。

サーバの冗長化

スタンバイ系へのフェイルオーバー

サーバからクライアントへ、RSTフラグを立てたTCPを送信し、(障害が発生した)アクティブサーバとのTCPセッションを強制切断する。
これにより、迅速なフェイルオーバーをじつげんする。

スプリットブレインシンドローム

active/ stand by 構成のシステムにおいて、何らかの理由(主にハートビートの失敗)で、障害が発生していないにもかかわらずstand by系が起動する事象。

■問題点

  • 仮想IPのARPに、active系とstand by系の両方が応答してしまう
  • ディスクを共有している場合、保存しているデータにて競合が発生する可能性が高い

マルチホーミング(回線冗長化)

切断が許されないサービスを提供するサーバ(DNS、NATなど)への回線を冗長化することで、より確実なサービス提供が可能となる。

冗長化した回線を使用して、LBによるトラフィックの負荷分散を行う...といった戦略もある。

NICチーミング(Teaming)

複数のNICをまとめ、一つのNICに見せかける技術。

リンクステートトラッキング

L2SWに備わっている機能。
あるポート(上位ポート)がダウンした時、他のポート(下位ポート)を強制的にダウンさせる機能。

STPは、ブロードキャストドメインごとにスパニングツリーを一つ形成する

以上

network

2022年03月27日(日)

2.0時間