最高に楽しかった8月上旬の二泊三日海キャンプを回想しながら、提案書をカキカキしているMMM代表の国本です。
AWSでEC2やRDS等のAWSリソースを利用する場合、AWSクラウド上に論理的に区分されたプライベートネットワーク空間であるAmazon Virtual Private Cloud(Amazon VPC)内に配備します。
Amazon VPC内に配備されている各種リソースへのアクセス(SSHなど)は
- 固定IPアドレスで接続制限を実施した踏み台サーバー(Bastionノード)経由
- Amazon VPCとのVPN(Virtual Private Network)接続経由
- AWS Direct Connectを利用した専用線接続
のいずれかの方法を選択する形となりますが、今回は2.のAmazon VPCとのVPN接続(ハードウェアVPN)について、宅内のインターネット回線を活用した簡易的な接続検証の手順を簡単にご紹介しようと思います。
1.前提とする検証環境
今回は『Amazon VPCへの簡易的なVPN接続検証を実施し手順化する』事を第一の目的とし、検証環境は下記を準備しました。
接続回線
宅内で契約済みの フレッツ光ファミリー・ハイスピードタイプ
をそのまま利用する形とし、固定IPアドレスの取得は行いません。(検証完了後にVPN接続を即時削除するため)
VPN接続機器(ルーター)
Amazon VPC公式FAQの Q: Amazon VPC で機能することが知られているカスタマーゲートウェイデバイスにはどのようなものがありますか? で検証デバイスとして表記され、企業オフィスでも数多く採用されている YAMAHA RTX1200
を利用します。
よって、今回以降ご紹介するルーター側の設定ファイル(コンフィグレーションファイル)はYAMAHA RTX1200の利用を前提とした内容となります。
余談:RTX1200は中古であれば15,000円前後で購入可能なので、検証用途としておすすめ…
ルーティング方式
Amazon VPCでは、VPN接続時のルーティング方式について、静的、動的を選択することが可能ですが、今回の検証はRTX1200もサポートしているBorder Gateway Protocol(BGP)を使った動的ルーティングを選択します。
ネットワーク構成(イメージ)
検証で利用するネットワークの構成イメージはこのような前提です。
対象 | CIDR(Classless Inter-Domain Routing) |
---|---|
Amazon VPC CIDRブロック | 10.0.0.0/16 |
Amazon VPC サブネット | 10.0.0.0/24 |
宅内サブネット | 192.168.0.0/24 |
機器 | IPアドレス |
---|---|
YAMAHA RTX1200プライベートIPアドレス | 192.168.0.1 |
Amazon VPCに配備のEC2プライベートIPアドレス | 10.0.0.100 |
VPNの接続検証方法
VPNでの接続確認の方法は簡易的な形で、宅内に設置したRTX1200とWi-Fi接続しているMacbook Proから、VPNを経由し、プライベートIPアドレスでPing疎通ができることを確認します。
2.RTX1200をPPPoE接続
今回は、宅内検証用に(中古で)RTX1200を購入した為、YAMAHA公式サイトに記載されている 高速回線(光ファイバー)を利用する を前提にRTX1200をPPPoE(Point-to-Point Protocol over Ethernet)経由でインターネット接続します。
宅内の接続構成はこのような形とします。
まず、宅内に設置されている光回線終端装置(ONU)とRTX1200を接続し、RTX1200にWi-FiのアクセスポイントとしてAirMac Expressを繋げることで、Wi-Fi経由で1台のMacbook ProをNAT配下のインターネット接続とします。
ONU側でPPPoE接続のルーター機能を有しているものが多いかと思いますが、今回はRTX1200からPPPoE接続を行うため、ONU側はPPPoEパススルーをセットします。
RTX1200の最小設定ファイルは以下の通りです。
1 | ip route default gateway pp 1 |
LAN1ポートを宅内のプライベート用に、LAN2ポートをPPPoE接続の外部インターフェースにセットし、Wi-Fi接続向けのDHCPサーバー機能と、DNSは一旦Google社が公開しているサーバー(8.8.8.8)をセットしています。
※フィルター設定に関してはコンフィグ表示が冗長になるため、一旦除外
上記コンフィグを設定後、PPPoEの接続ステータスをRTX1200のコンソールから show status pp 1
コマンドを使ってチェックします。
1 | # show status pp 1 |
PPPoEセッションは接続されています
というメッセージが表示されていれば、正常にインターネット接続されています。
もし、エラーメッセージが表示されている場合は、メッセージを確認の上、接続用のIDやパスワードに誤りはないか?LAN2ポートを一旦非アクティブ化 → アクティブ化してみるなどを実施し正常に接続できる状態にします。
3.Amazon VPCの準備
宅内側のインターネット接続が完了したら、AWS側にVPCを作成します。
今回はあくまでVPNの簡易的な接続検証ですので、新たに一つ専用のVPCを作成します。
先にネットワーク構成(イメージ)で記載の通り 10.0.0.0/16
のIPv4 CIDRブロックを定義して、VPCを作成します。
次に、接続用のEC2を配備するVPCサブネットを定義します。
こちらもネットワーク構成(イメージ)で記載の通り 10.0.0.0/24
のCIDRブロックを定義します。
サブネットの定義が終わったら、今度はVPC内のルートテーブルを新規作成し、作成済みのVPCサブネットをルートテーブルにアタッチします。
4.カスタマーゲートウェイ(CGW)と仮想プライベートゲートウェイ(VGW)の準備
次にVPN接続で必要となるVPNアンカーの設定を進めていきます。
ネットワーク構成(イメージ)を再掲しますが。
Amazon VPCのVPN設定においては上図に記載の、 仮想プライベートゲートウェイ(VGW)
と カスタマーゲートウェイ(CGW)
の設定が必要となります。
カスタマーゲートウェイ(CGW)
はAmazon VPCとVPN接続する装置を指しており、今回の検証構成においてはRTX1200となります。
もう一方の 仮想プライベートゲートウェイ(VGW)
は Amazon VPC側のVPN受け口となるコンセントレータとなります。
それでは、まず カスタマーゲートウェイ(CGW)
から作成していきましょう。
今回はBGPを使った動的ルーティングを行うため、ルーティングは 動的
を選択し、BGP用のASN(AS番号)はプライベートナンバーである 64512
を入力します。
なお、カスタマーゲートウェイ(CGW)
のIPアドレスはRTX1200側のグローバルIPアドレスとなりますが、今回はあくまで暫定的な検証であり、固定IPアドレスを取得していない為、現在RTX1200に動的付与されたグローバルIPアドレスを確認して、セットします。
確認方法は RTX1200のコンソールで show status pp 1
を入力しPP IP Address Local: xxx.xxx.xxx.xxx
と表示された箇所のグローバルIPアドレスとなります。
次にAmazon VPC側の受け口となる 仮想プライベートゲートウェイ(VGW)
を定義し、Amazon VPCにアタッチします。
Amazon VPCに 仮想プライベートゲートウェイ(VGW)
をアタッチした後、VPC側のルートテーブルのデフォルト・ゲートウェイとして 仮想プライベートゲートウェイ(VGW)
をセットします。
また、ルーティング情報を伝搬させるために、アタッチした 仮想プライベートゲートウェイ(VGW)
の伝搬をONにします。
5.Amazon VPC側のVPN接続の作成
これまでの手順でAmazon VPCの下準備が完了している為、Amazon VPC側にVPN接続設定を追加します。
仮想プライベートゲートウェイ(VGW)
と カスタマーゲートウェイ(CGW)
は先の手順で作成済みのものを選択し、ルーティングオプションは動的(BGP)を選択し作成します。
VPN接続を作成した後、カスタマーゲートウェイ(CGW)
の設定ファイルをダウンロードできるようになるので。
ベンダー Yamaha
プラットフォーム RTX Routes
ソフトウェア Rev.10.01.16+
を選択し、RTXルーター用のコンフィグレーションをダウンロードしておきます。
これでAmazon VPC側のVPN設定は完了です。
6.宅内側のVPN接続設定
Amazon VPC側の設定が完了しているため、今度は宅内側のRTX1200にVPN接続設定を追加していきます。
基本的には5.の手順でAmazon VPCからダウンロードしたRTXルーター用の設定ファイルをセットすれば問題ないのですが、設定ファイルを投入前に、2点修正を行います。
RTX1200のセキュリティゲートウェイIPアドレスをローカルIPに
ダウンロードしたRTXルーター設定ファイルを開くと
ipsec ike local address
という設定にRTX1200側のグローバルIPアドレスがセットされている状態になっているかと思います。
今回の宅内ネットワーク構成の場合、この値はプライベートIPアドレスをセットする必要があるため。
ipsec ike local address 1 192.168.0.1
ipsec ike local address 2 192.168.0.1
ipsec ike local address 1
と ipsec ike local address 2
をRTX1200のプライベートIPアドレスである 192.168.0.1
に変更します。
NAT Traversal(NAT-T)有効化
今回の宅内ネットワーク構成の場合、NAT配下からの接続となるため、NAT Traversal(NAT-T)を有効化します。
ipsec ike nat-traversal 1 on
ipsec ike nat-traversal 2 on
上記変更を含めた、RTX1200のコンフィグレーションは下記のとおりとなります。
1 | ip route default gateway pp 1 |
※IPアドレスや事前共有鍵などはマスキングしています
RTX1200側のVPN設定が完了したら、正常にAmazon VPCとVPN接続されているか show status tunnel
コマンドを入力して確認してみます。
1 | > show status tunnel 1 |
次にBGPのステータスを show status bgp neighbor
コマンドで確認してみます。
1 | > show status bgp neighbor 1つ目のトンネルIPアドレス |
IPSecトンネルが接続され、BGPがEstablishedとなっていれば、正常にVPN接続が完了しています。
AWS Console側を確認してみると
このように2つのトンネルが UP
の状況になっています。
7.宅内からVPN経由でPingを送信
これまでの手順で宅内とAmazon VPCはVPN接続が確立されているため、Amazon VPC内に配備したAmazon EC2インスタンスについてPingを送信してみます。
※EC2の構築手順は不要かと思いますので、省いています
3度目のイメージ掲載となりますが…。
まず 10.0.0.100
が付与されているEC2に対して、RTX1200からPingを送信します。
1 | > ping 10.0.0.100 |
次に、AirMacのWi-Fi経由で接続しているMacbook Proから同じくPingを送信します。
1 | Macbook% ping 10.0.0.100 |
レイテンシーはさておき、きちんと応答があります。
以上でVPNの接続検証まで完了となります。
まとめ
今回、VPN接続検証で利用したRTX1200ルーターを初め、AWS側で検証済みルーターは、中古であれば一万円前後で入手することも可能ですので、皆さんもお気軽に宅内のインターネット環境を使ってAmazon VPCとのVPN接続をお試し下さい。
ではでは。