見出し画像

出口の Cato PoP を変更する


こんにちは。
株式会社フーバーブレイン SE の香取です。

仮説
Cato Cloud で、サービス最寄りの「出口 PoP」を指定すればパフォーマンスは高いはず。

仮説を立てたら検証です。3分PoC の環境を活かして検証を行います!

画像1

目的地の最寄り PoP を調査

まず目的地を調べる必要があります。IPアドレスから大体の位置を特定してくれるサービスを利用します。検証用サービスの位置は「アメリカ合衆国カンザス州」と出ました。周辺で Cato PoP のある都市を探します。

ありました。南にダラス! ここの PoP  を使用したいと思います。

画像2

Cato Cloud の設定

PoP が決まりましたので、ネットワークルールを設定します。管理ポータルで「お手軽 5ステップ」です。

画像9

A1. 出口PoPを追加する

Cato Cloud は標準で3つまで「固定IPアドレスを持つ出口 PoP」を設定できます。サービス側でアクセス制御をする際などに使用します。

Configuration → Global Settings → IP Allocation

画像4

検証用に「Dallas」を追加しました!

B1. ルールを追加する

特定のサービスへのアクセス時だけ、Dallas PoP を利用したいです。ネットワークルールを追加します。

Networking → Network Rules

画像5

図では 8番が「WAN → インターネット」の基本ルールです。この上に新しいルールを追加します。ルールの右側にある「…」をクリックし「Add Internet Rule Above」を選択します。

B2. What を設定する

「どのサービス?」のことです。追加したルール行の What列にある「Add」 ボタンをクリックすると設定画面が表示されます。

検証など一時的な利用を除き、IPアドレスだけでサービスを識別するのは問題があります。サービス側で変更される可能性があるためです。
そのため、Cato Cloud には9つのサービス識別方法があります。

(1) Categories
 Email,Online Storage, …
(2) Applications
 Gmail, OneDrive, …
(3) Services
 MSSQL, SSH, …
(4) Custom Apps
(5) Custom Categories
(6) Custom Service (by IP)
(7) Domain Name
(8) FQDN
(9) Ports

(2) には多くのアプリケーション(クラウドサービス)が登録されています。
しかし、国内発のサービス(例:当社の Eye 247 等)は、あまり登録が無く (2) では指定できないことがあります。
その場合は別途 Custom Applications を定義し、(4) を使用します。

今回は一時利用なので (6) のIPアドレス指定を使います。

B3. From を設定する

ルールの適用先です。これも複数の方法で指定できます。

(1) Groups
(2) Sites
(3) Hosts
(4) VPN Users
(5) Networks
(6) Floating Ranges
(7) Discrete IP

検証では (1) で「All VPN Users」というグループを選択しています。

B4. ルーティングを設定する

ルール行の下の方にある「+ Routing」をクリックすると、ルーティング設定が表示されます。Route/NAT で「NAT」を選びます。

画像6

そして、隣の「Add」で、出口PoP を選択します。

画像8

お疲れさまでした! 画面上部にある SAVE ボタンを押して、管理ポータルでの設定は完了です。3分PoC環境で検証を行います。

検証

直接の接続で、tcptraceroute を実行してみます。

AAA.BBB.CCC.DDD 目的のサービス
XXX.XXX.XXX.XXX 経路上のルータ
192.168.87.177 Hyper-V の Default Switch
192.168.1.1 検証環境のルータ

直接接続

$ tcptraceroute AAA.BBB.CCC.DDD 443 -n -w 1
Selected device eth0, address 192.168.87.179, port 56155 for outgoing packets
Tracing the path to AAA.BBB.CCC.DDD on TCP port 443 (https), 255 hops max
1  192.168.87.177  0.145 ms  0.205 ms  0.181 ms
2  192.168.1.1  15.161 ms  14.842 ms  15.236 ms
3  * * *
4  * * *
5  * * *
6  * * *
7  * * *
8  * * *
9  * * *
10  * * *
11  XXX.XXX.XXX.XXX  32.534 ms  25.541 ms  27.439 ms
12  * * *
13  AAA.BBB.CCC.DDD [open]  24.552 ms  24.470 ms  25.502 ms

13ホップです。対象サービスの RTT は小さく、海外のサーバにアクセスしている様な気がしません。

Dallas PoP

$ tcptraceroute AAA.BBB.CCC.DDD 443 -n -w 1
Selected device tun0, address 10.41.83.50, port 49037 for outgoing packets
Tracing the path to AAA.BBB.CCC.DDD on TCP port 443 (https), 255 hops max
1  AAA.BBB.CCC.DDD [open]  23.996 ms  20.706 ms  18.759 ms

もう少し RTT が減ると思ったのですが、誤差の範囲でした。
それにしても、1ホップ? これが TCP Proxy ですね。だから、きっと ICMP では異なる結果になるはずです。traceroute を使ってみます。

$ traceroute AAA.BBB.CCC.DDD -n -m 255 -w 1
traceroute to AAA.BBB.CCC.DDD (AAA.BBB.CCC.DDD), 255 hops max, 60 byte packets
1  XXX.XXX.XXX.XXX  149.554 ms  149.499 ms  149.409 ms
2  XXX.XXX.XXX.XXX  149.477 ms  149.470 ms XXX.XXX.XXX.XXX  163.061 ms
3  XXX.XXX.XXX.XXX  149.440 ms  149.586 ms  149.558 ms
4  * * *
...(終わりません)

やっぱり!

しかし、直接接続と Dallas PoP で全く差がつきません。
検証対象のサービスは超大手のものです。全世界向けに 1つのIPアドレスでサービスをしているのですから、恐らく Cato Cloud と同様に TCP Proxy や強力なバックボーンを持っているのでしょう。

これで終わっては検証の失敗です。明らかな海外サーバで再度検証を行います。archive.ubuntu.com(出口PoP は London)です。

直接接続(archive.ubuntu.com)

$ tcptraceroute archive.ubuntu.com -n -w 1
Selected device eth0, address 192.168.87.179, port 36081 for outgoing packets
Tracing the path to archive.ubuntu.com (91.189.88.152) on TCP port 80 (http), 30 hops max
1  192.168.87.177  0.463 ms  0.226 ms  0.193 ms
2  192.168.1.1  15.564 ms  14.287 ms  15.734 ms
3  * * *
4  * * *
5  * * *
6  * * *
7  * * *
8  * * *
9  * * *
10  * * *
11  XXX.XXX.XXX.XXX  121.850 ms  120.736 ms  120.601 ms
12  XXX.XXX.XXX.XXX  20.976 ms  20.950 ms  20.536 ms
13  XXX.XXX.XXX.XXX  123.403 ms  124.714 ms *
14  * * *
15  * * *
16  * * *
17  * * *
18  91.189.88.152 [open]  252.752 ms  250.872 ms  251.378 ms

ものすごく遅いです!(嬉しい!!)

遠隔地であり RTT が大きいです。余談ですが Ubuntu をインストールした時には、まず最初に /etc/apt/sources.list を編集して国内ミラーサーバを使用する様にしましょう。

London PoP(archive.ubuntu.com)

$ tcptraceroute archive.ubuntu.com -n -w 1
Selected device tun0, address 10.41.72.11, port 43225 for outgoing packets
Tracing the path to archive.ubuntu.com (91.189.88.152) on TCP port 80 (http), 30 hops max
1  91.189.88.152 [open]  22.655 ms  20.090 ms  21.558 ms

速い! 10倍速!!
せっかくなので Tokyo PoP の場合も調べてみたいと思います。

Tokyo PoP(archive.ubuntu.com)

$ tcptraceroute archive.ubuntu.com -n -w 1
Selected device tun0, address 10.41.71.114, port 51845 for outgoing packets
Tracing the path to archive.ubuntu.com (91.189.88.152) on TCP port 80 (http), 30 hops max
1  91.189.88.152 [open]  29.520 ms  23.987 ms  26.421 ms

んん? London PoP とほぼ同じです。
「Tokyo PoP を経由するものの、最終的な出口は一緒」ということですね。

結果

画像9

仮説
Cato Cloud で、サービス最寄りの「出口 PoP」を指定すればパフォーマンスは高いはず。

残念ながら、この仮説は敗れてしまいました。
遠隔地のサービスについて「出口 PoP」を特に設定する必要は無く、Cato Cloud を利用するだけでパフォーマンスを向上できます。

また、WAN に関してもクラウドアクセラレーションは有効です。
例えば「海外データセンターにあるアプリケーションを WAN 経由で!」という場合など、大きな効果が期待できます。

この様な形で次回以降も仮説を立て、検証をして行きます。
今後ともよろしくお願いいたします。

画像9

この記事が気に入ったらサポートをしてみませんか?