BIG-IPで3台以上のActive/Standby構成を構築する操作を説明します。基本的に2台構成のActive/Standbyと殆ど同じ操作です。操作が異なるのは信頼関係の設定くらいです。
動作確認の構成
BIG-IP virtual editionで以下構成で動作確認をします。heart beat用途のinterfaceは3.0です。物理結線関係やインターフェース番号は構成によって異なる事に注意しましょう。
| | | | | | +-------+--------+ +-------+--------+ +-------+--------+ | | | | | | | BIG-IP | | BIG-IP | | BIG-IP | | (bigip01) | | (bigip02) | | (bigip03) | +-------+--------+ +-------+--------+ +-------+--------+ 1.3 | .1 1.3 | .2 1.3 | .3 HeartBeat | HeartBeat | HeartBeat | +----------------------+----------------------+ | | | | | |
Active/Standby構成の構築
ハートビートの疎通
Active/Standbyを構成する前に、BIG-IP同士が互いに疎通可能になるようにします。bigip01に192.168.100.1/24を、bigip02に192.168.100.2/24を、bigip03に192.168.100.3/24を付与します。
2台構成のActive/Standbyとほぼ同じ操作です。
[bigip01] create net vlan VLAN0100 interfaces replace-all-with { 1.3 { untagged } } 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 } } tag 100 create net self SelfIP_VLAN0100 address 192.168.100.2/24 allow-service all traffic-group traffic-group-local-only vlan VLAN0100 [bigip03] create net vlan VLAN0100 interfaces replace-all-with { 1.3 { untagged } } tag 100 create net self SelfIP_VLAN0100 address 192.168.100.3/24 allow-service all traffic-group traffic-group-local-only vlan VLAN0100
念の為、bigip01とbigip02とbigip03間で疎通可能である事を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=1.12 ms 64 bytes from 192.168.100.2: icmp_seq=2 ttl=255 time=0.630 ms 64 bytes from 192.168.100.2: icmp_seq=3 ttl=255 time=0.776 ms --- 192.168.100.2 ping statistics --- 3 packets transmitted, 3 received, 0% packet loss, time 2000ms rtt min/avg/max/mdev = 0.630/0.843/1.124/0.208 ms [root@bigip01:Active:Standalone] config # [root@bigip01:Active:Standalone] config # [root@bigip01:Active:Standalone] config # ping -c 3 192.168.100.3 PING 192.168.100.3 (192.168.100.3) 56(84) bytes of data. 64 bytes from 192.168.100.3: icmp_seq=1 ttl=255 time=0.770 ms 64 bytes from 192.168.100.3: icmp_seq=2 ttl=255 time=0.933 ms 64 bytes from 192.168.100.3: icmp_seq=3 ttl=255 time=0.538 ms --- 192.168.100.3 ping statistics --- 3 packets transmitted, 3 received, 0% packet loss, time 2000ms rtt min/avg/max/mdev = 0.538/0.747/0.933/0.162 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, 04 Sep 2021 10:05:26 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 # [root@bigip01:Active:Standalone] config # [root@bigip01:Active:Standalone] config # curl -k -I https://192.168.100.3 HTTP/1.1 302 Found Date: Sat, 04 Sep 2021 10:05:29 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では混乱を招くので、何か分かりやすいデバイス名に変更します。
2台構成のActive/Standbyとほぼ同じ操作です。
これをCLIで操作する場合は以下の通りです。
[bigip01] mv cm device bigip1 bigip01.gokatei.go [bigip02] mv cm device bigip1 bigip02.gokatei.go [bigip03] mv cm device bigip1 bigip03.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.31 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 -
configSync Failover Mirror
ConfigSyncとFailoverとMirrorのIPアドレスを設定します。2台構成のActive/Standbyとほぼ同じ操作です。
これをCLIで操作する場合は以下の通りです。
[bigip01] modify cm device bigip01.gokatei.go configsync-ip 192.168.100.1 modify cm device bigip01.gokatei.go unicast-address {{ ip 192.168.100.1 }} modify sys state-mirroring addr 192.168.100.1 [bigip02] modify cm device bigip02.gokatei.go configsync-ip 192.168.100.2 modify cm device bigip02.gokatei.go unicast-address {{ ip 192.168.100.2 }} modify sys state-mirroring addr 192.168.100.2 [bigip03] modify cm device bigip03.gokatei.go configsync-ip 192.168.100.3 modify cm device bigip03.gokatei.go unicast-address {{ ip 192.168.100.3 }} modify sys state-mirroring addr 192.168.100.3
確認方法は以下の通りです。
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.31 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 -
デバイスの信頼関係
bigip01に対して、bigip02とbigip03を信頼するデバイスとして加えます。
「Device Management」「Device Trust」「Device Trust Members」の順に画面遷移し、「Add」を押下します。
bigip02の情報を記入し、「Add Device」を押下します。
「Device Trust Members」の画面にて、もう一度「Add」を押下します。
bigip03の情報を記入し、「Add Device」を押下します。
bigip01がbigip02とbigip03を信頼している事を確認します。
これをCLIで操作する場合は以下の通りです。
[bigip01] 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 } modify cm trust-domain Root add-device { ca-device true device-ip 192.168.100.3 device-name bigip03.gokatei.go username admin password admin }
CLIで確認する場合は以下の通りです。
[bigip01] 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.31 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.32 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 ------------------------------------------------------ CentMgmt::Device: bigip03.gokatei.go ------------------------------------------------------ Hostname bigip03.gokatei.go Mgmt IP 192.168.2.33 Alternate Mgmt IP None Configsync IP 192.168.100.3 Mirroring IP 192.168.100.3 Mirroring Secondary IP :: Failover Multicast IP :: Failover Unicast IP(s) 192.168.100.3 Time Delta to Current Device (sec) - Device Status connected root@(bigip01)(cfg-sync In Sync (Trust Domain Only))(Active)(/Common)(tmos)#
デバイスグループの作成
「Device Management」「Device Groups」の順に画面遷移し、「Create」を押下します。
「Name」欄に何か分かりやすい名前を記入し、「Member」欄にはデバイス3台を登録します。
以上の操作後に「Finish」を押下しあmす。
操作後は以下のような画面になります。Membersが3と表示されています。
これをCLIで操作する場合は以下の通りです。
[bigip01] create cm device-group Device-Group-001 devices add { bigip01.gokatei.go bigip02.gokatei.go bigip03.gokatei.go } type sync-failover network-failover enabled
CLIで確認する場合は以下の通りです。
[bigip01] root@(bigip01)(cfg-sync Awaiting Initial Sync)(Standby)(/Common)(tmos)# show cm device-group Device-Group-001 --------------------------------------------------- CM::Device-Group --------------------------------------------------- Group Name Device-Group-001 Member Name bigip01.gokatei.go Time Since Last Sync (HH:MM:SS) - Last Sync Type none CID Originator - CID Time (UTC) - LSS Originator - LSS Time (UTC) - --------------------------------------------------- CM::Device-Group --------------------------------------------------- Group Name Device-Group-001 Member Name bigip02.gokatei.go Time Since Last Sync (HH:MM:SS) - Last Sync Type none CID Originator - CID Time (UTC) - LSS Originator - LSS Time (UTC) - --------------------------------------------------- CM::Device-Group --------------------------------------------------- Group Name Device-Group-001 Member Name bigip03.gokatei.go Time Since Last Sync (HH:MM:SS) - Last Sync Type none CID Originator - CID Time (UTC) - LSS Originator - LSS Time (UTC) - root@(bigip01)(cfg-sync Awaiting Initial Sync)(Standby)(/Common)(tmos)#
初回同期操作
デバイスグループ作成後は同期待ちの状態になっていますので、同期操作をします。
「Device Management」「Overview」の順に画面遷移し、「Sync」を押下します。
同期が確認すると以下のように表示されます。
これをCLIで操作する場合は以下の通りです。しばらく待つと、プロンプトが「In Sync」に変わります。
[bigip01] root@(bigip01)(cfg-sync Awaiting Initial Sync)(Standby)(/Common)(tmos)# run cm config-sync to-group Device-Group-001 root@(bigip01)(cfg-sync Awaiting Initial Sync)(Standby)(/Common)(tmos)# root@(bigip01)(cfg-sync In Sync)(Standby)(/Common)(tmos)#
動作確認
初期状態の確認
現在の構成を確認します。以下出力の場合は、「Status」欄がActiveと記載されているbigip03がActive機です。「Next Active」欄にtrueと書かれているのはbigip02ですので、Active機に障害が発生した時に次にActiveに昇格するのはbigip02となる事が分かります。
root@(bigip01)(cfg-sync In Sync)(Standby)(/Common)(tmos)# show cm traffic-group ------------------------------------------------------------------------------- CentMgmt::Traffic-Group Name Device Status Next Previous Active Active Active Reason ------------------------------------------------------------------------------- traffic-group-1 bigip01.gokatei.go standby false false - traffic-group-1 bigip02.gokatei.go standby true false - traffic-group-1 bigip03.gokatei.go active false false - traffic-group-local-only - - - - - root@(bigip01)(cfg-sync In Sync)(Standby)(/Common)(tmos)#
1台目の障害
bigip03に障害を発生させます。
[root@bigip03:Active:In Sync] config # reboot Connection to 192.168.2.33 closed by remote host. Connection to 192.168.2.33 closed.
bigip02がActiveになった事を確認します。また、bigip01の「Next Active」欄がtrueに変わった事を確認します。
root@(bigip02)(cfg-sync In Sync)(Active)(/Common)(tmos)# show cm traffic-group -------------------------------------------------------------------------------- CentMgmt::Traffic-Group Name Device Status Next Previous Active Active Active Reason -------------------------------------------------------------------------------- traffic-group-1 bigip01.gokatei.go standby true false - traffic-group-1 bigip02.gokatei.go active false false peer-offline traffic-group-1 bigip03.gokatei.go offline false true - traffic-group-local-only - - - - - root@(bigip02)(cfg-sync In Sync)(Active)(/Common)(tmos)#
1台目の障害
bigip02に障害を発生させます。
[root@bigip02:Active:In Sync] config # reboot Connection to 192.168.2.32 closed by remote host. Connection to 192.168.2.32 closed.
bigip01がActiveになった事を確認します。2台に障害が発生してしまったので、「Traffic group traffic-group-1 has no next-active device」との警告が表示されています。
root@(bigip01)(cfg-sync In Sync)(Active)(/Common)(tmos)# show cm traffic-group -------------------------------------------------------------------------------- CentMgmt::Traffic-Group Name Device Status Next Previous Active Active Active Reason -------------------------------------------------------------------------------- traffic-group-1 bigip01.gokatei.go active false false peer-offline traffic-group-1 bigip02.gokatei.go offline false true - traffic-group-1 bigip03.gokatei.go offline false false - traffic-group-local-only - - - - - Warning(s): * Traffic group traffic-group-1 has no next-active device. root@(bigip01)(cfg-sync In Sync)(Active)(/Common)(tmos)#