
F5 BIG-IP iRuleで LB::status によりSorryページへの振り分け等を実装する際の、Pool, Node状態と LB::status の対応メモ。
検証バージョン
BIG-IP 800 11.5.3
機種、バージョン、各種設定により挙動が異なる可能性があるため、導入の際には十分に検証ください。
Pool, Node状態と LB::status の対応
LB::status pool <pool name> member <address> <port> の結果
| Status | iRule LB::status |
|---|---|
| up | up |
| node down | down |
| node disabled | session_disabled |
| node forced_offline | down |
| pool member disabled | session_disabled |
| pool member forced_offline | down |
| connection limit | up |
コネクションリミットに到達した場合は後述の通り unavailable となるものの LB::status としては up のままになる。
session_enabled は割愛
When would LB::status return session_enabled?
https://devcentral.f5.com/s/question/0D51T00006i7fYr/when-would-lbstatus-return-sessionenabled
こちらにも上がっているが、session_enabledはパーシステンス使用時のみ?私の環境では動作確認できなかったため割愛。
show ltm pool <pool> の結果
tmsh showコマンドに各Pool, Nodeの状態は確認できる。GUIだと緑・赤・黄・灰・黒、〇・△・◇で表現される内容。
user@(host)(cfg-sync Standalone)(Active)(/Common)(tmos)# show ltm pool <pool> detail
---------------------------------------------------------------------
Ltm::Pool: <Pool>
---------------------------------------------------------------------
Status
Availability : available
State : enabled
Reason : The pool is available
Monitor : <Monitor>
Minimum Active Members : 0
Current Active Members : 3
Total Requests : 11
Current Sessions : 34
Traffic ServerSide
...
Connection Queue Pool Pool and members
...
--------------------------------------------------------------
| Ltm::Pool Member: <pool>:<port>
--------------------------------------------------------------
| Status
| Availability : available
| State : enabled
| Reason : Pool member is available
| Monitor : <monitor> (pool monitor)
| Monitor Status : up
| Session Status : enabled
| Pool Name : <pool>
| IP Address : <ip>
|
| Traffic ServerSide General
| ...
|
| Connection Queue
| ...
---------------------------------------------------
| Ltm::Node: <node> (<ip>)
---------------------------------------------------
| Status
| Availability : available
| State : enabled
| Reason : Node address is available
| Monitor : <monitor>
| Monitor Status : up
| Session Status : enabled
|
| Traffic ServerSide General
| ...
| Monitors
| <monitor> <ip>:<port> enabled up
出力結果の違いは以下の通り。(共通項目は割愛)
| up | node down | node disabled | node forced_offline | pool member disabled | pool member forced_offline | connection limit | all member down | |
|---|---|---|---|---|---|---|---|---|
| iRule LB::status | up | down | session_disabled | down | session_disabled | down | up | - |
| LTM::Pool: Status | ||||||||
| Availability | available | available | available | available | available | available | unavailable | offline |
| State | enabled | enabled | enabled | enabled | enabled | enabled | enabled | enabled |
| Reason | The pool is available | The pool is available | The pool is available | The pool is available | The pool is available | The pool is available | The pool member's connection limit has been reached | The children pool member(s) are down |
| Active Members | up members | up members | up members | up members | up members | up members | 0 | 0 |
| Ltm::Pool Member | ||||||||
| Availability | available | offline | available | offline | available | offline | unavailable | - |
| State | enabled | enabled | disabled-by-parent | disabled-by-parent | disabled | disabled | enabled | - |
| Reason | Pool member is available | monitor: Read failed; | Pool member is available | Parent down | Pool member is available, user disabled | Forced down | The pool member's connection limit has been reached | - |
| Monitor Status | up | down | up | address-down | up | user-down | up | - |
| Session Status | enabled | enabled | addr-disabled | addr-disabled | user-disabled | user-disabled | enabled | - |
| Ltm::Node | ||||||||
| Availability | available | offline | available | offline | available | available | available | - |
| State | enabled | enabled | disabled | disabled | enabled | enabled | enabled | - |
| Reason | Node address is available | monitor: Read failed; | Node address is available, user disabled | Forced down | Node address is available | Node address is available | Node address is available | - |
| Monitor Status | up | down | up | user-down | up | up | up | - |
| Session Status | enabled | enabled | user-disabled | user-disabled | enabled | enabled | enabled | - |
参考
LB::statusの公式情報
BIG-IP iRule等の設定解説
仕様から実用パターンまで解説いただいており、非常に分かりやすく参考にさせていただきました。ありがとうございます。