
3日PoC環境の構築(2/3)vSocket on ESXi
こんにちは。
株式会社フーバーブレイン SE の香取です。
ESXi 上に仮想アプライアンスである vSocket をインストールして、3日PoC環境を構築します。ESXi環境の必要から、中古PCを買ってきました!

第4世代 Core i7(Haswell)でちょっと古いのですが、メモリを 32GB,SSD 500GB を DVDドライブの形をしたマウンタで取り付けて検証PCの出来上がりです。
VMware vSphere Hypervisor 7.0(ESXi)をインストールしました。Cato Socket の VM を作り、3日PoC を行ってみたいと思います。

Cato Socket の仕様
Cato vSocket のセットアップ前に。
前回「3. ホームネットワーク型」として、NAPT を使用しているネットワークからも Cato Socket で SD-WAN への接続ができることを書きました。
一般的に Site-to-Site の VPN では IPSec が用いられ、NAPTの環境では NAT Traversal を設定しないと、うまく VPN 接続が出来ません。
ところが、Cato Socket は特にこの設定をしなくても、Cato Cloud に接続し Site-to-Site(Site-to-PoP)の VPN を展開できてしまいます。なぜでしょう?
Cato Networks の資料 Cato Networks Security as a Service を参照すると、この様に書かれています。
P.5
The Cato Socket dynamically connects to the nearest PoP across a DTLS tunnel for optimum security and efficiency.
“Cato Socket は最適なセキュリティと効率を実現するために、DTLS トンネルを介して最も近い PoP に動的に接続します。”
なるほど。DTLS を使用しているのですね。
この DTLS Tunnel のパケット構造を図にして、IPSec と比べてみましょう。

NAPT 環境下で IPSec を使うと「暗号化された TCP/UDP ヘッダから、NAPTで使用しているポート番号を読み出せない」という厄介な問題があります。
そのため NAT Traversal では「新UDPヘッダ」を付加し、そこにNAPTで使用しているポート番号を含めます。
DTLS Tunnel も「新UDPヘッダ(暗号化の対象外)にポート番号を含む事ができるので、NAPT 環境下でも Site-to-PoP の VPN を構築できる」と、言えますね! 実際の通信を見てみます。

Socket - PoP 間に DTLSv1.2(443/udp)を使用していることが分かります。
Cato vSocket 環境の構築
先ほどセットアップした ESXi に環境を構築しました。

vSocket が利用可能になるまでの流れは、この様になります。

Cato Cloud の大きな特長はクラウド側(ポータル)から、ローカルの vSocket を設定できることです。vSocket を起動すると DHCP でIPアドレスを取得して、最寄りの PoP に自動的に接続します。
まずは SD-WAN に接続。その後に詳細設定をする。
従来型の VPN 構築手順とは真逆で、何だか変な気分ですね。
しかし、慣れてしまうと Cato Cloud の方式が余程自然ですし、リモート拠点の追加時も本当に楽で気に入っています。
例えば、IT管理者の居ない支店に Cato Socket を送り、担当の方と10分ほど電話をしながら WAN 接続ということも出来てしまいます。「出張して、アプライアンスを設置して、なぜか VPN 接続がうまく行かず…」こういうのは、もう昔の話です。
1. 拠点を追加
Socketを使用するPoC、拠点・帯域をご契約いただいた際は、ポータルから拠点を追加できる様になっています。

+ ボタン(Add a new Site)をクリックして拠点を追加します。

この様に拠点を追加します。今回は PoC / デモ用のブランチで、ESXi 用の vSocket を指定しています。また、Cato Clooud に接続する拠点 LAN は 10.10.10.0/24 にしました。
2. シリアル番号を確認する
クラウドに拠点の vSocket を登録したので、そのシリアル番号を取得します。Cato Cloud はこのシリアル番号により、インターネットに接続された Socket / vSocket が「どの契約の、どの拠点のもの?」を識別しています。
先ほどのポータル画面でスパナのアイコン(Edit Sites)をクリックします。

図中の「XX-XX-XX-XX-XX-XX」がシリアル番号です。Cato vSocket のセットアップ時に必要となるため、控えておきます。
3. vSocket ダウンロード
Knowledge Base で「vSocket Download」で検索して見つけた「Configuring an ESXi vSocket Site」というページの解説を読み、vSocket の OVA をダウンロードしました。

私がダウンロードしたものは 60MB くらいでした(ファイルサイズは、その時点のバージョンにより異なります)。
4. ネットワークの追加
vSocket をインストールする前に、ESXi にネットワークを追加しておきましょう。先ほど設定した 10.10.10.0/24 を使用するネットワークです。
ESXi のネットワークの追加は、仮想スイッチ→ポートグループの順ですね。よって、この様にしました。
【仮想スイッチ】vSwitchCato
【ポートグループ】Cato Network

5. vSocket 構築
引き続き ESXi で「仮想マシン / 仮想マシンの作成/登録」を実行します。OVA ファイルから、vSocket を構築しましょう。

仮想マシン名を付け(私は vSocket としました)OVA をアップロードし、セットアップ先のストレージを選択…と進めて行きます。
そして、ネットワークの設定です。
【LAN1】Cato Cloud から見たときの vSocket(10.10.10.1)
【LAN2】マネージメント用
【WAN1】インターネット
【WAN2】インターネット(今回は未使用)
この様に使用しますので、私の設定は下図の通りです。

少しややこしいですね。特に LAN2!「LAN なのに WAN と同じネットワーク?」と混乱します。
これは通常使用している LAN(VM Network : NAPT 環境)に、更に Cato Cloud 用の LAN を構築しているためです。
「5 その他の設定」でシリアル番号を登録します。先ほどの「XX-XX-XX-XX-XX-XX」です。うっかり設定し忘れて構築をしてしまうと、仮想マシンを消して最初からやり直すことになります。忘れずに設定しておきましょう(実は1回、この操作を飛ばしてしまい…)。

構築完了です!起動してみましょう。vSocket の ESXi からの操作は基本的に起動とシャットダウンくらいです。

6. 確認
管理ポータルにアクセスします。いま構築した vSocket があります!
拠点を選択し、Configuration で vSocket の管理画面にアクセスして詳細設定をします。

先ほど述べた「まず、SD-WAN に接続。その後に詳細設定をする」というのが、これです。vSocket は手元にあるのに、クラウドを経由して…と考えると変ですが、手元では無い遠隔地にあると考えれば、これはとても便利です。


LAN 02, WAN 01(共に VM Network)が DHCP から受け取ったIPアドレスでしたので、固定のプライベートアドレスに変更しました。
実は Cato Cloud を介さなくても、直接 vSocket の管理画面にアクセスできます。場面に応じて使い分けが可能です。
その後も良い感じで動作しています。3日PoC環境の構築が完了です!
次回はモバイルクライアントから、この拠点にアクセスをしてみます。
Cato Cloud PoC 用の環境設計やシナリオの作成支援など、ぜひお気軽にご相談ください。
