目次
概要
このページでは、負荷分散装置(ロードバランサー)で、サーバへのリクエストを負荷分散するための基本的な仕組みについて解説します。
負荷分散装置(ロードバランサー)は、「アプリケーションスイッチ」、「L4/L7スイッチ」などとも呼ぶことがあります。
基本的なシステム構成
負荷分散装置でサーバの負荷分散を行うためには、次の機器が必要です。
- 負荷分散装置
- 負荷分散するサーバ群
- DNSサーバ
負荷分散装置でサーバの負荷分散を行うときの基本的なシステム構成は次の図のようになります。
サーバ1、サーバ2、サーバ3の3台のWebサーバでwww.example.comへのWebアクセスを負荷分散するものとします。負荷分散装置は、スイッチのように複数のイーサネットポートを持ち、負荷分散するサーバ群を集約して接続します。負荷分散装置には、www.example.comの仮想IPアドレスを設定します。そして、DNSサーバにはwww.example.comのAレコードとして負荷分散装置の仮想IPアドレスを登録しておきます。
負荷分散装置の通信フロー
負荷分散装置で、PC1とPC2の複数のクライアントPCからwww.example.comへのWebアクセスを負荷分散する際の通信フローを考えます。
- PC1がDNSサーバに対してwww.example.comのDNSリクエストを送信する
- DNSサーバは、DNSリプライとしてwww.example.comのIPアドレス192.168.1.100を返答する
- PC1はサーバ1(192.168.1.100)へWebアクセスを行う
- SLBが192.168.1.100へのWebアクセスを負荷分散アルゴリズムによって実サーバであるサーバ1を選択。
- SLBはサーバ1へWebアクセスを転送する
- PC2がDNSサーバに対してwww.example.comのDNSリクエストを送信する
- DNSサーバは、DNSリプライとしてwww.example.comのIPアドレス192.168.1.100を返答する
- PC2はサーバ1(192.168.1.100)へWebアクセスを行う
- SLBが192.168.1.100へのWebアクセスを負荷分散アルゴリズムによって実サーバであるサーバ2を選択。
- SLBはサーバ2へWebアクセスを転送する
負荷分散の仕組みのポイントは、宛先IPアドレスの変換
このような通信フローをもう少し詳細に考えます。負荷分散装置はクライアントPCからのWebアクセスを実サーバへ転送します。このような動作はIPアドレスの変換によって実現します。
クライアントPCからwww.example.comへのWebアクセスのパケット1のアドレス情報は次の通りです。
- 宛先IP:192.168.1.100(負荷分散装置の仮想IPアドレス)
- 送信元IP:10.1.1.1
- 宛先ポート番号:80
- 送信元ポート番号:50000(ランダムポート)
これが負荷分散装置に届き、負荷分散装置でサーバ1を選択すると、パケット2としてサーバ1へ転送します。そのときのアドレス情報は次の通りです。
負荷分散装置で実サーバを選択するためのアルゴリズムにはいくつかの種類があります。
- 宛先IP:192.168.1.1 (サーバ1のIPアドレス)
- 送信元IP:10.1.1.1
- 宛先ポート番号:80
- 送信元ポート番号:50000(ランダムポート)
負荷分散装置で宛先IPアドレスを仮想IPアドレスからサーバ1の実IPアドレスへ変換します。
そして、サーバ1は返事としてパケット3.を返します。パケット3.のアドレス情報は次のようになります。
- 宛先IP:10.1.1.1
- 送信元IP:192.168.1.1 (サーバ1のIPアドレス)
- 宛先ポート番号:50000(ランダムポート)
- 送信元ポート番号:80
パケット3は負荷分散装置を経由します。負荷分散装置はパケット3のIPアドレスを次のように変換してパケット4としてPC1へ転送します。
- 宛先IP:10.1.1.1
- 送信元IP:192.168.1.100 (負荷分散装置の仮想IPアドレス)
- 宛先ポート番号:50000(ランダムポート)
- 送信元ポート番号:80
このように負荷分散装置では、IPアドレスの変換を行うことでクライアントPCからのWebアクセスを実サーバへ振り分けています。
IPルーティング応用
- DNSラウンドロビン方式の負荷分散
- 負荷分散装置(ロードバランサ)の仕組み
- ルーティングプロセス ~実行中のルーティングプロトコル用のプログラム~
- 複数のルーティングプロトコルの利用
- 再配送(再配布) ~ルーティングドメイン境界で必須の設定~
- Cisco再配送(再配布)の設定 ~redistributeコマンド~
- Cisco 再配送の設定例 ~OSPFとRIPの双方向再配送~
- 再配送 設定ミスの切り分けと修正 Part1
- 再配送 設定ミスの切り分けと修正 Part2
- 再配送 設定ミスの切り分けと修正 Part3
- 再配送 設定ミスの切り分けと修正 Part4
- 再配送 設定ミスの切り分けと修正 Part5
- 再配送 設定ミスの切り分けと修正 Part6
- オフセットリスト(offset-list) ~ルート情報のメトリックを加算~
- オフセットリストの設定例 RIP
- オフセットリストの設定例 EIGRP
- ルートフィルタの概要
- ルートフィルタのポイント
- ディストリビュートリストによるルートフィルタの設定
- Ciscoディストリビュートリストによるルートフィルタの設定例
- プレフィクスリスト(prefix-list)によるルートフィルタの設定
- Ciscoプレフィクスリストによるルートフィルタの設定例
- Ciscoルートマップ(route-map)の概要 ~何をどう処理するか~
- Ciscoルートマップの設定
- Ciscoルートマップ(route-map)設定のポイント
- Ciscoルートマップによる再配送時のルート制御の設定例
- ポリシーベースルーティングの設定例
- GREトンネルインタフェース ~仮想的なポイントツーポイント接続~
- GREトンネルインタフェースの設定例
- GREトンネルの注意点 ~フラッピングしないように~
- オーバーレイネットワークとアンダーレイネットワーク
- ルート制御 ケーススタディ Part1
- ルート制御 ケーススタディ Part2
- ルート制御 ケーススタディ Part3
- VRF/VRF-Liteの概要 ~仮想的にルータを分割する~
- VRFの設定と確認コマンド [Cisco]
- VRF-Liteによるレイヤ3VPNの設定例 [Cisco]
- VRFルートリーク(スタティックルート)
- VRFルートリーク(スタティックルート)の設定例
- VRFルートリーク(MP-BGP)
- VRFルートリーク(MP-BGP)の設定例
- [FVRFの仕組み] FVRF(Front door VRF)とは
- [FVRFの仕組み] ポイントツーポイントGREトンネル:FVRFなし
- [FVRFの仕組み] ポイントツーポイントGREトンネル : FVRFあり(tunnel vrfコマンド)
- [FVRFの仕組み] IPSec VTI : FRVRFあり
- [FVRFの仕組み] IPSec VTI : FVRFあり 設定例
- [FVRFの仕組み] DMVPN : FVRFあり
- [FVRFの仕組み] DMVPN : FVRFあり 設定例 Part1
- [FVRFの仕組み] DMVPN : FVRFあり 設定例 Part2
- tunnel vrfコマンド
- tunnel vrfコマンドの設定例
- [演習] ルーティングループの防止
- [演習] 企業ネットワーク構築演習 Part1:拠点1の構築
- [演習] 企業ネットワーク構築演習 Part2:拠点2/拠点3の構築
- [演習] 企業ネットワーク構築演習 Part3:広域イーサネットの接続
- [演習] 企業ネットワーク構築演習 Part4:インターネット(AS1/AS2)の構築
- [演習] 企業ネットワーク構築演習 Part5:インターネットへの接続
- [演習] 企業ネットワーク構築演習 Part6:インターネットVPNの構築