はじめに
前編で構築したVPN環境に、自宅VPNルータを追加してみようと思います。
筆者の環境では、VPNルータとしてTP-Link Omada ギガビット マルチWAN VPNルーター ER605 を使っています(こちらは2022年6月12日に8,800円で購入しました)。
自宅VPN環境
構築
基本的に、こちらの記事に従って構築させていただきました。
※「VPN接続」「Transit GW」周りが少しだけ異なりますので、適宜確認お願いします。
UTM - ER605間接続
Link Upを確認します。
E605ファームウェアVUP
ER605のファームウェアバージョンが「ER605(UN)_V1_1.2.0 Build 20220114」以上であれば、IKEv2を使うことができます。
VPN2設定
CGWを作成します作成
VPN接続を作成します(AWS)
CGW(自宅VPNルータ)の設定が未だなので、(当然)Linkダウン状態です
CGW(VPN設定(ER605))を設定します
Linkアップしました
Transit GW設定
Transit GWのルートテーブルに、静的ルートを作成します
VPC(サブネット)のルートテーブルに、(自宅向け)ルートを追加します
以上で、自宅-AWS間のVPNが設定されました。
実験(遅延/帯域)
受信側でiperf3サーバを起動し待ち受けます。
takumi@iMac ~ % ifconfig
(snip)
en1: flags=8863<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST> mtu 1500
options=6460<TSO4,TSO6,CHANNEL_IO,PARTIAL_CSUM,ZEROINVERT_CSUM>
ether a4:83:e7:2d:39:f5
inet6 fe80::1cff:f84b:361d:dbda%en1 prefixlen 64 secured scopeid 0x6
inet 192.168.10.172 netmask 0xffffff00 broadcast 192.168.10.255
(snip)
takumi@iMac ~ % iperf3 -s
-----------------------------------------------------------
Server listening on 5201 (test #1)
-----------------------------------------------------------
送信側へログインし、測定します。
sh-4.2$ ip a
(snip)
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 9001 qdisc pfifo_fast state UP group default qlen 1000
link/ether 06:29:0b:ce:49:f7 brd ff:ff:ff:ff:ff:ff
inet 10.10.0.41/24 brd 10.10.0.255 scope global dynamic eth0
valid_lft 2831sec preferred_lft 2831sec
(snip)
sh-4.2$ ping -c 5 192.168.10.172
PING 192.168.10.172 (192.168.10.172) 56(84) bytes of data.
64 bytes from 192.168.10.172: icmp_seq=1 ttl=62 time=7.70 ms
64 bytes from 192.168.10.172: icmp_seq=2 ttl=62 time=10.5 ms
64 bytes from 192.168.10.172: icmp_seq=3 ttl=62 time=97.2 ms
64 bytes from 192.168.10.172: icmp_seq=4 ttl=62 time=7.21 ms
64 bytes from 192.168.10.172: icmp_seq=5 ttl=62 time=40.7 ms
--- 192.168.10.172 ping statistics ---
5 packets transmitted, 5 received, 0% packet loss, time 4006ms
rtt min/avg/max/mdev = 7.210/32.699/97.250/34.625 ms
sh-4.2$ iperf3 -c 192.168.10.172
Connecting to host 192.168.10.172, port 5201
[ 4] local 10.10.0.41 port 57872 connected to 192.168.10.172 port 5201
[ ID] Interval Transfer Bandwidth Retr Cwnd
[ 4] 0.00-1.00 sec 2.90 MBytes 24.3 Mbits/sec 5 69.2 KBytes
[ 4] 1.00-2.00 sec 2.75 MBytes 23.1 Mbits/sec 7 71.9 KBytes
[ 4] 2.00-3.00 sec 2.75 MBytes 23.1 Mbits/sec 2 94.5 KBytes
[ 4] 3.00-4.00 sec 3.07 MBytes 25.7 Mbits/sec 10 78.5 KBytes
[ 4] 4.00-5.00 sec 3.05 MBytes 25.6 Mbits/sec 2 101 KBytes
[ 4] 5.00-6.00 sec 2.32 MBytes 19.5 Mbits/sec 0 117 KBytes
[ 4] 6.00-7.00 sec 1.95 MBytes 16.4 Mbits/sec 0 129 KBytes
[ 4] 7.00-8.00 sec 2.51 MBytes 21.1 Mbits/sec 2 78.5 KBytes
[ 4] 8.00-9.00 sec 2.20 MBytes 18.4 Mbits/sec 3 35.9 KBytes
[ 4] 9.00-10.00 sec 2.20 MBytes 18.5 Mbits/sec 1 51.9 KBytes
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval Transfer Bandwidth Retr
[ 4] 0.00-10.00 sec 25.7 MBytes 21.6 Mbits/sec 32 sender
[ 4] 0.00-10.00 sec 25.2 MBytes 21.2instalaws Mbits/sec receiver
iperf Done.
AWSと自宅(横浜)間の通信速度の結果は上記となりました。
Cleanup
手動で追加した「カスタマーゲートウェア(CGW)」と「Site-to-Site VPN接続(VPN2)」をAWSコンソールから削除します。
その後、CDKリソースを削除します。
takumi@iMac % cdk destroy ComputeStack
takumi@iMac % cdk destroy VpnSimStack
まとめ
今回は、GitHubのAWS Samplesリポジトリにあるaws-cdk-simulated-vpnプロジェクトを活用して、AWS Cloud Development Kit (CDK) を用いた簡単なAWSシミュレーション環境(VPN)の構築方法を紹介しました。また、性能面でより現実的なシミュレーションを行うために、Linuxのtcコマンドを用いたネットワーク遅延やパケットロスのシミュレーションについても解説しました。最後に、実際の自宅環境におけるVPNルータ(TP-Link ER605)を使用した環境構築の例も紹介しました。