Zscaler の ip.zscaler.com と 確認くん は何が違うのか

# はじめに
本記事はゼットスケーラー株式会社としては初の[Advent Calender 2023](https://qiita.com/advent-calendar/2023/zscaler) １日目の記事です。
本記事では、Zscaler のトラブルシューティングツールの１つ、ip.zscaler.com について解説します。

以下の免責事項をご理解の上、記事を読んで頂けると幸いです。

# 免責事項
本記事のコンテンツや情報において、可能な限り正確な情報を掲載するよう努めておりますが、 誤情報が入り込んだり、情報が古くなったりすることもあり、必ずしもその内容の正確性および完全性を保証するものではございません。そのため、本記事をエビデンスとしたゼットスケーラーへの問い合わせなどはご対応致しかねることをご理解頂けると幸いです。掲載内容はあくまで個人の意見であり、ゼットスケーラーの立場、戦略、意見を代表するものではありません。当該情報に基づいて被ったいかなる損害について、一切責任を負うものではございませんのであらかじめご了承ください。


# ip.zscaler.com と確認くんは何が違う？

- ip.zscaler.com
Zscalerのトラブルシューティングツールです。
Zscalerを利用しているユーザーのデバイスから https://ip.zscaler.com/ にアクセスします。
アクセスすると、ユーザーのデバイスがZscalerを経由した通信を行っているかどうか、またZscalerを経由した後のグローバルIPアドレスを確認できます。

<br>

- 確認くん
ご存知、自分のグローバルIPアドレスを確認する時に利用される有名サイトです。
Zscalerの利用に関係なく、「自分のIPアドレスなんだっけ？」という時には、ブラウザから　https://www.ugtop.com/spill.shtml にアクセスして簡単に確認ができます。

<br>

自分のグローバルIPアドレスを確認する、という意味だと同じ目的のツールです。
しかし、ip.zscaler.com には自分のグローバルIPアドレスを確認する以外にも、Zacalerでのトラブルを切り分けをするための情報が含まれています。
以下の比較から違いを解説していきます。


<br>
<br>


## ZIAにログインしていない状態での比較
ZCCでZIAにログインしていない状態で、それぞれのサイトにアクセスします。
スクリーンショットのグローバルIPアドレスにモザイクを掛けているので分かりにくいですが、どちらも同じIPアドレスが表示されています。
つまり、ZIAにログインしていない状態だと、違いは感じません🤔

### ip.zscaler.com
<img width="600" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/308973/a9fae0f2-3ff1-fa0d-198c-c13d6b396ba2.png">

### 確認くん
<img width="600" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/308973/6692bb23-92c2-5851-2a8c-70d941e8fcb2.png">




<br>
<br>

  
## ZIAにログインしている状態での比較
今度はZCCでZIAにログインしている状態で、それぞれのサイトにアクセスします。
今度は違いが出ており、ip.zscaler.com はグローバルIPアドレスがたくさん出てきて、確認くんはシンプルにZscalerを経由したグローバルIPアドレスのみが表示されます。

### ip.zscaler.com
<img width="600" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/308973/f05703a9-5c87-4110-c651-dd6251265ab6.png">


### 確認くん
<img width="600" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/308973/21b0ce17-0a83-ddbe-e7a6-5dabb2ca622f.png">





<br>
<br>

# ip.zscaler.com はどんな情報を表示しているのか
上のip.zscaler.comのスクリーンショットを解説します。

まずはこちらの部分です。
<img width="600" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/308973/85420590-ff99-7a9e-1c17-579b00b4cca0.png">

> You are accessing the Internet via Zscaler Cloud: Tokyo IV in the zscalertwo.net cloud.

 Zscaler Cloud 経由でインターネットにアクセスしている時のクラウド名と地域が分かります。
 上記場合ですと、このようになります。
  - クラウド名 : zscalertwo.net
  - 地域 : Tokyo Ⅳ

ちなみに、この情報からでもZscalerのIPレンジが掲載されている [config.zscaler.com](https://config.zscaler.com/zscalertwo.net/cenr) でIPレンジは分かります。
そうすると、Tokyo Ⅳ で使われている IP Address (CIDR Notation) と　Proxy Hostname が書いています。
<img width="600" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/308973/9318fbc8-689f-96b9-ed28-75546c7ecca6.png">

私のデバイスはTokyo Ⅳのプロキシ tyo4.sme.zscalertwo.net を利用していて、インターネットEgress(IPv4)は 165.225.110.0/23 もしくは 167.103.28.0/23 のいづれかが使われるようです。

<br>
<br>

次にこちらの部分です。
分かりやすく番号を振りました。
![Zscaler_Cloud_Security__My_IP_Address_04.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/308973/209a3ba7-c715-1e49-c0fc-3fab82507487.png)

> Your request is arriving at this server from the IP address X.X.X.X
> The Zscaler proxy virtual IP is 165.225.110.34.
> The Zscaler hostname for this proxy appears to be zs2-tyo4-1e4-sme.
> The request is being received by the Zscaler Proxy from the IP address Y.Y.Y.Y
> Your Gateway IP Address is Y.Y.Y.Y

①は、ip.zscaler.com にアクセスしたグローバルIPアドレスです。
外部から見たときのインターネットEgress(IPv4)に該当します。
こちらは確認くんにアクセスしたときと同じグローバルIPアドレスが表示されます。


②はProxy Virtual IPアドレスです。
プロキシは先程確認した Tokyo Ⅳのプロキシ tyo4.sme.zscalertwo.net です。
このプロキシのIPアドレスなのですが、こちらに表示されているのはそのVIPのようです。
しかし、同じデバイスで tyo4.sme.zscalertwo.net の正引きをすると、
```bash
$ dig tyo4.sme.zscalertwo.net +short

165.225.110.16
```
となり、ip.zscaler.comで表示されたVIP 165.225.110.34 と違っています。
これは少し不思議です。
ip.zscaler.com と私のデバイスでVIPの正引きが異なっていることになります。
おそらく、ip.zscaler.com は何らかのロジックで「あなたのVIPはこれでは？」と推測して表示しているのかもしれません。

なお、VIPの仕組みは [Multi-Cluster Load Sharing](https://help.zscaler.com/zia/understanding-multi-cluster-load-sharing) によって説明があるので、良ければこちらをご参考にしてください。


③ Zscalerのプロキシサーバの内部ホスト名です。
このプロキシサーバの内部ホスト名をなぜ ip.zscaler.com が理解しているのかが不思議ですが、英語の表現でも `The Zscaler hostname for this proxy appears to be `とある通り、「このプロキシの内部ホスト名はこれっぽい」というニュアンスとなっています。
やはり、ip.zscaler.com には先程のVIPと同様に利用しているプロキシサーバの内部ホスト名を推測するロジックを持っていそうです。
確認くんのサイトには、この様な情報は表示されないのです。


④と⑤はほとんど同じものになると思いますが、ユーザーデバイスがZscalerを経由する前のグローバルIPアドレスです。
ip.zscaler.com がXFFで受け取った値を利用して表示していると思います。

<br>
<br>

# まとめ
ip.zscaler.comと確認くんは同じようにユーザーのデバイスのグローバルIPアドレスを確認するサイトではあるのですが、確認くんでは分からないようなZscalerプロキシの情報も ip.zscaler.com は表示しています。

このような情報はユーザーが直接利用するものではないものの、Zscalerのサポートがトラブルシューティングを早くするために必要となる情報になります。
そういう目的で作られているツールですので、サポートに問い合わせをする際には確認くんではなく ip.zscaler.com を利用しましょう。