Netgate Discussion Forum
    • Categories
    • Recent
    • Tags
    • Popular
    • Users
    • Search
    • Register
    • Login

    Dynamic DNS *NOT* Updating "Cached IP"

    Scheduled Pinned Locked Moved DHCP and DNS
    36 Posts 10 Posters 9.4k Views
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • bmeeksB
      bmeeks
      last edited by

      Here is a link to the other site's issue on this Namecheap dynamic DNS problem: https://github.com/opnsense/plugins/issues/2666#issuecomment-979154701.

      If you follow the comments and links, you may uncover a way to duplicate the workaround on pfSense. I highly doubt the source code nor specific file matches, but the overall gist of the fix should be applicable on pfSense. Note that the "fix" is really just a temp workaround until Namecheap fixes their core issue.

      The root cause of the problem is incorrect type coding by Namecheap.

      B 1 Reply Last reply Reply Quote 0
      • B
        biggsy @bmeeks
        last edited by

        I asked Namecheap whether there are maximum or minimum limits on update frequency for their dynamic DNS service that could cause blocking of updates or expiry of the mapping.

        The answer was, "There are no limitation on the update frequency." However, Cloudflare is in the mix there, too, so I guess I'll find out.

        Before getting that response, I decided on manually updating the unix timestamps in the /cf/conf/dyndns*.cache files to prevent needless (and possibly excessive) updates being generated.

        Hopefully this will be fixed soon - one way or another.

        N 1 Reply Last reply Reply Quote 0
        • N
          nikolaosinlight @biggsy
          last edited by nikolaosinlight

          @bmeeks

          Actually the source code aligned pretty closely to the patch. It was trivial to add but did not work:

                                      case 'namecheap':
                                              // $tmp = str_replace("^M", "", $data);
                                              $tmp = preg_replace('/(\<\?xml[^?]+?encoding=.?)utf-16([^?]+?\?\>)/i', '$1utf-8$2', $data);
                                              $ncresponse = @xml2array($tmp);
          

          This essentially simply provides a regex that translates the response XML to instead of saying UTF-16 it says UTF-8. It does nothing to deal with potentially receiving UTF-16 characters. I have no idea why Namecheap is even trying to use UTF-16... been coding in Java for 24 years and while yes UTF-16 is there and all almost every app still created today uses UTF-8 throughout.

          @Gertjan your idea to change the return code may work but I think there are bigger issues with the response since if I include in a Custom Namecheap client a Result Match that is exactly as expected with IP made as variable %IP% it does not work. I need Result Match blank so I do not think that I am even going to get to the point of that line of code anywhere near matching.

          I have the Custom "Dumb" Namecheap clients working so I will stick to that... and I will look to move to another registrar. Getting tired with a number of things with Namecheap lately.

          S 1 Reply Last reply Reply Quote 0
          • S
            SteveITS Galactic Empire @nikolaosinlight
            last edited by

            @nikolaosinlight Possibly something with mb_convert_encoding?

            $tmp = mb_convert_encoding($data, "UTF-8", "UTF-16");

            Bit of a hack, but might work until Namecheap fixes their end.

            Pre-2.7.2/23.09: Only install packages for your version, or risk breaking it. Select your branch in System/Update/Update Settings.
            When upgrading, allow 10-15 minutes to restart, or more depending on packages and device speed.
            Upvote 👍 helpful posts!

            G 1 Reply Last reply Reply Quote 0
            • S SteveITS referenced this topic on
            • G
              greymouser @SteveITS
              last edited by

              Any chance this temp fix is going to be added? I'm seeing the same thing, and assuming Namecheap is going to be slow to fix this it would be nice to get it working. I'm going to submit a support ticket with them as well to keep the pressure on. It really is unfortunate that such as easy fix on their end is being delayed this much.

              1 Reply Last reply Reply Quote 0
              • P
                pulpito
                last edited by

                ticket opened by me regarding this issue

                GertjanG 1 Reply Last reply Reply Quote 0
                • GertjanG
                  Gertjan @pulpito
                  last edited by

                  @pulpito said in Dynamic DNS *NOT* Updating "Cached IP":

                  ticket

                  Where ?

                  You saw https://redmine.pfsense.org/issues/12816 ?
                  Tried the solution proposed over there ?

                  No "help me" PM's please. Use the forum, the community will thank you.
                  Edit : and where are the logs ??

                  P 1 Reply Last reply Reply Quote 0
                  • P
                    pulpito @Gertjan
                    last edited by

                    @gertjan I opened a ticket in Namecheap

                    and... I tried the solution proposed and now the cached Ip appear green ...
                    I,m not expert but seems that this solution or workaround works
                    thanks for sharing

                    S 1 Reply Last reply Reply Quote 0
                    • S
                      samh @pulpito
                      last edited by samh

                      Having the same/similar issue. Using namecheap on PFSense 2.6.0 with system patch applied (the one to reportedly work around the UTF-16 encode issue) but still getting Unknown response in log.

                      Here is the last set of log entries.

                      Appreciate any thoughts

                      Jul 17 08:55:44	php-fpm	12752	/services_dyndns_edit.php: phpDynDNS (hassio): (Unknown Response)
                      Jul 17 08:55:44	php-fpm	12752	/services_dyndns_edit.php: phpDynDNS (hassio): PAYLOAD: <?xml version="1.0" encoding="utf-16"?><interface-response><Command>SETDNSHOST</Command><Language>eng</Language><IP>99.x.x.x</IP><ErrCount>0</ErrCount><errors /><ResponseCount>0</ResponseCount><responses /><Done>true</Done><debug><![CDATA[]]></debug></interface-response>
                      Jul 17 08:55:44	php-fpm	12752	/services_dyndns_edit.php: Dynamic DNS namecheap (hassio.redacted): _checkStatus() starting.
                      Jul 17 08:55:44	php-fpm	12752	/services_dyndns_edit.php: Response Data: <?xml version="1.0" encoding="utf-16"?><interface-response><Command>SETDNSHOST</Command><Language>eng</Language><IP>99.x.x.x</IP><ErrCount>0</ErrCount><errors /><ResponseCount>0</ResponseCount><responses /><Done>true</Done><debug><![CDATA[]]></debug></interface-response>
                      Jul 17 08:55:44	php-fpm	12752	/services_dyndns_edit.php: Response Header:
                      Jul 17 08:55:44	php-fpm	12752	/services_dyndns_edit.php: Response Header:
                      Jul 17 08:55:44	php-fpm	12752	/services_dyndns_edit.php: Response Header: alt-svc: h3=":443"; ma=86400, h3-29=":443"; ma=86400
                      Jul 17 08:55:44	php-fpm	12752	/services_dyndns_edit.php: Response Header: cf-ray: 72c3222f9fa45997-IAD
                      Jul 17 08:55:44	php-fpm	12752	/services_dyndns_edit.php: Response Header: server: cloudflare
                      Jul 17 08:55:44	php-fpm	12752	/services_dyndns_edit.php: Response Header: expect-ct: max-age=604800, report-uri="https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct"
                      Jul 17 08:55:44	php-fpm	12752	/services_dyndns_edit.php: Response Header: cf-cache-status: DYNAMIC
                      Jul 17 08:55:44	php-fpm	12752	/services_dyndns_edit.php: Response Header: strict-transport-security: max-age=16000000; includeSubDomains
                      Jul 17 08:55:44	php-fpm	12752	/services_dyndns_edit.php: Response Header: strict-transport-security: max-age=16000000; includeSubDomains
                      Jul 17 08:55:44	php-fpm	12752	/services_dyndns_edit.php: Response Header: set-cookie: .s=xxxxxxx; domain=.www.namecheap.com; path=/; httponly
                      Jul 17 08:55:44	php-fpm	12752	/services_dyndns_edit.php: Response Header: vary: Accept-Encoding
                      Jul 17 08:55:44	php-fpm	12752	/services_dyndns_edit.php: Response Header: content-type: application/json
                      Jul 17 08:55:44	php-fpm	12752	/services_dyndns_edit.php: Response Header: date: Sun, 17 Jul 2022 12:55:44 GMT
                      Jul 17 08:55:44	php-fpm	12752	/services_dyndns_edit.php: Response Header: HTTP/2 200
                      Jul 17 08:55:43	php-fpm	12752	/services_dyndns_edit.php: Dynamic DNS namecheap (hassio.redacted): _update() starting.
                      
                      V 1 Reply Last reply Reply Quote 0
                      • V
                        viragomann @samh
                        last edited by

                        @samh
                        Seems as Namecheap changed the response content again.
                        Lately discussed here: https://forum.netgate.com/topic/173426/namecheap-dynamic-dns-cached-ip-0-0-0-0-issue

                        S 1 Reply Last reply Reply Quote 1
                        • S
                          samh @viragomann
                          last edited by

                          @viragomann Thanks. Will follow over there.

                          1 Reply Last reply Reply Quote 0
                          • First post
                            Last post
                          Copyright 2025 Rubicon Communications LLC (Netgate). All rights reserved.