経緯
IBM Cloudでは負荷分散装置としてNetScaler(以下NS)を、Public VLANのファイアウォールとしてFortiGate Security Appliance(以下FSA)をオーダーすることができますが、NSの設定でかなり悩んだのと、FSAとの組み合わせで外部からの通信がNSにうまく到達できなかったので、試行錯誤の末たどり着いた対応方法をメモします。
ここで想定する構成
アカウントのPublic VLANの前面にFSAを配置し、NSはPublic VLANのVirtual IPでトラフィックを受信し、Private VLANのサーバを負荷分散する構成です。また、NSは冗長構成です。
FSA
FSAは事前にオーダー済とします。FSAはオーダー直後の状態で、Public VLANとのInboundとOutboundが全て許可されていますので、外部からPublic VLAN上のIPと通信が可能になっています。
NetScaler
オーダー
冗長構成のため1台ずつ、計2台オーダーします。オーダー時にVirtual IP用のスタティックIPを合わせてオーダーすることになりますが、2号機のスティックIPは使いません。なぜなら、フェイルオーバー時には1号機に指定したVirtual IP(スタティックIP)が2号機に引き継がれるからです。もったいないですがスタティックIPをオーダーしないという選択ができないのであきらめましょう。
初期設定
High Availability構成等、初期設定をします。ググれば情報は多いのでここでは割愛します。
Virtual Serverの作成
Virtual Serverの作成をします。一般的な部分は割愛しますが、ここでのポイントは、Virtual IPに1号機(プライマリ機)に割り当てられたスタティックIPを指定することです。
使えるスタティックIPはNSのデバイスの詳細から確認できます。
ここから選んでVirtual IPとして設定します。
動作確認
では早速動作確認してみましょう、と言いたいところですが、できません。先ほど指定したVirtual IPは現在Public VLANでは通信できない状態となっています。
FSA
ルーティング設定
通信できない原因ですが、Virtual IPとして指定したスタティックIPのルーティング先をFSAが認識できていないため、のようです。そのため、手動でルーティングを追加します。
その前に、スタティックIPの設定を確認します。ポータルのサブネット一覧から確認すると、スタティックIPは特定のIPアドレスに対して経路指定されていることがわかります。
このIPアドレスをゲートウェイとして、ルーティングを追加します。
- Destination IP/MaskはスタティックIP
- DeviceはFSAのPublic VLAN側のインターフェース(-insideという名称)
- GatewayはスタティックIPに紐づいた経路のIPアドレス
動作確認
はい、これで外部からVirtual IPに到達できるようになったはずです。疎通確認やNSがフェイルオーバーしても問題ないことを確認してください。
なぜこれで動くのか
正直、うまく説明できませんし、これが唯一の解とも思っていません。IBM Cloud Infrastructureのネットワークは独特ですし、NSもかなり独特なネットワークの考え方をしています。詳しい方教えてください。