BIG-IPでActive/Standby構成を構築する操作を説明します。
動作確認の構成
BIG-IP virtual editionで以下構成で動作確認をします。heart beat用途のinterfaceは3.0です。物理結線関係やインターフェース番号は構成によって異なる事に注意しましょう。
+----------------+ +----------------+ | | | | | Client | | Client | | | | | +-------+--------+ +-------+--------+ | | | | +----------------------------+ | | 1.2 | External 1.2 | External +-------+--------+ +-------+--------+ | | HeartBeat | | | BIG-IP +-----------+ BIG-IP | | (bigip01) | 1.3 1.3 | (bigip02) | +-------+--------+ +-------+--------+ 1.1 | Internal 1.1 | Internal | | +----------------------------+ | | | | +-------+--------+ +-------+--------+ | | | | | Server | | Server | | | | | +----------------+ +----------------+
ハートビートの疎通
Active/Standbyを構成する前に、BIG-IP同士が互いに疎通可能になるようにします。bigip01に192.168.100.1/24を、bigip02に192.168.100.2/24を付与します。
MTUサイズはBIG-IPに設定できる上限値を例示しています。もし、BIG-IP間でLayer 2 Switchなどが存在する場合は、Layer 2 SwitchのMTUサイズを超過しないように注意しましょう。また、version 7.0 update 2以下のvSphere ESXi/vCenterで検証する場合は、仮想スイッチのMTUサイズ上限は9000byteのため、下記設定のコピペでは動作しない事に注意してください。
[bigip01] create net vlan VLAN0100 interfaces replace-all-with { 1.3 { untagged } } mtu 9164 tag 100 create net self SelfIP_VLAN0100 address 192.168.100.1/24 allow-service all traffic-group traffic-group-local-only vlan VLAN0100 [bigip02] create net vlan VLAN0100 interfaces replace-all-with { 1.3 { untagged } } mtu 9164 tag 100 create net self SelfIP_VLAN0100 address 192.168.100.2/24 allow-service all traffic-group traffic-group-local-only vlan VLAN0100
念の為、bigip01とbigip02間で疎通可能である事をpingコマンドとcurlコマンドを使って確認しておきます。
[root@bigip01:Active:Standalone] config # ping -c 3 192.168.100.2 PING 192.168.100.2 (192.168.100.2) 56(84) bytes of data. 64 bytes from 192.168.100.2: icmp_seq=1 ttl=255 time=0.495 ms 64 bytes from 192.168.100.2: icmp_seq=2 ttl=255 time=0.339 ms 64 bytes from 192.168.100.2: icmp_seq=3 ttl=255 time=0.570 ms --- 192.168.100.2 ping statistics --- 3 packets transmitted, 3 received, 0% packet loss, time 1999ms rtt min/avg/max/mdev = 0.339/0.468/0.570/0.096 ms [root@bigip01:Active:Standalone] config # [root@bigip01:Active:Standalone] config # [root@bigip01:Active:Standalone] config # curl -k -I https://192.168.100.2 HTTP/1.1 302 Found Date: Sat, 10 Jul 2021 07:56:59 GMT Server: Apache X-Frame-Options: SAMEORIGIN Strict-Transport-Security: max-age=16070400; includeSubDomains Location: /tmui/login.jsp Content-Type: text/html; charset=iso-8859-1 [root@bigip01:Active:Standalone] config #
デバイス同期設定
デバイス名の設定
初期設定ではbigip1というデバイス名が付与されています。この名前では分かりづらいのでデバイス名の変更を試みます。デバイス名は、再起動時にホスト名が付与される使用にはなっていますが、再起動は手間なので手動でのデバイス名変更操作を紹介します。
「Device Management」「Devices」「デバイス名」の順に押下します。
「Change Device Name」を押下します。
お好みのデバイス名を入力し、アップデートを押下します。
これをCLIで操作する場合は以下のようなコマンドです。
mv cm device bigip1 bigip01.gokatei.go
確認方法は以下の通りです。
root@(bigip01)(cfg-sync Standalone)(Active)(/Common)(tmos)# show cm device ------------------------------------------------------ CentMgmt::Device: bigip01.gokatei.go ------------------------------------------------------ Hostname bigip01.gokatei.go Mgmt IP 192.168.2.20 Alternate Mgmt IP None Configsync IP :: Mirroring IP :: Mirroring Secondary IP :: Failover Multicast IP :: Failover Unicast IP(s) - Time Delta to Current Device (sec) - Device Status
同期用IPアドレスの設定
BIG-IPはConfigSync, Failover Network, Mirroringのそれぞれの同期用途にIPアドレスを指定する事ができます。これら3つの指定は、物理線が沢山あるような環境では異なる物理線を指定する事もできますし、潤沢な環境でないならばConfigSync, Failover Network, Mirroringを同一の物理線で指定する事もできます。
高度に仮想化されている環境ならば、異なるネットワークを指定しても結果的には同じ物理線を通る事もありますので、ConfigSync, Failover Network, Mirroringを別回線にするメリットはないかもしれません。
以下、ConfigSync, Failover Network, Mirroringの設定方法を説明します。これはbigip01, bigip02の両方に必要な操作である事に注意ください。
ConfigSync
「Device Management」「Devices」「デバイス名」「ConfigSync」の順に押下します。「Local address」を指定し、「Update」を押下します。
CLIで、これを操作する例は以下の通りです。
modify cm device bigip02.gokatei.go configsync-ip 192.168.100.2
確認コマンドは以下の通りです。
root@(bigip02)(cfg-sync Standalone)(Active)(/Common)(tmos)# show cm device ------------------------------------------------------ CentMgmt::Device: bigip02.gokatei.go ------------------------------------------------------ Hostname bigip02.gokatei.go Mgmt IP 192.168.2.21 Alternate Mgmt IP None Configsync IP 192.168.100.2 Mirroring IP :: Mirroring Secondary IP :: Failover Multicast IP :: Failover Unicast IP(s) - Time Delta to Current Device (sec) - Device Status -
Failover Network
「Device Management」「Devices」「デバイス名」「Failover Network」の順に押下します。「Local address」の「add」を押下します。
Failover Networkは「ユニキャスト」「マルチキャスト」の2つの通信方法を選べます。このページでは「ユニキャスト」の設定例を紹介します
「Address」を選択し、「Finish」を押下します。
ConfigSyncのIPアドレスが追加された事を確認します。
Failover networkは複数の指定が可能です。マネジメントポートを指定する事もできます。
CLIで、これを操作する例は以下の通りです。
modify cm device bigip02.gokatei.go unicast-address {{ ip 192.168.100.2 }}
確認コマンドは以下の通りです。
root@(bigip02)(cfg-sync Standalone)(Active)(/Common)(tmos)# show cm device ------------------------------------------------------ CentMgmt::Device: bigip02.gokatei.go ------------------------------------------------------ Hostname bigip02.gokatei.go Mgmt IP 192.168.2.21 Alternate Mgmt IP None Configsync IP 192.168.100.2 Mirroring IP :: Mirroring Secondary IP :: Failover Multicast IP :: Failover Unicast IP(s) 192.168.100.2 Time Delta to Current Device (sec) - Device Status
Mirroring
「Device Management」「Devices」「デバイス名」「Mirroring」の順に押下します。「Primary Local Mirror address」を指定し、「Update」を押下します。
以下スクリーンショットでは1つのIPアドレスしか指定していませんが、「Seconday Local Mirror address」も指定する事もできます。
CLIで、これを操作する例は以下の通りです。
modify sys state-mirroring addr 192.168.100.2
確認コマンドは以下の通りです。
root@(bigip02)(cfg-sync Standalone)(Active)(/Common)(tmos)# show cm device ------------------------------------------------------ CentMgmt::Device: bigip02.gokatei.go ------------------------------------------------------ Hostname bigip02.gokatei.go Mgmt IP 192.168.2.21 Alternate Mgmt IP None Configsync IP 192.168.100.2 Mirroring IP 192.168.100.2 Mirroring Secondary IP :: Failover Multicast IP :: Failover Unicast IP(s) 192.168.100.2 Time Delta to Current Device (sec) - Device Status
デバイスの信頼関係
bigip01にて、「Device Management」「Device Trust」「Device Trust Member」の順に押下し、「Add」を押下します。
対向であるbigip02のIPアドレス, adminユーザのユーザ名とパスワードを入力し、「Recieve Device Information」を押下します。
なりすましを防止するために、対向機器のシリアル番号や証明書の情報が表示されます。想定通りの情報ならば、「Device Ceriticate Matches」を押下します。
「Add Device」を押下します。
「Device Trust Members」に対向機器の情報が表示されている事を確認します。
Device Trust Memberの操作はbigip01, bigip02のいずれか片方のみを操作します。両方を操作する必要はありません。
CLIで、これを操作する例は以下の通りです。
modify cm trust-domain Root add-device { ca-device true device-ip 192.168.100.2 device-name bigip02.gokatei.go username admin password admin }
操作例は以下の通りです。コマンド入力後、プロンプトにcfg-sync In Sync (Trust Domai Only)と表示されるようになります。
show cm deviceを入力すると、対向機器を信頼している事を確認できます。
root@(bigip01)(cfg-sync Standalone)(Active)(/Common)(tmos)# modify cm trust-domain Root add-device { device-ip 192.168.100.2 device-name bigip02.gokatei.go username admin password admin } root@(bigip01)(cfg-sync In Sync (Trust Domain Only))(Active)(/Common)(tmos)# root@(bigip01)(cfg-sync In Sync (Trust Domain Only))(Active)(/Common)(tmos)# root@(bigip01)(cfg-sync In Sync (Trust Domain Only))(Active)(/Common)(tmos)# show cm device ------------------------------------------------------ CentMgmt::Device: bigip01.gokatei.go ------------------------------------------------------ Hostname bigip01.gokatei.go Mgmt IP 192.168.2.20 Alternate Mgmt IP None Configsync IP 192.168.100.1 Mirroring IP 192.168.100.1 Mirroring Secondary IP :: Failover Multicast IP :: Failover Unicast IP(s) 192.168.100.1 Time Delta to Current Device (sec) - Device Status - ------------------------------------------------------ CentMgmt::Device: bigip02.gokatei.go ------------------------------------------------------ Hostname bigip02.gokatei.go Mgmt IP 192.168.2.21 Alternate Mgmt IP None Configsync IP 192.168.100.2 Mirroring IP 192.168.100.2 Mirroring Secondary IP :: Failover Multicast IP :: Failover Unicast IP(s) 192.168.100.2 Time Delta to Current Device (sec) - Device Status connected
デバイスグループの作成
「Device Management」「Device Groups」の順に画面遷移し、「Create」を押下します。
Active/Standbyペアとなるデバイスの組に対して名前をつけます。「Name」の欄に何か分かりやすい名前を入力します。
「Group type」は「Sync-Only」「Sync-Failover」のいずれかを選択できます。Active/Standby構成とする場合は「Sync-Failover」を選びます。
設定値 | 意味 |
---|---|
Sync-Only | 設定同期のみ |
Sync-Failover | 設定同期と障害時の切り替わり |
「Menbers」の欄は、矢印ボタンを使って「Includes」の中にメンバーを含めるよう操作します。
「Sync Type」は「Automatic with Incremental Sync」「Manual with Incremental Sync」「Manual with Full Sync」のいずれかを選択します。それぞれの意味は以下の通りです。
設定値 | 意味 |
---|---|
Automatic with Incremental Sync | 自動で差分同期する |
Manual with Incremental Sync | 手動で差分同期する |
Manual with Full Sync | 手動で全設定を同期する |
以上の設定値を入力したら、「Finished」を押下します。
設定後、「デバイスグループ」が作成された事を確認します。
CLIで、これを操作する例は以下の通りです。
create cm device-group Device-Group-001 devices add { bigip01.gokatei.go bigip02.gokatei.go } type sync-failover network-failover enabled
操作例は以下の通りです。コマンド入力後、Awaiting Initial Syncとのプロンプトに変わり、初回の同期操作を求められます。
root@(bigip01)(cfg-sync In Sync (Trust Domain Only))(Active)(/Common)(tmos)# root@(bigip01)(cfg-sync Awaiting Initial Sync)(Standby)(/Common)(tmos)#
初回同期操作
「Device」「Overview」の順に画面遷移し、「Sync」を押下します。
同期が完了するまで待ちます。
以下のようなエラーメッセージっぽいのが出力されませんが、誤情報の事もあります。しばらく待てば同期が完了する事の方が経験則としては多いです。
Not All Device Synced bigip02.gokatei.go did not recieve the last sync successfully. Recomended Action: Synchronize bigip01,gokatei.go to group device_trust_group
場合によっては10分くらいかかる事もありますが、気長に待ちましょう。しばらく待つと、画面左上の表示が「In SYnc」に変わります。
HDDの環境では若干の操作に難があるかもしれません。もし、SSDをお持ちの方ならば、SSDを使用しましょう。
CLIで、これを操作する例は以下の通りです。途中で「Not All Devices Synced」と表示される事もあるかもしれませんが、10分程度待ては解消する事もあります。
root@(bigip01)(cfg-sync Awaiting Initial Sync)(Standby)(/Common)(tmos)# run cm config-sync to-group Device-Group-001 root@(bigip01)(cfg-sync Changes Pending)(Standby)(/Common)(tmos)# root@(bigip01)(cfg-sync Awaiting Initial Sync)(Standby)(/Common)(tmos)# root@(bigip01)(cfg-sync Awaiting Initial Sync)(Standby)(/Common)(tmos)# root@(bigip01)(cfg-sync Not All Devices Synced)(Standby)(/Common)(tmos)# root@(bigip01)(cfg-sync Not All Devices Synced)(Standby)(/Common)(tmos)# root@(bigip01)(cfg-sync Not All Devices Synced)(Standby)(/Common)(tmos)# root@(bigip01)(cfg-sync Not All Devices Synced)(Standby)(/Common)(tmos)# root@(bigip01)(cfg-sync Not All Devices Synced)(Standby)(/Common)(tmos)# root@(bigip01)(cfg-sync In Sync)(Standby)(/Common)(tmos)# root@(bigip01)(cfg-sync In Sync)(Standby)(/Common)(tmos)# root@(bigip01)(cfg-sync In Sync)(Standby)(/Common)(tmos)#