メモ:(NW)AWSとSite-to-Site VPNを張る

投稿者: | 2022年3月27日

皆さんこんにちは。
今回はAWSとSite-toSite VPNを張ってみたのでメモしておきます。

使用機材:
* Firebox T15 (12.5.9.B655824)

クラウド側設定

  1. VGWを作成する
    • VPCにアタッチするのを忘れないようにします
  2. CGWを作成する
    • 確認くんなどで自宅のIPv4アドレスを確認しておきます
    • ※再起動すると変わってしまうのであくまで検証用です
  3. Site-toSiteVPNを設定する
    • 1と2で作ったVGWとCGWをここで紐づけます
  4. サンプル設定ファイルをダウンロードする
    • ※今回はWatchGuardのFireboxとVPNを張りますが、サンプルが提供されていないようなのでCisco用のサンプルをダウンロードしておきます。その中に「事前共有鍵」や「BGPで広報するルート情報」「IPSecのパラメータ」などが記載されているので参考にします。
  5. ルートテーブルを設定する
    • 「ルート伝播」を有効にしておきます

基本デフォルト設定でポチポチ作っていきます。
参考:AWS Site To Site VPNでオンプレ環境とVPNで接続する

オンプレ側設定

  1. 「フェーズ 2 のプロポーザル」を作成する
    • Fireboxにデフォルトで設定されているものはすべてライフタイムが8時間となっています
    • AWS側の設定では900 ~ 3600秒となっており、デフォルト3,600秒のため、それに合わせるために手動でライフタイムが3,600秒(1時間)のものを作っておきます
    • 参考 : Site-to-Site VPN 接続のトンネルオプション
  2. 「BOVPN 仮想インターフェイス」を作成する
    • ダウンロードしたサンプルファイルを見ながらAWS側とのIPSec接続設定を入力していきます
  3. 「2」の設定内容
    1. 「事前共有鍵」を設定する
    2. 「ゲートウェイエンドポイント」を設定する
    3. 「VPNルート」を設定する
    4. 「フェーズ1」を設定する
      • この際「SAの有効期間」を「8時間」にしておきます(※サンプルファイルに従う)
    5. 「フェーズ2」を設定する
      • 「フェーズ2のプロポーザル」に「1」で手動作成したものを指定します
  4. BGPの経路設定をする
    • サンプルに記載されてる内容から最小限の設定を抜き出しています(※本番運用の際は必要な設定を確認の上行う必要があると思います。今回は検証用なので適当で。)

設定のスクショ

接続確認

それでは実際に接続確認を行ってみます。オンプレ側からAWSのEC2インスタンスにPingを打ってみます。(AWS側セキュリティグループを開けておく必要があります)

[root@ntp-srv-01 ~]# ping -c 5 192.168.1.219
PING 192.168.1.219 (192.168.1.219) 56(84) bytes of data.
64 bytes from 192.168.1.219: icmp_seq=1 ttl=63 time=11.5 ms
64 bytes from 192.168.1.219: icmp_seq=2 ttl=63 time=11.10 ms
64 bytes from 192.168.1.219: icmp_seq=3 ttl=63 time=11.6 ms
64 bytes from 192.168.1.219: icmp_seq=4 ttl=63 time=12.1 ms
64 bytes from 192.168.1.219: icmp_seq=5 ttl=63 time=12.1 ms

--- 192.168.1.219 ping statistics ---
5 packets transmitted, 5 received, 0% packet loss, time 4005ms
rtt min/avg/max/mdev = 11.479/11.829/12.071/0.256 ms
[root@ntp-srv-01 ~]#

AWS側からも実行します

[root@ip-192-168-1-219 ~]# ping -c 5 172.16.20.121
PING 172.16.20.121 (172.16.20.121) 56(84) bytes of data.
64 bytes from 172.16.20.121: icmp_seq=1 ttl=63 time=12.2 ms
64 bytes from 172.16.20.121: icmp_seq=2 ttl=63 time=11.6 ms
64 bytes from 172.16.20.121: icmp_seq=3 ttl=63 time=11.9 ms
64 bytes from 172.16.20.121: icmp_seq=4 ttl=63 time=11.4 ms
64 bytes from 172.16.20.121: icmp_seq=5 ttl=63 time=11.8 ms

--- 172.16.20.121 ping statistics ---
5 packets transmitted, 5 received, 0% packet loss, time 4006ms
rtt min/avg/max/mdev = 11.489/11.847/12.236/0.278 ms
[root@ip-192-168-1-219 ~]#

またAWS側のステータスとオンプレ側のステータスを確認しておきます

以上で設定・検証は終了です。クラウド側もオンプレ側もWebUI上から割と簡単に設定することができました。その分細かいIPSecの動作などを把握してない部分もあるのでちょっとしたところでハマりそうかなという気もしました。
個人的にはオンプレ側はCLIベースの設定の方が何を設定したのかなどをちゃんと自分でも把握しやすいのかなと思うところです。(※勉強になるという意味でも)
IPSecはいまいち苦手意識があるところなのでちゃんと把握しないとなーと思っているところでもあるので次はCLIベースで接続を試してみたいと思います。マニュアルなんかもそのときちゃんと読んでみようかと思います。
それではまた。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です