RTX810と配下のNVR500を組み合わせて050IP電話を使う場合、RTX810のWAN側IPアドレスが変更されると発着信が出来なくなる問題がありました。しかし、WAN側IPアドレスの変更を検知して、NVR500にSIPサーバへ再接続させることが出来れば問題は解決されます。
そこで考えたのがheartbeatとrt.syslogwatchを使う方法です:
所詮は小細工ですが、期待通りの動作はするようです。セキュリティ的にはよろしくないでしょうけど。
RTX810の設定(抜粋):
ip lan1 address 192.168.1.1/24
nat descriptor type 1000 masquerade
nat descriptor sip 1000 on
nat descriptor masquerade static 1000 1 192.168.1.2 tcp 5060
nat descriptor masquerade static 1000 2 192.168.1.2 udp 5060
nat descriptor masquerade static 1000 3 192.168.1.2 udp 5004-5043
ip filter 200040 pass * 192.168.1.2 tcp,udp * 5060
ip filter 200041 pass * 192.168.1.2 udp * 5004-5043
pp select 1
ip pp nat descriptor 1000
ip pp secure filter in ...... 200040 200041 ......
snmp sysname rtx810
heartbeat pre-shared-key hoge
schedule at 1 startup * lua sd1:/pphbsend.lua
RTX810で動かすLuaスクリプト(pphbsend.lua):
-- スクリプト起動時に一回送る(細かい判定は省略)
rt.command("heartbeat send 192.168.1.2 log=on")
--
while true do
rtn, str = rt.syslogwatch("PP%[01%] PPP/IPCP up")
if rtn > 0 then
rt.command("heartbeat send 192.168.1.2 log=on")
end
end
NVR500の設定(抜粋):
ip lan1 address 192.168.1.2/24
ip route default gateway 192.168.1.1
dns server 192.168.1.1
sip use on
sip server 1 voip-caxxxx.ocn.ne.jp register udp sip:050xxxxxxxx@ocn.ne.jp your_sip_user your_sip_password
analog extension dial prefix port=1 sip server=1
ip filter 100 reject 192.168.1.1 192.168.1.2 udp discard discard
ip filter 999 pass * *
ip lan1 secure filter in 100 999
syslog notice on
schedule at 1 startup * lua sd1:/pphbrecv.lua
NVR500で動かすLuaスクリプト(pphbrecv.lua):
while true do
rtn, str = rt.syslogwatch("LAN1 Rejected at IN%(100%) filter: UDP 192%.168%.1%.1:9 > 192%.168%.1%.2:9")
if rtn > 0 then
rt.command("sip server disconnect 1")
rt.command("sip server connect 1")
end
end
携帯電話のキャリアメールの方に迷惑メールが来るようになったので、なりすまし規制を「高」に設定した。それでも届くと思ったら、なりすましではなくSPFをパスしたメールだった。残念。
RTX810のSIP-NATをオンにして、配下のNVR500から050IP電話(OCNドットフォン)が使えるようにしてみました。RTX810とNVR500の間はLAN1同士を繋ぎました。RTX810のWAN側(LAN2側)IPアドレスが固定ではないので、再起動などでIPアドレスが変わった場合はNVR500からSIPサーバへ再接続する必要があります。これについてはLuaスクリプトでIPアドレスの変更を上手くキャッチすれば、もしかすると自動化出来るかも知れませんね。
RTX810の設定(抜粋):
ip lan1 address 192.168.1.1/24
nat descriptor type 1000 masquerade
nat descriptor sip 1000 on
nat descriptor masquerade static 1000 1 192.168.1.2 tcp 5060
nat descriptor masquerade static 1000 2 192.168.1.2 udp 5060
nat descriptor masquerade static 1000 3 192.168.1.2 udp 5004-5043
ip filter 200040 pass * 192.168.1.2 tcp,udp * 5060
ip filter 200041 pass * 192.168.1.2 udp * 5004-5043
pp select 1
ip pp nat descriptor 1000
ip pp secure filter in ...... 200040 200041 ......
NVR500の設定(抜粋):
ip lan1 address 192.168.1.2/24
ip route default gateway 192.168.1.1
dns server 192.168.1.1
sip use on
sip server 1 voip-caxxxx.ocn.ne.jp register udp sip:050xxxxxxxx@ocn.ne.jp your_sip_user your_sip_password
analog extension dial prefix port=1 sip server=1