ネットワークエンジニアのITブログ

長らくネットワークで生活してきましたが、ここ数年クラウドとサーバー系に触れる機会が増えて、日々成長しています。最近のお気に入りはNSXALBとGoogle Cloud。

GSLBのサイト構築

前回までの構築で、テスト用サーバーに対して負荷分散できるところまで確認できました。ここからは、NSXALBによるGSLB(広域負荷分散)の環境を作っていきます。
構築にあたり、GSLBの基本的な考え方をおさらいして環境を構築していきます。

構築範囲

GSLBとは

GSLBはGlobal Server Load Balanceの略で物理的に離れた複数拠点間を負荷分散する機能(広域負荷分散)になります。

例えば、あるFQDN(ここではwww.homevm.local)に対してアクセスした際に、GSLBを使用しないと、東京のWebサーバーのIPアドレスを返答しますが、GSLBを使用すると東京または大阪のIPアドレスを返答させることができます。

この構成のメリットは、大阪をバックアップサイトまたDRサイトとして用意しておき、通常は東京に接続させながら、災害等で東京が利用できない場合、自動的に大阪に接続させることが可能なことです。

あくまで一例ですが、他にも東京と大阪をActive/Activeで負荷分散したり、3拠点以上を負荷分散したりすることも可能です。

今回は、region01aとregion01bの2つのサイトを作成しGSLBで制御してみます。あくまで検証であるため、2つのサイトは同一セグメント上に構築し動作を確認していきます。

DNS VSの準備

GSLBは、名前解決により複数サイトから1つのサイト選択し、そのIPアドレスをクライアントに返答することで実現しています。つまり、ポイントとなるのはDNSの機能であるため、DNSサーバーの機能であるDNS VSを構築していきます。

[Applications]-[Virtual Services]から画面右端の[CREATE VIRTUAL SERVICE]を選択し、[Acvanced Setup]クリックします。

Nameに[DNS_VS_01a]、Application Profileに[System-DNS]を入力後、VS VIPでプルダウンし、[Create VS VIP]をクリックします。

Nameに[vsvip-DNS_VS_01a-Default-Cloud]入力後、VIPsで[ADD]をクリックします。

IPv4DNS VSのIPアドレス[192.168.7.53]を入力して[SAVE]します。

上記で作成した[vsvip-DNS_VS_01a-Default-Cloud]をVS VIPに設定します。

Service Portの欄で、Switch to Advancedをクリックし設定項目を増えたところで[Add Port]をクリックし以下項目を追加します。
STEP2以降はデフォルトのまま[SAVE]をクリックします。

設定が完了するとVirtual ServiceにDNS VSが表示されます。

Region01bの構築

ここまで構築してきた環境は、Region01aを想定した環境の構築になります。これと同等のRegion01bを別途構築します。

手順はいままで記載してきた内容を繰り返し、対象コンポーネントIPアドレスのみ変更して構築します。

問題なく構築ができれば、コントローラー、サービスエンジン、HTTPのVS、DNSのVSが正常にアップします。
Region01bのIPアドレスは以下で構築しています。
avi58:192.168.1.58
HTTP_VS_onearm:192.168.8.121
DNS_VS_01b:192.168.7.54

詳細は構築範囲の構成図をご覧ください。

GSLBのサイト設定

2つのサイトをRegion01aとRegion01bの2つに分けて構築するため論理的な定義を最初に行います。
まずは、avi056で設定を行います。

[Infrastructure]-[GSLB]-[Site Configuration]から画面右端の編集マークをクリックします。

まずは、Region01aに所属させるavi56を登録していきます。

Name:Region01a
Username:admin
Password:(avi56のadminパスワード)
IP Address:192.168.1.56
Port:443
Replication Mode:Continuous(自動で同期するモード)
GSLB Subdomain:gslb.home.local

画面下にスクロールしてAdvanced Settingsでは以下を設定し[Save and Set DNS Virtual Services]をクリックします。
Client Group IP Address Type:Private
Health Monitor Proxy:region01a
Geo Location Source:なし
ポイントはHealth Monitor Proxyになります。GSLBを定義するとVirtual Serviceはすべてのリージョンのサーバーに対してヘルスチェックをかけますが、通常拠点が異なるとFWなどが設置されているため通信許可を行う必要があります。

ヘルスチェックに失敗するとステータスでエラーが出てしまうので、自身のリージョン内だけヘルスチェックを行い、他拠点はチェックしない、つまり、コントローラー間で自身のヘルスチェック結果を他拠点に同期するということをこの機能で実現します。

DNS Virtual Serviceは、Region01aのavi56で作成した[DNS_VS_01a]を選択します。
Subdomainsは指定せずに[SAVE]をクリックします。

GSLBのDNS_VSでは、複数のサブドメインを登録できますが、この設定は指定したサブドメインのみGSLBで名前解決するという設定なので、登録をしなければすべてのサブドメインが名前解決の対象となります。

この設定をサブドメインを指定し、後日サブドメインを追加した際にうまく動作しないということがあるので、忘れないようにしましょう。今回は検証なので指定しません。

region01aが正常に登録されると一覧に表示されます。
画面右上の[Add New Site]をクリックしてavi58を登録していきます。

先ほどと同様にavi58を登録します。2台目からはActive Memberのチェックが外れているので忘れずにチェックします。

Name:Region01b
Username:admin
Password:(avi58のadminパスワード)
Active Member:チェックを入れる
IP Address:192.168.1.58
Port:443
Replication Mode:Continuous(自動で同期するモード)

region01bの登録が完了すると以下のように表示されます。

なお、設定が完了するとLeaderとなっているregion01aでは設定の編集が可能ですが、region01bでは設定の編集はできず、ステータスの表示のみとなります。編集マークのありなしでわかります。

これでGSLBのサイト設定は完了となります。