Customer Gatewayの作成とVPN接続でVPN接続が確立することができたので、実際にVPC上のEC2と通信をしてみます、VPC上のEC2にVPN経由で接続(SSH)と同じような内容ですが、今回は、Subnetごとの挙動に注目して確認してみます。
まずは、何もRoute Tableを設定していない状態で、自宅(VPNルータ側)のPC(192.168.1.2)から10.0.1.0/24上のEC2(10.0.1.4)にpingの確認をすると、タイムアウトしてしまいました。
> ping 10.0.1.4 10.0.1.4 に ping を送信しています 32 バイトのデータ: 要求がタイムアウトしました。 要求がタイムアウトしました。 要求がタイムアウトしました。
接続できるようにするには10.0.1.0/24が割り当てられているRoute Tableに下記のように0.0.0.0/0(192.168.1.0/24でも大丈夫です。)のTargetにVPN接続が確立しているVirtual Private Gatewayを指定する必要があります。
また、セキュリティグループも調整しておきます。
この状態で再度pingの確認をすると、通信できていることがわかります。
> ping 10.0.1.4 10.0.1.4 に ping を送信しています 32 バイトのデータ: 10.0.1.4 からの応答: バイト数 =32 時間 =9ms TTL=61 10.0.1.4 からの応答: バイト数 =32 時間 =8ms TTL=61 10.0.1.4 からの応答: バイト数 =32 時間 =10ms TTL=61
そして、別のSubnet10.0.0.0/24上のEC2インスタンス(10.0.0.4)にもpingが通るか試してみると下記のようにタイムアウトしてしまいました。
> ping 10.0.0.4 10.0.0.4 に ping を送信しています 32 バイトのデータ: 要求がタイムアウトしました。 要求がタイムアウトしました。 要求がタイムアウトしました。
やはり通信できるようにするには、下記のようにTargetにVirtual Private Gatewayを指定する設定を10.0.0.0/24が割り当てられたRoute Tableに行う必要があります。
この状態ですとpingが通ることがわかります。
> ping 10.0.0.4 10.0.0.4 に ping を送信しています 32 バイトのデータ: 10.0.0.4 からの応答: バイト数 =32 時間 =11ms TTL=61 10.0.0.4 からの応答: バイト数 =32 時間 =8ms TTL=61 10.0.0.4 からの応答: バイト数 =32 時間 =10ms TTL=61
反対にEC2側からVPN経由での通信ですが、下記のようにVPNルーター(192.168.1.1)まではpingが通ることがすぐに確認できます。
$ ping 192.168.1.1 PING 192.168.1.1 (192.168.1.1) 56(84) bytes of data. 64 bytes from 192.168.1.1: icmp_seq=1 ttl=62 time=9.18 ms 64 bytes from 192.168.1.1: icmp_seq=2 ttl=62 time=9.76 ms 64 bytes from 192.168.1.1: icmp_seq=3 ttl=62 time=10.4 ms
しかし、PC(192.168.1.2)にpingの確認をすると、タイムアウトしてしまいました。
$ ping 192.168.1.2 PING 192.168.1.2 (192.168.1.2) 56(84) bytes of data. ^C --- 192.168.1.2 ping statistics --- 3 packets transmitted, 0 received, 100% packet loss, time 2421ms
上記は、VPCというよりもVPNルーター(SSG5)の設定だと思いますので、後日、改めて調査することにします。