Amazon Web ServicesとSEIL/x86 Ayameでクラウド間をVPN接続してみました

2024年04月08日 月曜日


【この記事を書いた人】
瀬川 浩希

クラウド本部 クラウドソリューション部に所属(2023年入社)パソコンを組むのが趣味なので円高になることを願っています。

「Amazon Web ServicesとSEIL/x86 Ayameでクラウド間をVPN接続してみました」のイメージ

はじめに

はじめまして。クラウドソリューション部の瀬川です。2023年にIIJに入社し、クラウドソリューションの開発や、クラウド導入力の向上に関する活動などに携わっています。

本記事ではSEIL/x86 Ayame、AWS間のSite to Site VPN接続の一例をご紹介いたします。SEIL/x86 Ayameは、VMware、KVM、Hyper-Vなど主要な仮想環境をサポートする高機能なソフトウェアルータです。今回はAWSと対向する環境をIIJ GIOとしておりますが、オンプレミスやAWS(マーケットプレイス)などでも類似の設定を投入してVPN接続することが可能ですので、ご参考になれば幸いです。

構成図

IIJ GIOインフラストラクチャーP2プライベートリソース上に構築したSEIL/x86 AyameとAWS Site-to-Site VPNを接続して疎通確認を行います。本記事ではTransit Gatewayを使用しておりますが、使用しない構成をとることも可能です。

※今回ご紹介しているVPNの接続方法は、シングルトンネルでの接続となりAWSの推奨構成から外れる状態となります。本来は冗長構成とする必要がありますので、その点をご留意いただけますと幸いです。

 

準備・作成した主要な構成要素

IIJ GIOインフラストラクチャーP2 プライベートリソース
  • 仮想マシン2台(内1台は、SEIL/x86 Ayame)
  • グローバルIPアドレス
  • SEIL/x86 Ayameのライセンス(トライアル版)
AWS
  • 仮想マシン1台
  • Transit Gateway
  • グローバルIPアドレス
  • EC2 Instance Connectエンドポイント

SEIL/x86 Ayameのライセンスについては以下のリンクより購入・取得いただけます。

設定から疎通確認まで

AWS側のリソース作成

※VPCや疎通確認用の仮想マシンなどは、すでに作成されている前提で作業を進めていきます。

Transit Gateway の作成

まずはじめに、Transit Gateway関連のリソースを作成します。
Amazon側のASNについては、プライベート ASN (64512~65534 の範囲) を使用します。未指定の場合デフォルト値の65000が使用されます。

続いて、VPC側のTransit Gatewayアタッチメントを作成します。

さらにVPN用のTransit Gatewayアタッチメントを作成します。
カスタマーゲートウェイには、SEIL/x86 Ayame のグローバルIPアドレスを設定します。
BGP ASNにはAWS側で禁止されていない値を設定します。

※ASNについては基本的にプライベート ASN (64512~65534 の範囲) を使用します。

Site-to-Site VPN接続の設定をダウンロード

アタッチメントタイプVPNのTransitGatewayアタッチメントを作成すると、Site-to-Site VPN接続が合わせて作成されます。
ここで設定のダウンロードを実施します。
ベンダーにIIJを設定した場合、IKEv2が選択できなくなりますのでGenericを選択します。

GIO側の設定

SEIL/x86 Ayameへの設定投入

ダウンロードしたファイルを元にSEIL/x86 Ayameに投入するConfigを作成します。例示する設定はfilterやnat設定等を除いています。

option.ipv4.update-connected-route.service:enable
 
ike.auto-initiation:enable
ike.dpd-interval:10
ike.dpd-maxfail:5
ike.interval:40
ike.phase1-timeout:01m
ike.phase2-timeout:02m20s
 
interface.ipsec100.ike.v2.keepalive:enable
interface.ipsec100.ike.v2.my-identifier.type:address
interface.ipsec100.ike.v2.peers-identifier.type:address
interface.ipsec100.ike.version:2
interface.ipsec100.ipv4.address:169.254.105.118/30
interface.ipsec100.ipv4.destination:192.51.100.1
interface.ipsec100.ipv4.remote:169.254.105.117
interface.ipsec100.ipv4.source:192.0.2.1
interface.ipsec100.ipv4.tcp-mss:1379
interface.ipsec100.nat-traversal:force
interface.ipsec100.preshared-key:Rz0FXsNFIX3SRtifMTAhvP7CDCQOad5I
 
bgp.ipv4.network.100.prefix:192.168.120.0/24
bgp.my-as-number:65534
bgp.neighbor.110.address:169.254.105.117
bgp.neighbor.110.filter.in.100.action:pass
bgp.neighbor.110.filter.in.100.match.prefix:0.0.0.0/0
bgp.neighbor.110.filter.in.100.set.metric:100
bgp.neighbor.110.hold-timer:30
bgp.neighbor.110.remote-as:64512
bgp.router-id:192.168.120.254

AWS Site-to-Site VPNは、SEIL/x86 Ayameのデフォルト設定(暗号化アルゴリズム・整合性アルゴリズム・DH グループ番号等)を受け入れる状態になっているので当該項目について明示的には設定しません。

VPN接続の確認

Site-to-Site VPNのステータス確認

SEIL/x86 Ayameに設定を投入後、VPNのトンネルの状態がUpとなっていることを確認します。
今回の手順ではトンネル2を使用しないため、トンネル1のみステータスが正常か確認します。

Transit Gatewayのルート伝播確認

 

AWS側からの疎通確認

サブネットのルートテーブルを編集

AWSからGIO側へのルートを追加します。

EC2に接続

EC2 Instance Connectエンドポイント経由で疎通確認用のEC2に接続します。

AWSの仮想マシンからGIOの仮想マシンにPingを送信して疎通を確認します。

以下の通り、10.0.0.0/16のIP範囲から192.168.120.0/24の範囲に対して通信が成功しています。

以上で接続から疎通まで確認することができました。

おわりに

IIJへ入社して2ヶ月目にして、初めてSEIL/x86 Ayameに取り組む機会が訪れ、それがこの記事を執筆するきっかけとなりました。クラウドソリューション部としての業務では、SEIL/x86 Ayameに触れる機会は少ないので貴重な経験が出来ました。

AWS以外にも、AzureやGoogle CloudにVPN接続する流れをご紹介した記事も投稿しておりますので、そちらもお読みいただけると嬉しいです。

他にもSEIL/x86 Ayame関連の記事があります。ご興味がございましたらあわせてご覧ください。

瀬川 浩希

2024年04月08日 月曜日

クラウド本部 クラウドソリューション部に所属(2023年入社)パソコンを組むのが趣味なので円高になることを願っています。

Related
関連記事