ラベル L4 の投稿を表示しています。 すべての投稿を表示
ラベル L4 の投稿を表示しています。 すべての投稿を表示

2012年10月31日水曜日

A10 ロードバランサを運用する前に覚えておきたいポイント


A10のAXシリーズを運用するうえで必要な最低限の知識をまとめておく。

※同様の機能を提供する機器としてはBIG-IPが有名だろう。


 コマンド
※enableモードへの移行は省略している

【機器情報】
● バージョン、その他機器情報の確認
# show version


【作業、障害時操作】
● ActiveかStandbyかの確認
# show ha

● Active/Standby切り替え
ActiveかStandbyかはプロンプトにも表示される。
コマンドはactive側で実施する。
# configure
(config)# ha force-self-standby

● Active/Standbyの切り戻し
切り戻しはStandby側で先の設定を無効にし、
(config)# no ha force-self-standby

切り替わった新active側で再度下のコマンドをを実施する。
(config)# ha force-self-standby

● リアルサーバの組み込み
# configure
(config)# slb server $リアルサーバ名
(config-real server)# enable

● リアルサーバの切り離し
# configure
(config)# slb server $リアルサーバ名
(config-real server)# disable

● コネクション数変更
# configure
(config)# slb server $リアルサーバ名
(config-real server)# conn-limit XXXX


【リソース】
●  各DataCPUコア毎に利用率を表示
# show cpu

●  メモリ利用率を表示
# show memory system


【トラフィック】
● バーチャルサーバ単位での負荷分散ステータスを表示
# show slb virtual-server
extended-stats キーを入れておかないと過去の統計(最大のトラフィックetc)は見れない

ヘルスチェックのステータス確認にはbindオプションをつけた方が分かりやすい
# show slb virtual-server bind

● サービスグループ単位での負荷分散ステータスを表示
# show slb service-group

● サーバ単位での負荷分散ステータスを表示
# show slb server

● サーバヘルスチェックステータス表示
# show health stat

● インターフェイスのステータスと各種カウンタの表示
# show statistics interface

● SLBセッションのサマリ表示
# show session brief

● パーシステンステーブルの表示
# show session persist src-ip / dst-ip

パーシステンステーブルを削除することもできる。
テーブルを初期化することでトラフィックの偏りなども均質にできる可能性がある。
# clear session persist src-ip / dst-ip

● Arpテーブル表示
# show arp

● MACテーブル表示
# show mac

● IP FIBテーブルを表示
# show ip fib

● IP Rougingテーブル(RIB)を表示
# show ip route

● L2/3 パケット処理のステータス表示
# show slb switch


【コンフィグ】
● コンフィグレーション確認
# show startup-config

# show running-config

● 保存
# write memory

● コンフィグレーション同期
active側で実施する。
(config)# ha sync all to-running-config

(config)# ha sync all to-startup-config


【デバッグ】
● AXのディスク上の保存されたシステムログの表示
# show log

● その時点のシステム、プロセス関連のステータス情報のスナップショットを出力
# show techsupport

● 本体温度、FAN、電源の状態を確認
# show environment

● ログ情報の保存
# backup log ftp://*.*.*.*/ax_backup.tgz
User name []? ****
Password []? ****
※アップロードを行うプルトコルはtftp, ftp, scp, rcp が可能

● パケットキャプチャ
モードを変更する。
# axdebug

キャプチャsするfilterを定義する(絞り込みたい)場合の設定
(axdebug)# filter 1
(axdebug-filter:1)# ip 1.2.3.4 /32

キャプチャするパケット数の定義
ax(axdebug)# count <0-65535>
※デフォルトは3000 パケットまで。0 で設定上の上限なし

キャプチャ時間の定義
(axdebug)# timeout <0-65535>
※分単位で設定。デフォルト5分。0 で設定上の上限なし

キャプチャの開始
(axdebug)# capture non-dispaly save <file name>

キャプチャの状態確認
(axdebug)# show axdebug status

キャプチャファイルの確認
(axdebug)#show axdebug file

キャプチャの停止
(axdebug)# no axdebug

キャプチャファイルのエクスポート
(axdebug)# export axdebug file_name ?
use-mgmt-port Use management port as source port
tftp: Remote file path of tftp: file system(Format: tftp://host/file)
ftp: Remote file path of ftp: file system(Format: ftp://[user@]host[:port]/file)
scp: Remote file path of scp: file system(Format: scp://[user@]host/file)
rcp: Remote file path of rcp: file system(Format: rcp://[user@]host/file)
※キャプチャファイルはpcap形式でZIP圧縮された状態でエクスポート

キャプチャファイルの削除
(axdebug)# delete <file_name>



 設定変更
【white, blackリストの更新】
接続元のIPアドレスを元に振り分けるサーバを
制御している場合もあるだろう。
そのIPリスト更新する手順を残しておく。

ここではslb template policy内で以下のように定義しているとする。

ip_list(名前はip_list_oldとする)であるのIPアドレス群を管理し、
接続元IPアドレスがそのリスト内でマッチしたら、
http_matchグループへ飛ばす。

slb template policy bwlist_http
   bw-list name ip_list_old
   bw-list id 1 service-group http_match
  (略)

このIPリストを以下のように更新する。
変更前:ip_list_old
変更前:ip_list_new


1. IPリストのインポート
事前に任意のサーバにIPリストは配置しておくこと。

IPリスト例
network x.x.x.0/24 1
network y.y.y.0/24 1
network z.z.z.0/24 1
※最後の数字はtemplateのpolicy内で指定したbw-listのidである。

# import bw-list ip-list_new scp://<ID>@<サーバアドレス>/<パス>/<リスト名>


2. IPリストの確認
# show bw-list
適用しているi-listが表示される

# show bw-list ip-list_new detail
※GUIでは仕様上、全行が表示されない為、CLIから確認すること


3. IPリストの更新
ip_list_newに入れ替える。
コマンド実行直後から新しいIPリストが適用される。
# conf terminal
(config)# slb template policy bwlist_http
bw-list name ip_list_new


4.不要なIPリストの削除
# conf terminal
(config)# no bw-list ip_list_old

実際は切り戻しのため最低1世代前は残し、2世代前のものを削除する、
などの方針のほうがよいだろう。


5.コンフィグ保存


6.コンフィグ同期
同期をとる前に2点注意がある。
・peer機器でも上記手順1(IPリストのインポート)を実施しておくこと
・また、IPリスト名は両機器で揃えておくこと



障害発生時TRAP内容
● trap内容
発報メッセージ OID

レベル CRITICAL
axSystemShutdown                .1.3.6.1.4.1.22610.2.4.3.12.2.1.2
axFan1Failure                   .1.3.6.1.4.1.22610.2.4.3.12.2.1.4
axFan2Failure                   .1.3.6.1.4.1.22610.2.4.3.12.2.1.5
axFan3Failure                   .1.3.6.1.4.1.22610.2.4.3.12.2.1.6
axUpperPowerSupplyFailure       .1.3.6.1.4.1.22610.2.4.3.12.2.1.9
axLowerPowerSupplyFailure       .1.3.6.1.4.1.22610.2.4.3.12.2.1.10
axPrimaryHardDiskFailure        .1.3.6.1.4.1.22610.2.4.3.12.2.1.11
axSecondaryHardDiskFailure      .1.3.6.1.4.1.22610.2.4.3.12.2.1.12
axSystemRestart                 .1.3.6.1.4.1.22610.2.4.3.12.2.1.15
axHAStandby                     .1.3.6.1.4.1.22610.2.4.3.12.2.2.1
axServerDown                    .1.3.6.1.4.1.22610.2.4.3.12.2.2.6
axServiceDown                   .1.3.6.1.4.1.22610.2.4.3.12.2.2.4
axVirtualServerPortDown         .1.3.6.1.4.1.22610.2.4.3.12.2.2.12

レベル NOTICE
axSystemTempHigh                .1.3.6.1.4.1.22610.2.4.3.12.2.1.3
axHardDiskUsageHigh             .1.3.6.1.4.1.22610.2.4.3.12.2.1.13
axMemoryUsageHigh               .1.3.6.1.4.1.22610.2.4.3.12.2.1.14
axSystemDropPacketEvent         .1.3.6.1.4.1.22610.2.4.3.12.2.1.16
axSystemControlCpuHigh          .1.3.6.1.4.1.22610.2.4.3.12.2.1.18
axSystemDataCpuHigh             .1.3.6.1.4.1.22610.2.4.3.12.2.1.19
axHAActive                      .1.3.6.1.4.1.22610.2.4.3.12.2.2.2
axHAActiveActive                .1.3.6.1.4.1.22610.2.4.3.12.2.2.3
axServerConnLimit               .1.3.6.1.4.1.22610.2.4.3.12.2.2.8
axServiceConnLimit              .1.3.6.1.4.1.22610.2.4.3.12.2.2.10
axServerConnRateLimit           .1.3.6.1.4.1.22610.2.4.3.12.2.2.19
axServiceConnRateLimit          .1.3.6.1.4.1.22610.2.4.3.12.2.2.20
axNetworkTrunkPortsThreshold    .1.3.6.1.4.1.22610.2.4.3.12.2.3.1
axApplicationBufferReachLimit   .1.3.6.1.4.1.22610.2.4.3.12.2.2.14
axVirtualServerReachConnLimit   .1.3.6.1.4.1.22610.2.4.3.12.2.2.17
axVirtualServerPortReachConnLimit       .1.3.6.1.4.1.22610.2.4.3.12.2.2.15
axVirtualServerPortReachConnRateLimit   .1.3.6.1.4.1.22610.2.4.3.12.2.2.16
axVirtualServerReachConnRateLimit       .1.3.6.1.4.1.22610.2.4.3.12.2.2.18

レベル INFO
axSystemStart                   .1.3.6.1.4.1.22610.2.4.3.12.2.1.1
axSystemRelieveDropPacketEvent  .1.3.6.1.4.1.22610.2.4.3.12.2.1.17
axServiceUp                     .1.3.6.1.4.1.22610.2.4.3.12.2.2.5
axServerUp                      .1.3.6.1.4.1.22610.2.4.3.12.2.2.7
axServerConnResume              .1.3.6.1.4.1.22610.2.4.3.12.2.2.9
axServiceConnResume             .1.3.6.1.4.1.22610.2.4.3.12.2.2.11
axVirtualServerPortUp           .1.3.6.1.4.1.22610.2.4.3.12.2.2.13



統計情報取得用mib
【トラフィック】
● axVirtualServerStatTable
Get the virtual server statistics table.

axVirtualServerStatName
.1.3.6.1.4.1.22610.2.4.3.4.2.1.1.2

axVirtualServerStatCurConns
.1.3.6.1.4.1.22610.2.4.3.4.2.1.1.9

● axServiceGroupStatTable
Get the service group statistics table. This table shows statistics for service groups.

axServiceGroupStatName
.1.3.6.1.4.1.22610.2.4.3.3.2.1.1.1

axServiceGroupStatCurConns
.1.3.6.1.4.1.22610.2.4.3.3.2.1.1.7

● axServiceGroupMemberStatTable
Get the service group member statistics table.

axServiceGroupMemberStatName
.1.3.6.1.4.1.22610.2.4.3.3.4.1.1.1

axServiceGroupMemberStatCurConns
.1.3.6.1.4.1.22610.2.4.3.3.4.1.1.11


【ディスク】
● axSysDiskTotalSpace
Get the total amount of space on the AX hard disk. The space is measured in Megabytes (MB).
.1.3.6.1.4.1.22610.2.4.1.4.1

● axSysDiskFreeSpace
Get the amount of hard disk space that is currently free (unused). The space is measured in MB.
.1.3.6.1.4.1.22610.2.4.1.4.2


【プロセッサ】
● axSysAverageControlCpuUsage
Description Gets the average control CPU utilization over the last 5 seconds.
.1.3.6.1.4.1.22610.2.4.1.3.4

● axSysAverageDataCpuUsage
Description Gets the average data CPU utilization over the last 5 seconds.
.1.3.6.1.4.1.22610.2.4.1.3.5


【メモリ】
● axSysMemoryTotal
Get the total amount of memory on the system. Memory is measured in Kilobytes(Kb).
.1.3.6.1.4.1.22610.2.4.1.2.1

● axSysMemoryUsage
Get the amount of memory that is currently in use. Memory is measured in Kb.
.1.3.6.1.4.1.22610.2.4.1.2.2



2011年7月13日水曜日

F5 BIG-IP を運用する前に覚えておきたいポイント

BI-IPを運用するうえで必要な最低限の知識をまとめておく。

本blog内のコンテンツは下記の通りである。
  ハードウェア
  各種コマンド
  ログ
  設定
  設定の永続化・同期
  設定のバックアップ
  統計(mib情報)
  TRAP
  はまりどころ

※同様の機能を提供する機器としてA10があるだろう。



 ハードウェア
【目視によるハードウェアの状態確認】
緑:active 橙:standby


【ステータス消しこみ】
active、standbyの切り替わり履歴があると点灯し続ける。

消去手順
1. 前面の☑ボタンを押す
2. clear all warnings alerts?
3. もう一度☑ボタンで実行



 各種コマンド
【停止処理】
● 再起動
reboot
shutdown -r now


【ハードウェア関連】
※tmsh系のコマンドとb系のコマンドをできる限り併記していく。
● バージョン確認
show sys version
b version

● ステータス確認
show sys hardware
b platform show
シリアルナンバーもここから確認できる。

● 解析情報の取得
nice -n 19 qkview
システムに負荷を与えるのでniceを頭につけている。
結果はファイルに吐き出される(1~2分かかる)。

より簡易的なシステム情報を取得するなら下でもよい。
qkview-lite


【リソース】
● CPU、メモリの状態の確認
tmstat

linuxで使えるtopコマンドも利用できるが、
そこで表示されるCPUなどのリソースの見え方に相違がある。
tmmstatコマンドはtmmプロセスの観点でのリソース情報である。
tmmプロセスとはBig-IPのトラフィックを処理しているメインプロセスである。


【ネットワーク】
● インターフェースの確認
show net interface
b interface show

● macアドレステーブルの確認
show net fdb all
b vlan all fdb show

● arpテーブルの確認
show net arp all
b arp show

● ルーティングの確認
show net route all
b route show

● vlanの確認
show net vlan all
b vlan all trunk

● コネクションの確認(全体)
show sys connection
b conn show
linux系のnetstatコマンドでも代用可能。

コネクションをすべて表示するので気をつけること。
show系のコマンドはすべて、ファイルに書き出すことができる。

show ~ save-to-file <ファイル名>

出力が多いものはファイルに吐いた方がいいだろう。
ディフォルトの保存ディレクトリは/shared/配下である。

● LBが保持しているパーシステンステーブルを表示
show ltm persistence persist-records
b persist

また、tmshからpersistenceテーブルを消すこともできる。
既に張られたコネクションには影響は与えない。
delete ltm persistence persist-records

● コネクションの確認(pool単位)
ノードとプールの情報を表示するコマンドからgrepしてもいいだろう。
show ltm pool | grep -e Ltm::Pool -e "Current Connections"
b pool show | grep -e Ltm::Pool -e "Current Connections"

● コネクションの確認(node単位)
show ltm node | grep -e Ltm::Node -e "Current Connections"
b node show | grep -e Ltm::Node -e "Current Connections"

● TCPコネクションテーブルの確認
show sys connection protocol tcp
b conn show


コネクションの推移を動的にモニタリングしたい場合はbigtopが便利だろう。
bigtop -n -delay 10
-n : display ip address in numeric format
-delay value : number of seconds between samples (default: 4)


【ロードバランス】
● active、standbyの状態の確認
show sys failover
b failover show

● active、standbyの状態の詳細な確認
show cm show traffic-group

● active、stanbyの切り替え(failover) ※active側で実施
run sys failover standby
b failover standby

● vertualサーバの確認
show ltm virtual
b virtual show

list ltm virtual
b virtual list
listオプションはコンフィグの情報を表示する。

● poolの確認
show ltm pool
b pool show

list ltm pool
b pool list

● nodeの確認
show ltm node
b node show

list ltm node
b node list

● poolのメンバの切り離し / 組み込み(バージョンにより異なる)
※<>は環境依存部分である(タブで補完可能)
切り離し方法には2通りある。
~user-disabled:新規セッションを受け付けない(persistセッションがあれば受け付ける)
~user-down:新規セッションとpersistセッションを受け付けない

modify ltm pool <pool> members modify { [pool <node:port>] { session user-disabled / user-enabled } }
もしくは
modify ltm pool <pool> members modify { [pool <node:port>] { state user-down / user-up } }
b pool <pool> member <ip:port> down / up
b pool <pool> member <ip:port> session user disabled / enabled
b pool <pool> member <ip:port> session disable / enable

● ノードの切り離し / 組み込み(バージョンにより異なる)
modify ltm node <node> session user-disabled / user-enabled
もしくは
modify ltm node <node> state user-down / user-up
b node <ip> down / up
b node <ip> session user disable / enabled
b node <ip> session disable / enable


【その他】
● ヘルスチェック(health check)の設定確認
list ltm monitor



 ログ
● ログの確認
tail -f /var/log/ltm
show sys log all
show sys log ltm lines 100



 設定
【snmp周り】
● 設定ファイル
普通のLinuxのsnmpdと同じ設定でいける。
/config/snmp/snmpd.conf

● 再起動
bigstart restart snmpd
tmsh restart sys service snmpd
コンフィグの同期ではsnmpの設定は反映されない。


【最大コネクション数の設定変更例】
● 設定変更
modify ltm node <node> connection-limit <number>


【healthチェックの設定例】
● 設定追加
create ltm monitor http /Common/TCP80 {
  debug no
  defaults-from /Common/http
  destination *:80
  domain example.com
  interval 5
  time-until-up 0
  timeout 16
}


【リアルサーバの設定例】
● 設定追加
create ltm node /Common/test_node1 {
  address 192.0.2.1
  connection-limit 5000
  monitor /Common/icmp
}


【サービスグループの設定例】
● 設定追加
create ltm pool /Common/web_pool {
  members add {
    /Common/test_node1:80 {
      address 192.0.2.1
    }
    /Common/test_node2:80 {
      address 192.0.2.2
    }
  }
  monitor /Common/tcp_half_open
}


【vipの設定例】
● 設定追加
create ltm virtual /Common/web_vip_80 { 
  destination /Common/192.168.2.3:80
  ip-protocol tcp
  mask 255.255.255.255
  profiles {
    /Common/tcp { }
  }
  source 0.0.0.0/0
  translate-address enabled
  translate-port enabled
}

● 設定確認
list ltm virtual
b node all monitor show

● 状態確認
show ltm virtual



【iRulesを使ったIPリストによる振り分けルール】
iRulesを使い、接続元のIPアドレスを元に振り分けるサーバを
制御している場合もあるだろう。
そのIPリストを更新する手順を残しておく。

IPリスト例
network x.x.x.0/24,
network y.y.y.0/24,
network z.z.z.0/24

1. IPリストを配置する
アクティブ、スタンバイ両系にscp等でリストを配布する。
今回は新規に"ip_list_yyyymmdd"に入れ替えるとする。

/var/tmp/datagroup/ip_list_yyyymmdd

以下操作はアクティブ系のみで実施する。
2. IPリストの参照先を入れ替える
tmsh
modify ltm data-group external ip_list source-path file:/var/tmp/datagroup/ip_list_yyyymmdda
コマンド実行後すぐに、新しいIPリストが適用される。

3.新IPリストの確認
・CLIで確認する場合
edit sys file data-group ip_list

編集モードでしか確認できないので確認観点では若干不便である。
ファイル名を直接参照したほうがいいだろう。
リスト名はシステマティックに決められる。
cat /config/filestore/files_d/Common_d/data_group_d/~ip_list~

・GUIで確認する場合
Mainメニュー ⇒ System ⇒ File Management ⇒ Data Group File List
ip_list"を選択 ⇒ Definitionボックス内に表示されるIPリストから確認できる。

4.コンフィグ同期
既記述例の通りである。
コンフィグの保存は不要である。


【フィルタの設定】
● フィルタの追加
1. GUIでアクティブ側のBIG-IPにログイン
2. Network→Packet Filterを選択
3. Rulesボタンを選択後、Create ボタンを選択
4. Configurationで必要項目の設定
 Name:名前の設定
 Order:追加行の入力順序を指定
  First:Filterの一番最初に追加
  Last:Filterの一番最後に追加
  After:特定のFilter Ruleの後に追加
     Afterを選択すると右に設定欄が出てくるので、
     この右欄でどのFilter Ruleの後に適用するか決定
  Action:Accept /Discardから選択
  Apply to VLAN:適用するVLANを指定
 設定例
  Name →  FL-1
  Order →  Firstを選択
  Action → Acceptを選択
  Apply to VLAN → SCを選択

5. Filter Expression MethodよりEnter Expression Textを選択
  Filter ExpressionにFilterを記述
  設定例
  filter { ( proto TCP ) and ( src net 192.0.2.0/24 ) and \
( dst host 198.51.100.1 ) and ( dst port 80) }

6. Finished を選択

7. 全てのFilter追加が終了した後、active系で設定を保存し、

 スタンバイ側へ情報を同期させる(◆ 設定の保存 にて説明)


● フィルタの削除
1. Network→Packet Filterを選択
2. Rulesボタンを選択
3. 削除したいFilterにチェックを入れ、Deleteボタンを選択
4. 全てのFilter追加が終了した後、10.3 config同期方法を実施し、スタンバイ側へ情報を反映させる




 設定の永続化・同期
● 保存
アクティブ側でまず設定保存。
save sys config partitions all
b save all

その後スタンバイには同期をかければよい。
● 同期
acvive機にてactiveのコンフィグをstandby側へ反映させる。
(CUI)
run cm config-sync to-group <DEVICEGROUPNAME> ※v11系
デバイスグループ名はタブで保管できる
run sys config-sync ※v10系
b config sync
※Sync失敗時はLBの時刻を要確認
 時刻が30秒以上ずれていると同期ができない

(GUI)
1. GUIでアクティブ側のBIG-IPにログイン

2. Device Management→Overviewを選択(Ver 11)
  System→High Availability→ConfigSyncを選択(Ver 10)

3. DeviceにてActive機器を選択(Ver 11)
  Synchronize TO Peerを選択(Ver 10)
   Sync OptionにてSync Device to Groupを選択
   Overwrite Configurationにチェックを入れ、
   Syncボタンにてsyncを実行

4. ログが出力されるので、ログにエラー情報が出力されていないことを確認しOKを選択




 設定のバックアップ
【テキスト】
● 保存
設定自体をファイルに保存するにはこのコマンドが使える。
save sys config file ファイル名.scf


【UCS】
● UCSファイルへの保存
(CUI)
save sys ucs ファイル名
b config save ファイル名
※/var/local/ucs/に保存される

(GUI)
UCSファイルは、BIG-IPの設定情報をtarで固めたファイルになる
1. GUIでBIG-IPにログインする
2. System→Archivesを選択し、Createボタンを押す
3. バックアップファイル名を入力し、Finishedボタンを押す
4. ログが表示されるので、OKボタンを押す
5. 作成されたUCSファイルを選択する
6. Downloadボタンを押し、ローカルに保存する

● UCSファイルの確認
(CUI)
show sys ucs

● UCSファイルからのリカバリ
(CUI)
load sys ucs <file name>
b config install <file name>

(GUI)
1. GUIでBIG-IPにログインする
2. System→Archivesを選択し、Restoreボタンを押す
3. Archive List からリストアしたいUCSファイルを指定する
4. OKボタンを押す

● UCSファイルの削除
最新のUCSファイルを作成後は旧世代のものを削除する
1. GUIでBIG-IPにログインする
2. System→Archivesを選択し、削除対象選択肢、Deleteボタンを押す
3. 選択したFile Nameだけが表示されるので確認し、削除する



 統計(mib情報)
【リソース】
● memory(system)
・利用可能なメモリ容量
F5-BIGIP-SYSTEM-MIB::sysMultiHostTotal
.1.3.6.1.4.1.3375.2.1.7.4.2.1.2

・利用しているメモリ容量
F5-BIGIP-SYSTEM-MIB::sysMultiHostUsed
.1.3.6.1.4.1.3375.2.1.7.4.2.1.3
TMM Free + TMM Used + Other Used / Total Memory の値??

● memory(tmm)
・TMMの一覧 
F5-BIGIP-SYSTEM-MIB::sysTmmStat
.1.3.6.1.4.1.3375.2.1.8.2

・TMMが利用可能なメモリ容量
F5-BIGIP-SYSTEM-MIB::sysTmmStatMemoryTotal
.1.3.6.1.4.1.3375.2.1.8.2.3.1.31

・TMMが利用しているメモリ容量
F5-BIGIP-SYSTEM-MIB::sysTmmStatMemoryUsedKb
.1.3.6.1.4.1.3375.2.1.8.2.3.1.32

● cpu
・cpu利用率
F5-BIGIP-SYSTEM-MIB::sysMultiHostCpuUsageRatio
.1.3.6.1.4.1.3375.2.1.7.5.2.1.11


【コネクション】
● virtual
・virtual server名
F5-BIGIP-LOCAL-MIB::ltmVirtualServStatName
.1.3.6.1.4.1.3375.2.2.10.2.3.1.1

・max
F5-BIGIP-LOCAL-MIB::ltmVirtualServStatClientMaxConns
.1.3.6.1.4.1.3375.2.2.10.2.3.1.10

・current
F5-BIGIP-LOCAL-MIB::ltmVirtualServStatClientCurConns

.1.3.6.1.4.1.3375.2.2.10.2.3.1.12

● pool
・pool member名
F5-BIGIP-LOCAL-MIB::ltmPoolMemberStatPoolName
.1.3.6.1.4.1.3375.2.2.5.4.3.1.1

・pool member node名
F5-BIGIP-LOCAL-MIB::ltmPoolMemberStatNodeName
.1.3.6.1.4.1.3375.2.2.5.4.3.1.28

・max
F5-BIGIP-LOCAL-MIB::ltmPoolMemberStatServerMaxConns
.1.3.6.1.4.1.3375.2.2.5.4.3.1.9

・current
F5-BIGIP-LOCAL-MIB::ltmPoolMemberStatServerCurConns
.1.3.6.1.4.1.3375.2.2.5.4.3.1.11


【インターフェース】
・interface名
F5-BIGIP-SYSTEM-MIB::sysInterfaceStatName
.1.3.6.1.4.1.3375.2.1.2.4.4.3.1.1

・interface別 packetsIn 数
F5-BIGIP-SYSTEM-MIB::sysInterfaceStatPktsIn
.1.3.6.1.4.1.3375.2.1.2.4.4.3.1.2

・interface別 packetsIn Bytes
F5-BIGIP-SYSTEM-MIB::sysInterfaceStatBytesIn
.1.3.6.1.4.1.3375.2.1.2.4.4.3.1.3

・Interface別 packetsOut 数
F5-BIGIP-SYSTEM-MIB::sysInterfaceStatPktsOut
.1.3.6.1.4.1.3375.2.1.2.4.4.3.1.4

・Interface別 packetsOut Bytes
F5-BIGIP-SYSTEM-MIB::sysInterfaceStatBytesOut
.1.3.6.1.4.1.3375.2.1.2.4.4.3.1.5

・Interface別 ErrorsIn 数
F5-BIGIP-SYSTEM-MIB::sysInterfaceStatErrorsIn
.1.3.6.1.4.1.3375.2.1.2.4.4.3.1.8

・Interface別 ErrorsOut 数
F5-BIGIP-SYSTEM-MIB::sysInterfaceStatErrorsOut
.1.3.6.1.4.1.3375.2.1.2.4.4.3.1.9

・Interface別 DropsIn 数
F5-BIGIP-SYSTEM-MIB::sysInterfaceStatDropsIn
.1.3.6.1.4.1.3375.2.1.2.4.4.3.1.10

・Interface別 DropsOut 数
F5-BIGIP-SYSTEM-MIB::sysInterfaceStatDropsOut
.1.3.6.1.4.1.3375.2.1.2.4.4.3.1.11

・Interface別 Collisions 数
F5-BIGIP-SYSTEM-MIB::sysInterfaceStatCollisions
.1.3.6.1.4.1.3375.2.1.2.4.4.3.1.12



 TRAP
【snmptrapの定義ファイル】
/etc/alertd/alert.conf


【trap内容】
発報メッセージ                                   OID                        内容
通信影響 あり
BIGIP_SOD_SODERR_SOD_STANDBY                  .1.3.6.1.4.1.3375.2.4.0.14  Standbyになった
BIGIP_SOD_SODERR_SOD_ACTIVE                   .1.3.6.1.4.1.3375.2.4.0.15  Activeになった
BIGIP_SOD_SODERR_SOD_UNIT                     .1.3.6.1.4.1.3375.2.4.0.16  FailOverした


通信影響 なし
BIGIP_HA_TABLE_HA_TABLE_ERR_FEATURE_ONLINE    .1.3.6.1.4.1.3375.2.4.0.18  HAリンク復帰
BIGIP_FFLAG_ERR_VALIDATE                      .1.3.6.1.4.1.3375.2.4.0.19  ライセンスが確認できない
BIGIP_FFLAG_ERR_LICENSE_EXPIRED               .1.3.6.1.4.1.3375.2.4.0.20  ライセンスが確認ができた
BIGIP_DOSPROTECT_DOSPROTECT_AGGRREAPER        .1.3.6.1.4.1.3375.2.4.0.22  DoSアタックをブロック
BIGIP_AUTH_FAIL                               .1.3.6.1.4.1.3375.2.4.0.27  ログイン失敗
BIGIP_SSHD_FAIL                               .1.3.6.1.4.1.3375.2.4.0.27  ログイン失敗
BIGIP_GUI_FAIL                                .1.3.6.1.4.1.3375.2.4.0.27  ログイン失敗


通信影響 可能性あり
BIGIP_SYSTEM_CHECK_E_CPU_FAN_SPEED_LOW        .1.3.6.1.4.1.3375.2.4.0.5   CPU FANが遅い
BIGIP_SYSTEM_CHECK_E_CPU_FAN_SPEED_BAD        .1.3.6.1.4.1.3375.2.4.0.6   CPU FANの応答がない
BIGIP_SYSTEM_CHECK_E_CHASSIS_TEMP_HIGH        .1.3.6.1.4.1.3375.2.4.0.7   シャーシ温度高
BIGIP_SYSTEM_CHECK_E_CHASSIS_FAN_BAD          .1.3.6.1.4.1.3375.2.4.0.8   シャーシFANの反応がない
BIGIP_SYSTEM_CHECK_E_CHASSIS_POWER_BAD        .1.3.6.1.4.1.3375.2.4.0.9   電源故障
BIGIP_MCPD_MCPDERR_POOL_MEMBER_MON_STATUS     .1.3.6.1.4.1.3375.2.4.0.10  プールメンバステータス変更
BIGIP_MCPD_MCPDERR_POOL_MEMBER_MON_STATUS_UP  .1.3.6.1.4.1.3375.2.4.0.11  プールメンバステータスUP
BIGIP_MCPD_MCPDERR_NODE_ADDRESS_MON_STATUS    .1.3.6.1.4.1.3375.2.4.0.12  ノードステータス変更
BIGIP_MCPD_MCPDERR_NODE_ADDRESS_MON_STATUS_UP .1.3.6.1.4.1.3375.2.4.0.13  ノードステータスUP
BIGIP_HA_TABLE_HA_TABLE_ERR_FEATURE_FAILS     .1.3.6.1.4.1.3375.2.4.0.17  HAリンクの疎通が取れない
BIGIP_MCPD_MCPDERR                            .1.3.6.1.4.1.3375.2.4.0.19  ヘルスモニターデーモンで異常
BIGIP_ARP_ARPERR_CONFLICT                     .1.3.6.1.4.1.3375.2.4.0.23  自身のIPのARPを受け取り(IPのデュプリケート)
BIGIP_NET_NETERR_LINK_DOWN                    .1.3.6.1.4.1.3375.2.4.0.24  内部Link(IFとCPUを繋げるリンク)がDown
BIGIP_DMON_ERR_DMON_ALERT                     .1.3.6.1.4.1.3375.2.4.0.25  ディスクモニターでエラーを検出
BIGIP_DMON_ERR_DMON_WARN                      .1.3.6.1.4.1.3375.2.4.0.25  ディスクモニターでエラーを検出
BIGIP_DMON_ERR_DMON_GROWTH                    .1.3.6.1.4.1.3375.2.4.0.26  ディスクモニターでエラーを検出
BIGIP_SHELL_BP_CONFIGURATION_LOADED           .1.3.6.1.4.1.3375.2.4.0.28  コンフィグを読み込み反映
BIGIP_IP_REJECT_CONN_LIMIT                    .1.3.6.1.4.1.3375.2.4.0.34  MAX CONに到達
BIGIP_BCM56XXD_BCM56XXDERR_LINKSTATUS         .1.3.6.1.4.1.3375.2.4.0.37  外部IF(1.1~1.8)でLinkStatusが変わった
BIGIP_KERNEL_IO_ERROR                         .1.3.6.1.4.1.3375.2.4.0.38  kernelのIOエラーを検出
BIGIP_SOD_SODERR_STANDBY_FAILS                .1.3.6.1.4.1.3375.2.4.0.75  Standbyがいなくなった
BIGIP_LOG_EMERG "^[0-9a-f]{8}:0: (.*)"        .1.3.6.1.4.1.3375.2.4.0.29  syslogにEMERGログ
BIGIP_LOG_ALERT "^[0-9a-f]{8}:1: (.*)"        .1.3.6.1.4.1.3375.2.4.0.30  syslogにALERTログ
BIGIP_LOG_CRIT "^[0-9a-f]{8}:2: (.*)"         .1.3.6.1.4.1.3375.2.4.0.31  syslogにCRITログ
BIGIP_LOG_ERR "^[0-9a-f]{8}:3: (.*)"          .1.3.6.1.4.1.3375.2.4.0.32  syslogにERRログ
BIGIP_LOG_WARNING "^[0-9a-f]{8}:4: (.*)"      .1.3.6.1.4.1.3375.2.4.0.33  syslogにWARNINGログ
BIGIP_TS_TS_REQUEST_BLOCKED                   .1.3.6.1.4.1.3375.2.4.0.38  トラフィックシールドでブロック
BIGIP_RAID_DISK_FAILURE                       .1.3.6.1.4.1.3375.2.4.0.96  ディスク故障


確認中
BIGIP_IP_REJECT_LIMIT                         .1.3.6.1.4.1.3375.2.4.0.34
BIGIP_IP_REJECT_NO_ROUTE                      .1.3.6.1.4.1.3375.2.4.0.34    
BIGIP_TAMD_TAMDALERT_TRAP                     .1.3.6.1.4.1.3375.2.4.0.21  
BIGIP_IP_REJECT_SNAT_ANYIP                    .1.3.6.1.4.1.3375.2.4.0.34
                                              .1.3.6.1.4.1.3375.2.4.0.34    
                                              .1.3.6.1.4.1.3375.2.4.0.34    
BIGIP_DEFLATE_DEFLATEERR_LICENSE_EXCEEDED     .1.3.6.1.4.1.3375.2.4.0.35    
                                              .1.3.6.1.4.1.3375.2.4.0.36




 はまりどころ
【特定のプールメンバにトラフィックが流入してこない
(事象)
ratioとpersistでプールメンバを構成している状態で、
新規にトラフィックを流したところ、
特定のサーバにしかトラフィックが流れてこなかった。

ヘルスチェックは通っていた。


(原因)
事前に試験のため、同一のソースIPアドレスからアクセスさせていた。
persist設定が効いているため、特定のサーバのカウンタ(lb_value値)が上昇していた。
そのため新規トラフィックは、設定したratioになるように
そのサーバ以外のカウンタが小さいサーバのみに振り分けをしばらく続けていた。


(対策)
lb_value値のリセット。下のどちらの手順でも対応可能である。
・該当プールのratio値の変更
・プールメンバののDown、Up



【big-ipとその配下のサーバ側のセッション数の違い】
(事象)
big-ip側とその配下のサーバ側でセッション数が異なる事象が続いていた。

サーバ側(node1)のセッション数を確認する。
[node1] # netstat -an | egrep ":XXXXX|:YYYYY" | wc 
16064

内訳

10748 ESTABLISHED
 5316 ESTABLISHED 以外

l4のセッション数を確認。

# show ltm node node1
  Current Connections       31.0K

セッション比率 

l4 : サーバ
2  : 1


(原因)

予備知識として、TCPの状態遷移図を復習しておいてほしい。
http://www.atmarkit.co.jp/ait/articles/0401/29/news080_3.html
http://www.atmarkit.co.jp/ait/articles/0402/13/news096_3.html

サーバーからのFINに対し、クライアントはACKだけを返し、

FINを送出していない状況があった。
例えばクライアントが携帯などの移動端末であれば普通に考えられることだろう。

server         client


FIN     ->

        <-     ACK
        <-     FIN ※このFINを返さない(そして継続処理は働かない)
ACK     ->

big-ipでは正常にFINできなかったセッションを切断するまでの

ディフォルト時間(FIN-WAIT)が120sec。
サーバはそれよりも短くしていた。その差のためであった。

ちなみに、A10ではFINが届いた段階で、

msl-timeに従い(デフォルト2秒)セッションを削除する。

そのためl4とサーバ側で大きな差はないはずである。

big-ipとa10の挙動の差を埋める手段として2つ考えられる。

1. big-ip側を短くしてa10側にあわせる
big-ipではディフォルト時間(FIN-WAIT)が120secだったが、

サーバ側のFIN-WAITの時間以上という条件がつくため、こちらも変更は難しいだろう。


2. a10側を長くしてbig-ip側にあわせる
40sが最大であるが。
(config)#slb msl-time ?
  <1-40>  1-40 seconds, default is 2 seconds

ただし、
〜4way closeが正常に終わった場合〜
設定時間までセッションを残してしまう。
big-ipではセッションを保持しないため逆にA10側が増える可能性がある。

4way closeが正常に行われない場合
適用しているテンプレート(TCPまたはTCPプロキシ)の設定に依存する。
120秒と設定していれば、ハーフクローズという扱いになるため、
最初のFINパケットから120秒後に削除する。

ハーフクローズの時の設定をしていないのであれば、
アイドルタイムアウト値と同じ値が使用され削除される。


現実的に1も2も対応は難しいだろう。
仕様の違いとして受け入れるしかないか。