tech.guitarrapc.cóm

C#, PowerShell, Unity, Cloud, Serverless Technical Update and Features

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

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

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

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

構成

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

構成図

概要

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

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

今回の対象となるRTX810は、192.168.100.30/24でWAN側を受け付けて、LAN側プライベートIPは192.168.101.0/24としています。

  • GWであるRTX810のLAN側IPアドレスは192.168.101.1/24

ローカルルータ配下の192.168.101.0/24は、RTX810が192.168.100.0/24とNAT変換しています。

リモートルータ側の設定

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

ip filter も上記は解放しておきます。

Amazon 側設定

前回同様です。

今回も Static Routing となります。

投入後のconfig全体

ipfilter など一部マスクしていますが、前回のipsec に関するip filterと、上記に気を付けて設定すればipsecがつながります。

ip routing on
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.30/24
ip lan2 proxyarp on
ip lan2 nat descriptor 200
provider lan1 name LAN:
provider lan2 name PRV/0/1/0/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.30
  ipsec ike pfs 1 on
  ipsec ike pre-shared-key 1 text AWSに与えられたkey
  ipsec ike remote address 1 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 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.30
  ipsec ike pfs 2 on
  ipsec ike pre-shared-key 2 text AWSに与えられたkey
  ipsec ike remote address 2 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 2
nat descriptor type 200 masquerade
nat descriptor address outer 200 192.168.100.30
nat descriptor address inner 200 auto
nat descriptor masquerade static 200 2 192.168.101.1 udp 500
nat descriptor masquerade static 200 3 192.168.101.1 esp
ipsec auto refresh on
syslog notice on
syslog debug on
dhcp service server
dhcp server rfc2131 compliant except remain-silent
dhcp scope 1 192.168.101.50-192.168.101.100/24 gateway 192.168.101.1 expire 48:00
dns service recursive
dns server 192.168.100.2 10.0.0.2
dns server select 1 10.0.0.2 any amazonaws.com
dns private address spoof off
dns notice order msext me server
httpd host lan1

ポイント

dns server select 1 10.0.0.2 any amazonaws.com

この設定をするこで、aws側のhostnameを見ようとした時でも、きっちりaws側のdnsサーバーである10.0.0.2 に問い合わせてくれます。

注意点としてFQDNでの指定なため、通常のWindows Host名ではDNSが指定できないという。 ADがあれば別なんですが。

上位ルータのprivate addressも参照させたいので、dns private address spoof offとしています。

設定確認 (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