LoginSignup
1
1

More than 1 year has passed since last update.

VyOSでVPC同士をVPN接続する。

Last updated at Posted at 2021-10-05

はじめに

VyOSを用いて擬似オンプレとVPCをVPN設定してみました。
疎通確認はpingで実施できるまで。

目次

  • VyOSとは
  • 構成図
  • 事前準備
  • VyOSインスタンス作成(バージニアリージョン)
  • カスタマーゲートウェイ(東京リージョン)
  • 仮想プライベートゲートウェイ(東京リージョン)
  • VPN接続の作成(東京リージョン)
  • ダウンロードしたVyOSの設定ファイルを修正
  • VyOS設定(バージニアリージョン)
  • ルート伝播を有効にする(東京リージョン)
  • 疎通確認
  • まとめ

VyOSとは

Vyatta からフォークしたオープンソースのネットワーク OS で、ソフトウェアベースのルーティング、ファイアウォール、VPNなどの機能を持っています。

構成図

Untitled (2).png

事前準備

東京リージョン

■VPC
tokyo-vpc 10.0.0.0/16
■サブネット
tokyo-public 10.0.0.0/24
tokyo-private 10.0.1.0/24
■ルートテーブル
パブリックサブネット用RT

送信先 ターゲット
10.0.0.0/16 local
0.0.0.0/0 tokyo-igwのID

プライベートサブネット用RT

送信先 ターゲット
10.0.0.0/16 local

■インターネットゲートウェイ
tokyo-igwを作成

■EC2
tokyo-privateに疎通確認用EC2を作成
※設定値は適当で良い

バージニアリージョン

■VPC
virginia-vpc 172.31.0.0/16
■サブネット
virginia-public 172.31.0.0/24
virginia-private 172.31.1.0/24

■ルートテーブル
パブリックサブネット用RT

送信先 ターゲット
172.31.0.0/16 local
0.0.0.0/0 virginiaのID

プライベートサブネット用RT

送信先 ターゲット
172.31.0.0/16 local

■EC2
virginia-privateに疎通確認用EC2を作成
※設定値は適当で良い

VyOSインスタンスを作成(バージニアリージョン)

バージニアリージョンのパブリックサブネットにVyOSインスタンスを作成していきます。
AWS MarketplaceにVyOSがパッケージされているAMIがあるのでそちらを使用する。
スクリーンショット 2021-10-05 11.16.42.png
作成後、送信元/送信先チェックを無効化します。他インスタンスへパケットを転送できるようにします。
スクリーンショット 2021-10-05 14.06.55.png
パブリックIPアドレスについてはEIPを付与しています。

カスタマーゲートウェイ作成(東京リージョン)

東京でカスタマーゲートウェイを作成します。
IPアドレスには上記で作成したVyOSのEIPのアドレスを指定します。
スクリーンショット 2021-10-05 14.55.40.png

仮想プライベートゲートウェイ作成(東京リージョン)

ASNはAmazon のデフォルト ASNを選択します。
スクリーンショット 2021-10-05 15.04.28.png
作成後VGWをVPCにアタッチします。

VPN 接続の作成(東京リージョン)

仮想プライベートゲートウェイとカスタマーゲートウェイをVPNで繋ぎます。

仮想プライベートゲートウェイとカスタマーゲートウェイには、先ほど作成した物を選択。
その他設定内容は画像の通りです。
スクリーンショット 2021-10-05 16.09.25.png

作成後、VyOS設定で使用する設定ファイルをダウンロードする。
スクリーンショット 2021-10-05 16.13.21.png
スクリーンショット 2021-10-05 16.27.36.png

ダウンロードしたVyOSの設定ファイルを修正

ダウンロードできるファイルは、バージョンが現在AWS Marketplaceから作成できるVyOSと違うらしく、設定構文が変わってしまっているため修正する。
修正箇所だけ下記に記載します。

修正前
set vpn ipsec site-to-site peer ***** local-address VyOSインスタンスのEIP
set protocols bgp 65000 network 対象ネットワーク[172.31.0.0/16]
set protocols bgp 65000 neighbor xxx.xxx.xxx.xxx soft-reconfiguration 'inbound'
修正前
set vpn ipsec site-to-site peer ***** local-address VyOSインスタンスのプライベートIP[172.31.0.68]
set protocols bgp 65000 address-family ipv4-unicast network 対象ネットワーク[172.31.0.0/16]
set protocols bgp 65000 neighbor xxx.xxx.xxx.xxx address-family ipv4-unicast soft-reconfiguration 'inbound'

VyOS設定(バージニアリージョン)

VyOSインスタンスにSSH接続します。
接続ユーザはデフォルトのvyosになります。
ssh -i 秘密鍵 vyos@VyOSのIPアドレス

ログイン後は設定ファイルを反映させていきます。
setの文を全てコピペで設定する。
設定後はcommit、saveする

vyos@ip-172-31-0-68:~$ configure
[edit]
vyos@ip-172-31-0-68# set vpn ipsec ike-group AWS lifetime '28800'
[edit]
省略
vyos@ip-172-31-0-68#commit
vyos@ip-172-31-0-68#save

ルート伝播を有効にする(東京リージョン)

東京リージョンのプライベートサブネット用のルートテーブルでルート伝播を有効にします。
スクリーンショット 2021-10-05 17.25.33.png
有効になれば、VyOSで設定した対象ネットワークへのルーティングルールが自動で追加されます。
スクリーンショット 2021-10-05 17.26.53.png

疎通確認

東京リージョンのプライベートインスタンスからバージニアリージョンのプライベートインスタンスへpingしてみる。

[ec2-user@ip-10-0-1-81 ~]$ ping 172.31.0.68
PING 172.31.0.68 (172.31.0.68) 56(84) bytes of data.
64 bytes from 172.31.0.68: icmp_seq=1 ttl=64 time=147 ms
64 bytes from 172.31.0.68: icmp_seq=2 ttl=64 time=147 ms
64 bytes from 172.31.0.68: icmp_seq=3 ttl=64 time=147 ms
64 bytes from 172.31.0.68: icmp_seq=4 ttl=64 time=151 ms
64 bytes from 172.31.0.68: icmp_seq=5 ttl=64 time=147 ms
64 bytes from 172.31.0.68: icmp_seq=6 ttl=64 time=147 ms
64 bytes from 172.31.0.68: icmp_seq=7 ttl=64 time=147 ms
64 bytes from 172.31.0.68: icmp_seq=8 ttl=64 time=147 ms
64 bytes from 172.31.0.68: icmp_seq=9 ttl=64 time=147 ms
^C
--- 172.31.0.68 ping statistics ---
9 packets transmitted, 9 received, 0% packet loss, time 8013ms
rtt min/avg/max/mdev = 147.599/148.136/151.434/1.263 ms
[ec2-user@ip-10-0-1-81 ~]$

通信することができました!

まとめ

VyOSとVPNを初めて触ってみたが今回でふんわりと理解することができた。
詰まったところとしては、AWSからダウンロードしたVyOSの設定ファイルをそのまま使うことができず修正する部分をわかっていなかったためえ解決に時間がかかった。

参考

https://qiita.com/sugimountaws/items/2f2e8d27ade90bb3b554
https://www.yrglm.co.jp/blog/2015/02/18/10042

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1