ヤマハ ルーター NVR510/500のlan2インターフェース(WAN表記ジャック)に接続されたネットワーク上にあるDHCPv6-PDサーバーからPrefix Delegationを得るため下記の設定をしている管理者権限で「ipv6 lan2 dhcp service client」をコマンド実行するとDHCPv6のRebindを行う。リモート端末から実行する仕組みを設定する。
(1)概要
リモート端末から「RebindDHCPv6」ユーザー名でhttpログインを行う。syslogwatch()で「RebindDHCPv6」ユーザのログインを監視し、「ipv6 lan2 DHCP service client」をcommend()実行してDHCPv6サーバーからPrefixを再取得するLUAスクリプトを起動する。
NVR500では、一般ユーザでのhttpログインが出来ないので、管理者権限でログインした時、LUAスクリプトが動作するよう設計した。
(2)ユーザアカウントの設定
(3)LUAスクリプトの設定
SDカードにLUAスクリプトを設定し、「lua sd1:/lua/doRebindDHCPv6.lua」コマンド実行する。NVR起動時に実行されるようにスケデューラーに設定する。
(4)リモート実行
LUAスクリプトの起動
lua sd1:/lua/doRebindDHCPv6.lua
show status lua running
リモートからRebindDHCPv6ユーザでhttpログイン
wget -s --user=RebindDHCPv6 --password="JYUMON" http://nvr500.familyname/
nvr500上でリモート実行された処理結果ログ
NVR510/500 config
ipv6 lan2 address auto (RAからEUI64アドレス設定)
ipv6 lan2 dhcp service client (Prefix Delegationを得る)
ngn type lan2 ntt (DHCPサーバーからひかり電話情報を得る)
ipv6 lan1 address dhcp-prefix@lan2::11:250/64 (委譲されたPrefixでアドレス設定)
ipv6 lan1 rtadv send 1 o_flag=on
ipv6 lan1 dhcp service server
(1)概要
リモート端末から「RebindDHCPv6」ユーザー名でhttpログインを行う。syslogwatch()で「RebindDHCPv6」ユーザのログインを監視し、「ipv6 lan2 DHCP service client」をcommend()実行してDHCPv6サーバーからPrefixを再取得するLUAスクリプトを起動する。
NVR500では、一般ユーザでのhttpログインが出来ないので、管理者権限でログインした時、LUAスクリプトが動作するよう設計した。
(2)ユーザアカウントの設定
ユーザーアカウントの作成(NVR510/500)
login user RebindDHCPv6 encrypted JYUMON
(3)LUAスクリプトの設定
SDカードにLUAスクリプトを設定し、「lua sd1:/lua/doRebindDHCPv6.lua」コマンド実行する。
doRebindDHCPv6.lua
--[[
May.24 '2021 Rabbit51
doRebindDHCPv6.lua
]]
---------------------------------------------------------------
-- watching user 'RebindDHCPv6' user login w/ http --
---------------------------------------------------------------
while(true) do
rtn, array = rt.syslogwatch("'administrator' succeeded for HTTP: .* RebindDHCPv6")
rtn,str = rt.command("syslog debug on","off")
rtn,str = rt.command("ipv6 lan2 dhcp service client","on")
if rtn then
rtn,array = rt.syslogwatch("%[IPv6%] prefix",1,10)
if rtn > 0 then
pf = string.match(array[1],"%[IPv6%] prefix (%x+:%x+:%x+:%x+::/60)")
rtn,str = rt.syslog("info","[DHCPv6-PD] prefix: " .. pf)
else
rtn,str = rt.syslog("info","[DHCPv6-PD] timeout")
end
end
rtn,str = rt.command("syslog debug off")
end
スケデューラー設定
schedule at 53 startup * lua sd1:/lua/doRebindDHCPv6.lua
(4)リモート実行
LUAスクリプトの起動
lua sd1:/lua/doRebindDHCPv6.lua
show status lua running
リモートからRebindDHCPv6ユーザでhttpログイン
wget -s --user=RebindDHCPv6 --password="JYUMON" http://nvr500.familyname/
nvr500上でリモート実行された処理結果ログ