Cisco インターフェイスとモジュール : Cisco サービス モジュール

dispatched モードで HTTP プローブを使用する IOS サーバ ロード バランシングの設定

2006 年 2 月 10 日 - ライター翻訳版
その他のバージョン: PDFpdf | 機械翻訳版 (2013 年 8 月 21 日) | 英語版 (2006 年 2 月 10 日) | フィードバック

目次


概要

Cisco IOS(R) の Server Load Balancing(SLB; サーバ ロード バランシング)機能は、サーバのロード バランシングを実現する Cisco IOS ベースのソリューションです。 この機能では、(サーバ ファームと呼ばれる)実サーバのクラスタを表す仮想サーバを定義できます。 クライアントが仮想サーバへの接続を開始すると、IOS SLB は、設定されたロード バランス アルゴリズムまたはプレディクタに基づいて、いずれかの実サーバに接続を振り分けます。

IOS SLB は、次の 2 つのモードで動作するように設定できます。

  • dispatched モード - このモードでは、仮想サーバのアドレスが実サーバで認識されています。 それぞれの実サーバに、固有のループバック インターフェイスのループバック アドレスを設定する必要があります。 これは、サーバ ファーム内の各マシンに実際の仮想サーバと同じ IP アドレスを付与するために必要な設定です。 宛先の実サーバは、ループバック アドレスを使用して、あたかも自身の IP アドレスに対応するように、クライアントに直接応答することができます。 IOS SLB は、Media Access Control(MAC; メディア アクセス制御)レイヤでレイヤ 2 の実サーバにパケットをリダイレクトします。 dispatched モードでは仮想サーバの IP アドレスが変更されないため、実サーバはレイヤ 2 において IOS SLB に隣接している必要があります。そうでないと、仲介ルータが特定の実サーバにパケットをルーティングできなくなります。
  • directed モード - このモードでは、実サーバで認識されていない IP アドレスに仮想サーバを割り当てることができます。 IOS SLB はクライアントと実サーバの間で交換されるパケットに変更を加え、Network Address Translation(NAT; ネットワーク アドレス変換)を使用して仮想サーバの IP アドレスを実サーバのアドレスに変換します。 directed モードを使用するには、サーバ ファームに nat server コマンドを追加します。

ハードウェアおよびソフトウェアのバージョン

この設定は、次のソフトウェアおよびハードウェアバージョンの組み合わせで検証しております。

  • MSFC1 を搭載するスーパーバイザ エンジン 1 用の Catalyst 6000 ファミリ スーパーバイザ IOS リリース 12.1(6)E(c6sup11-jsv-mz.121-6.E1)
  • Microsoft Windows 2000/IIS Web サーバ

HTTP プローブ

IOS SLB は、Hypertext Transfer Protocol(HTTP; ハイパーテキスト転送プロトコル)プローブ、ping プローブ、および Wireless Session Protocol(WSP)プローブをサポートしています。 HTTP プローブを使用すると、接続性を検証したり、ロード バランスの対象になっている実サーバを監視できます。 プローブはサーバ ファームに含まれるそれぞれの実サーバの状態を判定します。 この例では、TCP ポート 80 を使用して HTTP プローブが設定されています。HTTP プローブは 8 秒おきに接続して method get コマンドを要求し、サーバからの応答コード 200 を検出するよう設定されています。 これらの設定はすべてデフォルト値です。

ネットワーク ダイアグラム

次の図は、dispatched モードに設定された IOS SLB を示しています。

ios_slb-01.gif

ネットワーク構成
※ 画像をクリックすると、大きく表示されます。

設定例

Catalyst 6509 を使用した IOS SLB の設定
 Current configuration:
 
 version 12.1
 
 service timestamps debug uptime
 
 service timestamps log uptime
 
 no service password-encryption
 
 !
 
 hostname cat6
 
 !
 
 boot buffersize 126968
 
 boot system flash slot0:c6sup11-jsv-mz.121-6.E1.bin
 
 !
 
 redundancy
 
  main-cpu
 
   auto-sync standard
 
 ip subnet-zero
 
 !
 
 no ip finger
 
 no ip domain-lookup
 
 !
 
 ip slb probe KEEPALIVE http
 
 !
 
 ip slb serverfarm SERVERS
 
  probe KEEPALIVE
 
  !
 
  real 10.1.1.3
 
   inservice
 
  !
 
  real 10.1.1.5
 
   inservice
 
 !
 
 ip slb vserver WEBSITE
 
  virtual 172.17.63.215 tcp www
 
  serverfarm SERVERS
 
  inservice
 
 !
 
 cns event-service server
 
 !
 
 interface GigabitEthernet1/1
 
  no ip address
 
  shutdown
 
 !
 
 interface GigabitEthernet1/2
 
  no ip address
 
  shutdown
 
 !
 
 interface FastEthernet2/1
 
  no ip address
 
  switchport
 
  switchport access vlan 100
 
  switchport mode access
 
 !
 
 interface FastEthernet2/2
 
  no ip address
 
  shutdown
 
 !
 
 interface FastEthernet2/3
 
  no ip address
 
  switchport
 
  switchport access vlan 200
 
  switchport mode access
 
 !
 
 interface FastEthernet2/4
 
  no ip address
 
  switchport
 
  switchport access vlan 200
 
  switchport mode access
 
 !
 
 interface FastEthernet2/5
 
  no ip address
 
  shutdown
 
 !
 
 interface FastEthernet2/48
 
  no ip address
 
  shutdown
 
 !         
 
 interface Vlan1
 
  no ip address
 
  shutdown
 
 !
 
 interface Vlan100
 
  ip address 172.17.63.211 255.255.255.192
 
 !
 
 interface Vlan200
 
  ip address 10.1.1.250 255.255.255.0
 
 !
 
 ip default-gateway 172.17.63.193
 
 ip classless
 
 ip route 0.0.0.0 0.0.0.0 172.17.63.193
 
 no ip http server
 
 !
 
 line con 0
 
  transport input none
 
 line vty 0 4
 
  password cisco
 
  login
 
 !
 
 end
 

show コマンドおよびコマンドの概要

show ip slb mode コマンド

show ip slb mode コマンドを実行すると、SLB モードの状態が表示されます。

 cat6#show ip slb mode 
      SLB forwarding mode = rp (default) 
      SLB configured mode = rp (default) 
 

Cisco IOS SLB ソフトウェアを実行するには、show ip slb mode [csm | rp] コマンドを使用してモードを設定してから、その他の設定を行う必要があります。 show ip slb mode コマンドでは、rp 引数がデフォルトです。 csm 引数は、Content Switching Module(CSM; コンテント スイッチング モジュール)を使用する場合にのみ設定できます。 CSM は、ネットワーク デバイスのサーバ ファーム間で、レイヤ 4 〜 7 の情報パケットに基づく高速接続を実現します。 実サーバのグループ(サーバ ファーム)を単一のサーバ インスタンス(仮想サーバ)として表したり、サーバ ファームへのトラフィックをいずれかの実サーバに振り分けたり(サーバ ロード バランシング)、個々のサーバへのトラフィック(スティッキ接続)やサーバ ファームへのトラフィック(ポリシー)を制限できます。 詳細については、『CSM でのセキュア(ルータ)モードの設定』を参照してください。

show ip slb vserver コマンド

show ip slb vserver コマンドを実行すると、仮想サーバに関する情報が表示されます。 次の出力例には、仮想サーバの状態と現在の接続数も表示されています。

 cat6#show ip slb vserver 
 
 slb vserver      protocol      virtual              state      conns 
 ------------------------------------------------------------------------ 
 WEBSITE         TCP       172.16.63.215/32:80      OPERATIONAL   0 
 

show ip slb reals コマンド

show ip slb reals コマンドを実行すると、各サーバが所属するサーバ ファーム、サーバの状態、しきい値、接続など、各実サーバに関する情報が表示されます。

 cat6#show ip slb reals 
 
 real             server farm      weight     state        conns 
 ------------------------------------------------------------------- 
 10.1.1.5         SERVERS           8        OPERATIONAL     0 
 10.1.1.3         SERVERS           8        OPERATIONAL     0 
 

show ip slb serverfarms コマンド

show ip slb serverfarms コマンドを実行すると、サーバ ファームに関する情報が表示されます。 このコマンドではロード バランシングに使用されるプレディクタが表示されます。 この例では、デフォルトのラウンド ロビンが使用されています。 このデバイスは dispatched モードに設定されているため、NAT の下に「none」と表示されています。

 cat6#show ip slb serverfarm 
 
 server farm      predictor    nat        reals    redirect    bind id 
 -------------------------------------------------------------------------- 
 SERVERS       roundrobin     none         2          0             0 
 

show ip slb conns コマンド

show ip slb conns [vserver virtual_server-name | client ip-address | firewall firewallfarm-name] [detail] コマンドを実行すると、現在アクティブな接続が表示されます。

  • vserver - 特定の仮想サーバの接続のみを表示します。
  • virtualserver-name - 仮想サーバの名前。
  • client - 特定のクライアント IP アドレスの接続を表示します。
  • ip-address - クライアントの IP アドレス。
  • detail - 詳細な接続情報を表示します。

オプションを指定しないで show ip slb conns コマンドを実行すると、現在アクティブなすべての IOS SLB 接続に関する出力が表示されます。

 cat6#show ip slb conns 
 
 vserver         prot    client             real                state            nat 
 ----------------------------------------------------------------------- --------------- 
 WEBSITE         TCP  10.21.188.123:2187    10.1.1.5            ESTAB            none 
 WEBSITE         TCP  10.21.188.123:2190    10.1.1.5            CLOSING          none 
 WEBSITE         TCP  10.21.188.123:2192    10.1.1.3            ESTAB            none 
 WEBSITE         TCP  10.21.188.123:2197    10.1.1.3            CLOSING          none 
 WEBSITE         TCP  10.21.188.123:2200    10.1.1.5            SYNCLIENT        none 
 WEBSITE         TCP  10.21.188.123:2201    10.1.1.5            SYNCLIENT        none 
 
 cat6#show ip slb conns detail 
 
 WEBSITE, client = 10.21.188.123:2187 state = ESTAB, real = 10.1.1.5, 
 nat = none  v_ip = 172.17.63.215:80, TCP, service = NONE 
   client_syns = 1, sticky = FALSE, flows attached = 0 
 WEBSITE, client = 10.21.188.123:2205 state = CLOSING, real = 10.1.1.5, 
 nat = none v_ip = 172.17.63.215:80, TCP, service = NONE 
   client_syns = 3, sticky = FALSE, flows attached = 0 
 WEBSITE, client = 10.21.188.123:2206 state = ESTAB, real = 10.1.1.5, 
 nat = none v_ip = 172.17.63.215:80, TCP, service = NONE 
   client_syns = 2, sticky = FALSE, flows attached = 0 
 

show ip slb probe コマンド

show ip slb probe コマンドを実行すると、IOS SLB に関する情報が表示されます。

プローブには次の 3 つの動作状態があります。

  • FAILED - 現在、プローブに失敗しています。
  • OPERATIONAL - プローブは正常に機能しています。
  • TESTING - 応答がないため、プローブに一度も成功していません。 IOS SLB には、この状態に関するカウンタやタイマーはありません。
これ以外にも、次のような情報が表示されます。
  • Outages - 成功するまでに実行されたプローブの回数
  • Current - 最後にプローブが成功してからの時間。 つまり、現在の停止時間。
  • Cumulative - 実サーバがプローブ テストの状態になり、障害が発生している時間の合計。 この値は、Current の時間に、これまでのすべての Outages 時間を加算した値になります。
     cat6#show ip slb probe 
     
     Server:Port             State        Outages    Current    Cumulative 
     ----------------------------------------------------------------------- 
     10.1.1.3:80             OPERATIONAL    1        never         00:05:22 
     10.1.1.5:80             OPERATIONAL    0        never         00:00:00 
     

dispatched モード ループバック

Catalyst 6500 で SLB 機能を設定した後は、各実サーバにループバック デバイスまたはループバック インターフェイスを設定する必要があります。 仮想サーバの IP アドレスをループバック IP アドレスとして設定します。ネットマスクは 255.0.0.0 です。
 Route Table 
 ======================================================================= ==== 
 Interface List 
 0x1 ........................... MS TCP Loopback interface 
 0x2 ...00 60 b0 87 dc 1a ...... AMD PCNET Family Ethernet Adapter 
 0x1000004 ...02 00 4c 4f 4f 50 ...... MS LoopBack Driver 
 ======================================================================= ==== 
 Active Routes: 
 Network         Destination         Netmask         Gateway     Interface   Metric 
 0.0.0.0         0.0.0.0             10.1.1.250      10.1.1.3        1 
 10.1.1.0        255.255.255.0       10.1.1.3        10.1.1.3        1 
 10.1.1.3        255.255.255.255     127.0.0.1       127.0.0.1       1 
 10.255.255.255  255.255.255.255     10.1.1.3        10.1.1.3        1 
 127.0.0.0       255.0.0.0           127.0.0.1       127.0.0.1       1 
 172.17.63.215   255.255.255.255     127.0.0.1       127.0.0.1       1 
 224.0.0.0       224.0.0.0           10.1.1.3        10.1.1.3        1 
 224.0.0.0       224.0.0.0           172.17.63.215   172.17.63.215   1 
 255.255.255.255 255.255.255.255     10.1.1.3        10.1.1.3        1 
 ======================================================================= ==== 
 

テーブルの各行のネットワーク アドレスを調べると、ループバック アドレスがわかります。 サーバを適切に通信させるには、一般的なマルチキャスト ネットワーク アドレスを参照する必要があります。 この例では、8 行目にこのアドレスがあります。そのため、余分なデフォルト ルートを削除する必要があります。 これは、ネットワーク アドレスの最初の数字がクラスタ アドレスと同じで、その後にゼロが 3 つ続いているルートです。 この例では、2 行目に余分なルートがあります。

一般的なマルチキャスト ネットワーク アドレスとは、次のアドレスです。

 224.0.0.0      224.0.0.0    172.17.63.215      172.17.63.215       1 
 

自動的にインストールされ、上のテーブルから削除されるデフォルト ルートは、次のルートです。

 0.0.0.0          0.0.0.0    172.17.63.193   172.17.63.215       1 
 

SLB 仮想サーバと正しく通信するには、余分なルートを削除する必要があります。


関連するシスコ サポート コミュニティ ディスカッション

シスコ サポート コミュニティは、どなたでも投稿や回答ができる情報交換スペースです。


関連情報