第4回 AWSとIDCFをVPN接続する - 最後の仕上げ編

はじめに

<< 前回:第3回 AWSとIDCFをVPN接続する - VPN接続編(全4回) IDCFクラウドにVyOSで仮想マシンを作成して、IDCFクラウドとAWSをVPNで接続する設定を説明します。 idcf-vpn-1.png

前回でIDCFのVPNゲートウェイにAWSで取得したコンフィグを流し込み、ついにIDCFとAWS間のVPN接続が完了しました。 idcf-vpn-7.png

とはいえ、このままではただVPN接続しただけで、サーバー間で通信を行うことはできません。

そこで仕上げとして、サーバー間で通信ができるようにルーティングとセキュリティグループの設定を行います。


# ルーティング設定 ## AWS ![idcf-vpn-5.png](/images/posts/b0665a13-f143d7a0-9cf1-f292-da00-0cea9741299c.png)

ここで必要なのは「ルートテーブル」と「セキュリティグループ」の2点です。
・ルートテーブル 作成した「VPN接続」の「要約」タブの内容が表示されていることを確認し「VPC」をクリックします。 idcf-vpn_4_01.png


対象の「VPC」の「概要」タブを表示し「ルートテーブル」をクリックします。 ![idcf-vpn_4_02.png](/images/posts/0d411ef2-31fbb0e9-5aba-10ad-eb67-847d8b2fc0a9.png)
対象の「ルートテーブル」の「ルート」の内容を「編集」してルーティングを追加します。
10.13.0.0/21     vgw-adsfad(仮想プライベートゲートウェイ)

※サブネットで別のルートテーブルも利用している場合はそちらを追加する必要があるかもしれないので注意が必要です。

idcf-vpn_4_03.png


・セキュリティグループの設定 インスタンスに紐付いているセキュリティグループに対象となるIDCF側のNWを追加します。
    タイプ        プロトコル  ポート範囲   送信元
すべてのトラフィック    すべて    すべて   10.13.0.0 


## IDCF ![idcf-vpn-6.png](/images/posts/0c4b2c7f-5da656ec-d04e-2357-0f3f-2d4df62c3d5b.png)

IDCFではAWSのようなルートテーブルなどのルーティングを一括管理するものがないので各サーバに対しスタティックルートの設定を行う必要があります。


・スタティックルートの設定 サーバへログインします。
$ ssh hogehoge@xxx.xxx.xxx.xxx

ルーティングを追加します。
$ sudo route add -net 172.31.0.0 gw 10.13.0.2 netmask 255.255.0.0

今回はコマンドによる一時的な追加ですが、永久的に追加するのであればstatic-routesに直接記載します。(Ubuntuの場合)

# !/bin/sh
/sbin/route add -net 172.31.0.0 gw 10.13.0.2 netmask 255.255.0.0 dev eth0

また、実行権限が必要なのでお忘れなく。

$ sudo chmod +x /etc/network/if-up.d/static-routes

# 確認 それでは疎通ができたかpingで確認してみましょう。
## AWS環境から確認 それではAWS環境にあるサーバにログインしてください。

まずは、ルーティングの確認です。

$ netstat -nr
Kernel IP routing table
Destination     Gateway         Genmask         Flags   MSS Window  irtt Iface
0.0.0.0         10.20.0.1       0.0.0.0         UG        0 0          0 eth0
172.31.0.0       0.0.0.0         255.255.0.0   U         0 0          0 eth0

とは言ってもAWSの場合はルートテーブルで管理してますのでnetstatでは確認できません。 ということでとりあえず疎通確認します。

$ ping xxx.xxx.xxx.xxx
PING xxx.xxx.xxx.xxx (xxx.xxx.xxx.xxx) 56(84) bytes of data.
64 bytes from xxx.xxx.xxx.xxx: icmp_seq=1 ttl=63 time=11.1 ms
64 bytes from xxx.xxx.xxx.xxx: icmp_seq=2 ttl=63 time=12.7 ms
64 bytes from xxx.xxx.xxx.xxx: icmp_seq=3 ttl=63 time=10.4 ms

無事、確認できました。


## IDCF環境から確認 まずはルーティングの確認です。
$ netstat -nr
Kernel IP routing table
Destination     Gateway         Genmask         Flags   MSS Window  irtt Iface
0.0.0.0         10.13.0.1       0.0.0.0         UG        0 0          0 eth0
10.13.0.0       0.0.0.0         255.255.248.0   U         0 0          0 eth0
xxx.xxx.xxx.xxx <VyOSのIP>      255.255.0.0     UG        0 0          0 eth0

こちらはルーティングが確認できました。(まぁ、さっき追加したので当たり前ですねw) ということで疎通確認しましょう。

$ ping xxx.xxx.xxx.xxx
PING xxx.xxx.xxx.xxx (xxx.xxx.xxx.xxx) 56(84) bytes of data.
64 bytes from xxx.xxx.xxx.xxx: icmp_seq=1 ttl=63 time=11.1 ms
64 bytes from xxx.xxx.xxx.xxx: icmp_seq=2 ttl=63 time=12.7 ms
64 bytes from xxx.xxx.xxx.xxx: icmp_seq=3 ttl=63 time=10.4 ms

こちらも無事、確認できました。


# おわりに 以上で今回はAWSの対向の環境はIDCFですが、VPN接続するために利用しているのはVyOSです。 なので、その他の環境であっても同様の設定(ポート許可など)ができればVyOSを利用してVPN接続が可能です。