前回の記事で、ローカルルータ環境は出来ました。
これで、本番で利用しているネットワークに影響をあたえることなくAmazon VPC VPNを構築できます。
ではさっそく見てみましょう。
- 概要
- 構成
- リモートルータ側の設定
- Amazon 側設定
- ローカルルータ(RTX810)側設定
- 設定確認 (RTX810編)
- AWS 側のRoute Tables 設定
- VPN Status
- IPsecがつながらなくて困ったときは
概要
リモートルータは、固定IP8個11.11.11.1-8/29から、実際に利用できる6個11.11.11.2-7をアドレス変換しています。
配下のサブネット192.168.100.0/24は、グローバルIP11.11.11.2にIPマスカレード変換します。残りの5つは1対1NATで割り振っています。
- GWであるリモートルータのLAN側IPアドレスは
192.168.100.2/24
今回の対象となるRTX810は、11.11.11.3と1対1NATした192.168.100.3/24でWAN側を受け付けて、LAN側プライベートIPは192.168.101.0/24としています。
- GWであるRTX810のLAN側IPアドレスは
192.168.101.1/24
構成
前回の内容そのままです。
リモートルータでのIP変換対応表
| WAN側グローバルIP | アドレス変換方式 | LAN側IPプライベートアドレス | 機器 |
|---|---|---|---|
| 11.11.11.2 | IPマスカレード変換 | 192.168.100.2 | リモートルータ |
| 11.11.11.3 | 1対1NAT変換 | 192.168.100.3 | RTX810 |
| 11.11.11.4 | 1対1NAT変換 | 192.168.100.4 | サーバー1 |
| 11.11.11.5 | 1対1NAT変換 | 192.168.100.5 | サーバー2 |
| 11.11.11.6 | 1対1NAT変換 | 192.168.100.6 | サーバー3 |
| 11.11.11.7 | 1対1NAT変換 | 192.168.100.7 | サーバー4 |
リモートルータ側の設定
Amazon VPCとのHardware VPNはIPsecです。
今回は、ローカルルータの上位にリモートルータが存在するので、リモートルータ192.168.100.2でIPsecをローカルルータ192.168.100.3にマスカレードしておきます。
IPsecなのでUDP 500とESPが対象となります。
| プロトコル | 先頭ポート | 終了ポート | 変換IPアドレス |
|---|---|---|---|
| ESP | 192.168.100.3 | ||
| UDP | 500 | 500 | 192.168.100.3 |
Amazon 側設定
ほぼ前回同様です。
以下のみ異なります。
VPN Connectionsに気を付ける
今回の構成では、RTX810がエッジに存在しません。
ということはBGP情報を交換できないので、Yamaha RTX810 でAmazon VPC と Hardware VPN を構築してみようで紹介したようなUse Dynamic Routing (requires BGP) は使えません。
よって、Amazon VPCでのVPN Connectionsは、Use Static Routingとなります。
作成したCustomer GatewayとVirtual Private Gatewayを紐づけます。
- VPN Connectionsへ
- Create VPN Connections
- 紐づけるCustomer GatewayとVirtual Private Gatewayを選択
- Use Static Routingを選択
- 今回のルーティング対象となるRTX810配下のサブネット
192.168.101.0/24を入力しAddを選択 - Yes, Createで作成

ローカルルータ(RTX810)側設定
後は、AWS VPCで作成した設定をRTX 810に投入します。
ipsec ike local address の修正
今回はローカルルータに1対1NATしているので、リモートルータのアドレスや、NAT変換前のグローバルIPではIPsecトンネルは終わりません。
以下のipsec ike local addressを、RTX810のWANへ割り振ったアドレスに変更します。
ipsec ike local address 1 192.168.100.3
ipsec の切り替えを行う
また、AWS VPNは2本の冗長構成となります。
そこで、通常は1本利用遮断時に2を利用するようにします。
ip route 10.0.0.0/16 gateway tunnel 1 hide gateway tunnel 2 weight 0
投入後のconfig全体です。ipfilterなど一部マスクしていますが、前回のipsecに関するip filterと、上記に気を付けて設定すればipsecがつながります。
ip route default gateway 192.168.100.2 ip route 10.0.0.0/16 gateway tunnel 1 hide gateway tunnel 2 weight 0 ip keepalive 1 icmp-echo 10 5 192.168.100.2 ip lan1 address 192.168.101.1/24 ip lan2 address 192.168.100.3/29 ip lan2 secure filter in 101003 101061 101062 ip lan2 secure filter out 101013 ip lan2 nat descriptor 200 provider lan1 name LAN: provider lan2 name PRV/0/1/3/0/0:固定IP tunnel select 1 ipsec tunnel 201 ipsec sa policy 201 1 esp aes-cbc sha-hmac ipsec ike duration ipsec-sa 1 3600 ipsec ike encryption 1 aes-cbc ipsec ike group 1 modp1024 ipsec ike hash 1 sha ipsec ike keepalive use 1 on dpd 10 3 ipsec ike local address 1 192.168.100.3 ipsec ike pfs 1 on ipsec ike pre-shared-key 1 text AWSで発行されたPresharedKey ipsec ike remote address 1 27.yy.yy.16 ipsec tunnel outer df-bit clear ip tunnel address 169.xxx.xxx.26/30 ip tunnel remote address 169.xxx.xxx.25 ip tunnel tcp mss limit 1387 tunnel enable 1 tunnel select 2 ipsec tunnel 202 ipsec sa policy 202 2 esp aes-cbc sha-hmac ipsec ike duration ipsec-sa 2 3600 ipsec ike encryption 2 aes-cbc ipsec ike group 2 modp1024 ipsec ike hash 2 sha ipsec ike keepalive use 2 on dpd 10 3 ipsec ike local address 2 192.168.100.3 ipsec ike pfs 2 on ipsec ike pre-shared-key 2 text AWSで発行されたPresharedKey ipsec ike remote address 2 27.yy.yy.144 ipsec tunnel outer df-bit clear ip tunnel address 169.xxx.xxx.30/30 ip tunnel remote address 169.xxx.xxx.29 ip tunnel tcp mss limit 1387 tunnel enable 2 ip filter 101003 reject 192.168.101.0/24 * * * * ip filter 101013 reject * 192.168.101.0/24 * * * ip filter 101061 pass * 192.168.100.3 esp * * ip filter 101062 pass * 192.168.100.3 udp * 500 nat descriptor type 200 masquerade nat descriptor address outer 200 192.168.100.3 nat descriptor address inner 200 auto ipsec auto refresh on dhcp service server dhcp server rfc2131 compliant except remain-silent dhcp scope 1 192.168.101.100-192.168.101.150/24 dns server 192.168.100.2 dns private address spoof on httpd host lan1 #
設定確認 (RTX810編)
まずは、手元で設定を確認します。
IPsecの動作確認
configにあった接続先idが存在しています。
# show ipsec sa Total: isakmp:2 send:2 recv:2 sa sgw isakmp connection dir life[s] remote-id ----------------------------------------------------------------------------- 1 1 - isakmp - 24148 接続先id1 2 2 - isakmp - 24149 接続先id2 7 1 1 tun[001]esp send 1657 接続先id1 8 1 1 tun[001]esp recv 1657 接続先id1 9 2 2 tun[002]esp send 1658 接続先id2 10 2 2 tun[002]esp recv 1658 接続先id2
AWS 側のRoute Tables 設定
前回同様、ipsecでつながったパケットが、対象のVPC Subnetに届くようにroute tableに設定を追加してあげます。
- Virtual Private Cloudへ
- Route Tablesへ
- 設定したいRoute Table idを選択 (VPCとAssociateされたVPC Subnetで確認します)
- Routesに追加
Destination : VPN 接続先の自分の Subnet (この例では 192.168.101.0/32) Target : 作成した vgw-hogehogehoge 今回の対象subnet : 10.0.3.0/24
これで、 手元の192.168.101.0/24から対象のVPC Subnet (10.0.3.0/24) へのpingがルーティングされたことを確認できます。
PS> ping 10.0.3.100
Pinging 10.0.3.100 with 32 bytes of data:
Reply from 10.0.3.100: bytes=32 time=12ms TTL=125
Reply from 10.0.3.100: bytes=32 time=12ms TTL=125
Reply from 10.0.3.100: bytes=32 time=11ms TTL=125
Reply from 10.0.3.100: bytes=32 time=12ms TTL=125
Ping statistics for 10.0.3.100:
Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
Minimum = 11ms, Maximum = 12ms, Average = 11ms
VPN Status
最後に、AWS側のVPN Statusを確認してください。
IPsecがつながらなくて困ったときは
Web Consoleでいいので、RTX810のログでInfoとDebugをonにしてください。
おおよその場合は、たいした問題じゃないのですが、ヒント、ログって大事です。
syslog notice on syslog debug on