Edited at

柔らか層外伝 NetScaler編


SoftLayer と NetScaler について

今回は、高機能な負荷分散や、Global LoadBalancer、WAFとして利用されている NetScaler です。VPX、MPXの2つの選択肢がありますが、どちらのケースにおいても今回は同じ杖が必要です。それでは早速:smile:


転ばぬ先の杖 :coffee:


杖1:エディションはアップグレードできる

StandardからPlatinumへのアップグレードはTicketで依頼することができます。スモールスタートして順次拡張する、ということができます。


杖2:買う前に、NetScaler VPX Platinum Editionを試すことも出来る。

Citrix NetScaler VPX-1000 Platinum Editionの 90日有効な評価版ライセンスを利用できます。

以下から評価版ライセンスを取得できます。ライセンス取得にはMy Citrixアカウント作成が必要です。

シトリックス » 評価版ダウンロード

http://www.citrix.co.jp/products/download.html

上からはVPX 10.1しかダウンロードできないので、VPX 10.5はこちらからダウンロード

NetScaler VPX Express - Citrix

http://www.citrix.com/downloads/netscaler-adc/virtual-appliances/netscaler-vpx-express.html


セットアップ概略

1. My Citrixアカウント作成

2. 評価版ダウンロードのリンク先から、Trialライセンスの発行を依頼

3. NetScaler VPX Expressから、VPX 10.5をダウンロード。

4. OVFをデプロイして起動

5. user: nsroot/passwd: nsrootでログイン。shellコマンドでシェルに移動

6. lmutil lmhostid -ether コマンドでライセンス登録に必要なMACアドレスを取得

7. ライセンス管理のページ (http://www.citrix.com/account/toolbox/manage-licenses/view.html) からライセンスに取得したMACアドレスを登録

8. ライセンスファイルをダウンロードして、VPXに適用



杖3:初期オーダー時のホスト名からの変更はできない

これは仕様なので、どうしても変えたい場合は新規に構築するしかありません。。。


杖4:ライセンス更新は?

HA構成を組んでいる場合、1号機、2号機のパスワードが同期されるため、初期オーダー時からどちらか一方のパスワードが変わってしまっている場合があります。SoftLayerのカスタマーポータルに入っているパスワード情報が、実際のパスワードと異なる場合、以下の手順でライセンスアクティベーションが行えません。

パスワードが異なる場合は、チケットで依頼して、正しいパスワードに更新してもらいましょう。


通常のライセンス更新手順:

1. SoftLayer管理ポータルへログインする

2. Device Listを表示

3. 確認対象のNetscalerのDevice Nameを選択

4. ライセンスの更新※ チェックボックスを選択後、Rebootで完了します。

nslic.png



杖5:有事の際のアクセスパスを設定しておきたい

制限する接続IPアドレスを変更する、ということなのですが、災害などの状況で、その時だけアクセスを許可して、特定の送信元からはインターネットからでもサービスを利用できるようにする、といった使い方を想定しています。

方法は、以下の3つがあります。


  1. GUIでの操作

  2. NetScalerコマンドでスクリプト化

  3. NetScaler SDKでプログラム作成

それほど変更が頻繁にないようであれば手順にしてNetScalerのGUIで設定すればよいでしょう。頻繁にある場合や自動化したい場合はコマンドをスクリプト化するか、SDKでプログラムを作るのがよいですね。

GUIもコマンドも、ある程度のNetScaler操作のスキルがあれば、ガイドに従って実施いただけると思います。

コマンドの場合は、具体的には以下のようなNetScalerのコマンドを投入します。sshなどを使って工夫すれば、スクリプト化することもできると思います。

> add ns acl acl_allow01 ALLOW -srcIP = 100.100.0.0-100.100.255.255 -protocol ICMP -priority 10 -kernelstate SFNOTAPPLIED61

Done
> save ns config
Done

ns acl - Citrix eDocs
http://support.citrix.com/proddocs/topic/ns-reference-map-10-5/netscaler-crg-ns-acl-ref.html#netscaler-crg-add-ns-acl

あとは、NetScaler SDK を使って、C/Perl/Java/C#などで簡単なプログラムを作っても対応できます。

アクセスリスト追加は上記のSDKサイトにサンプルが付いているので、比較的簡単にできますよ。


杖6:使うバージョンはできるだけ最新に

Vyattaでも同様ですが、Netscalerのバージョンもできるだけ最新のものを適用するようにしましょう。これは初期構築時だけではなく、定期的に更新する仕組みを検討し、実装しておく、ということも大切です。特に、NetscalerやVyattaはネットワークの中心的な役割を担うことが多く、パフォーマンスの改善やセキュリティの強化などが施されることがあります。そんな便利機能、積極的に使わない手はありませんね。


杖7:Netscalerじゃなくてもいいかも?

アクセス経路がPrivateの場合、Netscalerを検討するのがよいです。ですが、Publicの場合は、2018年5月から利用できるようになった「IBM Cloud Internet Services」を検討してみるのもよいでしょう。

WAF、DDoS防御、GlobalLBが標準でついてきます。加えて、CDNやFirewall、証明書サービス、(業界最速の)DNSなども使える超お得サービスです。

詳細:https://cloud.ibm.com/docs/infrastructure/cis?topic=cis-getting-started&locale=ja


NetScalerが応答しない!

これはSoftLayerあるある、です。

HA構成のNetScalerで何らかの理由でheartbeatが失われると、hearbeatを失ったNIC側を使わなくなってしまう。2)に記載したように、NetScalerはIP addressとNICの間に静的な割当関係を必要としないので、2)や3)の対策を行わないと2つあるNICのどちらを使うかわからない。heartbeatを失った後、意図しないNICに意図しないIP addressを使わないようにこれらの設定をする。

一方、heartbeatを失っても、heartbeatが復活したら問題のあるNICを再度利用してもいいはずなのに、一度だめになるとリセットするまで復活しないという問題がある。これを修正するために、1)を適用する必要がある。

- Private VLAN側のみ使っているなら1)を実施

- Public VLAN側もつないで使っているなら2)も実施

- この状態で様子見て再発しないなら3)は要らないかも


対策1)NetScalerのHA構成時に発生するバグ。-> release 10.5 build 57.7以上のBuildにあげる。

(参考)http://docs.citrix.com/en-us/netscaler/10-5/ns-rn-main-wrapper-10-5-con/main-releases/fixed-issues-in-previous-10-5-builds.html#high_availability


対策2)NetScalerで扱う全てのsubnetに対し、ひとつずつSNIPもしくはVIPをbindする。

NetScalerではIP addressを定義しただけでは、どのインターフェースで使うのかは決まっておらず、なんらかのきっかけで特定のインターフェースに結び付けられ、負荷増大などの他のきっかけでそれが外れてしまうということがある。明示的に縛るにはsubnetを特定のinterfaceにbindしておく必要がある。

※SoftLayerから配布された初期構成では設定されている模様

How to Associate an IP Subnet with a NetScaler Interface by Using VLANs


対策3)MAC based forwarding(MBF)を有効にする。

MAC based forwardingは、外部から来たリクエストに対し、同じインターフェースから応答を返すという設定。NetSclaer発のTCP接続には、MAC based forwardingは効かないかもしれない。

FAQ: Citrix NetScaler MAC Based Forwarding (MBF)

MAC based forwardingの設定方法


Configurationタブの

System > Settingsの中の

Configure Modesをクリックし

MAC based forwardingにチェックを入れてOKをクリック、で設定できます。


http://www.carlstalhood.com/netscaler-system-configuration/#twoarm

http://www.creationline.com/lab/5838


補足

スペックを把握しておきたい場合は、こちらが参考になります。

製品マニュアル的なものもいくつかCitrix社のサイトにあります。

http://docs.citrix.com/en-us/netscaler/10-5.html

http://support.citrix.com/servlet/KbServlet/download/18667-102-19396/NS_GSG_JA.pdf(v9だけど日本語です)