mpolden / echoip

IP address lookup service
https://ifconfig.co
BSD 3-Clause "New" or "Revised" License
4.01k stars 526 forks source link

Occassional lookups using ddclient sometimes returns the webserver IP #140

Closed fiskhest closed 3 years ago

fiskhest commented 3 years ago

I have ddclient setup inside of kubernetes, using the excellent ifconfig.co to resolve my local IP address. The setup has worked wonders but I have over the last couple of weeks run into an issue where it sometimes finds another IP and sets that (always the same IP). Previously I saw it once every couple of days but I've now been seeing it daily and even multiple times per day. Baffled by this behavior I've been trying to figure out if I have misconfigured something, or who owns that IP to try and understand what's going wrong. It wasn't until today that I actually just http requested that IP and was presented with the ifconfig.co splash page.

tempsnip

This IP is not the same IP as those registered on the domain name (guessing those are cloudflare proxies)

I only have log output from ddclient, not actual results from ifconfig.co. Before I continue troubleshooting (thinking a curl loop every 61sec and waiting for differing results, adhering to the API limitations), I'm just thinking out loud like, is there a scenario where ifconfig.co returns it's own IP instead of the visitors such as some cache/proxy/load-balancing fault or incoming load being too high?

fiskhest commented 3 years ago

I constructed a bash loop (while sleep 70; do ip=$(curl -s ifconfig.co) ; if [ "$ip" != "7x.x.x.x3" ] ; then echo results: $ip ; else echo "all good" ; fi ; done) and once in a while am presented with either a completely empty response or:

<head><title>520 Origin Error</title></head>
<body bgcolor="white">
<center><h1>520 Origin Error</h1></center>
<hr><center>cloudflare-nginx</center>
</body>
</html>

Not yet quite sure how ddclient in these scenarios manages to pick out the ifconfig.co server ip instead of erroring out, but that's something for another repository.