tech note

インフラ技術や車についてつぶやいていくブログ

BIG-IP

BIG-IP ONLINE(FAILSAFE FAULT)ステータスについて

ステータス 原因 何らかのFailsafeが発動しActiveになれない状態を示します。 以下コマンドでFailsafeを確認しましょう。 # tmsh show sys ha-status例えばVlanFailsafeが発動しっぱなし状態等が考えられます。

BIG-IPのCipherSuite確認コマンド

https://support.f5.com/csp/article/K15194 # tmm --clientciphers 'DEFAULT' ID SUITE BITS PROT METHOD CIPHER MAC KEYX 0: 159 DHE-RSA-AES256-GCM-SHA384 256 TLS1.2 Native AES-GCM SHA384 EDH/RSA 1: 158 DHE-RSA-AES128-GCM-SHA256 128 TLS1.2 Nativ…

BIG-IP iRule デフォルトで用意されている「_sys_https_redirect」の動作解説

デフォルトで入っている以下iRuleの解説を _sys_https_redirect when HTTP_REQUEST { HTTP::redirect https://[getfield [HTTP::host] ":" 1][HTTP::uri] } getfieldってのは以下の通り文字列を区切り文字で割った何個目を参照するかですね。https://devcent…

BIG-IP iRule GeoLocationでACLする方法

まずこちらをインストールします。 tech.ioroi.net when CLIENT_ACCEPTED { if { [whereis [IP::client_addr] country] eq "JP"} { return } else { drop } } ※日本に制限する例[whereis ip_addr country] でカントリーコードを参照出来ます。

BIG-IP iRule HTTP redirectを302応答から301に変更する

こちらでリダイレクト設定しましたが、応答が302なのはおかしいので 301で応答するよう変更しました。 tech.ioroi.net 旧iRule iRule HTTP::redirect https://www.tech-memo.work[HTTP::uri] 結果 # curl -I https://www.sv-cat.net/1 HTTP/1.0 302 Found Lo…

BIG-IP ログ「01260009:4: Connection error: ssl_passthru:3994: not SSL (40)」の意味

Client SSL profile を割り当てた VIP 上で ClientHello の代わりに GET や POST リクエストを着信した際に出力するログ

BIG-IP ログ「01260009:4: Connection error: ssl_hs_rxhello:7429: unsupported version 」の意味

クライアントとサーバがプロトコルバージョンを正常にネゴシエートできなことを示します。当該のクライアントとバーチャルサーバで共通して使用可能な cipher suite がないと考えられます。

BIG-IP iRule 小文字に合わせる

構文 string tolower tclshでの実行例 # tclsh % string tolower HOGE hoge iRule構文例 string tolower [HTTP::uri] 動作 /HOGE → /hogestring tolowerの引数に当たる文字を小文字化 上記構文例では、[HTTP::uri]を小文字に変えてます。 iRule例 when HTTP_…

BIG-IP iRule HTTPヘッダーを挿入するコマンド

コマンド HTTP::header insert <header名> <value値> DevCentral Member Login | F5 DevCentral 例 when HTTP_REQUEST { HTTP::header insert x-header 1 }</value値></header名>

Data Group ListのValueをiRuleで使う方法

以下Data Group Listがあったとします。 DG_list String Value hoge1 Pool1 hoge2 Pool2 Hostheaderに応じてPoolへバランシングできます。 when HTTP_REQUEST { if { [class match [HTTP:host] eq DG_list } { #hostがDG_listにあったら set Pool [ [class m…

BIG-IP iRule ワイルドカードにてURIを判定しPoolへバランシングする例(headerInsertも有り)

when HTTP_REQUEST { switch -glob [string tolower [HTTP::uri]] { "/hoge1/*.html" { pool Pool1 } "/hoge2/*.html" { pool Pool1 } default { pool Pool2 } } } さらにHTTPheaderを付与する when HTTP_REQUEST { switch -glob [string tolower [HTTP::uri…

BIG-IP iRule HTTP::redirect 構文例 自身にRedirectしながら、Redirectループを防ぐ

iRule構文例 when HTTP_REQUEST { if { [HTTP::host] equals "example.com" } { if { [HTTP::uri] equals "/sp.html" or [HTTP::uri] equals "/pc.html" } { return } else { if { [HTTP::header User-Agent] matches_regex "iPhone|iPad|iPod|Android" } { …

BIG-IP iRule matchclass 使い方

構文 when CLIENT_ACCEPTED { if { [matchclass [IP::remote_addr] equals aol] } { pool aol_pool } else { pool all_pool } } DataGroupListをClassといっており、そのClassとマッチするかを評価するコマンドです。 aolはデフォルトで用意されているDataGr…

BIG-IP インクリメンタルConfigSyncの不具合(11.5.1, 11.5.0, 11.4.1, 11.4.0)

KB ちょっと古いVersionでは、通常のConfigSync(インクリメンタル(差分同期))で正常にConfigSync出来ない不具合がありました。K14639: A pool member may remain disabled after an incremental synchronization https://support.f5.com/csp/article/K14639 …

BIG-IPのSerialConsoleで異なったBaudrateでキーを叩いた際、文字化けする

現象 BIG-IPのデフォルトのボーレートは「19200」で一般的機器は「9600」なので誤って、 9600でEnter等押下してしまう事が稀にあるかと思います。 すると文字化けが発生し「19200」に戻しても再起動するまで直らない状態となります。KBはありますが、ワーク…

BIG-IP GeoIPデータベースインストール方法

転送 md5チェック インストール 確認 備考 参考 転送 /shared/tmp/配下に以下ファイルを転送 ip-geolocation-v2-2.0.0-20180820.332.0.zip ip-geolocation-v2-2.0.0-20180820.332.0.zip.md5 md5チェック [root@bigip:Active:Standalone] tmp # md5sum -c ip-…

BIG-IP Linux kernel 脆弱性「SegmentSmack」 CVE-2018-5390 影響

以下リンクに記載があります。K95343321: Linux kernel vulnerability (SegmentSmack) CVE-2018-5390 https://support.f5.com/csp/article/K95343321本日現在では以下になってますが随時更新されると思いますので最新情報は上記リンクをご確認下さい。 12.x …

BIG-IP コマンドでConfigSyncする方法(v12~)

コマンド # tmsh run cm config-sync to-group device-group-1 オプション force-full-load-push 強制的に相手へ設定を同期(対向機側で設定変更したのを上書きする際等) to-group 自身から相手へ設定を同期 from-group 相手から自身へ設定を同期 DeviceGroup…

BIG-IP メーカサポート状況を確認するツール

secure.f5.com BIG-IPのメーカサポート状況を確認可能です Contact Email 受信可能なEmailアドレスを入力 F5 Licenses / Serial Numbers SerialかRegKeyを入力Submit Info Request 押下 しばらくすると以下のようなメールが届きます #----------------------…

BIG-IP syslog転送設定方法

https://support.f5.com/csp/article/K13080 K13080: Configuring the BIG-IP system to log to a remote syslog server (10.x - 13.x) GUI System >>Logs : Configuration : Remote Logging コマンド root@(bigip)(cfg-sync Standalone)(Active)(/Common)(t…

BIG-IP TRAP「Disk partition /var has less than 40%」対処法

*意味 /varのディスク使用率が40%を超えたことを通知してます。 以下Cronで監視してます。 1-59/10 * * * * /usr/bin/diskmonitor 対応 /varのディスクを圧迫するのは十中八九UCSです。なので、/var/tmp(/shared)配下へ待避させるか削除しましょう。 UCSの…

BIG-IP CLIでSSHアクセス制限する方法

*コマンド SSHアクセス制限はGUI、CLIいずれからも可能です。 ここではCLIでの操作例を記載しています。 root@(bigip)(cfg-sync Standalone)(Active)(/Common)(tmos)# list sys sshd allow sys sshd { allow { ALL } } root@(bigip)(cfg-sync Standalone)(Ac…

BIG-IP HTTPアクセス制限する方法

*コマンド HTTPアクセス制限はCLIからのみ実施可能です。 BIG-IPへHTTPアクセス制限する一連の操作です。 root@(bigip)(cfg-sync Standalone)(Active)(/Common)(tmos)# list sys httpd allow sys httpd { allow { All } } root@(bigip)(cfg-sync Standalone)…

BIG-IP iRule 指定時間にSorryサーバへリダイレクトするサンプル

毎日1~7時の間にSorryサーバーへリダイレクトするサンプルです when HTTP_REQUEST { set Now [clock format [clock seconds] -format %H] if {$Now >= 1 and $Now <= 7 }{ HTTP::redirect "http://sorry/xxxx/index.html" } }

BIG-IP CLIでUCSを作成する方法

GUIより早く作業できます。 # tmsh save sys ucs ucs_name

BIG-IP iRule HTTP::respond によるリダイレクトHTTPヘッダー例

iRule記述とその結果 HTTP::respond 403 noserver Server Apache when HTTP_REQUEST { HTTP::respond 403 noserver Server Apache } -- HTTP/1.0 403 Forbidden Server: Apache Connection: Keep-Alive Content-Length: 0 HTTP::respond 403 noserver when H…

BIG-IPでTRAPをテスト送信する方法

BIG-IPはsyslogのメッセージを基にTRAP送信有無を判断しています。 そのため、Failover等に出力されるログを擬似的にsyslogへ出力してあげればTRAPをテスト送信可能です。 syslog出力にはloggerコマンドを使用します。 TRAPテスト送信コマンド PoolMemberDow…

BIG-IPでSourceIPを用いてACLするiRule

ACLの書き方 VirtualServer宛通信でACLを掛ける際は、iRule+DataGroupListを用います。 iRule when CLIENT_ACCEPTED { if { [class match [IP::client_addr] equals home_net] }{ return } else { drop } } Data Group List ltm data-group internal home_ne…

BIG-IP RSTパケットをログ出力する

コマンド 以下コマンドでRSTパケット送出をログ「/var/log/ltm」出力できます modify /sys db tm.rstcause.log value enable modify /sys db tm.rstcause.pkt value enable

BIG-IP APIにてDataGroupを編集する方法

192.168.0.1,192.168.0.2をClass_hogeへ挿入 curl -ksu "$user":"$pass" "https://1.1.1.1/mgmt/tm/ltm/data-group/internal/~Common~Class_hoge" -H "Content-Type: application/json" -X PUT -d "{ \"records\" : [{\"name\": \"192.168.0.1\", \"data\": …