Duck DNS - Invalid IP but it is not?

Hello everybody,

I try to set up duck dns with LEDE. Unfortunately when starting the updater the script says that he received a invalid IP "No or private or invalid IP '100.97.135.xx' given! Please check your configuration"
However this is the true IP. Anybody has any idea how to convince it to accept this IP?

Log:

root@LEDE:/usr/lib/ddns# ./dynamic_dns_updater.sh -v 1 start
 114747       : ************ ************** ************** **************
 114747  note : PID '4426' started at 2018-04-07 11:47
 114747       : ddns version  : 2.7.6-13
 114747       : uci configuration:
ddns.duckdns.check_interval='10'
ddns.duckdns.check_unit='minutes'
ddns.duckdns.domain='axxxxxxx_duckdns_org'
ddns.duckdns.enabled='1'
ddns.duckdns.force_interval='72'
ddns.duckdns.force_unit='hours'
ddns.duckdns.ip_interface='eth0.10'
ddns.duckdns.ip_network='wan6'
ddns.duckdns.ip_source='interface'
ddns.duckdns.lookup_host='xxxxx_duckdns_org'
ddns.duckdns.password='xxxxxxxxxxxxxxx
ddns.duckdns.update_url='htt_p://www_duckdns_org/update?domains=[USERNAME]&token=[PASSWORD]&ip=[IP]'
ddns.duckdns.username='xxxxxxxx'
ddns.duckdns=service
 114747       : verbose mode  : 1 - run normal, console mode
 114748       : check interval: 600 seconds
 114748       : force interval: 259200 seconds
 114748       : retry interval: 60 seconds
 114748       : retry counter : 0 times
 114748       : No old process
 114748       : last update: never
 114748       : Detect registered/public IP
 114748       : #> /usr/bin/nslookup xxxxxxx_duckdns_org  >/var/run/ddns/duckdns.dat 2>/var/run/ddns/duckdns.err
 114748       : Registered IP '100.97.135.xx' detected
 114748  info : Starting main loop at 2018-04-07 11:47
 114748       : Detect local IP on 'interface'
 114748       : Local IP '100.97.135.xx' detected on network 'wan6'
 114748       : Update needed - L: '100.97.135.xx' <> R: '100.97.135.xx'
 114748 ERROR : No or private or invalid IP '100.97.135.xx' given! Please check your configuration
 114748 ERROR : No update send to DDNS Provider
 114748       : Waiting 600 seconds (Check Interval)
^C 115006  note : PID '4426' terminated by 'SIGINT' at 2018-04-07 11:50

Config:

config service 'duckdns'
        option enabled '1'
        option domain 'xxxxx_duckdns_org'
        option username 'xxxxxx'
        option password 'xxxxxxxxxx'
        option ip_network 'wan6'
        option force_interval '72'
        option force_unit 'hours'
        option check_interval '10'
        option check_unit 'minutes'
        option ip_interface 'eth0.10'
        option ip_source 'interface'
        option update_url 'h_ttp://ww_w_duckdns_org/update?domains=[USERNAME]&token=[PASSWORD]&ip=[IP]'
        option lookup_host 'xxxxxx_duckdns_org'

I know that my ISP doing some strange things. Because if I check my IP with some web pages it always shows a different IP. But I can confirm that this 100.xxxx IP address is the right one. My ISP is AIS in Thailand (fiber)

Thanks for every help I can get.
Andy

Edit: I needed to change some . with _ as I am new user and now allowed to post more than 2 links

Turn off rebind protection. That is a carrier-grade NAT IP address. It was correct in saying it's a private IP.

If you are trying to see your public IP, it is not within 100.64.0.0/10...as that is private.

Yep... carrier-grade NAT. Your ISP doesn't issue you an IPv4 address.

Thank you for pointing me into the right direction.

However I still facing the issue even I disabled rebind_protection in /etc/config/dhcp:

config dnsmasq
        option domainneeded '1'
        option boguspriv '1'
        option localise_queries '1'
        option rebind_protection '0'
        option rebind_localhost '1'
        option local '/lan/'
        option domain 'lan'
        option expandhosts '1'
        option authoritative '1'
        option readethers '1'
        option leasefile '/tmp/dhcp.leases'
        option resolvfile '/tmp/resolv.conf.auto'
        option localservice '1'
        option nonwildcard '0'

I also tried option rebind_localhost '0' but no difference.
Anyone can help?

Thank you,
Andy

My option does not have underscores (4) in the URL.

option update_url 'http://www.duckdns.org/update?domains=[USERNAME]&token=[PASSWORD]&ip=[IP]'

I apologize if I wasn't clear...but @gaunt STILL HAS ANOTHER PROBLEM, CARRIER-GRADE NAT!!!

Unless your ISP performs port forwarding through their carrier-grade NAT system, a DDNS script cannot be used for INBOUND ACCESS TO YOUR DEVICE!

The IP in the A record will not be unique to the OP's WAN interface.

From: https://en.m.wikipedia.org/wiki/Carrier-grade_NAT

It makes it impossible to host services.

Lastly,

OP explained this:

Thank you very much for your explanation. I was so sure before because I tested my "external IP" with port forwarding and it was working. However I used the same provider not my mobile phone.

I will call them and ask for a public one.

Thank you!

1 Like