仮想化エンジニア奮闘記

Citrix や VMware をはじめ、仮想化に関する最新技術や設計情報の検証結果を共有します。自分が面白いと思ったものを記事にするので一貫性はあまりありません。なお本ブログは個人のものであり、所属する会社とは関係ありません。内容については自己責任の上、ご参照をお願い致します。

NetScaler で ICA Proxyを構築してみた(1)

皆さまお疲れ様です。三連休いかがお過ごしでしょうか?

 

ブログ更新があまりできていませんでしたが、最近NetScaler 12.56を触る機会がありましたので、ICA Proxyを構築する流れをブログにしようと思います。NetScalerを題材にしたブログって日本ではあまり見かけないので、この記事が皆さまのお役に立てれば幸いです。

 

NetScalerってサーバーエンジニアが触る機会がない機器だとは思いますが、やれることが多いので覚えると楽しいですよ。ぜひ機会があれば触ってみて下さい。

 

構築にあたり、いくつかNetScalerで覚えておく単語があるので、この記事では単語のお勉強から始めましょう。

 

次:NetScaler で ICA Proxyを構築してみた(2)

※本記事はNetScaler 12.56を前提としています

 

①NetScaler Gateway

NetScaler GatewayはNetScalerの機能の1つの名称です。

クライアント端末がインターネットから社内のXenDesktop/XenAppなどに接続する際、NetScalerがゲートウェイとなってバックエンドサーバー・VDIとの接続を仲介するためこのような機能名となっているのだと思います。

 

NetScaler Gatewayでは大きく2種類の接続パターンがあります。

1つはNetScaler Gateway用のプラグインを使う方式、もう1つはNetScaler Gateway用のプラグインが不要な方式です。それぞれの接続方式について簡単にまとめてみます。

 

f:id:kenta53682:20180211235135p:plain

 

※詳しくは以下の記事も参照して下さい。

kenta-virtualization.hatenablog.com

 

 

②ICA Proxy

NetScaler Gatewayの有する機能の1つです。その名の通り、NetScalerがICA画面転送通信のリバースプロキシとして動作する機能です。

今回のブログのメインディッシュとなる機能です。

 

 

③Load Balancing

Load BalancingはNetScalerの機能の1つです。NetScaler Gatewayと同列にあると思って下さい。

名前の通りバックエンドサーバーへの負荷分散 を行う機能です。今回のブログではStoreFrontを負荷分散するときに使用します。

 

 

④Virtual Server

サーバーエンジニアにはあまり馴染みがないかもしれませんが、NetScaler GatewayやLoad Balancing用のVirtual IP(VIP)を提供する仮想的なサーバーと思って下さい。

NetScaler GatewayやLoad Balancingでは複数のVirtual Serverを作ることが可能です。

 

Virtual ServerにはVIPが1つ紐づき、クライアント端末は接続目的に応じて適切なVirtual Serverにアクセスします。(例えば、VDIに接続する場合はICA Proxy用NetScaler Gateway Virutal Serverなど)

 

 

⑤NSIP・SNIP・VIP

NetScalerでは大きく3つのIP種別があります。

1つめはNetScaler IP(NSIP)、2つめはSubnet IP(SNIP)、3つめはVirtual IP(VIP)の3つです。それぞれどのようなIPかを下の表にまとめてみました。

 

f:id:kenta53682:20180211233113p:plain

 

NetScalerはDMZに導入されることが多くFirwall申請がついて回ると思います上記の表を参考に、どのIPをソースとするかきちんと把握しておきましょう

 

 

⑥Secure Ticket Authority(STA)

社内でXenDesktop/XenAppを利用する場合、クライアント端末がStoreFrontにアクセスしてICAファイルをダウンロードし、ICA通信を開始します。このICAファイルにはVDAのアドレスやICAポートが記載されており、記載されたアドレスのVDAに対して画面転送通信を開始する流れとなっています。

 

ただインターネットから接続するICA Proxyの場合、ICAファイルにVDAのアドレスが記載された状態は非常に危ないですよね?通信を盗聴された場合、VDAのアドレスが丸裸になってしまいます。

 

ICA ProxyではSTAという機能を利用し、ICAファイルのVDAのアドレスをランダムな文字列にすることでVDAのアドレス流出を回避する仕となっています。

 

STAのフローは以下の図の通りです。

①・②ユーザーの新規接続時(①)、NetScalerはSTAサーバー(=Delivery Controller)に対してSTAチケット発行要求を行います。(②)

③STAサーバーはNetScalerに対してSTAチケットを発行します。STAチケットにはランダムな文字列が記載されています。

④クライアント端末はNetScalerからICAファイルをDLします。ICAファイル内にはSTAチケットの番号が記載されています。VDAのアドレスは記載されていません

⑤クライアント端末はICAファイルを元に接続を開始します。

⑥NetScalerはSTAチケットの番号を元に、どのVDAへ接続すればよいかSTAサーバーに照会します。

⑦STAサーバーは照会結果をNetScalerに返却します。

⑧NetScalerは照会結果を元にVDAへ接続を開始します。

 

 

f:id:kenta53682:20180211220550p:plain

 

STAとは上記のようなICAファイル内のVDAアドレスの暗号化を行う仕組みを提供する機能と覚えておいて下さい。

 

 

⑦Session Policy / Session Profile

NetScaler Gatewayを構成するときの設定の1つです

 

例えばICA ProxyではSession ProfileでStoreFrontのアドレスを設定します。ここで、接続元のクライアントソフトウェアがネイティブReceiverであればストアサイト、ブラウザであればReceiver for Webと分けたい要件がでてきたとしましょう。そんな時はSession Profileでまずストアサイト用のProfileとReceiver for Webサイト用のProfileを分けます。

 

そしてSession Policyにより、どんな時にSession Profileを適用するか設定します。例えばSession PolicyでUser-Agentを元にCITRIXRECEIVERが含まれていたらストアサイトへ、含まれていなかったらReceiver for Webへ、という設定を行います。

 

Session Policyに設定されたポリシーに合致した場合、対応するSession Profileを適用する流れとなります。これは後の記事で設定を載せますのでそこでイメージを持って頂ければと思います。

 

 

それでは本日は以上となります。

次の記事も近日中に投稿しますのでお待ち下さい。