$Date: 2026/01/06 20:00:36 $
インターネットマルチフィード株式会社が提供する transix を利用したインターネット接続の設定例です。
※ transixは、インターネットマルチフィード株式会社の登録商標(または商標)です。
| 変更前 | 変更後 |
|---|---|
| dns server pp 1 dns server dhcp lan2 (dns server select 500000 dhcp lan2 any .) dns server select 500001 pp 1 any . restrict pp 1 |
dns server pp 1 dns server dhcp lan2 dns server select 500000 dhcp lan2 aaaa . dns server select 500001 pp 1 any . restrict pp 1 |
ヤマハRTシリーズでは、以下の機種およびファームウェアで、transixのサービスが動作可能です。
| 機種 | ファームウェア | |
|---|---|---|
| IPv4接続(DS-Lite) | IPv4接続(固定IP) | |
| RTX840 | すべてのリビジョン | すべてのリビジョン |
| RTX3510 | ||
| RTX1300 | ||
| RTX1220 | ||
| RTX830 | Rev.15.02.03 以降 | |
| NVR510 | Rev.15.01.09 以降 | |
| NVR700W | Rev.15.00.10 以降 | |
| RTX1210 | Rev.14.01.26 以降 | |
| NVR500 | - | |
| RTX5000 | Rev.14.00.26 以降 | |
| RTX3500 | Rev.14.00.26 以降 | |
NWR100 の対応ファームウェアは以下を参照ください。
transixのサービス利用下におけるIPv4のVPN接続は、以下の機種およびファームウェアで動作可能です。
| 機種 | ファームウェア | |||
|---|---|---|---|---|
| IPv4接続(DS-Lite) | IPv4接続(固定IP) | |||
| IPsec (イニシエーター) |
IPsec | L2TP/IPsec | L2TPv3/IPsec L2TPv3 | |
| RTX840 | すべてのリビジョン | すべてのリビジョン | すべてのリビジョン | すべてのリビジョン |
| RTX3510 | ||||
| RTX1300 | ||||
| RTX1220 | Rev.15.04.03 以降 | Rev.15.04.03 以降 | ||
| RTX830 | Rev.15.02.03 以降 | Rev.15.02.03 以降 | Rev.15.02.20 以降 | Rev.15.02.20 以降 |
| NVR510 | - | - | Rev.15.01.21 以降 | - |
| NVR700W | Rev.15.00.14 以降 | Rev.15.00.14 以降 | Rev.15.00.22 以降 | Rev.15.00.22 以降 |
| RTX1210 | Rev.14.01.28 以降 | Rev.14.01.28 以降 | Rev.14.01.40 以降 | Rev.14.01.40 以降 |
| RTX5000 | Rev.14.00.32 以降 | Rev.14.00.32 以降 | Rev.14.00.32 以降 | Rev.14.00.32 以降 |
| RTX3500 | Rev.14.00.32 以降 | Rev.14.00.32 以降 | Rev.14.00.32 以降 | Rev.14.00.32 以降 |
transixのサービス利用下におけるIPv4のVPN接続は、以下のVPN接続の設定例を参考に、transixのサービスと組み合わせてご利用ください。
(※) DS-Lite は、IPIPトンネリング(IPv4 over IPv6トンネル接続)を利用して行います。この時、ルーターはIPv4パケットをIPv6でカプセル化し、IPv6ネットワークに設置された AFTR(Address Family Transition Router)にIPv6パケットを転送します。AFTRにて、カプセル化されたIPv4パケットをIPv6パケットから取り出し、IPマスカレードによる変換を行い、IPv4インターネットへとIPv4パケットを転送します。
| 光回線 | 契約 | WAN側の接続機器 | 確認事項 | 設定例 | |
|---|---|---|---|---|---|
| フレッツ 光ネクスト | IPv4接続(DS-Lite) | ONU | ひかり電話契約 なし | 1 | |
| ひかり電話契約 あり | 2 | ||||
| ホームゲートウェイ (HGW) |
ひかり電話契約 なし | 1 | |||
| ひかり電話契約 あり | HGWがルーターへ RA を広告 | 1 | |||
| HGWがルーターへ DHCPv6-PD によるIPv6アドレスを配布 |
2 | ||||
| IPv4接続(固定IP) | ONU | ひかり電話契約 なし | 3 | ||
| ひかり電話契約 あり | 4 | ||||
| ホームゲートウェイ (HGW) |
ひかり電話契約 なし | 3 | |||
| ひかり電話契約 あり | HGWがルーターへ RA を広告 | 3 | |||
| HGWがルーターへ DHCPv6-PD によるIPv6アドレスを配布 |
4 | ||||
| フレッツ 光クロス | IPv4接続(DS-Lite) | ONU | - | 2 | |
| ホームゲートウェイ (HGW) |
HGWがルーターへ RA を広告 | 1 | |||
| HGWがルーターへ DHCPv6-PD によるIPv6アドレスを配布 | 2 | ||||
| IPv4接続(固定IP) | ONU | - | 4 | ||
| ホームゲートウェイ (HGW) |
HGWがルーターへ RA を広告 | 3 | |||
| HGWがルーターへ DHCPv6-PD によるIPv6アドレスを配布 | 4 | ||||
(※) ホームゲートウェイの動作は、ホームゲートウェイの設定をご確認ください。
| LAN1 | IPv4アドレス | 192.168.100.1/24 |
| IPv6アドレス | (RAで取得したプレフィックス)::1/64 | |
| LAN2 | IPv4アドレス | なし |
| IPv6アドレス | なし |
【経路設定】
ip route default gateway tunnel 1
【LAN設定】
ip lan1 address 192.168.100.1/24
【NGNとの接続設定】(※1)
ngn type lan2 ntt
ipv6 prefix 1 ra-prefix@lan2::/64
ipv6 lan1 address ra-prefix@lan2::1/64
ipv6 lan1 rtadv send 1 o_flag=on
ipv6 lan1 dhcp service server
ipv6 lan2 dhcp service client ir=on
【AFTRに対するIPIPの設定】
tunnel select 1
tunnel encapsulation ipip
tunnel endpoint name (AFTRのFQDN) (※2)
ip tunnel mtu 1460
tunnel enable 1
【DHCPの設定】
dhcp service server
dhcp server rfc2131 compliant except remain-silent
dhcp scope 1 192.168.100.2-192.168.100.191/24
【DNSの設定】
dns server dhcp lan2
【IPv4フィルター関連設定】
tunnel select 1
ip tunnel secure filter in 200030 200039
ip tunnel secure filter out 200097 200098 200099 dynamic 200080 200082 200083 200084 200098 200099
tunnel enable 1
ip filter 200030 pass * 192.168.100.0/24 icmp * *
ip filter 200039 reject *
ip filter 200097 pass * * icmp * *
ip filter 200098 pass * * tcp * *
ip filter 200099 pass * * udp * *
ip filter dynamic 200080 * * ftp
ip filter dynamic 200082 * * www
ip filter dynamic 200083 * * smtp
ip filter dynamic 200084 * * pop3
ip filter dynamic 200098 * * tcp
ip filter dynamic 200099 * * udp
【IPv6フィルター関連設定】
ipv6 lan2 secure filter in 200030 200031 200038 200039
ipv6 lan2 secure filter out 200099 dynamic 200080 200081 200082 200083 200084 200098 200099
ipv6 filter 200030 pass * * icmp6 * *
ipv6 filter 200031 pass * * 4
ipv6 filter 200038 pass * * udp * 546
ipv6 filter 200039 reject *
ipv6 filter 200099 pass * * * * *
ipv6 filter dynamic 200080 * * ftp
ipv6 filter dynamic 200081 * * domain
ipv6 filter dynamic 200082 * * www
ipv6 filter dynamic 200083 * * smtp
ipv6 filter dynamic 200084 * * pop3
ipv6 filter dynamic 200098 * * tcp
ipv6 filter dynamic 200099 * * udp
|
(※1) LAN1の接続機器がIPv6を使用せずIPv4通信のみを行う場合、以下は設定しないでください。
・ipv6 prefix 1 ra-prefix@lan2::/64
・ipv6 lan1 rtadv send 1 o_flag=on
・ipv6 lan1 dhcp service server
(※2) NVR500 では、tunnel endpoint address コマンドを使用して、AFTRのIPv6アドレスを指定してください。
| LAN1 | IPv4アドレス | 192.168.100.1/24 |
| IPv6アドレス | (DHCPv6-PDで取得したプレフィックス)::1/64 | |
| LAN2 | IPv4アドレス | なし |
| IPv6アドレス | (DHCPv6-PDで取得したプレフィックス)::(EUI-64で生成されたインターフェースID)/64 |
【経路設定】
ip route default gateway tunnel 1
【LAN設定】
ip lan1 address 192.168.100.1/24
【NGNとの接続設定】(※1)
ngn type lan2 ntt
ipv6 route default gateway dhcp lan2
ipv6 prefix 1 dhcp-prefix@lan2::/64
ipv6 lan1 address dhcp-prefix@lan2::1/64
ipv6 lan1 rtadv send 1 o_flag=on
ipv6 lan1 dhcp service server
ipv6 lan2 address dhcp
ipv6 lan2 dhcp service client
【AFTRに対するIPIPの設定】
tunnel select 1
tunnel encapsulation ipip
tunnel endpoint name (AFTRのFQDN) (※2)
ip tunnel mtu 1460
tunnel enable 1
【DHCPの設定】
dhcp service server
dhcp server rfc2131 compliant except remain-silent
dhcp scope 1 192.168.100.2-192.168.100.191/24
【DNSの設定】
dns server dhcp lan2
【IPv4フィルター関連設定】
tunnel select 1
ip tunnel secure filter in 200030 200039
ip tunnel secure filter out 200097 200098 200099 dynamic 200080 200082 200083 200084 200098 200099
tunnel enable 1
ip filter 200030 pass * 192.168.100.0/24 icmp * *
ip filter 200039 reject *
ip filter 200097 pass * * icmp * *
ip filter 200098 pass * * tcp * *
ip filter 200099 pass * * udp * *
ip filter dynamic 200080 * * ftp
ip filter dynamic 200082 * * www
ip filter dynamic 200083 * * smtp
ip filter dynamic 200084 * * pop3
ip filter dynamic 200098 * * tcp
ip filter dynamic 200099 * * udp
【IPv6フィルター関連設定】
ipv6 lan2 secure filter in 200030 200031 200038 200039
ipv6 lan2 secure filter out 200099 dynamic 200080 200081 200082 200083 200084 200098 200099
ipv6 filter 200030 pass * * icmp6 * *
ipv6 filter 200031 pass * * 4
ipv6 filter 200038 pass * * udp * 546
ipv6 filter 200039 reject *
ipv6 filter 200099 pass * * * * *
ipv6 filter dynamic 200080 * * ftp
ipv6 filter dynamic 200081 * * domain
ipv6 filter dynamic 200082 * * www
ipv6 filter dynamic 200083 * * smtp
ipv6 filter dynamic 200084 * * pop3
ipv6 filter dynamic 200098 * * tcp
ipv6 filter dynamic 200099 * * udp
|
(※1) LAN1の接続機器がIPv6を使用せずIPv4通信のみを行う場合、以下は設定しないでください。
・ipv6 prefix 1 dhcp-prefix@lan2::/64
・ipv6 lan1 rtadv send 1 o_flag=on
・ipv6 lan1 dhcp service server
(※2) NVR500 では、tunnel endpoint address コマンドを使用して、AFTRのIPv6アドレスを指定してください。
| LAN1 | IPv4アドレス | 192.168.100.1/24 |
| IPv6アドレス | (RAで取得したプレフィックス)::(インターフェースID)/64 | |
| LAN2 | IPv4アドレス | なし |
| IPv6アドレス | なし |
| UPD_SV | アップデートサーバーのURL |
| USERNAME | ユーザー名 |
| PASSWORD | パスワード |
【経路設定】
ip route default gateway tunnel 1
【LAN設定】
ip lan1 address 192.168.100.1/24
【NGNとの接続設定】(※1) (※2)
ngn type lan2 ntt
ipv6 prefix 1 ra-prefix@lan2::/64
ipv6 lan1 address ra-prefix@lan2::(インターフェースID)/64
ipv6 lan1 rtadv send 1 o_flag=on
ipv6 lan1 dhcp service server
ipv6 lan2 dhcp service client ir=on
【BRに対するIPIPの設定】
tunnel select 1
tunnel encapsulation ipip
tunnel endpoint address (固定IPトンネル終端装置のIPv6アドレス)
ip tunnel mtu 1460
ip tunnel nat descriptor 1
tunnel enable 1
【NAT設定】
nat descriptor type 1 masquerade
nat descriptor address outer 1 (固定IPv4アドレス)
【DHCPの設定】
dhcp service server
dhcp server rfc2131 compliant except remain-silent
dhcp scope 1 192.168.100.2-192.168.100.191/24
【DNSの設定】
dns host lan1
dns service fallback on
dns server dhcp lan2
dns server select 500000 dhcp lan2 any .
【IPv4フィルター関連設定】
tunnel select 1
ip tunnel secure filter in 200030 200039
ip tunnel secure filter out 200097 200098 200099 dynamic 200080 200082 200083 200084 200098 200099
tunnel enable 1
ip filter 200030 pass * 192.168.100.0/24 icmp * *
ip filter 200039 reject *
ip filter 200097 pass * * icmp * *
ip filter 200098 pass * * tcp * *
ip filter 200099 pass * * udp * *
ip filter dynamic 200080 * * ftp
ip filter dynamic 200082 * * www
ip filter dynamic 200083 * * smtp
ip filter dynamic 200084 * * pop3
ip filter dynamic 200098 * * tcp
ip filter dynamic 200099 * * udp
【IPv6フィルター関連設定】
ipv6 lan2 secure filter in 200030 200031 200038 200039
ipv6 lan2 secure filter out 200099 dynamic 200080 200081 200082 200083 200084 200098 200099
ipv6 filter 200030 pass * * icmp6 * *
ipv6 filter 200031 pass * * 4
ipv6 filter 200038 pass * * udp * 546
ipv6 filter 200039 reject *
ipv6 filter 200099 pass * * * * *
ipv6 filter dynamic 200080 * * ftp
ipv6 filter dynamic 200081 * * domain
ipv6 filter dynamic 200082 * * www
ipv6 filter dynamic 200083 * * smtp
ipv6 filter dynamic 200084 * * pop3
ipv6 filter dynamic 200098 * * tcp
ipv6 filter dynamic 200099 * * udp
【IPv6アドレスの通知設定】
ipv6 lan1 prefix change log on
lan linkup send-wait-time lan2 5
schedule at 1 startup * lua emfs:/transix_ra.lua
embedded file transix_ra.lua <<EOF
--[[
■ transix IPv6アドレス通知用 サンプルスクリプト
Ver. 1.00
2021.03.16 ヤマハ株式会社
本スクリプトは、transix の IPv4接続(固定IP)の RAプロキシ において
指定したインターフェースに新しいIPv6プレフィックスが付与されたとき、
アップデートサーバーにIPv6アドレスの更新通知を行うLuaスクリプト
のサンプルです。
新しいIPv6プレフィックスが付与されたことは、ルーターのSYSLOGを監視し、以下
のログが出力された場合に検知しています。
(IPv6アドレスがLAN1に設定されている場合の例)
Add IPv6 prefix xxxx:xxxx:xxxx:xxxx::/xx (Lifetime: xxxxxx) via LAN1 by RA
以下のコマンドが設定されていないと、上記ログは出力されないため、
必ず設定するようにしてください。
ipv6 lan1 prefix change log on
[注意事項]
・本スクリプトは、schedule atコマンドでルーターの起動時に実行されるようにし
てください。
・スクリプト中の「設定値」の値は、ご使用の環境に応じて変更した上でご使用く
ださい。
[更新履歴]
2021.03.16 Ver.1.00 初版作成
]]
----------------------------------------
-- 設定値 --
----------------------------------------
-- アップデートサーバーのURL
UPD_SV = "アップデートサーバーのURL"
-- ユーザー名
USERNAME = "ユーザー名"
-- パスワード
PASSWORD = "パスワード"
-- IPIPトンネルを貼るインターフェース名
TUNNEL_IF = "LAN1"
-- WANインターフェース名
WAN_IF = "LAN2"
-- IPv6プレフィックスが追加されたときの
-- SYSLOGパターン
LOG_PTN = "Add%s+IPv6%s+prefix.+%(Lifetime%:%s+%d+%)%s+via%s+" .. TUNNEL_IF .. "%s+by"
-- ステートレスDHCPv6でDNS情報を取得するコマンド
DHCPv6_IR_CMD = "ipv6 " .. string.lower(WAN_IF) .. " dhcp service client ir=on"
-- リトライの間隔 (s)
RETRY_INTVL = 10
-- リトライ回数
RETRY_NUM = 3
-- SYSLOGのレベル
LOG_LEVEL = "info"
-- SYSLOGのプレフィックス
LOG_PFX = "[transix]"
-- 通知失敗時のメッセージ
FAIL_MSG = "アップデートサーバーへの通知に失敗しました。 (リトライ: 残り%d回)"
----------------------------------------
-- SYSLOGを出力する関数 --
----------------------------------------
function logger(msg)
rt.syslog(LOG_LEVEL, string.format("%s %s", LOG_PFX, msg))
end
----------------------------------------
-- メインルーチン --
----------------------------------------
local rtn, count, log, result
local req_t = {}
local res_t
--------------------
-- 初期化
-- HTTPリクエストの準備
req_t.url = string.format("%s?username=%s&password=%s", UPD_SV,
USERNAME, PASSWORD)
req_t.method = "GET"
--------------------
-- 監視
while true do
-- SYSLOGを監視する
rtn = rt.syslogwatch(LOG_PTN)
-- パターンにマッチした
if rtn then
-- リトライ回数をリセット
count = RETRY_NUM
while true do
-- HTTPリクエストを実行
res_t = rt.httprequest(req_t)
if res_t.rtn1 then
-- リクエストに成功
logger("アップデートサーバーへの通知を実行しました。")
-- アップデートの結果をログに出力する
if res_t.code == 200 then
result = "成功"
else
result = "失敗"
end
log = string.format("アップデートに%sしました。(code=%d, body=%s)",
result, res_t.code, res_t.body)
logger(log)
-- ループを抜け、SYSLOGの監視を再開する
break
else
-- リクエストの応答がない場合、DNS情報が取得できていない可能性があるため
-- DNS情報を再取得する
rt.command(DHCPv6_IR_CMD)
end
-- リクエストに失敗
count = count - 1
if count > 0 then
-- (RETRY_INTVL)秒後、リトライ
logger(string.format(FAIL_MSG, count))
rt.sleep(RETRY_INTVL)
else
-- リトライ上限を超えたので諦め、SYSLOGの監視を再開する
logger("アップデートサーバーへの通知に失敗しました。")
break
end
end
end
end
EOF
|
(※1) LAN1の接続機器がIPv6を使用せずIPv4通信のみを行う場合、以下は設定しないでください。
・ipv6 prefix 1 ra-prefix@lan2::/64
・ipv6 lan1 rtadv send 1 o_flag=on
・ipv6 lan1 dhcp service server
(※2) インターフェースID = CPEトンネル終端IPv6アドレスの下位64bit
| LAN1 | IPv4アドレス | 192.168.100.1/24 |
| IPv6アドレス | (DHCPv6-PDで取得したプレフィックス)::(インターフェースID)/64 | |
| LAN2 | IPv4アドレス | なし |
| IPv6アドレス | (DHCPv6-PDで取得したプレフィックス)::/64 |
| UPD_SV | アップデートサーバーのURL |
| USERNAME | ユーザー名 |
| PASSWORD | パスワード |
【経路設定】
ip route default gateway tunnel 1
【LAN設定】
ip lan1 address 192.168.100.1/24
【NGNとの接続設定】(※1) (※2)
ngn type lan2 ntt
ipv6 route default gateway dhcp lan2
ipv6 prefix 1 dhcp-prefix@lan2::/64
ipv6 lan1 address dhcp-prefix@lan2::(インターフェースID)/64
ipv6 lan1 rtadv send 1 o_flag=on
ipv6 lan1 dhcp service server
ipv6 lan2 address dhcp-prefix@lan2::/64
ipv6 lan2 dhcp service client
【BRに対するIPIPの設定】
tunnel select 1
tunnel encapsulation ipip
tunnel endpoint address (固定IPトンネル終端装置のIPv6アドレス)
ip tunnel mtu 1460
ip tunnel nat descriptor 1
tunnel enable 1
【NAT設定】
nat descriptor type 1 masquerade
nat descriptor address outer 1 (固定IPv4アドレス)
【DHCPの設定】
dhcp service server
dhcp server rfc2131 compliant except remain-silent
dhcp scope 1 192.168.100.2-192.168.100.191/24
【DNSの設定】
dns host lan1
dns service fallback on
dns server dhcp lan2
dns server select 500000 dhcp lan2 any .
【IPv4フィルター関連設定】
tunnel select 1
ip tunnel secure filter in 200030 200039
ip tunnel secure filter out 200097 200098 200099 dynamic 200080 200082 200083 200084 200098 200099
tunnel enable 1
ip filter 200030 pass * 192.168.100.0/24 icmp * *
ip filter 200039 reject *
ip filter 200097 pass * * icmp * *
ip filter 200098 pass * * tcp * *
ip filter 200099 pass * * udp * *
ip filter dynamic 200080 * * ftp
ip filter dynamic 200082 * * www
ip filter dynamic 200083 * * smtp
ip filter dynamic 200084 * * pop3
ip filter dynamic 200098 * * tcp
ip filter dynamic 200099 * * udp
【IPv6フィルター関連設定】
ipv6 lan2 secure filter in 200030 200031 200038 200039
ipv6 lan2 secure filter out 200099 dynamic 200080 200081 200082 200083 200084 200098 200099
ipv6 filter 200030 pass * * icmp6 * *
ipv6 filter 200031 pass * * 4
ipv6 filter 200038 pass * * udp * 546
ipv6 filter 200039 reject *
ipv6 filter 200099 pass * * * * *
ipv6 filter dynamic 200080 * * ftp
ipv6 filter dynamic 200081 * * domain
ipv6 filter dynamic 200082 * * www
ipv6 filter dynamic 200083 * * smtp
ipv6 filter dynamic 200084 * * pop3
ipv6 filter dynamic 200098 * * tcp
ipv6 filter dynamic 200099 * * udp
【IPv6アドレスの通知設定】
ipv6 lan1 prefix change log on
lan linkup send-wait-time lan2 5
schedule at 1 startup * lua emfs:/transix_pd.lua
embedded file transix_pd.lua <<EOF
--[[
■ transix IPv6アドレス通知用 サンプルスクリプト
Ver. 1.00
2021.03.16 ヤマハ株式会社
本スクリプトは、transix の IPv4接続(固定IP)の DHCPv6-PD において
指定したインターフェースに新しいIPv6プレフィックスが付与されたとき、
アップデートサーバーにIPv6アドレスの更新通知を行うLuaスクリプト
のサンプルです。
新しいIPv6プレフィックスが付与されたことは、ルーターのSYSLOGを監視し、以下
のログが出力された場合に検知しています。
(IPv6アドレスがLAN1に設定されている場合の例)
Add IPv6 prefix xxxx:xxxx:xxxx:xxxx::/xx (Lifetime: xxxxxx) via LAN1 by DHCPv6
以下のコマンドが設定されていないと、上記ログは出力されないため、
必ず設定するようにしてください。
ipv6 lan1 prefix change log on
[注意事項]
・本スクリプトは、schedule atコマンドでルーターの起動時に実行されるようにし
てください。
・スクリプト中の「設定値」の値は、ご使用の環境に応じて変更した上でご使用く
ださい。
[更新履歴]
2021.03.16 Ver.1.00 初版作成
]]
----------------------------------------
-- 設定値 --
----------------------------------------
-- アップデートサーバーのURL
UPD_SV = "アップデートサーバーのURL"
-- ユーザー名
USERNAME = "ユーザー名"
-- パスワード
PASSWORD = "パスワード"
-- IPIPトンネルを貼るインターフェース名
TUNNEL_IF = "LAN1"
-- IPv6プレフィックスが追加されたときの
-- SYSLOGパターン
LOG_PTN = "Add%s+IPv6%s+prefix.+%(Lifetime%:%s+%d+%)%s+via%s+" .. TUNNEL_IF .. "%s+by"
-- リトライの間隔 (s)
RETRY_INTVL = 10
-- リトライ回数
RETRY_NUM = 3
-- SYSLOGのレベル
LOG_LEVEL = "info"
-- SYSLOGのプレフィックス
LOG_PFX = "[transix]"
-- 通知失敗時のメッセージ
FAIL_MSG = "アップデートサーバーへの通知に失敗しました。 (リトライ: 残り%d回)"
----------------------------------------
-- SYSLOGを出力する関数 --
----------------------------------------
function logger(msg)
rt.syslog(LOG_LEVEL, string.format("%s %s", LOG_PFX, msg))
end
----------------------------------------
-- メインルーチン --
----------------------------------------
local rtn, count, log, result
local req_t = {}
local res_t
--------------------
-- 初期化
-- HTTPリクエストの準備
req_t.url = string.format("%s?username=%s&password=%s", UPD_SV,
USERNAME, PASSWORD)
req_t.method = "GET"
--------------------
-- 監視
while true do
-- SYSLOGを監視する
rtn = rt.syslogwatch(LOG_PTN)
-- パターンにマッチした
if rtn then
-- リトライ回数をリセット
count = RETRY_NUM
while true do
-- HTTPリクエストを実行
res_t = rt.httprequest(req_t)
if res_t.rtn1 then
-- リクエストに成功
logger("アップデートサーバーへの通知を実行しました。")
-- アップデートの結果をログに出力する
if res_t.code == 200 then
result = "成功"
else
result = "失敗"
end
log = string.format("アップデートに%sしました。(code=%d, body=%s)",
result, res_t.code, res_t.body)
logger(log)
-- ループを抜け、SYSLOGの監視を再開する
break
end
-- リクエストに失敗
count = count - 1
if count > 0 then
-- (RETRY_INTVL)秒後、リトライ
logger(string.format(FAIL_MSG, count))
rt.sleep(RETRY_INTVL)
else
-- リトライ上限を超えたので諦め、SYSLOGの監視を再開する
logger("アップデートサーバーへの通知に失敗しました。")
break
end
end
end
end
EOF
|
(※1) LAN1の接続機器がIPv6を使用せずIPv4通信のみを行う場合、以下は設定しないでください。
・ipv6 prefix 1 dhcp-prefix@lan2::/64
・ipv6 lan1 rtadv send 1 o_flag=on
・ipv6 lan1 dhcp service server
(※2) インターフェースID = CPEトンネル終端IPv6アドレスの下位64bit