Oracle Cloud Infrastructure と VPN(IPsec) 接続するルーターの設定(IPv6 IPoE) : コマンド設定

管理番号:YMHRT-26834 
(最終更新日: 2024/3/7)

本設定例では、Oracle Cloud Infrastructure と IPsec接続する機能を使用しています。

本機能の対応機種は、RTX5000RTX3510RTX3500RTX1300RTX1220RTX1210RTX830NVR700Wです。

構成図

Oracle Cloud Infrastructure(以降、OCI)とVPN接続するための、ヤマハルーター(以降、ルーター)の設定手順です。
本設定例では、フレッツ 光ネクストのインターネット(IPv6 IPoE)接続を利用します。

ここでは、接続設定の一例として、以下の環境での設定をご紹介します。

  • NTTコミュニケーションズ株式会社が提供する OCNバーチャルコネクト を利用
  • ひかり電話契約あり(固定IP1契約)

環境の構築は、以下の手順で行います。
※ルーターの設定をする前に、ルーターの固定グローバルIPアドレスを取得しているか、確認をお願いします。

  1. 「ルーターの設定(1)」に記載のConfigを参考に、ルーターでプロバイダーの設定をします。
  2.  Oracle Cloud Infrastructure の仮想ネットワーク(IPsec) を設定します。
  3. 「ルーターの設定(2)」に記載のConfigを参考に、ルーターでIPsecの設定をします。

光回線に接続するためには、別途ONUが必要です。
NVR700Wは、本体のONUポートに小型ONUを装着することで、光回線に接続できます。

本設定例について

  • OCIの仮想ネットワークとの接続を保証するものではありません。
  • 2024年2月16日現在の仕様に基づいて記載しています。確認しているファームウェアは下記のとおりです。今後、サービス内容の変更や、仕様変更などによって接続できなくなる可能性があります。
    RTX5000 Rev.14.00.33
    RTX3510 Rev.23.01.01
    RTX3500 Rev.14.00.33
    RTX1300 Rev.23.00.10
    RTX1220 Rev.15.04.05
    RTX1210 Rev.14.01.41
    RTX830 Rev.15.02.30
    NVR700W Rev.15.00.24
  • OCIに関する情報および設定方法については、日本オラクル株式会社にお問い合わせください。

ルーターの設定(1)

※ネットワーク機器を安全にお使いいただくために、定期的な管理パスワードの変更を推奨します。

ゲートウェイの設定 ip route default gateway tunnel 1 filter 500000 gateway tunnel 1
ipv6 route default gateway dhcp lan2
LANインターフェースの設定
(LAN1ポートを使用)
ip lan1 address 192.168.100.1/24
WANインターフェースの設定
(LAN2ポートを使用)
ipv6 prefix 1 dhcp-prefix@lan2::/64
ipv6 source address selection rule lifetime
ipv6 lan1 address dhcp-prefix@lan2::1/64
ipv6 lan1 prefix change log on
ipv6 lan1 rtadv send 1 o_flag=on
ipv6 lan1 dhcp service server
ip lan2 address dhcp
ipv6 lan2 address dhcp
ipv6 lan2 secure filter in 101000 101001 101002 101003
ipv6 lan2 secure filter out 101099 dynamic 101080 101081 101082 101083 101084 101085 101098 101099
ipv6 lan2 dhcp service client
ngn type lan2 ntt
トンネルの設定
tunnel select 1
tunnel encapsulation map-e
tunnel map-e type ocn
ip tunnel mtu 1460
ip tunnel secure filter in 400003 400020 400021 400022 400023 400024 400025 400030 400032
ip tunnel secure filter out 400013 400020 400021 400022 400023 400024 400025 400026 400027 400099 dynamic 400080 400081 400082 400083 400084 400085 400098 400099
ip tunnel nat descriptor 20000
tunnel enable 1
フィルターの設定 ip filter 400000 reject 10.0.0.0/8 * * * *
ip filter 400001 reject 172.16.0.0/12 * * * *
ip filter 400002 reject 192.168.0.0/16 * * * *
ip filter 400003 reject 192.168.100.0/24 * * * *
ip filter 400010 reject * 10.0.0.0/8 * * *
ip filter 400011 reject * 172.16.0.0/12 * * *
ip filter 400012 reject * 192.168.0.0/16 * * *
ip filter 400013 reject * 192.168.100.0/24 * * *
ip filter 400020 reject * * udp,tcp 135 *
ip filter 400021 reject * * udp,tcp * 135
ip filter 400022 reject * * udp,tcp netbios_ns-netbios_ssn *
ip filter 400023 reject * * udp,tcp * netbios_ns-netbios_ssn
ip filter 400024 reject * * udp,tcp 445 *
ip filter 400025 reject * * udp,tcp * 445
ip filter 400026 restrict * * tcpfin * www,21,nntp
ip filter 400027 restrict * * tcprst * www,21,nntp
ip filter 400030 pass * 192.168.100.0/24 icmp * *
ip filter 400031 pass * 192.168.100.0/24 established * *
ip filter 400032 pass * 192.168.100.0/24 tcp * ident
ip filter 400033 pass * 192.168.100.0/24 tcp ftpdata *
ip filter 400034 pass * 192.168.100.0/24 tcp,udp * domain
ip filter 400035 pass * 192.168.100.0/24 udp domain *
ip filter 400036 pass * 192.168.100.0/24 udp * ntp
ip filter 400037 pass * 192.168.100.0/24 udp ntp *
ip filter 400099 pass * * * * *
ip filter 500000 restrict * * * * *
ip filter dynamic 400080 * * ftp
ip filter dynamic 400081 * * domain
ip filter dynamic 400082 * * www
ip filter dynamic 400083 * * smtp
ip filter dynamic 400084 * * pop3
ip filter dynamic 400085 * * submission
ip filter dynamic 400098 * * tcp
ip filter dynamic 400099 * * udp
ipv6 filter 101000 pass * * icmp6 * *
ipv6 filter 101001 pass * * tcp * ident
ipv6 filter 101002 pass * * udp * 546
ipv6 filter 101003 pass * * 4
ipv6 filter 101099 pass * * * * *
ipv6 filter dynamic 101080 * * ftp
ipv6 filter dynamic 101081 * * domain
ipv6 filter dynamic 101082 * * www
ipv6 filter dynamic 101083 * * smtp
ipv6 filter dynamic 101084 * * pop3
ipv6 filter dynamic 101085 * * submission
ipv6 filter dynamic 101098 * * tcp
ipv6 filter dynamic 101099 * * udp
NATの設定 nat descriptor type 20000 masquerade
nat descriptor address outer 20000 map-e
nat descriptor masquerade static 20000 1 (ルーターの固定グローバルIPアドレス) udp 500 # 注釈1
nat descriptor masquerade static 20000 2 (ルーターの固定グローバルIPアドレス) esp # 注釈1
DHCPの設定 dhcp service server
dhcp server rfc2131 compliant except remain-silent
dhcp scope 1 192.168.100.2-192.168.100.191/24
dhcp client release linkdown on
DNSの設定 dns host lan1
dns service fallback on
dns server dhcp lan2
dns server select 500000 dhcp lan2 any .
dns private address spoof on
Luaスクリプトのスケジュール設定 schedule at 1 startup * lua emfs:/ocn_map_e.lua
電話の設定 sip use on
Luaスクリプト
embedded file ocn_map_e.lua <<EOF
SERVER_URL = "アドレス解決システムURL"
USERNAME = "アドレス解決システム認証用ID"
PASSWORD = "アドレス解決システム認証用パスワード"
NGN_IF = "LAN1"

LOG_PTN1 = NGN_IF .. ": link up"
LOG_PTN2 = "%[OCN MAP%-E%] hostname="
PTN = /(Add IPv6 prefix|LAN1: link up|hostname=)/
LOG_LEVEL = "info"
LOG_PFX = "[OCN MAP-E]"

function logger(msg)
rt.syslog(LOG_LEVEL, string.format("%s %s", LOG_PFX, msg))
end
function retry_timer(t, c)
return (t * 2 * c)
end
local rtn, str, count, log, sleep_time, hostname, tmp
local req_t = {}
local res_t
math.randomseed(os.time())
req_t.method = "GET"

req_t.auth_type = "basic"
req_t.auth_name = USERNAME
req_t.auth_pass = PASSWORD
rtn, str = rt.syslogwatch(LOG_PTN2, 1, 30)
if (rtn > 0) then
tmp, hostname = string.split(str[1], "=")
end
while true do
count = 1
while hostname do
req_t.url = string.format("%s?hostname=%s", SERVER_URL, hostname)
rt.sleep(2)
res_t = rt.httprequest(req_t)
logger("Notified IPv6 address to the address resolution server.")
if res_t.rtn1 then
if res_t.code == 200 then
if string.match(res_t.body, "good") or string.match(res_t.body, "nochg") or string.match(res_t.body, "nohost") then
log = string.format("Succeeded to notify IPv6 address to the address resolution server. (code=%d)", res_t.code)
logger(log)
break
end
end
log = string.format("Failed to notify IPv6 address to the address resolution server. (code=%d)", res_t.code)
logger(log)
else
logger("Not response from the address resolution server.")
end
sleep_time = retry_timer(60, count)
if (sleep_time > 3600) then
sleep_time = 3600
else
count = count * 2
end
rt.sleep(sleep_time)
end
sleep_time = math.random(43200, 86400)
rtn, str = rt.syslogwatch(PTN, 1, sleep_time)
if (rtn > 0) and string.match(str[1], LOG_PTN2) then
tmp, hostname = string.split(str[1], "=")
elseif (rtn > 0) and string.match(str[1], LOG_PTN1) then
rt.sleep(5)
end
end
EOF

ルーターの設定(2)

ゲートウェイの設定 ip route (VCNのLAN側ネットワークアドレス) gateway tunnel 1 hide gateway tunnel 2 hide
ループバックの設定 ip loopback1 address (ルーターの固定グローバルIPアドレス)
VPN(IPsec)の設定1
# 注釈2
tunnel select 2
description tunnel OCI-VPN1
ipsec tunnel 2
ipsec sa policy 2 2 esp aes256-cbc sha256-hmac
ipsec ike duration ipsec-sa 2 3600
ipsec ike duration isakmp-sa 2 28800
ipsec ike encryption 2 aes256-cbc
ipsec ike group 2 modp1536
ipsec ike hash 2 sha256
ipsec ike keepalive log 2 off
ipsec ike keepalive use 2 on dpd
ipsec ike local address 2 (ルーターの固定グローバルIPアドレス)
ipsec ike local id 2 0.0.0.0/0
ipsec ike nat-traversal 2 on
ipsec ike pfs 2 on
ipsec ike pre-shared-key 2 text (DRGの1つ目の事前共有鍵)
ipsec ike remote address 2 (DRGの1つ目のグローバルIPアドレス)
ipsec ike remote id 2 0.0.0.0/0
tunnel enable 2
VPN(IPsec)の設定2
# 注釈2
tunnel select 3
description tunnel OCI-VPN2
ipsec tunnel 3
ipsec sa policy 3 3 esp aes256-cbc sha256-hmac
ipsec ike duration ipsec-sa 3 3600
ipsec ike duration isakmp-sa 3 28800
ipsec ike encryption 3 aes256-cbc
ipsec ike group 3 modp1536
ipsec ike hash 3 sha256
ipsec ike keepalive log 3 off
ipsec ike keepalive use 3 on dpd
ipsec ike local address 3 (ルーターの固定グローバルIPアドレス)
ipsec ike local id 3 0.0.0.0/0
ipsec ike nat-traversal 3 on
ipsec ike pfs 3 on
ipsec ike pre-shared-key 3 text (DRGの2つ目の事前共有鍵)
ipsec ike remote address 3 (DRGの2つ目のグローバルIPアドレス)
ipsec ike remote id 3 0.0.0.0/0
tunnel enable 3
VPN(IPsec)の設定
(共通項目)
ipsec auto refresh on

[注釈の説明]

注釈1:
VPN(IPsec)に関係するパケットを通過させる設定です。

注釈2:
本設定例では、VPNの冗長化も考慮して、OCIとヤマハルーターとを2本のトンネルで接続しています。
両トンネルともアクティブで、OCIからルーターに流れるパケットは、OCI側で負荷分散されます。

【ご注意】
本設定例は、設定の参考例を示したもので、動作を保証するものではございません。
ご利用いただく際には、十分に評価・検証を実施してください。

メール

ご相談・お問い合わせ