#amazon(4873110653)
#amazon(4797368535)
#contents
#br
#adsense(728x90)
#br



* 概要 [#s260af0c]

- Virtual Server へのアクセスを、Pool Member にバランシングする
- Virtual Server の IP アドレスは、必ずしも BIG-IP の直接接続セグメントである必要はない
- Pool Member も BIG-IP の直接接続セグメントにいる必要はない


** コンフィグ構造 [#d9435ccd]

&ref(images/bigip-config.png,around,nolink);
* 仮想サーバ [#pe571ff5]
** 設定 [#oe7991d2]

#pre(soft){{
[root@bigip:Active] config # bigpipe virtual '''server-name''' '{
   destination '''ip-addr''':'''port'''
   pool '''pool-name'''
   ip protocol tcp
   profile '''profile-name'''
   persist '''persist-name'''
   rule '''rule-name'''
}'
}}
-- '''ip-addr''':'''port'''
--- Virtual Server の IP アドレス、ポート番号 (必須)
-- '''pool-name'''
--- 使用するプール名 (必須)
-- '''profile-name'''
--- 適用する プロファイル名
-- '''persist-name'''
--- 適用する パーシステンス プロファイル名
-- '''rule-name'''
--- 適用する iRule 名
** 確認 [#odafc244]

* プールとバランシング方式 [#ade3e68b]
** 概要 [#ra82a5f4]

- Static
-- Round robin
--- 均等にバランシングする
-- Ratio
--- サーバ性能に合わせて、バランシングの比率を調整する
- Dynamic
-- Least connections
--- 現在のコネクション数が一番少ないものに、転送される
--- ノードを追加した場合、トラフィックが集中する可能性があるので注意
-- Fastest (v9.4~)
--- レスポンスタイムが一番早いものに優先的にバランシングする
-- Observed (v9.4~)
--- コネクションとレスポンスタイムの組み合わせだが、Fastest 同様 Least connectionsになる
-- Predictive (v9.4~)
- 障害時
-- Priority group activation
--- ノードをグルーピングし、Priority をつける
** 設定 [#y9963525]

*** プールの作成 [#s6758c3f]

#pre(soft){{
[root@bigip:Active] / # bigpipe pool '''pool-name''' {
      lb method '''method'''
      persist_mode '''mode'''
      min active members 2
      member '''ip-addr''':'''port''' [ratio '''ratio'''] [priority '''priority''']
      member '''ip-addr''':'''port''' [ratio '''ratio'''] [priority '''priority''']
}
}}
-- '''method'''
--- バランシング モードの指定
--- rr、ratio、priority...
-- '''mode'''
--- パーシステンス モードの設定
--- cookie、simple、ssl、sticky
-- '''ip-addr''':'''port'''
--- Pool Member の IP アドレス、ポート番号
-- '''ratio'''
--- Pool Member ごとの比率
--- バランシング モードが ratio の場合に設定
-- '''priority'''
--- Pool Member ごとの優先度
--- 設定すると Priority group activation が有効になる

#pre(soft){{
[root@bigip:Active] / # bigpipe pool '''pool-name''' {          \
      lb method member ratio                              \
      min active members 2
      member 172.16.20.1:80 ratio 4 priority 2
      member 172.16.20.2:80 ratio 2 priority 2
      member 172.16.20.3:80 }
}}
*** プール メンバーの追加 [#pd901d07]

#pre(soft){{
[root@bigip:Active] / # bigpipe pool '''pool-name''' add { '''ip-addr''':'''port''' ['''option'''] }
}}

*** プール メンバーの削除 [#tf92d301]

#pre(soft){{
[root@bigip:Active] / # bigpipe pool '''pool-name''' delete { '''ip-addr''':'''port''' ['''option'''] }
}}


*** 比率の変更 [#y7d0f90d]

#pre(soft){{
[root@bigip:Active] / # bigpipe ratio '''ip-addr''' ['''ip-addr'''...] '''ratio'''
}}
** 操作 [#ue2dd92f]

*** プール メンバーの切り離し [#b8f70bd5]

- A
#pre(soft){{
[root@bigip:Active] / # bigpipe pool '''pool-name''' member '''ip-addr:port''' session disable
}}
- B
#pre(soft){{
[root@bigip:Active] / # bigpipe pool '''pool-name''' member '''ip-addr:port''' down
}}
*** プール メンバーの戻し [#nafdcfd7]

#pre(soft){{
[root@bigip:Active] / # bigpipe pool '''pool-name''' member '''ip-addr''':'''port''' up session enable
}}


** 確認 [#ecfd73a5]
*** 設定情報を出力 [#g79b57ef]
#pre(soft){{
[root@bigip:Active] / # bigpipe pool ['''pool-name'''] list
pool '''pool-name''' {
   monitor http
   member 192.160.0.32:80
   member 192.160.0.33:80
   member 192.160.0.34:80
}
}}


* モニタ [#ae5abcf7]
** 概要 [#p8621934]

- プール メンバーに対しヘルスチェックを行い、異常なサーバをバランシング対象から外す機能
- 複数のプールでプール メンバーが重複している場合、ヘルスチェックは 1 度しか行われない
*** アドレス チェック (L3) [#gc822493]

- IP アドレスのみのチェック
- Ping でチェック
- ICMP などで利用

*** サービス チェック (L4) [#f84670cf]

- IP アドレス、ポート番号をチェック (TCP のみ)
- 3 Way Handshake によるオープン、クローズでチェック

*** コンテンツ チェック (L7) [#ca99ff52]

- レスポンスの内容をチェック
- リクエストををして、特定の文字列が含まれているかチェック
- HTTP などで利用

*** インタラクティブ チェック (L7+α) [#yfd337f9]

- 双方向の通信でチェック
- FTP、SQL などで利用




** 設定 [#fc77c607]

*** モニタの作成 [#p4a489f4]

#pre(soft){{
[root@bigip:Active] / # bigpipe monitor '''monitor-name''' '{
        defaults from '''tepmlate-name'''
        [interval '''interval-time''']
        [timeout '''timeout-time''']
        [dest '''ip-addr:port''']
        [send \"(GET|POST) '''path'''\"
        recv \"'''receive-text'''\"]
}'
}}
-- '''monitor-name'''
--- 任意の名前
-- '''tepmlate-name'''
--- 標準テンプレートの名前
--- icmp … アドレス チェック
--- tcp … サービス チェック
--- http … コンテンツ チェック
--- ftp … インタラクティブ チェック
-- '''interval-time'''
--- チェックする間隔
-- '''timeout-time'''
--- タイムアウト値
--- 3 * '''interval-time''' + 1 を推奨 (Interval が 5 秒なら、16 秒)
-- '''ip-addr:port'''
--- チェックする対象
-- '''path'''
--- GET、POST するパス
-- '''receive-text'''
--- GET、POST に対する期待値
--- この文字列が帰ってこない場合は、ダウンとみなされる


ex) L7 レベルのチェック (HTTP のコンテンツ)
#pre(soft){{
[root@bigip:Active] / # bigpipe monitor http_mon '{
        defaults from http
        interval 5
        timeout 16
        dest *:80
        send \"GET /\"
        recv \"Server\"
}'
}}

ex) L3 レベルのチェック (Ping の応答)
#pre(soft){{
[root@bigip:Active] / # bigpipe monitor icmp_mon '{
        defaults from icmp
        interval 15
        timeout 46
}'
}}
*** モニタの関連付け [#n606880f]

- プールへの関連付け
#pre(soft){{
[root@bigip:Active] / # bigpipe pool '''pool-name''' '{
   monitor all '''monitor-name'''
}'
}}

- ノードへの関連付け
#pre(soft){{
[root@bigip:Active] / # bigpipe pool '''pool-name''' '{
   member '''ip-addr:port''' monitor '''monitor-name'''
}'
}}

- あ
#pre(soft){{
[root@bigip:Active] / # bigpipe node all '{
   monitor icmp_mon
}'
}}


ex) プールへの関連付け
#pre(soft){{
[root@bigip:Active] / # bigpipe pool http_pool '{
   monitor all http_mon
}'
}}

ex) ノードへの関連付け
#pre(soft){{
[root@bigip:Active] / # bigpipe pool https_pool '{
   member 172.16.20.1:443 monitor https_mon
}'
}}

ex) 
#pre(soft){{
[root@bigip:Active] / # bigpipe node all '{
   monitor icmp_mon
'}
}}
* ノード [#x7f63f24]
** 概要 [#v83b8c62]

- 必須の設定ではない
- ノード セクションがなくても、ノード単位の切り離しなどは可能 (session disable、down の場合は自動でノード セクションが作られる)
** 設定 [#n715b143]

#pre(soft){{
[root@bigip:Active] / # bigpipe node '''ip-addr''' {
   screen '''screen-name'''
}
}}
-- '''screen-name'''
--- 表示名
--- ホスト名などをつける
** 操作 [#x6381219]

*** ノードの切り離し [#x16287b3]

- ノードを切り離せば、プール メンバーからも切り離される



- A
#pre(soft){{
[root@bigip:Active] / # bigpipe node '''screen-name''' session disable
}}
- B
#pre(soft){{
[root@bigip:Active] / # bigpipe node '''screen-name''' down
}}
*** ノードの戻し [#s90c2b51]

#pre(soft){{
[root@bigip:Active] / # bigpipe node '''screen-name''' up session enable
}}
** 確認 [#e960aac5]

*** ステータスの出力 [#m5f0e74a]

#pre(soft){{
[root@bigip:Active] / # bigpipe node '''screen-name''' show
NODE 192.168.0.32     UP   SESSIONS ENABLED
|        conns (cur, max, limit, tot) = (0, 100, 0, 46.95M)
|        (pkts,bits) in = (320.5M, 630.0G), out = (375.1M, 1.858T)
|        requests (total) = 46.95M
}}

*** 設定情報の出力 [#afcf0a8f]

#pre(soft){{
[root@bigip:Active] / # bigpipe node '''screen-name''' list
node 192.168.0.32 {
   screen web01
}
node 192.168.0.33 {
   screen web02
}
node 192.168.0.34 {
   screen web03
}
}}



* プロファイル [#w5a11ba3]

- トラフィックの処理方法を定義したもの
- デフォルトのプロファイルは /config/profile_base.conf に保存されている

- サービス プロファイル
-- HTTP
-- FTP
- パーシステンス プロファイル
-- パーシステンス
- プロトコル プロファイル
-- Fast L4
-- TCP
-- UDP
-- OneConnect
-- Stream
- SSL プロファイル
-- クライアント SSL
-- サーバ SSL
- 認証プロファイル
-- 認証
* パーシステンス プロファイル [#z60c86b9]
** 説明 [#t7477be1]

- クライアント、サーバに持続的な関係を持たせる機能
- 通常、クライアントからのリクエストは複数のサーバにバランシングされるが、この機能を使うことでクライアント、サーバ間の組み合わせを固定することが出来る

- ソース IP アドレス パーシステンス
-- ソース IP アドレスに基づき、組み合わせを固定
-- 全てのプロトコルで使用可能
- Cookie パーシステンス
-- Cookie 情報に基づき、組み合わせを固定
-- HTTP プロファイルが必須
-- SSL の場合、そのままでは Cookie が見えないため、クライアント SSL プロファイルが必須
-- Insert mode (デフォルト)
-- Rewrite mode
-- Passive mode
-- Hash mode
- SSL セッション ID パーシステンス
** 設定 [#e880dcbd]


#pre(soft){{
[root@bigip:Active] config # bigpipe profile persist src_addr_persist {
        defaults from source_addr
        mode source addr
        mask 255.255.255.255
        timeout 20
}
}}

#pre(soft){{
[root@bigip:Active] config # bigpipe virtual vs_http {
        persist src_addr_persist
}
}}
* サービス プロファイル (HTTP) [#f3525d59]
** 説明 [#r2848c3a]

-- Fallback host
--- ノードがすべてダウンした場合、代替サーバに転送する
** 設定 [#sd291ebd]

#pre(soft){{
profile http '''name''' {
   defaults from http
   fallback "http://'''sorry-url'''"
}
}}
* クライアント SSL プロファイル [#v3fe223b]

** 説明 [#h28f0d0f]

- クライアント → BIG-IP 間は暗号化、BIP-IP → サーバ間は復号化




** 設定 [#xeef19e8]

#pre(soft){{
profile clientssl '''profile-name''' {
   defaults from clientssl
   key "'''key-filename'''"
   cert "'''cert-filename'''"
   ca file "'''ca-filename'''"
}
}}
-- "'''key-filename'''"
--- 秘密鍵のファイル名
-- "'''cert-filename'''"
--- サーバ証明書のファイル名
-- "'''ca-filename'''"
--- 中間証明書のファイル名
* iRule [#e268f306]
** 説明 [#t7324f54]

- レイヤ 7 の内容に基づくバランシング


** 設定 [#o141d7e2]

ex) URI に txt を含むものは、rule_pool に、それ以外は http_pool にバランシングする
+ ルールの作成
#pre(soft){{
[root@bigip:Active] config # bigpipe rule text_rule {
        when HTTP_REQUEST {
                if {[HTTP::uri] contains \"txt\"} {
                        pool rule_pool
                }
                else {
                        pool http_pool
                }
        }
}
}}
+ ルールの関連付け
#pre(soft){{
[root@bigip:Active] config # bigpipe virtual vs_text {
        profile http
        rule text_rule
}
}}


* その他 [#jbe5f095]

** ステータス [#b80b8e63]

#pre(soft){{
[root@bigip:Active] config # bigtop
                     |  bits  since       |  bits  in prior    |  current
                     |  MMM DD HH:MM:SS   |  5 seconds         |  time
BIG-IP      ACTIVE   |---In----Out---Conn-|---In----Out---Conn-|  HH:MM:SS
bigip                 372.5G 1.356T 125.6M  94424  64568     19

VIRTUAL ip:port      |---In----Out---Conn-|---In----Out---Conn-|-Nodes Up--
10.0.0.32:http        1.575G 47.59G  23307  21072  13616      1      3
10.0.0.32:https       7.325G 21.14G 578740      0      0      0      3

NODE ip:port         |---In----Out---Conn-|---In----Out---Conn-|--State----
192.168.0.32:http     1.575G 47.59G  23244  21072  13616     20 UP
192.168.0.33:http     7.374G 21.63G 580135      0      0      0 DOWN
192.168.0.34:http     280.7M 11.89G    741  21129  12098     23 UP
192.168.0.34:https    3.195G 7.839G  63973      0      0      0 UNCHECKED
192.168.0.34:https    311.0M 1.296G  25066      0      0      0 UNCHECKED
192.168.0.34:https    390.8M 752.1M  23582      0      0      0 UNCHECKED
}}



#br
#adsense(728x90)
#br

トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS