mirror of
https://github.com/qdm12/ddns-updater.git
synced 2026-05-10 01:42:23 -04:00
Failure unknown response Strato #86
Reference in New Issue
Block a user
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Originally created by @RafaMunoz on GitHub (Jan 10, 2021).
Originally assigned to: @qdm12 on GitHub.
Hello,
I am getting the following errors in my container logs when trying to update my subdomain with the Strato provider.
The first time I update successfully but the second time I started receiving those messages.
From the web you can see the following error:
Failure (unknown response: [domain: mydomain.es | host: n01 | provider: Strato]), 1m9s ago@qdm12 commented on GitHub (Jan 10, 2021):
Hello RafaMunoz! Thanks for reporting the error. Actually I spotted an error in my code, it was meant to log
unknown response: And here the actual responseinstead of the whole settings. I pushed it, can you try re-pulling the image and try again to see what the actualunknown responseis?It is most likely just a reply from Strato I have not configured due to the lack of testing (I don't have an account with them 😉). Let me know and I'll fix it up. The update should still be successful though, it's just the program thinking it's an error.
@RafaMunoz commented on GitHub (Jan 11, 2021):
Thanks for your quick response, after a few hours recreated the container has returned to give an error.
It's weird because it gives me an authentication error but it does update the IP address.
Making the request in this way works OK and returns:
good 88.12.x.xCan you tell me the request you make and can I try it?
Strato according to its website uses the following protocol: https://help.dyn.com/remote-access-api/return-codes/
If you need me to do a test, tell me.
@RafaMunoz commented on GitHub (Jan 11, 2021):
Sorry this test I have done with
-e CONFIGinstead of volume and it seems that there is some kind of error.With volume, the response is ERROR unknown response: nochg 88.12.x.x and it ends up blocking the Strato address and returns an abuse.
@qdm12 commented on GitHub (Jan 11, 2021):
Ah great I'll fix it tonight.
nochgmeans it succeeded (well it didn't change). With that fix, the program should be aware it worked and not try again, therefore fixing the abuse problem (because of too many unneeded requests in a certain time frame). Please don't use it until there is a fix, I don't want you to be blocked by strato either 😅 Thanks for your efforts!@qdm12 commented on GitHub (Jan 11, 2021):
Hey there, the
:latestimage should contain the fix now. Atlhough I'm not sure why you get the error messages:🤔 Let me know if it works out, thanks!
@RafaMunoz commented on GitHub (Jan 12, 2021):
Thank you very much.
At the moment it has been working all day and there are no problems, I'll wait for when the IP changes.
Regarding the error in the request
https://ip4.ddnss.de/meineip.php, could it be a blockade by region of that website? I'm testing from Spain and through Chrome it doesn't work either but asking from a server in Germany works correctly.@RafaMunoz commented on GitHub (Jan 13, 2021):
Hello, one of the domains updated well but the other is like abuse (The two subdomains resolve the same IP). From what I see in the logs when the server returns abuse it keeps trying. Could you handle that exception somehow? Because if you abuse and try continuously, you will not get out of that loop.
@qdm12 commented on GitHub (Jan 13, 2021):
Fixed in
5b1bc29ad4So now if you get an abuse message, no update is performed for 1 hour. Let me know if
:latestworks for you with this fix. Thanks!@RafaMunoz commented on GitHub (Jan 15, 2021):
Good morning, sorry to be so heavy.
Today it seems that Strato has responded with Abuse and I don't understand why he does it. From what I see in the logs it seems that I only turned it on 2 times so I do not see the reason to report the abuse.
But then I see that he keeps trying every minute.
@qdm12 commented on GitHub (Jan 15, 2021):
Sorry about that, that's most likely errors on my side so no worry about being heavy 😉 That helps me quite a bit actually!
Sorry for the inconvenience and thanks for your patience!
@qdm12 commented on GitHub (Jan 16, 2021):
After re-checking your logs with more attention
n01.mydomain.es, it actually does not update it anymore., so the abuse logic works in the end. Oddly it's not banned forn02.mydomain.es. Theunhealthy:logs are just internal checks, and does not actually send out an update request to Strato.PERIODmight be too low. It can take a few minutes for DNS records to update and propagate in my experience. What you can try to check that is to set the IP address in the Strato UI to127.0.0.1(localhost) and then resolve it right after for example with this website. Does it give127.0.0.1or your previous address? (a bit more explanation: the program DNS resolves everyPERIODyour domain to check the IP address of your domain corresponds to your current public IP address. If this one takes 1 minute to be updated and your period is 10s, it will try to update 6 times resulting in a ban.)n02.mydomain.esonly? 🤔If the
PERIODwas the reason, I'll definitely add a warning in the documentation 😉@RafaMunoz commented on GitHub (Jan 16, 2021):
Thank you very much for your work.
I configure the verification in 10 seconds because I have 2 services that penalize me for unavailability time and the domain's TTL in 60 seconds in this way the DNS servers would notice the change as quickly as possible and the penalty would be less.
I'll try to go up to 20 or 30 seconds and see how it behaves.
@qdm12 commented on GitHub (Jan 16, 2021):
Interesting, isn't there a way you can get a fixed IP address?
Anyway, I have an idea. I'll change the code to have another variable, say
COOLDOWN_PERIODwhich prevents the program to send another update request after it sent a successful one.@RafaMunoz commented on GitHub (Jan 16, 2021):
Yes, I thought of hiring fixed IP, but my provider does not offer this option to fiber optics.
Another solution that I thought is to set up a VPN in my VPS and that the services that are in my house go through this that if it has a fixed IP but the connection is much slower.
The variable option sounds very good.
@qdm12 commented on GitHub (Jan 16, 2021):
Can you please try with the
:latestimage (re-pull it)? It now has aUPDATE_COOLDOWN_PERIODdefaulting to 5 minutes, which should be enough to wait for the DNS to propagate, although you can increase it. There is not really a point decreasing it except if your public IP address would change twice or more within a 5 minutes period, which is not common.@RafaMunoz commented on GitHub (Jan 17, 2021):
Today it seems that it worked well 😊.
Thanks for the changes, also increase the time from 10 to 20 seconds.
I'll be checking the operation these days.
@qdm12 commented on GitHub (Jan 17, 2021):
Nice! I also had an idea at the back of my head...
Basically you would publish port 8000 and port forward it with your router. The program would do a request to itself through the domain name to check its accessible. If it's not it would get the public IP and update the record. That would allow for sub-second detection of an IP change. The only problem is that it would require the user to setup port forwarding and I would need to add authentication to the http server. I'll create some issues to track that, it could be a nice addition.
@RafaMunoz commented on GitHub (Jan 17, 2021):
I find it as a great idea ❤️.
Depending on the router model, you would not only have to configure an inbound rule but also allow "Pure NAT" as in pfSense.
@qdm12 commented on GitHub (Jan 20, 2021):
Subscribe to #146 which might be canceled in favor of #136 if it's not rate limited, as it would allow sub second detections as well.
I'll close this issue for now, thanks for the help!