3
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

AzureとOCIをS2S VPNでつないでみた (Windows Server RRAS)

Posted at

AzureとOCIを接続するために、Azureのサイト間(S2S) VPNと、OCI上に立てたWindows ServerのRouting and Remote Access Service (RRAS)を使ってみました。
ただし、Azure VM上ではRRASをサポートしていないことを明示していますので、この構成もサポートされない可能性があることにご注意ください。

構成図

Diagram.png

パフォーマンス

[azureuser@Azure-Linux ~]$ ping 10.0.1.2
PING 10.0.1.2 (10.0.1.2) 56(84) bytes of data.
64 bytes from 10.0.1.2: icmp_seq=1 ttl=63 time=10.9 ms
64 bytes from 10.0.1.2: icmp_seq=2 ttl=63 time=10.4 ms
64 bytes from 10.0.1.2: icmp_seq=3 ttl=63 time=10.7 ms
64 bytes from 10.0.1.2: icmp_seq=4 ttl=63 time=10.7 ms
64 bytes from 10.0.1.2: icmp_seq=5 ttl=63 time=10.5 ms
64 bytes from 10.0.1.2: icmp_seq=6 ttl=63 time=10.7 ms
64 bytes from 10.0.1.2: icmp_seq=7 ttl=63 time=10.7 ms
64 bytes from 10.0.1.2: icmp_seq=8 ttl=63 time=10.8 ms
64 bytes from 10.0.1.2: icmp_seq=9 ttl=63 time=10.9 ms
64 bytes from 10.0.1.2: icmp_seq=10 ttl=63 time=11.1 ms
64 bytes from 10.0.1.2: icmp_seq=11 ttl=63 time=10.8 ms
64 bytes from 10.0.1.2: icmp_seq=12 ttl=63 time=10.8 ms
^C
--- 10.0.1.2 ping statistics ---
12 packets transmitted, 12 received, 0% packet loss, time 11017ms
rtt min/avg/max/mdev = 10.454/10.796/11.132/0.179 ms
[azureuser@Azure-Linux ~]$
  • 1本計測
[azureuser@Azure-Linux ~]$ iperf3 -c 10.0.1.2
Connecting to host 10.0.1.2, port 5201
[  4] local 192.168.0.4 port 54122 connected to 10.0.1.2 port 5201
[ ID] Interval           Transfer     Bandwidth       Retr  Cwnd
[  4]   0.00-1.00   sec  13.8 MBytes   116 Mbits/sec    0    825 KBytes
[  4]   1.00-2.00   sec  15.3 MBytes   128 Mbits/sec    9    680 KBytes
[  4]   2.00-3.00   sec  15.5 MBytes   130 Mbits/sec    0    760 KBytes
[  4]   3.00-4.00   sec  13.7 MBytes   115 Mbits/sec    0    816 KBytes
[  4]   4.00-5.00   sec  14.5 MBytes   122 Mbits/sec   34    616 KBytes
[  4]   5.00-6.00   sec  15.3 MBytes   128 Mbits/sec    0    654 KBytes
[  4]   6.00-7.00   sec  8.73 MBytes  73.2 Mbits/sec    0    679 KBytes
[  4]   7.00-8.00   sec  16.1 MBytes   135 Mbits/sec    0    694 KBytes
[  4]   8.00-9.00   sec  15.9 MBytes   133 Mbits/sec    0    699 KBytes
[  4]   9.00-10.00  sec  14.7 MBytes   123 Mbits/sec    0    700 KBytes
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bandwidth       Retr
[  4]   0.00-10.00  sec   144 MBytes   120 Mbits/sec   43             sender
[  4]   0.00-10.00  sec   141 MBytes   119 Mbits/sec                  receiver

iperf Done.
[azureuser@Azure-Linux ~]$
  • 2本同時計測
[azureuser@Azure-Linux ~]$ iperf3 -c 10.0.1.2
Connecting to host 10.0.1.2, port 5201
[  4] local 192.168.0.4 port 35698 connected to 10.0.1.2 port 5201
[ ID] Interval           Transfer     Bandwidth       Retr  Cwnd
[  4]   0.00-1.00   sec  6.49 MBytes  54.4 Mbits/sec    0    392 KBytes
[  4]   1.00-2.00   sec  7.14 MBytes  59.9 Mbits/sec    2    659 KBytes
[  4]   2.00-3.00   sec  4.66 MBytes  39.1 Mbits/sec    0    662 KBytes
[  4]   3.00-4.00   sec  4.78 MBytes  40.1 Mbits/sec    0    667 KBytes
[  4]   4.00-5.00   sec  4.84 MBytes  40.6 Mbits/sec    3    668 KBytes
[  4]   5.00-6.00   sec  3.66 MBytes  30.7 Mbits/sec    3    477 KBytes
[  4]   6.00-7.00   sec  2.48 MBytes  20.8 Mbits/sec    1    533 KBytes
[  4]   7.00-8.00   sec  3.95 MBytes  33.2 Mbits/sec    1    537 KBytes
[  4]   8.00-9.00   sec  2.54 MBytes  21.3 Mbits/sec    0    540 KBytes
[  4]   9.00-10.00  sec  4.07 MBytes  34.1 Mbits/sec    1    541 KBytes
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bandwidth       Retr
[  4]   0.00-10.00  sec  44.6 MBytes  37.4 Mbits/sec   11             sender
[  4]   0.00-10.00  sec  43.1 MBytes  36.1 Mbits/sec                  receiver

iperf Done.
[azureuser@Azure-Linux ~]$
[azureuser@Azure-Linux2 ~]$ iperf3 -c 10.0.1.3
Connecting to host 10.0.1.3, port 5201
[  4] local 192.168.0.5 port 50236 connected to 10.0.1.3 port 5201
[ ID] Interval           Transfer     Bandwidth       Retr  Cwnd
[  4]   0.00-1.00   sec  2.71 MBytes  22.7 Mbits/sec    0    215 KBytes
[  4]   1.00-2.00   sec  3.83 MBytes  32.2 Mbits/sec    0    374 KBytes
[  4]   2.00-3.00   sec  4.01 MBytes  33.6 Mbits/sec   19    306 KBytes
[  4]   3.00-4.00   sec  3.01 MBytes  25.2 Mbits/sec    0    342 KBytes
[  4]   4.00-5.00   sec  3.83 MBytes  32.2 Mbits/sec    1    356 KBytes
[  4]   5.00-6.00   sec  5.31 MBytes  44.5 Mbits/sec    0    366 KBytes
[  4]   6.00-7.00   sec  4.78 MBytes  40.1 Mbits/sec    1    373 KBytes
[  4]   7.00-8.00   sec  5.84 MBytes  49.0 Mbits/sec    0    382 KBytes
[  4]   8.00-9.00   sec  5.37 MBytes  45.0 Mbits/sec    0    392 KBytes
[  4]   9.00-10.00  sec  5.60 MBytes  47.0 Mbits/sec    0    401 KBytes
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bandwidth       Retr
[  4]   0.00-10.00  sec  44.3 MBytes  37.2 Mbits/sec   21             sender
[  4]   0.00-10.00  sec  43.4 MBytes  36.4 Mbits/sec                  receiver

iperf Done.
[azureuser@Azure-Linux2 ~]$
  • VPNを通さないパブリック同士
[azureuser@Azure-Linux2 ~]$ iperf3 -c 168.138.42.98
Connecting to host 168.138.42.98, port 5201
[  4] local 192.168.0.5 port 38456 connected to 168.138.42.98 port 5201
[ ID] Interval           Transfer     Bandwidth       Retr  Cwnd
[  4]   0.00-1.00   sec  86.6 MBytes   726 Mbits/sec  990   1.19 MBytes
[  4]   1.00-2.00   sec  52.5 MBytes   440 Mbits/sec  287    482 KBytes
[  4]   2.00-3.00   sec  57.5 MBytes   482 Mbits/sec    0    567 KBytes
[  4]   3.00-4.00   sec  66.2 MBytes   556 Mbits/sec    0    650 KBytes
[  4]   4.00-5.00   sec  58.8 MBytes   493 Mbits/sec  113    530 KBytes
[  4]   5.00-6.00   sec  61.2 MBytes   514 Mbits/sec    0    614 KBytes
[  4]   6.00-7.00   sec  51.2 MBytes   430 Mbits/sec   48    505 KBytes
[  4]   7.00-8.00   sec  58.8 MBytes   493 Mbits/sec    0    587 KBytes
[  4]   8.00-9.00   sec  67.5 MBytes   566 Mbits/sec   66    469 KBytes
[  4]   9.00-10.00  sec  53.8 MBytes   451 Mbits/sec    0    549 KBytes
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bandwidth       Retr
[  4]   0.00-10.00  sec   614 MBytes   515 Mbits/sec  1504             sender
[  4]   0.00-10.00  sec   611 MBytes   513 Mbits/sec                  receiver

iperf Done.
[azureuser@Azure-Linux2 ~]$

計測は、2020年11月15日(日) 午後のものです。

セットアップ

Azure

Azure S2S VPN Gateway

Docsの手順に従ってAzure側をセットアップします。
VPN GatewayのSKUで帯域幅が決まるので、今回は1.25 GbpsのGeneration2 VpnGw2を選択しましたが、上のパフォーマンスを見るとVpnGw1でもよいかもしれません。
ローカルネットワークゲートウェイの作成はOCIのパートを作成してから行います。

OCI

VCN

今回は簡単に、インターネット接続性を持つVCNをウイザードで作成します。
VCN1.PNG

Windows Server VM

Windows Server 2016で作成します。デフォルトのシェイプを選択します。
OCI-VM1.PNG

2020年11月15日現在、Windows Server 2019の"Windows-Server-2019-Standard-Edition-VM-E3-2020.10.20-0"をイメージを使うと、RRASの設定でエラーとなることが多いようなので、Windows Server 2016を今回は使っています。

ネットワークはパブリックサブネットに接続します。
リモートデスクトップでつなぐため、パブリックサブネットのセキュリティリスト、イングレスにRDPを追加します。この時、接続元として利用しているIPアドレスを指定するなどしてもよいと思います。
OCI-VM2.PNG
リモートデスクトップで接続したら、パスワードを設定し、ネットワーク探索はNoで設定します。

RRAS

インストール

サーバーマネージャーからAdd Roles and Featuresを起動します。
OCI-RRAS1.PNG
OCI-RRAS2.PNG
OCI-RRAS3.PNG
OCI-RRAS4.PNG

設定

サーバーマネージャーからRouting and Remote Accessを起動します。
OCI-RRAS5.PNG
OCI-RRAS6.PNG
OCI-RRAS7.PNG
OCI-RRAS8.PNG
OCI-RRAS9.PNG
OCI-RRAS10.PNG
OCI-RRAS11.PNG
OCI-RRAS12.PNG
OCI-RRAS13.PNG
OCI-RRAS14.PNG
OCI-RRAS15.PNG
OCI-RRAS16.PNG
OCI-RRAS17.PNG
OCI-RRAS18.PNG
OCI-RRAS19.PNG
OCI-RRAS20.PNG
OCI-RRAS21.PNG
Azure VNetのアドレス空間
OCI-RRAS22.PNG
OCI-RRAS23.PNG

ルーティング設定

仮想NICでのパケット転送許可 (自分のものでないパケットも送受信可能にする)

OCI-VM3.PNG

ルート表

パブリックサブネット

OCI-Route1.PNG

プライベートサブネット

OCI-Route2.PNG

セキュリティリスト

パブリックサブネット

OCI-Ingress1.png

プライベートサブネット

OCI-Ingress2.PNG

Azure

接続の作成

Docsの手順に従ってローカルネットワークゲートウェイ、およびVPN接続を作成します。接続するIPアドレスにOCI側に立てたWindows Server RRASのパブリックIPアドレス、アドレス空間にOCIのVCNのネットワークを指定します。
接続を作成する際、共有キーを指定して、IKEv2であることを確認して作成します。
Azure-Connect1.PNG

OCI

RRAS

接続設定

OCI-RRAS24.PNG
OCI-RRAS24-2.PNG
OCI-RRAS25.PNG

接続

OCI-RRAS26.PNG

接続確認

問題なくつながると、下記のようにステータスがConnectedに替わります。
OCI-RRAS27.PNG

Azure

接続確認

ステータスのアップデートに少し時間がかかります。
Azure-Connect2.PNG

測定用VM

Azure、OCIそれぞれにOracle LinuxのVMを立てて、こちらの手順で計測環境をセットアップします。

考察

パフォーマンス

Azure VPN Gatewayのパフォーマンスについては、Docsに解説があります。
これによると、IPsec 暗号化と整合性のアルゴリズムがスループットに大きく影響を与えていることがわかります。
Windows Server RRASのポリシーを調べてみると、下記のものが使われているようです。(これ以外を指定すると、RRASがポリシーエラーでつながりません)
Azure-IPSec1.PNG
iperf3を実行中のRRASのCPU
OCI-RRAS28.PNG

設定

OCIでIPSecパケットのイングレスの設定をしなくてもつながっています。

3
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?