BIG-IPの冗長化とは?設定例や系切替方式をわかりやすく解説
こんにちは。クレスコ・デジタルテクノロジーズのWKです。
前回の記事ではロードバランサー BIG-IPとは?負荷分散の仕組みについてご紹介しました。
本記事では可用性を高めるBIG-IPの冗長化についてご紹介していきたいと思います。
■前回の記事はこちら↓
前回ブログ記事:「ロードバランサーBIG-IPとは?負荷分散の仕組みについても解説 」
■あわせて読まれている資料:
対応事例やネットワークサービス一覧を掲載!
→ネットワークテクノロジーサービス
目次[非表示]
- 1.BIG-IPの冗長化について
- 1.1.冗長化とは
- 1.2.BIG-IPの冗長構成について
- 2.BIG-IPの冗長構成の構築手順について
- 3.Active/Standby系切替方式について
- 4.まとめ
BIG-IPの冗長化について
冗長化とは
同じ機能を持つ機器や通信回線を複数用意しておくことで、一部のシステム障害が発生しても、
これらを組み合わせてサービスを継続できるように運用することを指します。
冗長化により可用性の向上、また構成方法によっては、パフォーマンス向上の効果も期待できます。
BIG-IPの冗長構成について
BIG-IPを利用したシステムの二重化により、一部のネットワークやサーバ、機器に障害が発生した場合、
BIG-IPが障害を検知し、正常なネットワークやサーバに切替えることで、システムの耐障害性を
向上することができます。
BIG-IPでの冗長構成は2種類あります。
1つ目は、同一機能を提供する複数のシステム要素を全て稼働させ、
そのうち1つがDownした際に他のシステム要素が処理を肩代わりする「Active/Active構成」です。
2つ目は、一部のシステム要素が稼働状態(Active)、他のシステム要素が待機状態(Standby)になっており、稼働システム要素がDownすると待機システム要素が稼動状態になる「Active/Standby構成」です。
本記事では一般的な冗長構成であるActive/Standby構成について解説します。
(Active/Active構成の注意点については後述します)
Active/Standby構成でL3構成の場合、以下のようなネットワーク構成図となります。
冗長構成の場合、BIG-IP筐体自身が保有する物理IPアドレス「Self IP」に加え、
Active機、Standby機の2台で共有し、どちらかがActiveに動作する共用IPアドレスである
「Floating IP」を設定します。
負荷分散先のサーバは、「Floating IP」をデフォルトゲートウェイに指定することで、
Active/Standbyの切り替え発生時にも、即座に通信を再開できます。
また、BIG-IP間のVLAN設定を「HA (High Availability)」 といい 、
冗長化の制御パケットをやり取りする専用のVLANを設定することが推奨されています。
■通信の流れ
【通常時】
- クライアントは1号機(Active)のVirtualServer(VIP)へアクセス
- ヘルスチェックにより、1号機(Active)は正常なサーバへ負荷分散する
(負荷分散の仕組みについて、詳しくは「ロードバランサーBIG-IPとは?負荷分散の仕組みについても解説 」を参照ください)
【障害発生時】
- 障害発生により、1号機(Active)の通信経路や1号機自体がDownした場合、
2号機がStandbyからActiveに切り替わる - クライアントは2号機(Active)のVirtualServer(VIP)へアクセス
- ヘルスチェックにより、2号機(Active)は正常なサーバへ負荷分散する
VLAN、IPアドレスの設定例は以下の図となります。
図に記載した設定値について、BIG-IPのGUI画面より、設定をしていきます。
設定手順としてはまず1号機、2号機に使用するVLANを設定し、物理ポート「Interface」に
VLANを割り当てます。
- GUIトップ画面のNetwork ›› VLANsを選択し、「Create…」をクリックします。
- Nameの項目に任意の名前を入力します。(例 Name: external)
- 「Tag」に使用するVLAN IDを入力します。
- 1つの物理ポートに1つのVLANを設定する場合は「Untagged」、1つの物理ポートに複のVLANを設定する場合は「Tagged」を選択します。
使用する物理ポート「Interface」と「Untagged」を選択し、「Add」をクリックします。 - 「Finished」をクリックすると、設定が完了します。
上記手順で1号機、2号機のVLANを設定していきます。
1号機、2号機それぞれVLAN設定が完了すると以下の図のように設定状態を確認することができます。
次に1号機、2号機に設定したVLANに対して、「Self IP」、または「Floating IP」を作成します。
- GUIトップ画面のNetwork ›› Self IPsを選択し、「Create…」をクリックします。
- Nameの項目に任意の名前を入力します。(例 Name:10.99.3.1)
- IP Address、Netmaskを入力し、使用するVLANを選択します。
- Port Lockdownは「Allow Default」を選択します。
- Traffic Groupは、Self IPの場合は「traffic-group-local-only (non-floating)」を選択、
Floating IPの場合は「traffic-group-1(floating)」を選択します。 - 「Finished」をクリックすると、設定が完了します。
上記手順で1号機、2号機のIPアドレスを設定していきます。
1号機、2号機それぞれのアドレス設定が完了すると、以下の図のように設定状態を確認することができます。
■Active/Active構成の注意点
Active/Active構成の場合、通常時は各々のBIG-IPに割り当てられた処理を行い、
かつお互いのStandby機としても動作します。
そのため、独立した別々のSelf IP、Virtual Serverを設定し、Floating IPも1つのVLAN毎に
2個ずつ設定する必要があります。
本記事の【2. BIG-IPの冗長構成の構築手順について】でご紹介する「Traffic Group」も分けて登録が必要となります。Active/Active構成はIPアドレスが異なる2つ以上のVirtualServerを2台で分担・処理することが可能です。
しかし、負荷分散先のサーバ群の構成の注意点として、
「ネットワーク中に2つのデフォルトゲートウェイが混在する」、
「1台のサーバは特定のBIG-IPでしか負荷分散できない」といった点があります。
また、通常時は2台で全通信を処理しているため、1台のBIG-IPに障害が発生すると、
これまで2台で処理していた全通信を残りの1台で処理する事になるため、
Active/Active 構成であっても全体の通信が1台のBIG-IPで処理できるよう、構成や機器選定等に
注意が必要になります。そのため、現場ではActive/Standby構成が導入実績の多い構成となります。
BIG-IPの冗長構成の構築手順について
BIG-IPの冗長化を行う際にどのような手順で設定をしているのかについて、ご紹介します。
1号機をActive、2号機をStandbyとして、Active/Standby構成を構築します。
■冗長構成の構築手順の流れ
- Config Sync、Network Failover、Mirroring、NTPを1号機、2号機それぞれ設定する
- 1号機のDevice Trust設定で2号機を登録する
- 1号機のDevice Groups設定でどの機器間で冗長化を行うかを指定する
- 1号機のOverviewでConfig Syncを実行し、1号機、2号機を同期させる
- 1号機をActiveに、2号機をStandbyにする
1.Config Sync、Network Failover、Mirroring、NTPを1号機、2号機それぞれ設定する
Config Sync、Mirroring、Network Failoverの設定では主にHA VLANに設定したIPアドレスを指定します。
またNetwork Failover設定ではHA VLANの他に管理用のマネジメントポートを指定することも可能です。
●Config Sync:config情報の同期を実行する機能
設定することでActive機に行った設定をStandby機に同期させることができます。
(同期手順については後ほど解説します)
- 1号機のDevice Management ›› Devices より、1号機(Self)を選択します。
- Config Syncをクリックします。
- HA VLANのSelf IPを選択します。
- Updateをクリックします。
上記手順を2号機側でも実施します。
●Network Failover:ハートビート通信でBIG-IP同士を監視
Active機とStandby機で互いにハートビート通信を行い、
ハートビート通信が途絶えた場合、Standby機はActive機に切り替わります。
- 1号機のDevice Management ›› Devices より、1号機(Self)を選択し、
Failover Networkをクリックします。 - Addをクリックします。
- HA VLANのSelf IPを選択し、Portは「1026」となっていることを確認します。
- Finishedをクリックします。
上記手順を2号機側でも実施します。
●Mirroring:コネクションテーブル、パーシステンステーブルなどの情報をデバイス間で同期させる
冗長構成での情報共有による信頼性を向上させる機能です。
- 1号機のDevice Management ›› Devices より、1号機(Self)を選択し、Mirroring をクリックします。
- HA VLANのSelf IPを選択し、Portは「1026」となっていることを確認します。
- Updateをクリックします。
上記手順を2号機側でも実施します。
●NTPサーバとの同期について
冗長構成を設定する際に、NTPサーバ(インターネット等のネットワーク上で現在の時刻情報を配信するサーバ)との同期が必要になります。
- System ›› Configuration : Device : NTPを選択します。
- Address欄に、NTP サーバのIP アドレスを入力し、Addをクリックします。
- Updateをクリックし、設定が完了します。
NTP同期状態の確認は、コンソール接続またはSSH接続して、コマンドラインで実行します。
「ntpq -np」コマンドを入力し、コマンドの実行結果で先頭に * マークがあれば同期完了です。
1号機、2号機ともに上記手順で設定、NTP同期確認を実施します。
(タイムゾーンの設定はSystem ›› Platformより設定が可能です)
2. 1号機のDevice Trust設定で2号機を登録する
●Device Trust:冗長構成を組むStandby機を承認された対向デバイスとして登録
- 1号機のDevice Management ›› Device Trust : Device Trust MembersDevice Trust Membersを選択します。
- Peerを選択し、2号機HA VLANのIPアドレスとadmin(管理者ID)/passwordを入力します。
- Retrieve Device Informationをクリックします。
- 2号機のシリアルナンバー、証明書情報が表示されたらDevice Certificate Matchesをクリックします。
- 2号機のホスト名が表示されたらAdd Deviceをクリックし、承認されたデバイスとして登録します。
3.1号機のDevice Groups設定でどの機器間で冗長化を行うかを指定する
●Device Group:Device Trust設定で信頼関係を結んだ機器の間で、どの機器間で冗長化を行うかを指定
- 1号機のDevice Management よりDevice Groupsを選択し、「Create」を押します。
- Device Groupの名前(任意)を設定します。(例: Device_Group)
- 「Sync-Failover」を選択します。
- Device Trust で登録した機器をAvailableからIncludesに移動させます。
- Sync TypeはManual with Incremental Syncを選択します。
- Finishedをクリックします。
2号機側のDevice GroupはConfig Syncによる同期を実施することで、設定が反映されます。
●Traffic Group:Device Group内で移動するオブジェクトの集合
1号機(Active)と2号機(Standby)で共有のIPであるFloating IPやVirtualServerを
Traffic-group-1に対して割り当てていきます。
Device Management設定からTraffic Groupsを選択すると、
デフォルトでトラフィックグループ(traffic-group-1)が存在しています。
通常は1号機(Acitve)がアドレスオブジェクト群を所有し、1号機がActiveからStandbyへ切り替わると
StadnbyからAcitveに昇格した2号機がアドレスオブジェクト群を所有します。
4.1号機のOverviewでConfig Syncを実行し、1号機、2号機を同期させる
1号機、2号機の同期を行います。
- 1号機のDevice Management ›› Overviewより、1号機(Self)を選択します。
- Push the selected device configuration to the groupを選択します
- 「Sync」ボタンを押すことで、config同期が行われます。
1号機、2号機ともに緑色の「In Sync」となれば、同期は正常に完了しています。
5.1号機をActiveに、2号機をStandbyにする
Device Group設定が完了すると、BIG-IPの管理用(MGMT)IPアドレスの4オクテット目の数字が大きい方が
Activeとなります。
例) 1号機 MGMT IP:192.168.1.245 ←Standbyになる
2号機 MGMT IP:192.168.1.246 ←Activeになる
上記の例のようになっている場合、GUI画面から手動でActive/Standbyを切り替えることができます。
- 2号機(Active)のGUI画面から、Device Management ›› Devices より、2号機(Self)を選択します。
- 下にスクロールし、「Force to Standby」をクリックします。
- 1号機がActive、2号機がStandbyとなることをトップ画面の左上(F5アイコン付近)から確認します。
次の項目ではActive/Standbyの系切替方式について詳しくご紹介していきたいと思います。
Active/Standby系切替方式について
■Failover(フェイルオーバ)とは
冗長構成でActive機が切り替わる動作のことを指します。
■BIG-IPの系切替方式の種類
ここからは「通常時が1号機Active、2号機Standbyとし、1号機側で障害が発生した場合に
2号機がActiveとなって通信を継続させる」ことを前提に解説していきます。
BIG-IPで利用可能な冗長化機能は以下となります。
- Serial Fail-Safe BIG-IPの物理的故障を検知
●Hard-wired Failover
●Network Failover
- Network Fail-Safe ネットワーク経路の異常を検知
●VLAN FailSafe
●Gateway FailSafe
●HA Group (Pool)(Trunk)
Serial Fail-Safeについて
専用シリアルケーブルとNetwork Failover用LANケーブルにより機器障害を検知します。
1号機(Active)と2号機(Standby)の機器間をケーブルで接続することで筐体レベルの死活監視を行い、
数秒以内で系切り替えを実行します。
●Hard-wired Failover
BIG-IP同士を専用シリアルケーブルで接続し、2号機(Standby)が1号機(Active)のシリアルポートに
電圧がかかっているかどうかを監視します。
1号機の電圧を検知できない場合、2号機がActiveに切り替わります。
●Network Failover
本記事【2. BIG-IPの冗長構成の構築手順について】でもご紹介した「Network Failover」の設定についてです。
1号機(Active)と2号機(Standby)で互いにハートビート通信を行い、
ハートビート通信が途絶えた場合、2号機がActiveに切り替わります。
なお、Hard-wired Failoverのみ実装してしまうと、シリアルケーブルの抜線やケーブル・ポートの障害が発生した場合、2号機(Standby)は1号機(Active)の電圧感知が不可の為、系切替を実施します。
すると、Active機はActiveのままのため、冗長構成を組んでいる2台のBIG-IPが両方ともActiveの
状態になってしまい、両機に設定してあるVirtualServer(VIP)等のIPアドレス重複により、
正常な通信ができなくなります。
Hard-wired FailoverとNetwork Failoverを併用して実装することで、
両方の方式で1号機(Active)のDownを検知した場合、2号機(Standby)がActiveに
切り替わるようになります。
機器障害、Failoverケーブル、HAケーブル障害が発生した場合の動作は以下の通りです。
【機器障害】
専用シリアルケーブルで電圧感知、HA用のLANケーブルでハートビート通信により
対向機の生存確認をします。
1号機(Active)がDownした場合、2号機(Standby)が1号機の電圧感知ができず、ハートビート通信も途絶えるため、Failoverが発生します。
【Failoverケーブル、HAケーブル障害】
Failoverケーブルのみ障害が発生した場合は、HAケーブルのハートビート通信で対向機の生存確認が
できているため、Failoverは発生しません。
またHAケーブルのみ障害が発生した場合も、Failoverケーブルでの電圧感知ができているため、
Failoverは発生しません。
(両ケーブルに障害が起きた場合は両activeとなります)
Network Fail-Safeについて
ネットワーク障害検知よるFailoverの方法は以下の3つです
●VLAN FailSafe
特定のVLANを通過するネットワークトラフィックを監視します。
冗長構成を組んでいるBIG-IPの特定のVLANがDownした(設定されたTimeout値を経過しても
ARP解決ができなかった)際にそのVLANに問題あるとし、2号機(Standby)がActiveに切り替わります。
【VLAN Failsafe設定手順】
- 1号機(Active)のSystem ›› High Availability : Fail-safe : VLANsを選択し、Addをクリックします。
- 対象のVLANを選択します。
- Timeout値(何秒Downしていたらアクションを起こす)を設定します。
- Failoverを選択します。
- Finishedをクリックします。設定後は1号機から2号機へConfig Syncを実行します。
【VLAN Failsafe障害】
VLAN「internal」を指定、Timeout値が30秒、Action「Failover」を設定した場合、
Timeout値の半分の時間を経過すると、自身の持つ最も古いARPエントリに対し、ARPリクエストを送ります。
応答がない場合、Timeout値の4分の3の時間まで進むとBIG-IPのARPテーブルにある全てのIPアドレスに対しARPリクエストが送信されます。
応答があった際はTimeoutがリセットされますが、30秒間ARP応答が返ってこない場合は
「Failover」となります。
●Gateway Failsafe
BIG-IPの接続先となるL3SWのIPアドレスをGateway PoolのPool memberとして設定し、
ヘルスモニタリング(Monitor)によって死活監視を行います。
MonitorにはIntervalとTimeout値を設定し、Timeout値を経過してもPool memberに応答が
返ってこない場合は2号機(Standby)がActiveに切り替わります。
【Gateway Failsafe設定手順】
Monitorは1号機(Active)のLocal Traffic ›› MonitorsからCreateをクリックし、
任意の名前を入力、Type「Gateway ICMP」を選択すると、Interval、Timeout値の設定が可能です。
設定を行った1号機からConfig Syncを実行することで2号機に設定が反映されます。
また、デフォルトで設定されているMonitorを使用することも可能です。
デフォルトの「gateway_icmp」はInterval値が5秒、Timeout値が16秒に設定されています。
次にBIG-IPの接続先となるL3SWのIPアドレスをPool memberに設定していきます。
- 1号機(Active)のLocal Traffic ›› Pools : Pool ListからCreateをクリックします。
- 任意のPool名を設定します。(例:gateway_pool_1)
- Health Monitorsから設定するMonitorを選択します。
- Load Balancing MethodはRound Robinを選択します。
- Addressに接続先L3SWのIPアドレスを入力し、Service Portは「0」を入力します。
- Finishedをクリックします。設定後は1号機から2号機へConfig Syncを実行します。
最後に1号機 High Availability設定をしていきます。
「使用可能なPool memberの数が指定されたしきい値を下回る場合、BIG-IPは指定されたアクションを実行する」という動作をGateway Failsafeを使用する場合は設定します。
- 1号機(Active)のSystem ›› High Availability : Fail-safe : Gatewayを選択し、Addをクリックします。
- Gateway Poolより、先程作成した「gateway_pool_1」を選択します。
- Deviceは1号機のホスト名を選択します。
- Actionは使用可能なPool memberの数を指定し、「Fail over to peer」を選択します。
- Finishedをクリックします。
- 上記手順と同様に「gateway_pool_2」も設定してきます。
設定後は1号機(Active)から2号機(Standby)へConfig Syncを実行します。
【Gateway Failsafe障害】
接続先L3SWのケーブル抜線や障害により、Monitorに設定されたTimeout値以内にping応答が
返ってこない場合、1号機(Active)はPool member Downを検知します。
その結果、使用可能なPool memberの数がしきい値を下回るため、
「Fail over to peer」=2号機(Standby)がActiveに切り替わります。
●HA Group(Trunk)(Pool)
冗長構成を組んでいるBIG-IPのTrunkやPoolに「Score値」を設定し、
PoolやTrunkのDownを検知した際に2号機(Standby)のScore値が1号機(Active)を
上回った場合は瞬時に2号機(Standby)がActiveに切り替わります。
【HA Group(Trunk)設定手順】
High Availability設定にて、Active機のみに付与されるボーナス値を設定し、
対象のPool、Trunkを選択します。そして、Device Management設定からTraffic Groupsを選択し、
作成したHA-GroupとTraffic Groupを紐づけて動作させていきます。
ここではHA Group(Trunk)の設定と動作についてご紹介します。
BIG-IPのTrunk設定は、複数の物理ポートを1つの論理ポートとして扱うリンクアグリゲーション(LAG)の
設定に使用されます。
- 1号機(Active)のNetwork ›› Trunksを選択し、Createをクリックします。
- Nameに任意の名前を入力します。(例:trunk_external)
- 使用するInterfaceをAvailableからIncludesに移動させます。LACP設定がOFF(チェックボックスが空白)の場合は、LAGを手動で形成するスタティックな設定方法となります。
- Finishedをクリックします。
上記手順を2号機(Standby)側でも実施します。
※リンクアグリゲーション(LAG)、LACPについて詳しくは以下を参照ください。
参考:https://www.infraexpert.com/study/etherchannel.html
High Availability設定をしていきます。
- 1号機(Active)のSystem ›› High AvailabilityよりHA Group Listを選択し、
Createをクリックします。 - HA Group Nameに任意の名前を入力(例:HA_Group)し、
アクティブ機のみに付与されるボーナス値を設定します - TrunksのAddをクリックします。
- 対象のTrunkを設定します。
- minimum threshold、sufficient threshold、weightを設定します。
上記手順を2号機(Standby)側でも実施します。
次にTraffic GroupにHA Groupを紐づけていきます。
- 1号機(Active)のDevice Management ›› Traffic Groupsからtraffic-group-1をクリックします。
- HA Groupから作成したHA Groupを選択します。
- Failover to Device With Best HA Scoreを選択します。
- Saveをクリックし、設定完了です。
上記手順を2号機(Standby)側でも実施します。
【HA Group(Trunk)障害】
Trunkが「2」、minimum thresholdを「1」、sufficient thresholdを「All」、weightを「30」と
設定したとします。
1号機(Active)のTrunkが1つDownした場合、
アクティブメンバーが1つとなり、sufficient threshold「All」を下回るため、
Score値が変化しますが、まだ1号機側のScore値の方が高いため、Failoverは発生しません。
1号機のTrunkが2つDownした場合は、
Trunkのminimum thresholdを下回るため、1号機のTotal Score値は0となり、
Failoverが発生します。
ActiveボーナスはActive機に加算されるため、Failover後にDownしていたTrunkやPool memberがUPになっても再度Failoverは発生しません。
まとめ
BIG-IPの冗長構成や設定、障害発生時の動作についてご紹介しましたが、いかがでしたでしょうか。
お客様環境に応じて、Failsafeを組み合わせることで、より安全なBIG-IPの運用が可能になります。
最後までお読みいただきありがとうございました。
■サービス資料一覧はこちら↓