My freedns ddns is working very well. But I have a question. Who is supplying my public ip to the freedns server? Here is my setup :
Router : WRT1900ACv1
OW version : OpenWrt 24.10.3 r28872-daca7c049b
LuCI openwrt-24.10 branch 25.250.61039~923f8d9
DDNS Advanced Settings –> IP Address Source –> Network
DDNS Advanced Settings –> Network –> wan
My ISP Vergin Media gave me Superhub 5 which I am using in DMZ mode.
SH5 public ip : 86.25.*.*
SH5 private ip : 192.168.0.1
wan ip : 192.168.0.252
Ideally when I choose wan as ip source, the ddns should show unintended address 192.168.0.252, isn’t it? But somehow freedns is picking up right address 86.25.*.*. Who is ‘correcting the mistake’?
FreeDNS is installed on your OpenWrt device. Traffic is OpenWrt > ISP router > internet > FreeDNS. FreeDNS is asked by the ISP router, so it is normal that it gets its public IP. Everything behind the ISP router is routed and considered as private LAN.
Furthermore the 192.168.x.x IP range is a private range is not routable, so it will never be reached from the internet.
Conclusion 86.25.x.x is the correct answer.
Correct, however that will be useless. Note that OpenWrt DDNS client will not send such update until "Allow non-public IPs" is enabled in DDNS Global Settings.
I do not see any "correction" in my test. Freedns happily accepts private IP sent in the update.
If you want to investigate further, show the recent DDNS client log.
No. As stated in the very first post, "IP Address Source" is "Network" where "Network" is "wan". In this case DDNS client takes the address from the corresponding interface, the whole procedure is completely local to the device.
There is no point in real life, but the main question OP raised is "who is interfering the process".
If I drop a glass, I expect to see shards on the floor. Maybe not the best analogy, but still.
143434 ERROR : No or private or invalid IP '192.168.0.252' given! Please check your configuration143434 ERROR : No update send to DDNS Provider143434 : Waiting 300 seconds (Check Interval)
I think I need to pick up the public ip from a script.
use a custom configuration and use the update URL offered by the provider (I suggest using their v2 option); they will take your address from the source of your request
keep what you have now but change the source to URL and provide the detection URL
Retries with DDNS and DNS are common here. Usually it's OK to ignore them until you start seeing huge retry counters.
I recommend installing curl and checking DDNS client log instead of the System log.
The DDNS client log will clearly show you where exactly the failure occurred.
"Address 86.p.q.r has not changed" is technically not an error. In such a case they actually respond with a friendly text "No IP change detected for ..., skipping update".
With Option#2 you would probably get a better error handling.
Thank you for the suggesting option2. With my limited knowledge, I feel a known monster is better than unknown! So I am going to ignore the ‘error’ messages.