VyOSを利用したVPN環境構築
こんにちは、坂巻です。
VPN環境をごにょごにょしたくて、VyOSを利用したVPN環境を構築したので、そのアウトプットとなります。 本エントリでは、VPN設定(カスタマーゲートウェイ、仮想プライベートゲートウェイ、VPN接続)はマネジメントコンソールより実施し、それ以外はCloudFormationを用いて構築しています。
目次
- 今回の構成
- AWSリソース構築
- VPC/EC2構築
- カスタマーゲートウェイ作成
- 仮想プライベートゲートウェイ作成
- ルートテーブル編集
- VPN接続作成
- VyOS設定
- 接続確認
今回の構成
最終的な構成は以下となります。
AWSリソース構築
VPC/EC2作成
東京リージョンにtokyo-prd-vpc
を、シンガポールリージョンにsingapore-prd-vpc
を構築します。
CloudFormationのテンプレートはこちらにありますので、各リージョンで実行してください。
カスタマーゲートウェイ作成
東京リージョンにて、カスタマーゲートウェイを作成します。カスタマーゲートウェイは、ユーザ側に配置されるVPN装置(オンプレミス側のルータ等)です。 今回はシンガポールリージョンのVyOSインスタンスのEIPがそれになります。
入力値の詳細についてはカスタマーゲートウェイを作成するを確認してください。
仮想プライベートゲートウェイ作成
東京リージョンにて、仮想プライベートゲートウェイを作成します。仮想プライベートゲートウェイは、VPC側に配置するゲートウェイです。
[ASN]はAmazonのデフォルトASN
を指定しています。
入力値の詳細については仮想プライベートゲートウェイを作成するを確認してください。
仮想プライベートゲートウェイ作成後は、VPCにアタッチします。
ルートテーブル編集
東京リージョンにて、ルートテーブルを編集します。 シンガポールリージョンのサブネット(192.168.1.0/24、192.168.2.0/24)へのルーティングを追加します。 ターゲットには、東京リージョンで作成した仮想プライベートゲートウェイを指定しています。
VPN接続作成
カスタマーゲートウェイと、仮想プライベートゲートウェイをVPNで接続するために、東京リージョンにて、VPN接続を作成します。冗長性確保のために、AWSにより2つのトンネルが作成されます。
- 仮想プライベートゲートウェイ…作成した仮想プライベートゲートウェイを選択
- カスタマーゲートウェイ…既存
- カスタマーゲートウェイIP…作成したカスタマーゲートウェイを選択
- ルーティングオプシション…動的
- トンネルオプション…未入力
入力値の詳細についてはVPN 接続を作成して、カスタマーゲートウェイを設定するを確認してください。
VPN接続を作成後、しばらくすると使用可能
となりますが、VPNトンネルのステータスはダウン
しています。
カスタマーゲートウェイ側(ここではVyOSインスタンス)の設定を行うために、設定ファイルをダウンロードします。
- ベンダー…Vyatta
- プラットフォーム…Vyatta Network OS
- ソフトウェア…Vyatta Network OS 6.5+
ダウンロードした設定ファイルの下記を修正します。
(変更前) set vpn ipsec site-to-site peer ***** local-address [VyOSインスタンスのEIP] set protocols bgp 65000 network 0.0.0.0/0 (変更後) set vpn ipsec site-to-site peer ***** local-address [VyOSインスタンスのプライベートIP] set protocols bgp 65000 network 192.168.0.0/16
VyOS設定
シンガポールリージョンにて、ルートテーブルを編集します。
東京リージョンの(10.0.1.0/24と10.0.2.0/24)へのルートのVyOSインスタンスを経由するように設定します。ターゲットeni-61f6113a
はVyOSインスタンスにアタッチしたEIPのネットワークインターフェイスIDです。
VyOSインスタンスの送信元/送信先チェックの無効化します。 送信元または送信先がVyOSインスタンスでないときにも、トラフィックを送受信できるようにしています。
VyOSインスタンスにSSH接続後します。ログインユーザはvyos
です。ログイン後configure
実行し、先程ダウンロードしたコンフィグを投入します。投入後はcommit
、save
を実行し反映させます。
$ ssh -i singapore-prd-key.pem [email protected] (略) vyos@vyos:~$ configure [edit] vyos@vyos# set vpn ipsec ike-group AWS lifetime '28800' (略) [edit] vyos@vyos# commit No configuration changes to commit [edit] vyos@vyos# save Saving configuration to '/config/config.boot'... Done [edit] vyos@vyos# exit
東京リージョンのVPN接続を確認します。正しく設定ができれば、ステータスがアップ
となります。
接続確認
東京リージョンのサーバから、シンガポールリージョンのサーバのプライベートIPアドレスにリモート接続して接続を確認します。
シンガポールリージョンのサーバに接続でき、VPN接続の確認が行えました。
さいごに
大部分をテンプレート化しましたので、これでVPN環境がさくっとつくれます。 VPN環境をごにょごにょしたくなった時に見返したいと思います!