GL.iNet GL-MV1000のlcuiの方でdyn.comのDynamic DNSを設定したのだが、再起動時に自動実行してくれない。
設定画面としては下記の様になっている。

Enabledにチェックが入っているので、自動起動してもよさそうなのだがしていない。
とりあえず起動の仕組みをさぐるため、ルータにrootでログイン。
とりあえず「/etc/init.d」にはどんなファイルがあるのか確認してみると「ddns」というソレっぽいファイルが。
root@GL-MV1000:~# ls /etc/init.d boot firewall gl_s2s initswitch openvpn sysctl usbmode bootcount firewall_gl gl_tertf led qosswitch sysfixtime vpn-service clear_flag gl_fixdomain gl_udp_server lighttpd relayd sysntpd wireguard cron gl_init glcrond log rpcd system wireguard_server ddns gl_monitor glfw modem-init samba ucitrack dnsmasq gl_mqtt glqos mwan3 smstools3 uhttpd done gl_mv1000 gpio_switch network startvpn umount dropbear gl_route_policy haveged odhcpd stubby urandom_seed root@GL-MV1000:~#
/etc/rc.dには「S95ddns」と「K10ddns」(どちらも/etc/init.d/ddnsへのシンボリックリンク)
root@GL-MV1000:~# ls /etc/rc.d K10ddns S00sysfixtime S19dnsmasq S50glfw S95ddns S99lighttpd K10gpio_switch S10boot S19dropbear S50stubby S95done S99startvpn K50dropbear S10gl_mv1000 S19firewall S60samba S96led S99urandom_seed K51stubby S10system S19mwan3 S70modem-init S98sysntpd S99wireguard K85odhcpd S11sysctl S20network S80gl_tertf S99bootcount S99wireguard_server K89log S12log S20usbmode S80relayd S99gl_monitor K90network S12rpcd S21initswitch S80ucitrack S99gl_mqtt K90sysfixtime S13haveged S35odhcpd S90vpn-service S99gl_route_policy K98boot S15gl_fixdomain S50cron S94gpio_switch S99gl_s2s K99umount S18firewall_gl S50glcrond S94smstools3 S99gl_udp_server root@GL-MV1000:~#
すでに/etc/rc.d/S95ddnsがあるので起動時から動作していても良さそうなのにしていない、ということはスクリプトの中で何らかの処理を行っているはず、ということで中身を確認。
root@GL-MV1000:~# cat /etc/init.d/ddns #!/bin/sh /etc/rc.common START=95 STOP=10 boot() { return 0 } reload() { /usr/lib/ddns/dynamic_dns_updater.sh -- reload return 0 } restart() { /usr/lib/ddns/dynamic_dns_updater.sh -- stop sleep 1 enable=`uci -q get ddns.glddns.enabled` if [ "$enable" = 1 ];then /usr/lib/ddns/dynamic_dns_updater.sh -- start fi } start() { enable=`uci -q get ddns.glddns.enabled` if [ "$enable" = 1 ];then /usr/lib/ddns/dynamic_dns_updater.sh -- start fi } stop() { /usr/lib/ddns/dynamic_dns_updater.sh -- stop return 0 } root@GL-MV1000:~#
「start()」で「uci -q get ddns.glddns.enabled」の値を確認している。
root@GL-MV1000:~# uci -q get ddns.glddns.enabled root@GL-MV1000:~#
現状は値が設定されていないため、起動していないようだ。
uciのパラメータを全部確認する場合は「uci -q show」で確認できるので、「uci -q show|grep dns.」を実行してみた。
root@GL-MV1000:~# uci -q show|grep dns. ddns.global=ddns ddns.global.ddns_dateformat='%F %R' ddns.global.ddns_loglines='250' ddns.global.upd_privateip='0' ddns.myddns_ipv4=service ddns.myddns_ipv4.lookup_host='yourhost.example.com' ddns.myddns_ipv4.domain='yourhost.example.com' ddns.myddns_ipv4.username='your_username' ddns.myddns_ipv4.password='your_password' ddns.myddns_ipv4.interface='wan' ddns.myddns_ipv4.ip_source='network' ddns.myddns_ipv4.ip_network='wan' ddns.myddns_ipv4.service_name='dyn.com' ddns.myddns_ipv4.enabled='0' ddns.myddns_ipv6=service ddns.myddns_ipv6.update_url='http://[USERNAME]:[PASSWORD]@your.provider.net/nic/update?hostname=[DOMAIN]&myip=[IP]' ddns.myddns_ipv6.lookup_host='yourhost.example.com' ddns.myddns_ipv6.domain='yourhost.example.com' ddns.myddns_ipv6.username='your_username' ddns.myddns_ipv6.password='your_password' ddns.myddns_ipv6.use_ipv6='1' ddns.myddns_ipv6.interface='wan6' ddns.myddns_ipv6.ip_source='network' ddns.myddns_ipv6.ip_network='wan6' ddns.myddns_ipv6.enabled='0' ddns.osakana=service ddns.osakana.enabled='1' ddns.osakana.lookup_host='********************' ddns.osakana.service_name='dyn.com' ddns.osakana.domain='********************' ddns.osakana.username='********************' ddns.osakana.password='********************' dhcp.@dnsmasq[0]=dnsmasq dhcp.@dnsmasq[0].domainneeded='1' dhcp.@dnsmasq[0].boguspriv='1' dhcp.@dnsmasq[0].filterwin2k='0' dhcp.@dnsmasq[0].localise_queries='1' dhcp.@dnsmasq[0].rebind_protection='1' dhcp.@dnsmasq[0].rebind_localhost='1' dhcp.@dnsmasq[0].local='/lan/' dhcp.@dnsmasq[0].domain='lan' dhcp.@dnsmasq[0].expandhosts='1' dhcp.@dnsmasq[0].nonegcache='0' dhcp.@dnsmasq[0].authoritative='1' dhcp.@dnsmasq[0].readethers='1' dhcp.@dnsmasq[0].leasefile='/tmp/dhcp.leases' dhcp.@dnsmasq[0].resolvfile='/tmp/resolv.conf.auto' dhcp.@dnsmasq[0].nonwildcard='1' dhcp.@dnsmasq[0].localservice='1' glconfig.ddns=service glconfig.ddns.enabled='0' luci.diag.dns='openwrt.org' ucitrack.@dhcp[0].init='dnsmasq' root@GL-MV1000:~#
ん?
「glconfig.ddns.enabled=’0’」?
もしかして、GL.iNet Admin Panelの方にある???
[アプリケーション]-[リモートアクセス]に「ダイナミックDNS」がありました。

有効化をしてみます

これにより「uci -q show|grep dns.」に大きな変化が・・・
root@GL-MV1000:~# uci -q show|grep dns. ddns.global=ddns ddns.global.ddns_dateformat='%F %R' ddns.global.ddns_loglines='250' ddns.global.upd_privateip='0' ddns.global.use_curl='1' ddns.osakana=service ddns.osakana.enabled='1' ddns.osakana.lookup_host='*******************' ddns.osakana.service_name='dyn.com' ddns.osakana.domain='*******************' ddns.osakana.username='*******************' ddns.osakana.password='*******************' ddns.glddns=service ddns.glddns.interface='wan' ddns.glddns.check_interval='10' ddns.glddns.check_unit='minutes' ddns.glddns.force_interval='60' ddns.glddns.force_unit='minutes' ddns.glddns.ip_url='http://checkip.dyndns.com' ddns.glddns.ip_source='web' ddns.glddns.password='*******************' ddns.glddns.username='*******************' ddns.glddns.domain='cx0f702.glddns.com' ddns.glddns.param_enc='cx0f702' ddns.glddns.lookup_host='cx0f702.glddns.com' ddns.glddns.service_name='glddns.com' ddns.glddns.update_url='http://[USERNAME]:[PASSWORD]@ddns.glddns.com/nic/update?hostname=[PARAMENC]&myip=[IP]' ddns.glddns.enabled='1' dhcp.@dnsmasq[0]=dnsmasq dhcp.@dnsmasq[0].domainneeded='1' dhcp.@dnsmasq[0].boguspriv='1' dhcp.@dnsmasq[0].filterwin2k='0' dhcp.@dnsmasq[0].localise_queries='1' dhcp.@dnsmasq[0].rebind_protection='1' dhcp.@dnsmasq[0].rebind_localhost='1' dhcp.@dnsmasq[0].local='/lan/' dhcp.@dnsmasq[0].domain='lan' dhcp.@dnsmasq[0].expandhosts='1' dhcp.@dnsmasq[0].nonegcache='0' dhcp.@dnsmasq[0].authoritative='1' dhcp.@dnsmasq[0].readethers='1' dhcp.@dnsmasq[0].leasefile='/tmp/dhcp.leases' dhcp.@dnsmasq[0].resolvfile='/tmp/resolv.conf.auto' dhcp.@dnsmasq[0].nonwildcard='1' dhcp.@dnsmasq[0].localservice='1' glconfig.ddns=service glconfig.ddns.enabled='0' glconfig.ddns.check_status='1' glconfig.ddns.ddns_enabled='1' glconfig.ddns.http_enabled='0' glconfig.ddns.https_enabled='0' glconfig.ddns.ssh_enabled='0' luci.diag.dns='openwrt.org' ucitrack.@dhcp[0].init='dnsmasq' root@GL-MV1000:~#
そして、luciの方も無事Dynamic DNSが起動している状態となりました。
また、GL.iNetの提供するDynamic DNS(glddns)もあわせて有効になっています。
