前回、下記のようにEC2上のVyataから別のVPC(VGW)へVPN接続することに成功しました。
今回は、下図のようにVyattaとVGWを通じて二つのVPC上のEC2が"Private IP"でお互いに透過的にアクセスできるようにしてみます。
まずVyattaのEC2インスタンスは、例の”Source / Dest Check”を無効にしておきます。
次に、Vyatta以外のEC2(別VPCのEC2に透過的にアクセスしたいEC2)が所属するサブネットのルーティングテーブルを、別VPC(10.0.0.0/16)のEC2宛がVyattaに向くように設定します。
そして、今回登場するすべてのEC2に対して、二つのVPCを包括するネットワークアドレスへの通信ができるように、セキュリティグループも設定しておきます。
最後にVyattaに対して、スタティックルーティングとBGPの広報するネットワークアドレスを設定します。
# show protocols bgp 65001 { neighbor 169.254.252.25 { remote-as 10124 soft-reconfiguration { inbound } timers { holdtime 30 keepalive 30 } } neighbor 169.254.252.29 { remote-as 10124 soft-reconfiguration { inbound } timers { holdtime 30 keepalive 30 } } network 10.1.0.0/16 { } } static { route 10.1.0.0/16 { next-hop 10.1.0.1 { } } }
自分のVPCのネットワークアドレス(10.1.0.0/16)をBGPで広報するには、”10.1.0.0/16″のスタティックルーティングも指定する必要があります。
※解決にご協力いただいた皆様、ありがとうございました!
ここまで問題なく完了すると、Vyattaが接続するVPC(10.0.0.0/16)のサブネット(10.0.0.0/24)のルーティングテーブルに上記で設定した10.1.0.0/16のルーティングが反映されていることが確認できます。
この状態で、10.0.0.5のEC2からVyatta側のEC2(10.1.1.5)に疎通確認すると、無事、通信できていることが確認できるはずです。
# ping 10.1.1.5 PING 10.1.1.5 (10.1.1.5) 56(84) bytes of data. 64 bytes from 10.1.1.5: icmp_seq=1 ttl=62 time=3.81 ms 64 bytes from 10.1.1.5: icmp_seq=2 ttl=62 time=3.85 ms 64 bytes from 10.1.1.5: icmp_seq=3 ttl=62 time=3.56 ms 64 bytes from 10.1.1.5: icmp_seq=4 ttl=62 time=3.60 ms 64 bytes from 10.1.1.5: icmp_seq=5 ttl=62 time=3.52 ms
# traceroute 10.1.1.5 traceroute to 10.1.1.5 (10.1.1.5), 30 hops max, 60 byte packets 1 169.254.252.1 (169.254.252.1) 0.558 ms 0.574 ms 0.775 ms 2 169.254.252.25 (169.254.252.25) 0.621 ms 0.831 ms 0.787 ms 3 169.254.252.26 (169.254.252.26) 3.587 ms 3.804 ms 3.738 ms 4 10.1.1.5 (10.1.1.5) 4.475 ms 4.135 ms 4.383 ms