tech.guitarrapc.cóm

Technical updates

(RTX810構築シリーズ 4/7) Yamaha RTX810 を ローカルルータ構成で Amazon VPC と Hardware VPN を構築してみよう (グローバルIPの1対1NAT環境)

前回の記事で、ローカルルータ環境は出来ました。

これで、本番で利用しているネットワークに影響をあたえることなくAmazon VPC VPNを構築できます。

ではさっそく見てみましょう。

目次

構成

前回の内容そのままです。

tech.guitarrapc.com

リモートルータでの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

概要

リモートルータは、固定IP8個11.11.11.1-8/29から、実際に利用できる6個11.11.11.2-7をアドレス変換しています。

配下のサブネット192.168.100.0/24は、グローバルIP11.11.11.2にIPマスカレード変換します。

  • GWであるリモートルータのLAN側IPアドレスは192.168.100.2/24

残りの5つは1対1NATで割り振っています。

今回の対象となる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

リモートルータ側の設定

Amazon VPCとのHardware VPNは IPsecです。

今回は、ローカルルータの上位にリモートルータが存在するので、リモートルータ192.168.100.2でIPsecをローカルルータ192.168.100.3にマスカレードしておきます。

IPsecなのでUDP 500ESPが対象となります。

プロトコル 先頭ポート 終了ポート 変換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 を紐づけます。

  1. VPN Connectionsへ
  2. Create VPN Connections
  3. 紐づける Customer Gateway と Virtual Private Gateway を選択
  4. Use Static Routing を選択します
  5. 今回のルーティング対象となるRTX810配下のサブネット192.168.101.0/24を入力しAddを選択します
  6. 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に設定を追加してあげます。

  1. Virtual Private Cloud へ
  2. Route Tables へ
  3. 設定したいRoute Table idを選択 (VPC と Associate された VPC Subnetで確認します)
  4. 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 D:\> 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