2010年09月18日

仮想OS・仮想ネットワークを使用してwebサーバー等を作成する方法

テーマ:BIG-IP

仮想OS・仮想ネットワークを使用してwebサーバー等を作成する方法




以下の構成を作成します。使用PCは1台です。
ほのかなブログ
ほのかなブログ


設定は以下です。


■■■BHR-4RV
・以前の記事のDDNS設定を引き継ぎます。

 http://ameblo.jp/tred2/entry-10645574735.html
・192.168.0.1から172.16.0.1へ変更。
・ポートフォワード設定。WAN側IP:80をCisco7200の172.16.0.3:80へ。
(同一LAN内以外へは設定不可なのでBIG-IPのVirtualServerの10.0.0.100:80へのポートフォワードは無理。)


■■■PC
・以前の記事の設定を引き継ぎます。

 http://ameblo.jp/tred2/entry-10647874941.html
・IISにてwebサイト3個有り。
・「ローカルエリア接続」のIPアドレスを消去し、無効に。

・「ローカルエリア接続3」を有効にし、IPアドレス 172.16.0.2 + デフォルトゲートウェイ 172.16.0.1へ設定。

・Microsoft Loopback Adapterのインストールと設定

※192.168.0.0/24でVMWare上でブリッジ接続設定を行っているもの(BIG-IP VEのinternal側と、apacheを起動しているCentOS)や、自PCでIISを起動しているため、Microsoft Loopback Adapterを使用します。


----------------------------------------------------------------------------

WindowsXPでのMicrosoft Loopback Adapterのインストール方法は

コントロールパネルの「プリンタとその他のハードウェア」 - 左側ウィンドウの「関連項目」下の「ハードウェアの追加」 - 「次へ」 - 「はい、ハードウェアを接続しています」 - 「次へ」 - 「新しいハードウェア デバイスの追加」から。


Windows7でのMicrosoft Loopback Adapterのインストール方法は

デバイスマネージャの「操作」 - 「レガシーハードウェアの追加」から。
ほのかなブログ

----------------------------------------------------------------------------


Microsoft Loopback Adapterのインストールが完了した後、

IPアドレスを割り当てます。

192.168.0.2

192.168.0.101 (IIS101用)

192.168.0.102 (IIS102用)

192.168.0.103 (IIS103用)


その後IISの再起動を行ないます。

BIG-IP VEのARPテーブルが自動で更新されてからは疎通可能になります。


※最悪、Microsoft Loopback Adapterをインストールせずに上記の4つのアドレスを

 ローカルエリア接続3 (IPアドレス 172.16.0.2を与えてるもの)に追加しても通信自体は可能です。

 通常は実施しません。且つ172.16.0.0/16と192.168.0.0/24のトラフィックが混ざってしまいます。


■■■GNS3 (Cisco7200)
・以前の記事の設定を引き継ぎます。

 http://ameblo.jp/tred2/entry-10659430577.html
・現実のネットワークへ接続する。方法は上記リンクを参照下さい。
 fa0/0をローカルエリア接続3へ、fa0/1をVMware Network Adapter VMnet1(BIG-IPのexternal)へ。
・インターフェースとデフォルトゲートウェイの設定。インターフェースfa0/0 fa0/1は各々の
 現実のネットワークと同一LANへ。
 R1(config)#ip route 0.0.0.0 0.0.0.0 172.16.0.1
・スタティックPAT設定(BHR-4RVからポートフォワードされてきたものを再度BIG-IPのVirtualServerの10.0.0.100:80へ転送)
 Static Port Address Translationとも言われています。
 PATはオーバーロードとも言われています。
 R1(config)#ip nat inside source static tcp 10.0.0.100 80 172.16.0.3 80 extendable
 R1(config)#int fa0/1
 R1(config-if)#ip nat inside
 R1(config-if)#int fa0/0
 R1(config-if)#ip nat outside
 http://www.cisco.com/JP/support/public/ht/tac/102/1022277/827spat-j.shtml


※以前のBIG-IPの設定で、externalをホストオンリーでは無くブリッジに、
 internalをブリッジでは無くホストオンリーに設定していればCisco7200は必要無し。

※以下の構成になりました。
ほのかなブログ


●GNSを起動しているPCとGNS3上のCisco7200間のping疎通ができない時

(Cisco7200からローカルエリア接続3のping送信時のパケットで、header checksumにエラーが出る時)は

デバイスマネージャからGNSのnetファイルで関連付けたNICの詳細設定を開き

「IPv4チェックサムオフロード」の値を

「受信と伝送有効」から「無効」へ変更し再起動すると改善されます。


httpアクセスした際WEBサーバーからレスポンスが遅い時は、

デバイスマネージャから(GNSのnetファイルで関連付けた)NICの詳細設定を開き

「TCPチェックサムオフロード(IPv4)」の値を

「受信と伝送有効」から「無効」へ変更し再起動すると改善されます。


※再起動を行わないと設定が反映されません。


※今回の事象には関係無いですが、ついでに「UDPチェックサムオフロード(IPv4)」も

「受信と伝送有効」から「無効」へ変更しておきました。



■■■BIG-IP VE(VMWare)
・以前の記事の設定を引き継ぎます。

 http://ameblo.jp/tred2/entry-10647874941.html
・パケットの帰りは、スタティックPAT後のCisco7200のアドレス宛やし
 デフォルトゲートウェイは必要ないね。
・もう1つpoolを作成する。pool memberはVMWare(ゲストOS:CentOS5.2) のみ。
・HTTP_REQUESTの中を見るiRuleを作成するため、前もってVirtual ServerのHTTP Profile項へ
 HTTPのデフォルトプロファイル、「http」を入れておく。
・iRuleで、user_agent(機種)にdocomo(tolower関数使用のため大文字、小文字は問わない)との

 文字列が有る場合のみ、もう1つのpoolへ振り分ける。

 未確認ですが、他携帯ブラウザのユーザーエージェントも指定する場合は、or を使用し

 "up.browser"、"j-phone"、"vodafone"、"softbank"などを記載すれば良いかと思います。



 ※今回は設定しませんが、set ::use_nullgwdocomo 1にすると識別情報レベルでの判別が可能とのことです。
--------------------------------------------------------------------------
when HTTP_REQUEST {
if { [string tolower [HTTP::header User-Agent]] contains "docomo" } {
pool mobile_pool
}
else {
pool http_pool
}
}
--------------------------------------------------------------------------

ほのかなブログ



■■■CentOS(VMWare)
・ネットワーク設定を「ブリッジ」に。
・eth0にIP割り当て。192.168.0.104。
・apache起動のため「httpd on」と、index.htmlの作成。

・iptablesの編集。



AD
2010年09月18日

BIG-IP LTM 仮想版 トライアル の設定方法

テーマ:BIG-IP

BIG-IP LTM 仮想版 トライアル の設定方法



BIG-IP LTM仮想版(BIG-IP Local Traffic Manager Virtual Edition) トライアルのダウンロード

http://www.f5networks.co.jp/product/bigip/ve/trial.html


BIG-IP LTM トレーニングログイン
http://www.f5.com/training-support/global-training/web-based-training/


仮想アプライアンス BIG-IP Local Traffic Manager Virtual EditionのPDF資料ダウンロード

※サイトへの登録が必要です。
http://www.keyman.or.jp/3w/prd/18/10015818/


仮想アプライアンス BIG-IP Local Traffic Manager Virtual Editionの紹介
http://www.youtube.com/watch?v=cIH-LreCUeo


BIG-IPコマンド一覧
http://www.routerzone.eu/wiki/index.php/Category:F5_BigIP_Commands


BIG-IP V9の設定手順

http://www.docstoc.com/docs/47489702/WebOTX-SIP-Application-Server-BIG-IP-Local-Traffic-Manager----rossir24-0005


ホストOSは

Windows7 x64


仮想化ソフトは

VMWarePlayer 3.0.1 build-227600


ゲストOSは

BIGIP-10.1.0.3341.1084
という環境で作成しています。



まず一旦負荷分散対象のwebサーバー3台に見立てたものをホストOSで作成します。

ホストOSのIPアドレスは192.168.0.2です。

ホストOSのIPアドレスに
「192.168.0.101」
「192.168.0.102」
「192.168.0.103」を追加します。

主にLinuxでは1つのNICに複数のIPを指定することをIPエイリアスと呼んでいるそうです。
ほのかなブログ


ファイアウォールで「World Wide Web サービス (HTTP)」を許可します。


IISをインストールします。
ほのかなブログ

IISを設定します。

※IIS7です。


「Webサイトの追加」から3個のwebサイトを作成します。

「192.168.0.101」
「192.168.0.102」
「192.168.0.103」


※WindowsXPのIIS6では単一のサイトしか持てなかったかもしれません。

WindowsServer2003のIIS6では複数サイトの作成をできたかもしれません。

詳細は忘れました。


※ホストOSがWindowsXPならばApacheをインストールすれば充足するかもしれません。

関連記事2つを紹介しておきます。


--------------------------------------------------------------------

※どちらの記事もCentOS上のApacheの設定です。


・VMWarePlayer上へのCentOS5.5のインストールと設定方法

http://ameblo.jp/tred2/entry-10668226077.html

・複数のIPアドレスを持ち、それぞれ別のホームページを見せる方法

http://ameblo.jp/tred2/entry-10688841364.html

--------------------------------------------------------------------



ほのかなブログ

今回はサーバーのHTTP Keep-Aliveを無効にしたいため
(BIG-IPの負荷分散処理に関して、サーバーのHTTP Keep-Aliveの影響を
受けたくないため)以下の操作を行ないます。


ホームのメニューから「HTTP応答ヘッダー」アイコンをクリックします。


※今回は設定しないですがCookie Parsistentにおいてサーバー側で
 Cookie Insertさせる場合もここで設定するのだと思います。


右ウィンドゥ(操作ウィンドゥ)から「共通ヘッダーの設定...」をクリックします。


「HTTP Keep-Aliveを有効にする」チェックボックスのチェックを外して「OK」ボタンを押します。


※今回は設定しないですが接続のタイムアウト(Connecton Timeout)秒や
 最大同時接続数、最大帯域幅などは
 右ウィンドゥ(接続ウィンドゥ)の「サイト」アイコンをクリックしてから
 右ウィンドゥ(操作ウィンドゥ)から「Webサイトの規定値の設定...」をクリックします。
 「Webサイトの規定値」画面の「接続制限」項目から設定します。


「コンピューターの管理」画面から以下のサービスを再起動します。
World Wide Web Publishing Service


それぞれのホームを選択し、
右ウィンドゥ(操作ウィンドゥ)から「エクスプローラー」をクリックします。


物理パスで選択したフォルダが開いてくるので、そこにindex.htmlをいれます。


IPアドレス192.168.0.101をバインドしているWebサイトなら、
index.htmlの中身は「このサーバーは101です。」とかで良いと思います。


このindex.htmlを取り扱う作業を3つのWebサイトで繰り返します。


-------------------------------------------------------------------------



■BIG-IP LTM仮想版(BIG-IP Local Traffic Manager Virtual Edition) トライアルの
ダウンロードのためサイトへ行って登録し、ダウンロードします。


http://www.f5networks.co.jp/product/bigip/ve/trial.html


VMWare Playerで使用出来るファイルは
「BIGIP-10.1.0.3341.1084.zip」です。

レジストレーションキーは最大数の4個貰うことにしました。

レジストレーションキーが記載されたメールが届きます。


解凍後、VMWare Playerで起動します。

CUIログインは
ユーザー名 root
パスワード default
です。


マネージメントポート(eth0:mgmt)のIP設定をするために
config
と入力し設定画面から設定していく。
※eth0:mgmtとeth0は、VMWareの設定では「ネットワークアダプタ」です。
「ネットワークアダプタ」の初期状態は「ブリッジ」で有るので、
ホストOSと同じセグメントのIPアドレスを設定すること。

ほのかなブログ


dateコマンド、hwclockコマンドでシステムの時間を合わせます。

ホストOSのブラウザから、マネージメントポートのIPアドレスへ
HTTPSでアクセスします。

ほのかなブログ


webログインは
ユーザー名 admin
パスワード admin
です。

左ウィンドゥの「Licence」をクリックした後、
「Active」ボタンをクリックします。


「Base Registration Key」欄へ、メールに記載された
レジストレーションキーを貼りつけた後、

BIG-IP自体からインターネット接続できる環境で有れば
「automatic」を選択し「Next」ボタンをクリックする。
すると自動的にF5ライセンスサーバーにアクセスし処理される。


実運用では、BIG-IP自体からインターネット接続できる環境には
無いことが多いと思われるため、今回は「manual」を選択します。

「manual」を選択し「Next」ボタンをクリックする。

ほのかなブログ



「Dossier」をコピーするかダウンロードし、
https://activate.f5.com/ へインターネット接続

可能なPCからアクセスする。


BIG-IPへアクセスしているPCがインターネット接続可能なPCで有れば
「Click here to access F5 Licensing Server 」をクリックしても良い。


※Dossierには、registration keyとハードウェア情報が含まれている。
訳:関係書類・調査書類 発音は「ドシェァ」ってな感じ。


F5Networksのサイト(https://activate.f5.com/license/ )で
「Dossier」をペーストかアップロードする。

「Licence.txt」をダウンロードする。


BIG-IPのweb画面へ戻り、「Licence」項へ「Licence.txt」の内容をペーストし
「next」ボタンをクリックする。


ライセンス登録が完了しました。

※VMWarePlayerで使用する、今回のBIG-IP VEの仮想ディスクファイルの場所を移動すると

 その時点でライセンス切れになるようです、多分。


ライセンス登録後、自動的にSetup Utility画面になる。

左ウィンドゥの「Platform」から基本設定を行ないます。

「Network」をクリックします。


■「Advanced Network Configuration」の「Finished」ボタンをクリックすると
Setup Utilityを終了し、BIG-IP Configuration Utilityに遷移します。


■「Basic Network Configuration」の「Next」ボタンをクリックすると
まず内部VLAN、次に外部VLAN用ポートを割り当てる設定画面が表示されます。
リダンダント構成の場合はFloating IPやFailover Peer IPを設定します。

※今回は負荷分散処理設定後にリダンダント構成を試行しますが、
 基本的にはInitial Setup時に実施します。


終了後、BIG-IP Configuration Utilityに遷移します。
「Internal」は通常、負荷分散対象のサーバー側です。
「External」は通常、クライアント側です。
今回は以下のように設定しました。


●Internal Network Configuration
Address 172.16.0.1
Netmask 255.255.0.0
Vlan Interface の Untagged に 1.2

●External Network Configuration
Address 10.0.0.1
Netmask 255.0.0.0
Vlan Interface の Untagged に 1.1

----------------------------------------------------------
BIG-IP VEのインターフェースと
VMWarePlayerの仮想マシン設定と
ホストOS(Windows)のネットワーク設定と
の対応付けについて


※VMWareのネットワーク設定(「ブリッジ」「NAT」「ホストオンリー」)等の

説明は以下の記事で少し記載しています。

http://ameblo.jp/tred2/entry-10668220333.html



①BIG-IP VE「eth0」と「eth0:mgmt」は
 VMWarePlayerでは「ネットワークアダプタ」です。
 「ブリッジ」のままで有れば、
 ホストOS(Windows)の物理NIC「ローカル エリア接続」と
 同じセグメントでのIPアドレスを設定します。
※「eth0」と「eth0:mgmt」は同一のMACアドレスです。
 且つ別々のIPアドレスを設定可能です。稀にWindowsでも
 1つのNICに対して複数のIPアドレスを持たせる時が有りますね。

②BIG-IP VEの「external」は
 VMWarePlayerでは「ネットワークアダプタ 2」です。
 「ホストオンリー」のままで有れば、
 ホストOS(Windows)のネットワーク設定の
 「VMware Network Adapter VMnet1」と
 同じセグメントでのIPアドレスを設定します。

②BIG-IP VEの「internal」は
 VMWarePlayerでは「ネットワークアダプタ 3」です。
 「ホストオンリー」のままで有れば、
 これもホストOS(Windows)のネットワーク設定の
 「VMware Network Adapter VMnet1」へバインドされると思います。

 externalとinternalを別々のIPアドレス体系にするため、以下のように構成変更しました。

-------------------------------------------------------------------------
まず、ExternalのIPアドレスにてログインし直します。
https://10.0.0.1

BIG-IP VEのマネージメントIPアドレスを
Address 1.1.1.1
Netmask 255.255.255.0 へ変更。
 ※VMWarePlayerでの「ネットワークアダプタ」は
 「ブリッジ」のまま+物理ネットワークとは
 アドレス体系が異なるため、実質マネージメントIPアドレスは
 使用不可にしたという事です。

VMWarePlayerの「ネットワークアダプタ 3」を「ホストオンリー」から「ブリッジ」へ変更。

BIG-IP VEの「internal」を
Address 192.168.0.100
Netmask 255.255.255.0 へ変更。
※ホストOSと同じセグメントのIPアドレス


以下のように構成を変更しました。
ほのかなブログ


ほのかなブログ






再度、Setup Utilityを使用したい場合は
BIG-IP Configuration Utilityの左ウィンドゥの「Welcome」をクリックした後
右ウィンドゥの「・Run the Setup Utility」をクリックします。
ホスト名など基本的な設定は「・Run the Setup Utility」や
左ウィンドゥの「System」 - 「Platform」から設定可能です。


■■■次にPoolsの設定を行います。
左ウィンドゥの「Local Traffic」 - 「Pools」をクリックします。
先程ホストOSで作成した
「192.168.0.101:80」「192.168.0.102:80」「192.168.0.103:80」
へ振り分けます。
・Load Balancing Method
・Priority Group Activation
・Health Monitors
・Ratio
・Priority Group
もこの「Pools」で設定可能です。
ほのかなブログ


■■■次にVirtual Serverの設定を行います。
左ウィンドゥの「Local Traffic」 - 「Virtual Servers」をクリックします。
Default Poolは、先程作成したPoolを選択します。
Virtual Serverにアクセスしてきたクライアントの通信を
Pool Memberの3台へ振り分ける、という設定を行っていきます。
ほのかなブログ

■■■次にカスタムMonitorの設定を行います。
左ウィンドゥの「Local Traffic」 - 「Virtual Monitors」をクリックします。
「Create」ボタンをクリックします。


Monitors(カスタムMonitorやデフォルトのMonitorのこと)は
「Nodes」「Pool Members」「Pools」に割り当てられます。


今回はMonitorのTypeを「HTTP」にします。


「Send String」 欄へ送信文字列を記入します。
HTTPリクエストを記入します。
HTTP/1.1を指定すると「Receive String」での200 OK 等は判定出来ません。
今回は以下のように書きました。
GET /index.html HTTP/1.0


「Receive String 」 欄へ受信文字列を記入します。
ここで設定した文字列がサーバーから正しく受信できた場合は正常と判断されます。
HTTPヘッダの内容でもGETメソッドで指定したindex.htmlのソースの内容でも構いません。
ほのかなブログ


異常時には返してこない文字列を指定すること。
※「a」などの場合は正常/異常の判定材料としては不適切だと言うことです。


今回はステータス・コードの200 OKで指定します。
200 OK




「Interval」はモニターチェックの間隔です。
「Timeout」は肯定的な応答を待機する時間です。
Timeoutの推奨値は3n+1です。(Interval x 3 + 1)
この時間を過ぎると停止中と判断される。
停止中と判断されてもモニターチェックはその後も
チェックし続ける。で、また稼働しだしたら
BIG-IPが肯定的な応答を受け取る。
1回目のチェックで応答が無い場合、「Timeout」カウンターは
リセットされない。
「Interval」が5秒、「Timeout」が16秒の場合、
0秒、5秒、10秒、15秒目にチェックが行われる。
4回目チェックが行われても反応が無く、16秒目に達した際に
「停止」と判断される。


「Reverse」欄は、Yesにチェックを入れると動作が反転します。
「Receive String 」に一致する文字列が有ると
サーバーは停止していると判定されます。


ほのかなブログ



今回は設定しませんが
NodeにMonitorを割り当てる場合は
左ウィンドゥの「Local Traffic」 - 「Nodes」をクリックします。
全てのNodeに同じMonitorを割り当てる場合は
「Default Monitor」から設定します。
個別に割り当てたり、個別のNodeのみ上書き(設定変更)させたり、
個別のNodeに対してMonitorを実施しない場合は
「Node List」から設定します。
上書き(設定変更)する場合はHealth Monitors欄で
「Node Specific」を選択します。
Monitorを実施しない場合はHealth Monitors欄で
「None」を選択します。



で、今回はPoolへカスタムMonitorを設定します。
左ウィンドゥの「Local Traffic」 - 「Pools」をクリックします。
のHealth Monitors欄でカスタムMonitorを設定します。
あるPoolの全てのPool MembersへカスタムMonitorを割り当てる場合は
「Pool List」タブから設定します。
個別のMemberのみ上書き(設定変更)させたり、
個別のMemberに対してMonitorを実施しない場合は
「Members」から設定します。

上書き(個別設定)する場合はHealth Monitors欄で
「Member Specific」を選択します。
Monitorを実施しない場合はHealth Monitors欄で
「None」を選択します。
デフォルトは「Inherit From Pool」です。
※inherit 訳:受け継ぐ
ほのかなブログ

192.168.0.101のwebサーバーが停止していた場合は以下のようになります。
ほのかなブログ





-------------------------------------------------------------------
■■■Persistenceを設定する場合は以下の設定をします。
今回は設定しません。


PersistenceはPlofilesの中の機能です。
左ウィンドゥの「Local Traffic」 - 「Plofiles」をクリックします。
「Persistence」タブをクリックします。
今回はそこに表示されているデフォルトの親Persistenceでは無く、
カスタムした子Persistenceを作成・使用するため「Create」ボタンを
クリックします。
「Custom」チェックボックスにチェックを入れた項目は
今後親プロファイルが編集/変更されても、その影響を受けません。
逆に言うと、「Custom」チェックボックスにチェックが入っていない
項目は今後親プロファイルが編集/変更されると、その影響を受けて
同じ値になります。


作成したPersistenceをVirtual Serverに関連付けます。
左ウィンドゥの「Local Traffic」 - 「Virtual Servers」をクリックします。

Persistenceを関連付けたいVirtual Serverを「Name」列から選択してクリックします。

「Resource」タブをクリックした後、関連付けたいPersistence Profileを設定します。
この時、Profileの依存関係を考慮しなければならない。
もし、Cookie Persistence Profileを使用するなら
HTTPヘッダを読み取る必要があるためHTTP Profileをvirtual serverへ関連付けておく必要が有る。
HTTP Profileを設定せずにCookie Persistence Profileを使用した場合は、
「Cookie persistence requires an HTTP or FastHTTP profile
to be associated with the virtual server」との警告が出る。

また、HTTP ProfileにはTCP Profileが必要であるがそれは自動的に
付与されるとのこと。

-------------------------------------------------------------------


■■■次にSNATの設定を行ないます。
始めに、SNAT設定をしていない場合のBIG-IPの動作を確認しておきます。
今現在、BIG-IPのデフォルトゲートウェイの設定はしていません。


クライアントのWebブラウザでVirtual Serverへアクセスします。
自環境ではhttp://10.0.0.100/ です。


-------------------------------------------------------------------
●この時や、SNAT設定後にパケットキャプチャを行い、
 後で通信の相違を確認しても良いかもしれません。

●ホストOSでWireSharkを起動し以下の2つのパケットキャプチャを開始
・ローカル エリア接続
(BIG-IP⇔3台のwebサーバー間をパケットキャプチャしたいため)
(自環境のIPアドレスは192.168.0.2、192.168.0.101、192.168.0.102、192.168.0.103)

・VMware Network Adapter VMnet1
(クライアント⇔BIG-IPのVirtual Server間をパケットキャプチャしたいため)
(自環境のIPアドレスは10.0.0.2)

●もしくはBIG-IPのinternal側とexternal側でパケットキャプチャを開始

tcpdump -ni 1.1 tcp port 80 -w/var/tmp/exhttp.cap &
tcpdump -ni 1.2 tcp port 80 -w/var/tmp/inhttp.cap

----------------------------------------------------------------------------

tcpdumpコマンドの詳細な解説は以下。
http://itpro.nikkeibp.co.jp/article/COLUMN/20070403/267311/


DevCentralにサンプルを記載してる人がいましたのでそのまま引用します。
http://devcentral.f5.com/Forums/tabid/1082223/asg/50/showtab/groupforums/aff/5/aft/11976/afv/topic/Default.aspx


tcpdump -ni 1.1 tcp port 80 -w/var/tmp/http.cap &

tcpdump -ni public_vlan tcp port 21 -w/var/tmp/ftp.cap

tcpdump -ni 0.0 udp 1645 -w/var/tmp/all_interfaces_radius.cap
----------------------------------------------------------------------------

取得したファイルをBIG-IPからWindowsへコピーするには

SFTPやSCPを使用します。

SFTPとSCPの違いは以下が詳しいです。

http://www.atmarkit.co.jp/fnetwork/rensai/tcp28/02.html


今回はfilezillaと言うSFTP/FTPクライアントを使用しました。
http://filezilla-project.org/

IPアドレス、ユーザー名、パスワード、ポート「22」を入力して

「クイック接続」ボタンをクリックして接続です。
ほのかなブログ
障害時には

qkview (他処理を圧迫しないためにniceコマンドと併用 nice -20 qkview)

/config/bigip.conf
/config/bigip_base.conf
/config/BigDB.dat

なども取得すると良いでしょう。



-------------------------------------------------------------------


で、クライアントのWebブラウザでVirtual Serverへアクセスします。
自環境ではhttp://10.0.0.100/ です。

「Internet Explorerではこの画面は表示できません。」となりました。


では次にSNATの設定を行っていきます。
今回はVirtual Server設定の中でSNATを使用します。

左ウィンドゥの「Local Traffic」 - 「Virtual Servers」をクリックします。
Virtual Server List内の設定したいVirtual Serverをクリックし、
「Coinfiguration」ドロップダウンリストから「Advanced」を選択します。
「SNAT Pool」欄で設定できるのは「Auto Map」か、作成したSNAT Pool。

※「Auto Map」を選ぶと、自動的に出力/出口側VLANのSelfIP
 (冗長構成ならfloating SelfIP)が選択される。
 クライアントからサーバーへの通信の場合は出力/出口側VLANのSelfIP
 はinternal VLAN側のSelfIPで、
 サーバーからクライアントへの通信の場合は出力/出口側VLANのSelfIP
 はexternal VLAN側のSelfIPということです。

今回は「Auto Map」を選択します。
その後に「Update」ボタンを押します。

再度、クライアントのWebブラウザでVirtual Serverへアクセスします。
自環境ではhttp://10.0.0.100/ です。
webサーバーのindex.htmlの内容が表示されたと思います。
負荷分散方法をデフォルトの「Round Robin」にしている場合、
「F5」キーを押下すると、Pool Members(各サーバー)のindex.htmlが
順に見えると思います。

負荷分散の統計情報はBIG-IPの
左ウィンドゥの「Local Traffic」 - 「Pools」をクリックし、
「Statistics」タブで見ることが出来ます。


■■■次にiRuleを作成し使用します。

iRuleを設定するには
iRule Editor(http://devcentral.f5.com/Community/GroupDetails/tabid/1082223/asg/1/Default.aspx )を使用する。
この場合、iRuleを保存するにはiRule EditorがオンラインのBIG-IPに接続されていなければならない。
それかBIG-IPで左ウィンドゥの「Local Traffic」 - 「iRule」を選択後「Create」ボタンをクリックし
直接記述する。今回は直接記述します。

書き方の例としてはこんな感じです。


----------------------------------------------------------------------------

例1 接続クライアントのIPアドレスが172.で始まる場合は「pool_a」へ、それ以外は「pool_b」へ振り分ける。


when CLIENT_ACCEPTED {
if { [[IP::remote_addr] starts_with "172."] } {
pool pool_a
}
else {
pool pool_b
}
}
----------------------------------------------------------------------------

例2 


when CLIENT_ACCEPTED {
if { [active_members http_pool] < 1 } {
pool http2_pool
}
}


※基本的には同一poolに置き、priority group で設定する方が良いようです。

 契機はCLIENT_ACCEPTEDでは無い方が良い時も有るかもしれません。

----------------------------------------------------------------------------

例3 


when HTTP_REQUEST {
if { [active_members http_pool] < 1 } {
HTTP::respond 200 Content "<html><body>Sorry. All Stop.</body></html>"
}
}

----------------------------------------------------------------------------


iRuleの解説は以下。最も分かりやすい資料のうちの1つだと思います。PDFです。
http://www.f5networks.co.jp/shared/pdf/irule_atoz.pdf

iRuleの書き方サンプルは以下に紹介されています。
http://devcentral.f5.com/Community/Japan/iRuleSamples/tabid/120/Default.aspx

今回は上記のリンクのうち、

「BIG-IPにSorry Serverの役割を持たせる」
※iRuleにSorry Serverの内容を直接記載する方法
http://www.f5networks.co.jp/shared/pdf/irule_atoz.pdf

それか
「BIG-IPをSorry Serverとして利用するiRule」
※iRuleにSorry Serverファイルへの内部リンクを記載する方法
http://devcentral.f5.com/Community/Japan/iRuleSamples/tabid/120/articleType/ArticleView/articleId/249/BIG-IPSorry-ServeriRule.aspx
のどちらかを使用してみます。


今回は例3 を作成しました。


次に作成したiRuleをVirtual Serverに割り当てます。

左ウィンドゥの「Local Traffic」 - 「Virtual Servers」をクリックします。

「Virtual Server List」タブから設定したいVirtual Serverをクリックします。

「Resouces」タブを選択後、「Manage」ボタンをクリックします。
先程作成したiRuleをEnableに入れて「Finished」ボタンをクリックします。

※iRuleを複数設定する場合、iRuleを読み込む順番は非常に重要です。
 「Up」「Down」で適切な順番に設定してください。


iRuleの動作検証のためにPool Memberを全てDownさせます。

クライアントのwebブラウザからVirtual Serverへアクセスし動作確認します。

iRuleで設定した内容が問題無く返されることを確認します。

Pool Memberを1台Upにします。

webブラウザ画面を更新します。
問題なくwebサーバーの画面が見られることを確認します。


■Redundant Pairを作成する
※基本的にはRedundant Pairを作成する時期は各機器のInitial Setup時です。


まず、Standby機を作成し初期設定を行ないます。

以前ダウンロードした
「BIGIP-10.1.0.3341.1084.zip」を再度解凍します。

解凍したファイルをVMWarePlayerで設定します。

VMWarePlayerの仮想マシン設定のネットワークアダプタを
以下のように編集します。
・ネットワークアダプタ ブリッジ
・ネットワークアダプタ2 ホストオンリー
・ネットワークアダプタ3 ブリッジ


起動して、コマンドラインからconfigと入力し、
マネージメントポート(eth0:mgmt)のIP設定をします。
192.168.0.220/24(ブリッジで有るので、ホストOSの
物理IPアドレスと同じセグメントのIPアドレスを充てる。)

dateコマンド、hwclockコマンドでシステムの時間を合わせます。


webログインしライセンス登録を行います。

ネットワーク設定を行ないます。
Management Port
2.2.2.2/24

external VLANは
10.0.0.20/8
VLAN Interfaces 1.1

internal VLANは
192.168.0.200/24
VLAN Interfaces 1.2
TCP/443許可


左ウィンドゥの「Welcome」をクリックします。

「・Run the Setup Utility」をクリックします。

「Host Name」欄でホスト名を設定する。
※Host Nameを今までのActive機とは別の名前にすると
 同期した時はUCSの共有インストールが行われる。
 Host Nameを今までのActive機と同じ名前にすると
 同期した時はUCSのフルインストールが行われる。

今回は今までのActive機とは別の名前に設定します。

「High Availability」欄で「Redundant Pair」を選択します。
「Unit ID」欄で「2」を選択し「Next」をクリックします。

Basic Network Configurationへ進むため「Next」をクリックします。


「Internal Network Configuration」画面で
Floating IPを設定します。
192.168.0.150としました。

Failover Peer IPを入力します。
192.168.0.100(相手のInternalのSelfIPです。)

「External Network Configuration」画面で
Floating IPを設定します。
10.0.0.10/8としました。

この時点で状態がStandby-Standbyに遷移するかかもしれません。




■■■最初に設定した方のBIG-IPへwebログインします。

左ウィンドゥの「Welcome」をクリックします。

「・Run the Setup Utility」をクリックします。

「High Availability」欄で「Redundant Pair」を選択します。
「Unit ID」欄は「1」のままであることを確認し
「Next」をクリックします。

Basic Network Configurationへ進むため「Next」をクリックします。

「Internal Network Configuration」画面で
Floating IPを先程の同じ値に設定します。
192.168.0.150です。

Failover Peer IPを入力します。
192.168.0.200(相手のInternalのSelfIPです。)

「External Network Configuration」画面で
Floating IPを先程の同じ値に設定します。
10.0.0.10/8です。

■■■念のため同期前にバックアップを取得します。
※同期される側のBIG-IPは、同期前に自動的にバックアップが取得されます。

左ウィンドゥの「System」 - 「Archives」をクリックします。

「Create」ボタンをクリックします。

任意の名前をつけて「Finished」ボタンをクリックします。

作成したUCSファイルを選択し、ダウンロードしておきます。


■■■同期します。

同期する際の注意点
・Redundant Pairのadminのパスワードは同一に設定する必要が有る。
・port443がPort Lockdown設定やRedundant Pairのシステムによって
 ブロックされないようにしておく。
・お互いのシステムクロックのずれが少ないこと。
・Pushでの同期とPULLでの同期を間違えないこと。

左ウィンドゥの「System」 - 「High Availability」 - 「ConfigSync」をクリックします。

「ConfigSync」タブをクリックします。

「Synchronize TO Peer」ボタンをクリックします。

しばらくすると以下のようなログが表示されます。
-------------------------------------------------------------
Operation Status
Installing new peer certificateConfigsync Mode: Push
Transferring UCS to peer...
Installing UCS on peer...
Obtaining results of remote configuration installation...
Saving active configuration...
Current configuration backed up to /var/local/ucs/cs_backup.ucs.
Product : BIG-IP
Version : 10.1.0
Hostname: UCS : bigip555.local
System: bigip666.local
Installing --shared-- configuration on host bigip666.local
Installing configuration...
Post-processing...
Reading configuration from /config/low_profile_base.conf.
Reading configuration from /defaults/config_base.conf.
Reading configuration from /config/bigip_sys.conf.
Reading configuration from /config/bigip_base.conf.
Reading configuration from /usr/share/monitors/base_monitors.conf.
Reading configuration from /config/profile_base.conf.
Reading configuration from /config/daemon.conf.
Reading configuration from /config/bigip.conf.
Reading configuration from /config/bigip_local.conf.
Loading the configuration ...
/sbin/restorecon: error while labeling files under /var/ts

Checking configuration on local system and peer system...
Peer's IP address: 192.168.0.200
Synchronizing Master Keys...
Saving active configuration...
-------------------------------------------------------------

処理終了後、もう一方のBIG-IPへコンフィグが反映されたか確認します。


■Network failover設定をする。

Network failoverはUDP/1026を使用する。

最初に設定した方のBIG-IP(UnitID 1)へwebログインします。

設定は左ウィンドゥの「System」 - 「High Availability」をクリックします。
「Network Failover」タブへ移動します。
 「Enabled」にチェック。
 「Peer Management Address」相手の管理IPアドレス
 「Configuration Identifier」は、名前
 「Local Address」は、SelfIPアドレス 10.0.0.1
 「Remote Address」は、peer IPアドレス 10.0.0.20
 portは指定しない場合デフォルトの1026が使用される。

SelfIPアドレス 10.0.0.1のPort Lockdown設定で
UDP/1026を許可します。

もう片方のBIG-IP(UnitID 2)も設定します。

●●●設定中です。(現状st-st)


設定後にHigh Availabilityテーブルを見ることは有意義です。

b ha table show

で表示させます。

機能名(Feature)、key、障害時の動作(Action)、有効(En?)、Act(状態)、Data列が表示されます。


■SNMP送信設定を行ないます。

ホストOS(Windows7)の「SNMP Trap」サービスを開始します。

ファイアウォールで「SNMP Trap」を許可します。
UDP/162です。

wSnmpTrap - WinSNMPツールダウンロードします。
http://www.vector.co.jp/soft/winnt/net/se304700.html

ネットワーク監視なら、TWSNMPマネージャも良さそうです。
http://www.twise.co.jp/twsnmp.html

今回はwSnmpTrapを使用します。

wSnmpTrapを起動し、メニューバーから「ツール」 - 「TRAP受信開始」を選択します。


BIG-IPの操作に移ります。

設定は左ウィンドゥの「System」 - 「SNMP」をクリックします。
「Traps」タブの「Destination」をクリックします。
バージョン コミュニティ名 送信先を設定します。
今回はそれぞれ「v1」 「f1」 「192.168.0.2」 と設定しました。

コミュニティ名は何に設定してもWindowsへ届きます。

受信側のソフトにも依るのかもしれませんが。


snmptrapコマンドで送出確認するか、
TRAP送出イベントを実行します。


例としてwebサーバーを起動するとPool Memberのモニターの状態がUpとのTRAPが受信されます。
ほのかなブログ


■■■アップグレード・HotfixをRedundant Pairに適用する
ASK F5からダウンロードします。リリースノートを参照すること。
AskF5 > F5 Downloads
ファイルを確認する。
md5sum -c <File.md5>
ファイルをインストールする
image2disk -- hotfix -- instslot<slot> <File.iso>

Standby機(現在はUnit 2がStandbyだと仮定する)でUCSバックアップしておく。
Standby機でアップグレード・Hotfixをインストールする。

Active機(Unit 1)を強制的にStandbyにする。
(Standby機がActiveになる。)

Active機(Unit 2)が正常に動作しているか確認する。
問題がある場合は、Active機(Unit 2)を強制的にStandbyにする。

問題なければStandby機(Unit 1)UCSバックアップし、アップグレード・
Hotfixをインストールする。

Active機(Unit 2)を強制的にStandbyにする。

Active機(Unit 1)が問題無ければアップデート完了。


■■■ActiveからStandbyへ手動で遷移させるには以下の方法が有ります。
●Active機で「Active」表示をクリックし「Force to Standby」ボタンをクリックします。
●左ウィンドゥの「System」 - 「High Availability」をクリックします。
 「Redundancy」タブの「Force to Standby」ボタンをクリックします。
●Active機のコマンドラインで b failover standby を入力。


その他の用語や設定は1つ前の記事を参照下さい。

http://ameblo.jp/tred2/entry-10652275496.html#main



AD
2010年09月17日

BIG-IPについて 2/2

テーマ:BIG-IP

BIG-IPについて 2/2



■SSLについて
プラットフォームによってSSLアクセラレータの実装数や最大TPSが違う。


■SSL TerminationとClientSSL
termination 訳:終端・終わり
暗号化・復号化をBIG-IPが行うこと。
クライアント⇔サーバーのSSL通信を
クライアント⇔BIG-IPのSSL通信へ変更する。
ClientSSL Profileを使用してSSLセッションをBIG-IPによって終了させる。
=BIG-IPをClientSSLのEnd Pointとする。
ClientSSLの場合は「クライアント⇔BIG-IP」はSSL、「BIG-IP⇔サーバー」はSSLでは無い。
利点は以下。
●各サーバー(Pool Member)で証明書を用意する必要が無い。
●サーバーがSSL暗号化/復号化に関するCPU処理をしなくて良い。
●Client TrafficがSSLであってもCookie persistenceが使用可能。
●Client TrafficがSSLであってもiRuleが使用可能。
●SSLアクセラレータで処理可能。ハードウェアでのSSL鍵交換、バルク暗号化。


■ClientSSL Profileの有効化手順
●SSL Certificateと鍵をインポートするか生成する。
※SSL証明書構成時の決まり文句、「インターネットで使用するなら
 外部機関の信頼された証明書で、内部で使用するだけなら自己署名証明書で良い。」
※証明書の格納先は/config/ssl/ssl.crt、鍵の格納先は/config/ssl/ssl.keyです。
 BIG-IPを冗長構成している場合は片方で同期すれば良い。

左ウィンドゥの「Local Traffic」 - 「SSL Certificates」をクリックします。
「Import」か「Create」ボタンをクリックします。
今回は「Create」ボタンをクリックします。
「Name」欄に任意の名前を入れる。
「Issuer」欄は「Self」を選択する。
後は任意の値を決定し入れる。
「Finished」をクリックします。

●ClientSSL profileを設定する。
左ウィンドゥの「Local Traffic」 - 「profiles」 - 「SSL」 - 「client」をクリックします。
「Create」ボタンをクリックします。
「Name」欄に任意の名前を入れる。
「ParentProfile」欄は「clientssl」のまま。
「Certificate」と「Key」項目に先程の名前のものを入れる。
※両項目は、最初グレーアウトしているが、Customチェックボックスにチェック
 を入れる(=親の影響を受けなくする)とドロップダウンリストから選択可能になる。
「Finished」をクリックします。

●Virtual Serverに関連付ける。
左ウィンドゥの「Local Traffic」 - 「Virtual Servers」をクリックします。
「Create」ボタンをクリックします。
「Name」欄に任意の名前を入れる。
「Destination」欄にAdressを入れる。
「Service Port」欄にポート番号を入れる。通常は443ですね。
「SSL profile(Client)」欄に先程の名前のものを入れる。
=SSL Terminationを設定した、と言うことです。
別途「SSL profile(Client)」欄も設定した場合は、SSL Intiationを設定した、
と言えます。

●●●「Protocol Profile (Client) 」は「TCP」が自動選択される。


後の項目は適切に選択します。
※「Default Pool」欄でデフォルトのPoolを選択、や
 「SNAT Pool」欄に「Auto Map」を選択するなど。

「Finished」をクリックします。
クライアントのwebブラウザからVirtual Serverへhttpsアクセスし動作を確認します。


■SSL IntiationとServerSSL
もし「クライアント⇔BIG-IP」と「BIG-IP⇔サーバー」のどちらも
SSLで暗号化したい場合はBIG-IPのサーバー側のSSL Intiationを使用する。

SeverSSLの場合は「クライアント⇔BIG-IP」はSSL、「BIG-IP⇔サーバー」
もSSL。BIG-IPの動作としては、クライアントからのSSLトラフィックを
復号化。別のSSL証明書と鍵で再度暗号化してからサーバーへ送信。
サーバーからのトラフィックを復号化し、再暗号化してクライアントに送信。
●●●●●●ネットワーク全体のトラフィックは暗号化されなければならない、という
要件が有って、尚且つHTTPのデータをBIG-IPが見る必要が有る時(Cookie persistenceや
iRuleを使用している時)。
HTTPのデータをBIG-IPが見る必要が無いのならば、クライアント⇔サーバー
で通常のSSL通信を構成すれば良い。


■ServerSSL Profileの作成手順
左ウィンドゥの「Local Traffic」 - 「profiles」 - 「SSL」 - 「Server」をクリックします。
「Create」ボタンをクリックします。
「Name」欄に任意の名前を入れる。
「ParentProfile」欄は「serverssl」のまま。後は特には何もせずに「Finished」をクリックします。
後は1つ上の「■ClientSSL Profileの有効化手順」を参照して下さい。


■リモートログインを使用する
BIG-IPへリモートからログインする場合、HTTPSかSSHでログインします。

●HTTPSの場合はwebブラウザを使用してログインします。

●SSHの場合
左ウィンドゥの「Network」 - 「SelfIPs」をクリックします。
external側(環境に依ります)のSelfIPsをクリックします。
自環境では10.0.0.1です。
「Port Lockdown」欄が「Allow Custom」であることを確認し
「Custom List」でTCP22番ポートを追加し「Update」をクリックします。

今回はSSHクライアントはSSHをサポートしているTera Termを使用します。
BIG-IPのIPアドレスと22番ポートを指定して接続します。

ユーザー名はデフォルトなら、「root」と入力して
「チャレンジレスポンス認証を使う」にチェックを入れて「OK」ボタンをクリックします。
パスワードを入力すると、接続できます。

●SFTPの場合
ファイルをダウンロードする際に使用します。
今回はfilezillaと言うSFTP/FTPクライアントを使用しました。
http://filezilla-project.org/
直感的に操作できると思われるので手順は記載しなくても良いですね?
IPアドレス、ユーザー名、パスワード、ポート「22」を入力して「クイック接続」ボタンを
クリックして接続です。
qkviewで取得したtgzやキャプチャしたファイルをローカルPCに
ダウンロードする際等に使用します。

また、SCPでダウンロードすることも可能です。

SFTPとSCPの違いは以下が詳しいです。

http://www.atmarkit.co.jp/fnetwork/rensai/tcp28/02.html



■qkview
各種情報を取得できます。
他処理を圧迫しないためにniceコマンドと併用してqkviewと入力します。
nice -20 qkview


併せて以下のファイルも取得しておくのが望ましい。

/config/bigip.conf
/config/bigip_base.conf
/config/BigDB.dat


■BIG-IPを通るトラフィックをパケットキャプチャする

tcpdumpコマンドを使用します。詳細なコマンド解説は以下。
http://itpro.nikkeibp.co.jp/article/COLUMN/20070403/267311/

DevCentralにサンプルを記載してる人がいましたのでそのまま引用します。
http://devcentral.f5.com/Forums/tabid/1082223/asg/50/showtab/groupforums/aff/5/aft/11976/afv/topic/Default.aspx
----------------------------------------------------------------------------

tcpdump -ni 1.1 tcp port 80 -w/var/tmp/http.cap &

tcpdump -ni public_vlan tcp port 21 -w/var/tmp/ftp.cap

tcpdump -ni 0.0 udp 1645 -w/var/tmp/all_interfaces_radius.cap
----------------------------------------------------------------------------

&,fg,jobsを使用してinternalとexternalのトラフィックを
同時にキャプチャする場合が多いです。

その後、SFTPでローカルPCにダウンロードし、Wiresharkで閲覧します。


■NAT
1対1のマッピング。
双方向のトラフィック。
専用のIPアドレス。
ポートは設定不可。
設定方法は、
左ウィンドゥの「Local Traffic」 - 「SNATs」 - 「NATs」をクリックします。

「NAT Address」にNAT Addressを(クライアントのIPアドレス等)

「Origin Address」はそのアドレスがマップする送信元のアドレス


■SNAT

Secure NATの略。ややこしいけど、で、Source NATを実行する。
多対1。

送信元アドレスがSNATアドレスに変換される。
送信元ポートも変わる。
サーバーからクライアントに返される時も、
正しく元のクライアントのIPアドレスとポートに戻す。

通常はVirtual Serverが宛先アドレスを変更する。
(Virtual Serverのアドレスから負荷分散先サーバーのアドレスへ)
でSNATが送信元のアドレスを変更する。
(クライアントのアドレスからSNATアドレスへ)

SNATが設定されていない場合を考える。
もしサーバー内設定でデフォルトゲートウェイをBIG-IPのアドレスでは
無い機器のアドレスに設定し、尚且つ「クライアントのアドレスからの
通信はBIG-IPへ返す」、とのルーティング設定もされてない場合は
クライアントからサーバーへ到着した通信の帰りはサーバーから
デフォルトゲートウェイへ配送される。

SNATが設定されていれば、送信元はクライアントのアドレスでは無く
BIG-IPのSelfIPなので、それの応答をサーバーが返す時、
ローカルネットワークIPアドレスなので、デフォルトゲートウェイの
お世話にはならず、BIG-IPへ返す。

SNATを、普通にSNATオブジェクトとして設定すると、全てのトラフィックに
影響を与える可能性が有る。
普通にSNATオブジェクトとして設定方法は、
左ウィンドゥの「Local Traffic」 - 「SNATs」 - 「Create」から設定します。


SNATを、Virtual Server内で設定すると、そのVirtual Serverを使用する
トラフィックのみ影響を受ける。
設定方法は、左ウィンドゥの「Local Traffic」 - 「Virtual Servers」をクリックします。
Virtual Server List内の設定したいVirtual Serverをクリックし、
「Coinfiguration」ドロップダウンリストから「Advanced」を選択します。
「SNAT Pool」欄で設定できるのは「Auto Map」か、作成したSNAT Pool。
「Auto Map」を選ぶと、自動的に出力/出口側VLANのSelfIP
(冗長構成ならfloating SelfIP)が選択される。
クライアントからサーバーへの通信の場合は出力/出口側VLANのSelfIP
はinternal VLAN側のSelfIPで、
サーバーからクライアントへの通信の場合は出力/出口側VLANのSelfIP
はexternal VLAN側のSelfIPということです。
(冗長構成ならfloating SelfIP)が選択される。


■SelfIP
internal VLAN及びexternal VLANのIPアドレス。
「Port Lockdown」欄で「Allow Custom」を選択すると
許可するポートなどを設定できる。
BIG-IPへSSH接続を行ないたいならばTCP/22を開ける、設定など。

Virtual Serverの「SNAT Pool」で「Auto Map」を選択すると、
自動的に出力/出口側VLANのSelfIP(冗長構成ならfloating SelfIP)が使用される。


■floating SelfIP
冗長構成時におけるinternal VLAN及びexternal VLANのIPアドレス。
普通に設定していった場合、
冗長構成のペア1組に対してinternal VLANのfloating SelfIPは1つ、
冗長構成のペア1組に対してexternal VLANのfloating SelfIPは1つ。


■iRules
●●●●●●●●●iRuleを設定する場合は、BIG-IPが適切にイベントを
読めるように、関連するProfileの設定を行っておくこと。

BIG-IPに入っているプログラミング言語、スクリプト。
Tclプログラミング言語を基にしている。
特定のPool、Pool Membersにトラフィックを送信可能。
L7パケットのどんな情報にも対応できる。
振り分けるルールを書く。
ネットワークパケットを処理して送信する。
Client TrafficがSSLで有る場合にiRules処理を行うには
SSL Terminationを使用する。

設定するには
iRule Editor(http://devcentral.f5.com/Community/GroupDetails/tabid/1082223/asg/1/Default.aspx )を使用する。
この場合、iRuleを保存するにはiRule EditorがオンラインのBIG-IPに接続されていなければならない。

それか、BIG-IPで左ウィンドゥの「Local Traffic」 - 「iRule」を選択後「Create」ボタンを
クリックし直接記述する。


iRuleの書き方サンプルは以下。
http://devcentral.f5.com/Community/Japan/iRuleSamples/tabid/120/Default.aspx

iRuleの解説は以下。最も分かりやすい資料のうちの1つだと思います。PDFです。
http://www.f5networks.co.jp/shared/pdf/irule_atoz.pdf

----------------------------------------------------------------------------
書き方

rule ルール名 {
when イベント {
if{条件 } {
アクション
}
}
}


※コード行の最後に空白を入れないこと。
※ブランク行も使わないこと。
※ルール名の各語の先頭は大文字である必要がある。IP_Addressなど。
※複数のイベントを指定可能。HTTP_REQUEST、CLIENT_ACCEPTEDなど。
TCPの3ウェイハンドシェイク完了時にCLIENT_ACCEPTEDが発生する。
クライアントデータが受信されるとCLIENT_DATAが発生する。
通信時、振り分け先のPool Memberを決定した場合にSERVER_SELECTEDが発生する、等々。


●●●イベントの例

●CLIENT_ACCEPTED
クライアントPCとBIG-IPの3ウェイハンドシェイク時


●CLIENT_DATA
●HTTP_REQUEST
クライアントデータ送信時


●SERVER_CONNECTED
BIG-IPとサーバーとの3ウェイハンドシェイク時


●SERVER_DATA
●HTTP_RESPONSE
サーバー応答時


●SERVER_SELECTED


●AUTH_RESULT
認証操作完了時


●DNS_REQUEST
DNS要求受信時


●DNS_RESPONSE
DNS要求への応答時


●CLIENTSSL_CLIENTCERT
SSLクライアント証明書の追加時


●CLIENTSSL_DATA
収集状態時、クライアントから
新しいSSLデータを受け取る度に


●CLIENTSSL_HANDSHAKE
クライアント側のSSLハンドシェイク完了時


●LB_SELECTED
pool memberの選択時


●LB_FAILED
pool及びpool memberの選択不可/到達不可時


●NAME_RESOLVED
NAME::lookupコマンドが発行され、応答が
受信された後。


●PERSIST_DOWN
パーシステンスによって
DOWN状態のpool、pool member、nodeに
送信されるように示された時


●RULE_INIT
iRuleが追加/変更された時


●●●イベントのカテゴリの例
・認証イベント
Pool Memberとの接続確立前のクライアント認証に関連。
・DNSイベント
DNSに関するもの。
・SSLイベント
初期SSLハンドシェイク中のクライアント認証に関連。
・グローバルイベント
Pool Memberとの接続確立に関連。
※アクションの例 「IP::remote_addr」・・・コネクションのリモートIPアドレスを
 検索して、返す。
※Poolへの振り分け処理を記載しているiRuleで、アクションで if にも elseif にも
 当てはまらず、且つelseが記述されてない場合、そのトラフィックは
 default Poolへ送られる。default Poolが無い場合は廃棄される。
 基本的にはそうならないように必要なロジックを全てiRule内に記述すること。

----------------------------------------------------------------------------
使用可能な演算子
論理演算子 or and not
関係演算子
starts_with
ある文字列が特定の文字列で始まるか
ends_with
特定の文字列で終了するか
equals
特定の文字列が等しいか
contains
特定の文字列が含まれているか
matches_regex
ある文字列が正規表現と一致するか
matches_glob
比較内でglobスタイルの照合を行う
switch
値に応じてスクリプトのうちの1個を評価する。

----------------------------------------------------------------------------
例1
リクエストURIの最後がhtmならPool名「htm_pool」へ、
uriの最後がhtmlならPool名「html_pool」へ振り分ける。

rule Htm_Html {
when HTTP_REQUEST {
if{[HTTP::uri] ends_with "htm" } {
pool htm_pool
}
elseif {[HTTP::uri] ends_with "html" } {
pool html_pool
}
}
----------------------------------------------------------------------------
例2
接続しに来たクライアントのIPアドレスが172.で始まる場合は
「pool_a」へ、それ以外は「pool_b」へ振り分ける。

rule IP_Address {
when CLIENT_ACCEPTED {
if { [[IP::remote_addr] starts_with "172."] } {
pool pool_a
}
else {
pool pool_b
}
}
}
----------------------------------------------------------------------------


■Redundant Pair
Active-StandbyにおいてStanby機で想定される役割は
アップグレードや障害時のバックアップ。
Redundant PairはActive-Standbyで構成することを推奨しているとのこと。
ホスト名、UnitID、SelfIPなどはお互い違う値にする。
peerはお互いのIPを入れ合う。

それぞれにUnitID 1、UnitID 2を割り当てる。UnitIDは識別番号で、
1がactive、2がStandbyを表しているという訳では無い。

VLAN作成時にfail-over peerのIPアドレスを設定する。
すると、fail-over VLANが作成される。
コンフィグファイルを同期したり状態情報をミラーリング、
フェールオーバーステータスを検出する際に使用される。

クライアントからのトラフィックはBIG-IPの外部(external)のfloatingIP、
内部(internal)のfloatingIPを通ってサーバーへ到着する。

フェールオーバーが起こるとStandby機がActive機になり、尚且つ
Gratuitous ARP(重複IPアドレス検出やARPキャッシュエントリ更新の為に
使われるパケット)を送信し、floatingIPのMACアドレスが変更されたことを
(多分)ブロードキャストして他の機器へ伝達する。


■Failoverマネージャ
●Watchdog
 ハードウェアのヘルスチェックを実行
●Overdog
 ハードウェア障害を解決するためのソフトウェア
●SOD
 ソフトウェアをモニタリング


■High Availability テーブル
Failoverマネージャにより更新、
モニタリングされる。
b ha table show
で状態確認が可能。


■Failover Triggers
●プロセス(デーモン)
 重要なデーモンが停止した際の実行アクションを変更するのは推奨されない。
 「System Services」の一覧と実行するアクションを変更するには以下。
 左ウィンドゥの「System」 - 「High Availability」- 「Fail-safe」 - 「System」をクリック。
●スイッチボード
●VLAN Failsafe
 ネットワークトラフィックを検出できない場合トラフィックの生成を試みる。
 どのVLANへも設定可能。
 デフォルトのタイムアウトは90秒。

 ネットワークトラフィックをモニタリングする。
 タイムアウト値の半分の時間が経過してもトラフィックが検出されない場合、
 既知の機器へpingを送出する。応答等が無くタイムアウト時間に達した際は
 アクションが実行される。
●Gateway Failsafe


■Hardware Failover
●常に有効。
●Front Panel Failover PortとDB9 Failoverケーブルを使用。
●最大距離は15.24m
●Active Systemが電圧を供給。
●Active SystemによってFront Panel Failover Portに電圧がかかっている
 場合、Peer SystemはStandby Modeのまま待機する。
●データは一切配送しない。
●Standby Systemは電圧の遮断を検出するとActiveになる。
 そしてFront Panel Failover Portに電圧を供給してActive Systemである
 ことを示します。
●電圧が途切れている場合はどちらもActiveのままになりGratuitous ARPを送信する。
●Network Failoverと組み合わせて使用可能。
●●●●●●その場合は両方失敗しない限りStandbyからActiveになることは無い。


■Network Failover
●ハートビートが送信される。
●Active機はkeep-aliveを送信する。
●UDP/1026を使用する。
●Hardware Failoverの制限15.24m以上でも良い。
●Hardware Failoverより低速。
●Hardware Failoverと組み合わせて使用可能。
●●●●●●その場合は両方失敗しない限りStandbyからActiveになることは無い。
●●●●●●設定はPeer間で同期されない。
●Hardware Failoverより低速。
●設定は左ウィンドゥの「System」 - 「High Availability」の
 「Network Failover」タブ。
 「Enabled」にチェック。
 「Peer Management Address」相手の管理IPアドレス
 「Configuration Identifier」は、名前
 「Local Address」は、SelfIPアドレス
 「Remote Address」は、peer IPアドレス
 portは指定しない場合デフォルトの1026が使用される。

●送出間隔は約1/10秒。疎通不可状態が続けば

 送出されなくなり、再度ペアを認識した際には送出し始める。


■Stateful Failover
●デフォルトのFailoverでは現在の接続とパーシステンスが失われるが、
 Stateful Failoverでは現在の接続とパーシステンスが維持される。
●データをStandbyにミラーリングすることで実現される。


■データのミラーリング
●TCP/1028
●有効な場合は接続及びパーシステンステーブルがミラーリングされる。
●NATは1対1なのでNAT接続の状態はミラーリングする必要は無い。
●SNATは複数のクライアントが同時に使用するため、必要。
 接続テーブルで管理している。それをミラーリングする。
 設定は「SNATs」から。
 「Stateful Failover Mirror」チェックボックスにチェックを入れる。
 Peerにも設定しておく。


■Connection Mirroring
●TCP/1028
●Telnet、FTP、SSH等、長時間維持される接続に適用できる。
●接続は失われない。
●負荷がかかる。
●デフォルトは無効。
●設定はVirtual ServerのAdvancedから。
●設定はPeerと常に同期しておくこと。


■Persistence Mirroring
●TCP/1028
●Failover時に後続のクライアント接続を
 適切に振り分けられるようにする。
●Failover時にパーシステンスウィンドウタイマーがスタートする。
●デフォルトは無効。
●有効にしておくことを推奨しているとのこと。
●Cookie Persistenceはクライアントでの保存なので今回は関係ない。
●設定は「Profiles」 の「Persistence」タブから。
●設定はPeerと常に同期しておくこと。


■MAC Masquerading
●VLANのフローティングMACアドレス。
 フローティングIPアドレスを維持する仕組みと殆ど同じ。
 Failover時にActive機が仮想MACアドレスに関連付ける。
 スイッチのCAMテーブル(MACアドレステーブル)が変更されるのみで、
 ルータのARPテーブルは変更する必要がない。
●ARPキャッシュの更新は不要。
●ARPキャッシュの更新に懸念が有る場合に有効。
●両システムで同じMACアドレスを設定する必要がある。
●MAC Masqueradingはシステムごとに設定する必要がある。
●各VLANは固有のハードウェアMACアドレスで起動する。
 で、MAC Masqueradingを使用するにはMACアドレスを作成する。
 フローティングIPアドレスを作成したのと少し似てると思う。
 通常は先頭のオクテットbitを変更し、残りはハードウェア
 MACアドレスの1つをコピーして作成する。
●設定はVLANのAdvancedから。考えたMAC Masqueradeの値を入れる。



その他、実際の設定は1つ後の記事を参照下さい。

http://ameblo.jp/tred2/entry-10647874941.html#main

AD
2010年09月17日

BIG-IPについて 1/2

テーマ:BIG-IP

BIG-IPについて 1/2


●の多さは、や覚えておきたい度や注意度を表しています。



■トライアル版について
90日間使用可能でスループットは1Mbps。
(ラボ版10Mbps 製品版200Mbps/1Gbps)


■読み方
・F5
エフゴやと思ってた。エフファイブと読む。
確かにエフファイブの方がかっこ良いな・・。
・SNAT
エスナットと思ってた。スナットと読む。


■負荷分散対象
サーバだけではなくNW機器も可能。


■L4で動作させる
TCP/UDPの情報までを参照する。
基本的にはポート番号の情報で決定する。


■L7で動作させる
CookieParsistenceを使用したり
HTTPヘッダのUser-Agentを見て判別、など。
1つ目のHTTPリクエストをクライアントからBIG-IPが受信する前の
通信(3ウェイハンドシェイク)はBIG-IPが代理応答する。


■VIPRION(ヴィプリオン)
機器。アプリケーションを停止せずに
性能を追加可能。
複数のブレードを搭載したVIPRIONでは、
1つのブレードを取り外した際に
他のブレードに瞬時に処理が引き継がれる。
管理作業とダウンタイムの発生率を低減。
サーバーでいうところのFTサーバーみたいな感じやね。


■FirePass
機器。セキュアなリモートアクセス。


■ARX
機器。ファイルストレージ仮想化。


■TMOS(Traffic Management Operation System)
トラフィック管理アーキテクチャ。


■iControl
F5のアプリケーショントラッフィクマネジメント製品を
統合するためのインタフェースを提供する。


■MGMT port
マネージメントポート、管理ポート。eth 0:mgmt。
初期IPアドレスは192.168.1.245。
トレーニングの中で、なぜデフォルトが
このアドレスか?っていう質問が面白かった。
コンソール作業はconsole portにシリアルケーブルを
繋ぐ方法でも可能。


■ethernet port
左上から1.1、左下が1.2。
VLANに所属させinternal/externalに割り当てる。


■GigabitSFP
光ファイバや銅線を接続する。


■コンフィグレーションシート
BIG-IPを含むネットワーク設計用に、
F5Networks製のコンフィグレーションワークシートが有る。


■UCS
バックアップファイルとしてファイルをまとめたもの。
ライセンス情報も含まれている。


■Provisioning
リソースを計画的に調達する。
BIG-IP VEでは「Run the Setup Utility 」から設定する。
以下のレベルが有る。
●Dedicated
 システム上で1つのモジュールのみが機能する。
 ※dedicated 訳:献身的な
 ※dedicate 訳:専念する
●Normal
 最小限のリソースを使用し、使用できるリソースが
 ある場合は、そのモジュールに追加リソースを配布する。
●Minimum
 最小限の機能リソースを使用し、追加リソースは
 他のモジュールに分散する。
●None
 別のモジュールに専用リソースが必要。


■ハードウェアプラットフォーム
●BIG-IP LTM 8900シリーズ
クアッドコアCPU x2
16G RAM
16ポート
4ファイバポート
デュアルパワー

●BIG-IP LTM 6900シリーズ
デュアルコアCPU x2
8G RAM
16ポート
4ファイバポート
デュアルパワー

●BIG-IP LTM 3600シリーズ
デュアルコアCPU
4G RAM
8ポート

●BIG-IP LTM 1600シリーズ
デュアルコアCPU
4G RAM
4ポート


■TMM
Linux
トラフィックマネジメントマイクロカーネル。
プライマリのシステム。


■AOM
Always On Managemet
8900,6900,3600,1600に搭載されている。
組み込み型Linux。
Lights Out Managementを行う。
TMM障害時にリモートでアクセスするために
専用のIPアドレスを設定しておく。
設定メニューを表示するにはコンソール画面で
「Escキー」の後に「(」を入力する。
その後メニューリスト中の「N」オプションを選択し
network configuratorを実施する。


■SCCP
Switch Card Control Processing
8800,6400,3400,1500に搭載されている。
組み込み型Linux。
Lights Out Managementを行う。
TMM障害時にリモートでアクセスするために
専用のIPアドレスを設定しておく。
設定メニューを表示するにはコンソール画面で
「Escキー」の後に「(」を入力する。
その後メニューリスト中の「N」オプションを選択し
network configuratorを実施する。


■●●●●●●●●●●●コネクションテーブル
クライアントからBIG-IPへ始めてパケットが到着した時点で
コネクションテーブルへ以下のエントリの値が記載される。
・client side client address
・client side server address
・server side client address
・server side server address
・virtual address
・node address
・protocol
・sequence number from client
・sequence number from server

以後のパケットはこのコネクションテーブルに合致すれば
同じコネクションと見なされる。
FINパケット、RSTパケットが有った場合や
タイムアウトすればこのエントリは破棄される。


■Node
IPアドレス
※IPアドレスのみ。ポートは含まれないことに注意。


■Pool Member
ノード+ポート


■Pool
Pool Membersのグループ


■非対称ルーティング
パケットの行きと帰りが異なるルートを通ること。
行きはBIG-IPを通ってサーバーへ行き、サーバーからの帰りはルータを通る、
など。解決するにはサーバーのデフォルトルート設定かSNATを使用する。


■ロードバランシング方法
種類は以下。Round RobinとRatio以外は動的。
Round Robin・Ratio・Observedが多い。
●Round Robin ラウンド・ロビン(静的)
 順繰りに分散する方法。
 wikipediaに記載の有った語源が面白かった。
●Ratio レシオ(静的)
 前もって振り分ける対象ごとに割合を指定しておく方法。
 訳:比率
●Least Connections リーストコネクション
 現在のコネクション数の最も少ないものへ送信する方法。
●Fastest ファステスト
 未処理のレイヤー7リクエスト数が最も少ないMemberへ送信する方法。
 ping応答時間でもsyn/ack応答時間でも無いことに注意。
 pingだとwebサーバーが返す時間は問わないことになるし、
 syn/ackだとバックエンドサーバーの処理する時間は問わないことになる。
●Observed オブザーブド
 レシオを使用する。1秒ごとにレシオを再割当てしている。
 平均よりコネクション数が少なければRatio 3、
 平均よりコネクション数が多ければRatio 2が割り当てられる。
●Predictive プリディクティブ
 レシオを使用する。1秒ごとにレシオを再割当てしている。
 平均よりコネクション数が少なければRatio 4、
 平均よりコネクション数が多ければRatio 1が割り当てられる。
 なので4倍の差が出る。


●●●レシオを使用するものは判定方法が2種類有る。Memberとnode。
Memberで振り分けている場合のhttpのリクエストは、
httpのコネクション数が最も少ないサーバーへ送信される。
その際はftpなど他のサービスのコネクション数は問わない。
各サービス毎の負荷の差が大きい場合はMemberで振り分けた方が
良いってことかな。
Nodeで振り分けている場合のhttpのリクエストは、
全てのサービスのコネクション数の合計が最も少ない
サーバーへ送信される。なかなか荒っぽい分け方な気がするね。
ポート番号を見ずに振り分けるだけ有って処理速度は速くなるかな。


■Priority Group Activation
Pool Member 6台で1つのPoolを構成し、
3台の優先度を10に、残りの3台の優先度を5に設定する。
この時、Priority Group Activation(2)が設定されていれば
優先度10のMembers3台のみを使用し負荷分散される。
もし優先度10のMembers3台のうち、1台のみ稼働し、
2台が停止している場合は使用可能なPool Memberの最低数
「2台」の設定を下回るために優先度5の3台へも振り分けが
開始される。なので計4台で負荷分散される。

Pool Member 3台で1つのPoolを構成し、
Priorityをそれぞれ3,2,1に設定する。
この時、Priority Group Activationが2に設定されていていれば
Priority 3とPriority 2 の2台のみが使用される。


■Fallback Host(httpのみ)
全Membersがダウンした場合はBIG-IPはhttpリダイレクトを
クライアントへ送信する。
HTTP Profileで設定する。
全Membersがダウンした場合の対処はiRule処理によって、
sorry serverへ振り分けたり、BIG-IP自身がhttpを返すように
することも出来る。


■モニターチェックについて
種類は以下。
●ICMP(アドレスチェック)
ICMP Echoリクエストを発行する。応答として
Echo Replyを予期する。

●●●expected = 予期するって表現は度々BIG-IP資料で出て来る。

「特定の返答データを待つ」もしくは「期待して、待ち受ける」みたいなニュアンスやと思う。
●TCP_Half_Open(サービスチェック)
TCP SYNをパケットを発行して、SYN-ACKを予期。
SYN-ACKを受信したらRESETを発行する。
●HTTP(コンテンツチェック)
接続を開く。接続の完了時にGET/コマンドを発行する。
接続の完了と受信ルールが有る場合は受信ルールへの
応答の一致を予期する。データ(予期されるデータが有る
場合)を受信したら、接続を閉じる。
●FTP(インタラクティブチェック)
接続を開く。接続の完了時にユーザーIDとパスワードを
送信し、指定されたディレクトリへのCWDの発行、及び指定
されたファイル名に対するGET<ファイル名>の発行。接続の
完了およびファイル転送の成功を予期する。
ファイルを受信したら接続を閉じる。


■Statusアイコンについて
●丸い緑色のアイコン
 Available
 Monitorチェックが成功。
 新しいクライアント接続を送信する。
●菱形で赤色のアイコン
 Offline
 Monitorチェックでタイムアウトした。
 新しいクライアント接続は送信されない。
●四角で青色のアイコン
 Unknown
 Monitorが割り当てられていないか、
 Monitorチェックの結果がまだ分からない。
 新しいクライアント接続を送信する。
●●●●●Unknownでも接続を送信することに注意する。
・三角で黄色のアイコン●Unavailable
 設定されたコネクション数の制限に達している。
 新しいクライアント接続は送信されない。


・Virtual SeverのStatusは、Virtual Severに
 関連付けしたPoolsのStatusによって決定されることに注意する。
・「Network Map」で、全てのStatusが一覧できる。
 システムの稼働状況が一目で分かる。
 左ウィンドゥの「Local Traffic」 - 「Network Map」から。


■Profileについて
希望するトラフィック動作を定義しておく。
特定のVirtual Serverを介したトラフィック処理方法を
BIG-IPに指示する。
パーシステンスプロファイルはVirtual Serverのデフォルトの
負荷分散方法よりも優先される。負荷分散方法を上書きする訳ではない。
複数のVirtual Serversに適用できるので便利。
デフォルトProfile(テンプレート)の格納場所は
/config/profile_base.conf。削除は出来ない。
デフォルトProfileそのものを編集することは推奨しない。
カスタムProfilesの格納場所は/config/bigip.conf。
デフォルトProfileから作成する、Windowsの
グループポリシーを思い出すね。
親子関係が有る。子プロファイルを作成終了した後で
親プロファイルを変更した場合、子プロファイルの設定の中で
ただ単に親プロファイルから引き継いだけの設定
(Customチェックボックスにチェックが入っていない項目)は、
影響を受けて(動的に)変更される。
例外として親プロファイルから引き継いだだけだが、
Customチェックボックスにチェックを入れていた項目については
静的とみなされ、変更されない。


■Profileの例
●Services
●Persistence
 Persistenceの詳細は
 以下の「■Persistenceについて」を参照。
●SSL
 ClientSSL Profilesを有効にするには
 以下の「■SSL TerminationとClientSSL」を参照。
●FTP
通常、サーバー発信のクライアントへのパケットはBIG-IP LTMで破棄される。
荒っぽく言うと既定動作としてクライアントからの応答パケットしか返せない。
なのでFTPの動作(クライアントからポート21で制御接続を開始して
サーバーがポート20でデータ転送を開始する。)の場合、
FTP Profileを使用しなければサーバーのイニシエーションパケット
(Initiation packet)はクライアントに到着しない。


■Profileの種類
●Servers Profiles
レイヤー7関連。HTTPやFTP。
●●●●●●●●●iRuleでHTTP_REQUESTを使用して処理させている時など、
BIG-IPがそれら見る必要がある場合には必ずHTTPのProfileを設定しておくこと。
●Persistence Profiles
Cookieやsource address。
●Protocol Profiles
レイヤー4関連
TCPやUDPやFastL4
●SSL Profiles
ClientSSLかServerSSLのどちらか。
暗号化されるトラフィックの名前が関連付けられる。
●Authentication Profiles
負荷分散の前に認証サーバーと連携してクライアント認証を行う。
LDAP、RADIUS、TACACS+。
●その他
Stream Profile。サーバーからクライアントへコンテンツが配信
される前にBIG-IPによってコンテンツを変更できる。


■●●●●●●●●●Profileの依存関係
1部のProfileは他のProfileに依存する。
●●●Cookie Profileを使用するならHTTP Profileが必要
HTTPヘッダを読み取る必要があるため。
●●●HTTP ProfileにはTCP Profileが必要。
●●●SSL ProfileにはTCP Profileが必要。
(SSL Termination、ClientSSL及びServerSSLを使用する場合など)
以下の「■レイヤー4 Plofiles」を参照する。

■レイヤー4 Plofiles
●●●全てのVirtual Serversにレイヤー4 Plofileが存在している。
●●●よく使用されるPlofileはTCP・UDP・fastL4。
●●●自動的にVirtual Serverが設定する。


■共存できないProfile
Virtual ServerにProfileを設定する場合、HTTPとFTPは共存不可。
TCPとUDPも共存不可。


■Persistenceについて
●Cookie(Cookie Persistence)
HTTPプロトコルにしか対応していない。
HTTPSで使用する場合はSSL Terminationを使う。
クライアントでcookieを無効にしてるか日付がoffの場合、
送信されない可能性が有る。
●●●ここで扱うCookie=「特別なCookie」はプール名と
プールメンバー(エンコード)が含まれている、ということが重要。
Cookie Persistenceのモードは以下。
●Insert Mode
 BIG-IP LTMが「特別なCookie」(プール名とプールメンバー(エンコード))を
 HTTP応答に入れ込んでクライアントに返す。
 期限切れで有れば新しいタイムスタンプで新しいCookieを入れ込む。
 Cookieの最大保存容量の4Kバイトを超えればエラーになることに注意。
 サーバーは「特別なCookie」の存在すら知らないし、貰う時は無い。

●Rewrite Mode
 サーバーが空のCookieを作成し、
 BIG-IP LTMが、Insert Modeと同じ「特別なCookie」に書き換える。
 サーバーは常に空のCookieをBIG-IP LTMへ渡す。

●Passive Mode
 サーバーが常に「特別なCookie」を作成してBIG-IP LTMへ渡す。
 BIG-IP LTMは受動的に使用する。

●ソースIPアドレス(Source Address Persistence)
ネットマスクで判断する方法です。 
デフォルトのネットマスクは/32。それを/24にしたりする。
/32にした場合は接続しに来た全てのIPアドレスがPersistence Recordで
管理されその分BIG-IP負担になる、と思われる。
NATデバイスやproxyサーバーを通過する場合など、
同じIPから大量にアクセスされる場合はサーバの負荷が偏る。
HTTPS Virtual Serverでも使用可能。IPアドレスは暗号化されないため。
Source Address Persistenceの項目で記述設定できるのはTimeoutとmask。

●SSLセッションID(SSL Session ID)
SSLセッションIDで判断する方法。
セッションIDがブラウザで時間毎に変更されるためあまり有用ではない。

●ユーザーID・サーバID
cookieに対応していない携帯端末向けサイトなど
前回接続したサーバの情報(サーバID)をサーバ側でURLに埋め込み、負荷分散機器がそれを読み込む。
URL等に端末個体識別情報が含まれる場合はそれのハッシュ値により接続維持が可能。

●デスティネーションアドレスアフィニティ(Destination Address Affinity)
キャッシュサーバのキャッシュ内容を使用する。


■Persistence Record
最初の接続時にBIG-IPがセッションデータを追跡し
Persistence Recordに保存する。
クライアントの特性やクライアントリクエストを
処理したPool Memberの情報が含まれる。
この情報を使用して再接続クライアントが決定される。
Persistence Recordの有効期間内では同一のPool Memberへ送信される。
ここでのセッションとはクライアントとPool Member間との
仮想的な通信リンク、個別の接続のセット。


■Administrative State
サーバー保守等で新しい接続を一旦停止する場合など使用する。
Virtual Servers、Pool Members、Nodesに対して設定する。
DisabledやForced Offlineへ変更しても、即時既存のトラフィックが
切断される訳ではない。セッションが終了するかタイムアウトしない
限りは維持し続ける。
Administrative Stateを変更した場合、Monitor Statusアイコンが
Administrative Statusアイコンになる。Administrative Stateは以下の3つ。

実際の設定欄には以下のように説明されている。(Pool Menberへの設定時)
・Enabled (All traffic allowed)
・Disabled (Only persistent or active connections allowed)
・Forced Offline (Only active connections allowed)

●Enabled
デフォルト状態。Monitorによって状態が決定される。

●Disabled
現在開かれてる接続と、
再接続クライアントの接続(=Persistence Recordに一致する接続
=パーシステント セッション)を通す。
Disabledにすると、Monitor Statusアイコンが真っ黒の
Administrative Statusアイコンになる。形は変わらない。
もし全MemberをDisabledにしても再接続クライアントは通すため、
PoolはAvailableのまま。当然Poolの状態を参照するVirtual ServerもAvailableのまま。

●Forced Offline
現在開かれてる接続のみ通す。
Persistence Recordなどは参照されない、無理。
Monitorチェックは実行されない。
Forced OfflineになるとAdministrative Statusアイコンが
どんな色や形で有ったにしろ、真っ黒で菱形のAdministrative Status
アイコンに変化する。OfflineでDisabledの真っ黒菱形アイコンと
見分けがつかなくなるけどね。その場合はアイコンの上にカーソルを
乗せれば説明が表示されるのでそれを確認すること。
もし全MemberがForced Offlineになると新しい接続は受け付けないため
PoolはDown/Offlineとなる。当然Poolの状態を参照するVirtual ServerもDown/Offlineとなる。

2010年09月16日

BIG-IP コマンド一覧

テーマ:BIG-IP

●以下のコマンド群はV9の時のコマンドです。

 最近はTMSHでの入力になっていてV11ではbig pipe等のコマンドは

 おそらく無いかもしれません。


----------------------------------------------------

※2011年9月24日 追記

TMSH、V10、V11について詳しく紹介しているサイトが有りました。

http://d.hatena.ne.jp/eco31/20110227

----------------------------------------------------

BIG-IPのコマンドを詳しく紹介しているサイトが有りました。

http://tejunsho.com/big-ip/

http://alpha-netzilla.blogspot.com/2011/07/big-ip.html

----------------------------------------------------


■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■■■big-ipのコマンド一覧


config  マネージメントIP等の設定
tmstat  現在時刻・CPU使用率・メモリ割り当ての表示
qkview  quick view。情報一括取得。他処理を圧迫しないためにniceコマンドと併用すること。
bigtop  負荷分散の概要表示 対象のin/out等。virtual serverはip+portで表示。
bigtop -vname  負荷分散の概要表示 virtual serverは名前で表示。
bigtop -scroll  フルスクリーンモードを無効にする。(更新表示)



bigpipe version  バージョンと使用可能な機能の表示
bigpipe virtual  virtual serverとpoolの関連状態表示
bigpipe pool  poolとpool memberの状態表示
bigpipe vlan  vlanの状態表示
bigpipe node  nodeの状態表示(オプション有り)
bigpipe monitor  monitorの状態表示
bigpipe mirror  mirrorの状態表示
bigpipe failover  failoverの状態表示(オプション有り)
bigpipe http  GLOBAL HTTP STATISTICS。
bigpipe icmp  (リセットはbigpipe icmp stats reset)
bigpipe tcp  GLOBAL TCP STATISTICS。
bigpipe udp  GLOBAL UDP STATISTICS。
bigpipe platform  プラットフォーム表示。CPU型名や物理メモリ量等。
bigpipe persist  パーシステンステーブルの表示。
bigpipe ha table  (b ha table show) HAテーブルを表示
bigpipe global  GLOBAL STATISTICS。TMM traffic等。
bigpipe db  環境設定値等表示
bigpipe unit  unitsの表示
bigpipe user  userの表示
bigpipe memory  memoryの総計、詳細表示
bigpipe mgmt  マネージメントポートについて
bigpipe mgmt route  マネージメントルートについて

bigpipe config sync show  コンフィグ同期状態



bigstart list
bigstart status  サービス状態表示



b オプション無しだとbに関するオプション表示。/usr/bin内のbもbpもbigpipeへのリンクです。

b pool (Virtual Server名) delete
b pool (Virtual Server名) {member (実サーバIP):(実port番号)}
b pool (Virtual Server名) member (実サーバIP):(実port番号) add
b pool (Virtual Server名) member (実サーバIP):(実port番号) delete
b pool (Virtual Server名) member (実サーバIP):(実port番号) session enable
b pool (Virtual Server名) member (実サーバIP):(実port番号) session disable


b virtual (Virtual Server名) delete

b virtual (Virtual Server名) {destination (仮想サーバIP):(仮想port番号) pool (Virtual Server名) profile http enable}
b virtual (Virtual Server名) {destination (仮想サーバIP):(仮想port番号) pool (Virtual Server名) profile http persist (Virtual Server名) enable}


b profile persist (Virtual Server名) delete
b profile persist (Virtual Server名) {mode cookie cookie mode hash cookie name (cookie名) cookie hash offset 0 cookie hash length 4}


b config save ファイル名
b config sync


b failover standby  スタンバイへ移行する

b failover show


b ha table show  High Availabilityテーブル表示

b list

b vlan

b node (実サーバIP) delete

等々




■■■big-ipで使用するlinuxコマンド


top  タスクマネージャー表示
netstat  Active Internet connection、Active UNIX domain socket
uptime  稼働時間表示
ls  ファイル等表示
ifconfig  インターフェース関連
arp  arp関連
reboot  再起動
halt  終了

等々



■■■qkviewで実行されるコマンド群
date  システムクロック表示
cat /VERSION  バージョン表示
b fo show  フェールオーバー状態表示
b version  バージョンと使用可能な機能の表示
who -aH  ログイン中ユーザー表示
grep -i TOTAL_TPS /config/bigip.license  SSL TPSに関する情報
b platform  プラットフォーム表示。CPU型名や物理メモリ量等。
eud_info  EUD情報
b config check all  
b list  vitual server、monitor、clientssl等々。
b base list  システム状態、VLANやfailover等。
bigstart status  サービスの起動状態
b ha table  HAテーブル
b unit show  unit
b global stats show  GLOBAL STATISTICS。TMM traffic等。
b ip stats  IPv4、IPv6統計
b tcp stats show  
b udp stats show  
b ssl stats show  
b http stats show  
b icmp stats  
bigtop -n -once  負荷分散情報
b profile show all  profile
b db show  環境設定値
b memory show all  memoryの総計、詳細表示
b interface show all -j  インターフェース情報(b interface showは概要)
b trunk show -j  トランク情報
b trunk show all -j  
b interface stp show  b インターフェース名(例 interfece 1.1) stp show ではstpの有効、無効
b arp show  arp
b mgmt show  マネージメントポート情報
b mgmt route show  マネージメントルート情報
b vlangroup show  VLAN Group情報
b self show  SelfIP情報
b route show  ルート表示
b vlan show -j  VLAN情報
b vlan fdb show  VLAN(fdb)
b stp show  スパニングツリー情報
b virtual all destination show  各virtual server Destination
b virtual show  virtual serverとpoolの関連状態表示
b virtual address show  
b rule show  RULE情報
b pool show  POOL情報
b pool member show  
b node show  
b snat show  
b snatpool show  
b nat show  
b mirror show  
b monitor show  
b monitor list all  
b node monitor show  
b profile tcp show  
b profile udp show  
b profile http all ramcache show  
b profile http all ramcache aging rate show  
b profile http ramcache ignore client cache control show  
b profile http all ramcache insert age header show  
b profile http all ramcache max age show  
b profile http all ramcache max entries show  
b profile http all ramcache max object size show  
b profile http all ramcache min object size show  
b profile http all ramcache size show  
b profile http all ramcache uri exclude show  
b profile http all ramcache uri include show  
b profile http all ramcache uri pinned show  
b class ip show  
b class string show  
b class value show  
b auth radius show  
b auth ldap show  
b auth tacacs show  
b ocsp responder show  
b packet filter show  
b radius server show  
b daemon list  
bigstart list  
df -ik  空き容量
df -i  
df -h  
ping -q -c3 127.0.0.1  
switchboot -l  
switchboot -d  
ifconfig -a  
arp -an  
ip -f inet link show  
ip -f inet6 link show  
ip -f link link show  
ip -f inet addr show  
ip -f inet6 addr show  
ip -f ipx addr show  
ip -f dnet addr show  
ip -f link addr show  
ip -f inet route show  
ip -f inet6 route show  
ip -f link route show  
ip -f inet rule show  




設定や用語は以降の記事を参照下さい。


[PR]気になるキーワード