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

    Dynamic DNS Cloudflare v4 API issues with pfSense

    Scheduled Pinned Locked Moved DHCP and DNS
    28 Posts 11 Posters 13.3k 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.
    • B
      borgotech
      last edited by

      @jimp:

      OK, I'll have to change that to sub @ or @. for "" (nothing) in the backend when that happens. I'll work up a different patch later today.

      Any new? about fix ..

      Thank you.
      Best Regards

      1 Reply Last reply Reply Quote 0
      • jimpJ
        jimp Rebel Alliance Developer Netgate
        last edited by

        Revert my previous patch and try this one: http://atxfiles.pfsense.org/jimp/patches/cfddns-at-trim.diff

        Remember: Upvote with the šŸ‘ button for any user/post you find to be helpful, informative, or deserving of recognition!

        Need help fast? Netgate Global Support!

        Do not Chat/PM for help!

        1 Reply Last reply Reply Quote 0
        • B
          borgotech
          last edited by

          @jimp:

          Can someone with Cloudflare and one of these records try applying this patch with the System Patches package?

          http://atxfiles.pfsense.org/jimp/patches/cfddns-at.diff

          That lets the GUI accept an @ for the hostname which should let it work.

          If that does work and the records update properly and operate as expected, I'll commit the change, along with changing the upgrade code so that if the hostname ended up blank it would get pre-filled with @.

          If this doesn't work, then there is still another change I can try, but again I need someone who has Cloudflare with an appropriate record to test it.

          Old patch:

          diff --git a/src/usr/local/www/services_dyndns_edit.php b/src/usr/local/www/services_dyndns_edit.php
          index acff97f..07f1636 100644
          --- a/src/usr/local/www/services_dyndns_edit.php
          +++ b/src/usr/local/www/services_dyndns_edit.php
          @@ -111,6 +111,8 @@ if ($_POST['save'] || $_POST['force']) {
           		/* Namecheap can have a @. and *. in hostname */
           		if ($pconfig['type'] == "namecheap" && ($_POST['host'] == '*.' || $_POST['host'] == '*' || $_POST['host'] == '@.' || $_POST['host'] == '@')) {
           			$host_to_check = $_POST['domainname'];
          +		} elseif ((($pconfig['type'] == "cloudflare") || ($pconfig['type'] == "cloudflare-v6")) && ($_POST['host'] == '@.' || $_POST['host'] == '@')) {
          +			$host_to_check = $_POST['domainname'];
           		} else {
           			$host_to_check = $_POST['host'];
          

          @jimp:

          Revert my previous patch and try this one: http://atxfiles.pfsense.org/jimp/patches/cfddns-at-trim.diff

          ThisĀ  patch is the same with previous patch :)
          New patch:```
          diff --git a/src/usr/local/www/services_dyndns_edit.php b/src/usr/local/www/services_dyndns_edit.php
          index acff97f..07f1636 100644
          --- a/src/usr/local/www/services_dyndns_edit.php
          +++ b/src/usr/local/www/services_dyndns_edit.php
          @@ -111,6 +111,8 @@ if ($_POST['save'] || $_POST['force']) {
          /* Namecheap can have a @. and . in hostname /
          if ($pconfig['type'] == "namecheap" && ($_POST['host'] == '
          .' || $_POST['host'] == '
          ' || $_POST['host'] == '@.' || $_POST['host'] == '@')) {
          $host_to_check = $_POST['domainname'];

          •   } elseif ((($pconfig['type'] == "cloudflare") || ($pconfig['type'] == "cloudflare-v6")) && ($_POST['host'] == '@.' || $_POST['host'] == '@')) {
            
          •   	$host_to_check = $_POST['domainname'];
              } else {
              	$host_to_check = $_POST['host'];
            
          1 Reply Last reply Reply Quote 0
          • jimpJ
            jimp Rebel Alliance Developer Netgate
            last edited by

            Well, hmm. It wasn't before I copied it. Let me make it again.

            Remember: Upvote with the šŸ‘ button for any user/post you find to be helpful, informative, or deserving of recognition!

            Need help fast? Netgate Global Support!

            Do not Chat/PM for help!

            1 Reply Last reply Reply Quote 0
            • jimpJ
              jimp Rebel Alliance Developer Netgate
              last edited by

              Fetch it again, should be the correct one now.

              Remember: Upvote with the šŸ‘ button for any user/post you find to be helpful, informative, or deserving of recognition!

              Need help fast? Netgate Global Support!

              Do not Chat/PM for help!

              1 Reply Last reply Reply Quote 0
              • B
                borgotech
                last edited by

                Now its ok with the file.. i'll try the patch in a about 15 minutes..

                1 Reply Last reply Reply Quote 0
                • C
                  choochoo
                  last edited by

                  I can confirm that the new patch that jimp provided is now working with Cloudflare DDNS. Thank you!

                  1 Reply Last reply Reply Quote 0
                  • B
                    borgotech
                    last edited by

                    Yes … its working now!!! Thank You very much!!

                    1 Reply Last reply Reply Quote 0
                    • jimpJ
                      jimp Rebel Alliance Developer Netgate
                      last edited by

                      I created https://redmine.pfsense.org/issues/7357 for this issue and pushed that fix. It will be in the next new snapshots and whatever release we put out next.

                      Thanks for testing!

                      Remember: Upvote with the šŸ‘ button for any user/post you find to be helpful, informative, or deserving of recognition!

                      Need help fast? Netgate Global Support!

                      Do not Chat/PM for help!

                      1 Reply Last reply Reply Quote 0
                      • Z
                        zuperjotmeil
                        last edited by

                        I have aplied your path and it solve the GUI problem. I could now put @ in host and save the DynDNS.

                        But I am getting this in the log (I have changed real domain with "domain.demo"):

                        Mar 8 15:46:27 php-fpm 92633 /services_dyndns_edit.php: phpDynDNS (@): UNKNOWN ERROR - Invalid request headers
                        Mar 8 15:46:27 php-fpm 92633 /services_dyndns_edit.php: phpDynDNS (@): PAYLOAD: {"success":false,"errors":[{"code":6003,"message":"Invalid request headers","error_chain":[{"code":6103,"message":"Invalid format for X-Auth-Key header"}]}],"messages":[],"result":null}
                        Mar 8 15:46:27 php-fpm 92633 /services_dyndns_edit.php: Dynamic DNS cloudflare (domain.demo): _checkStatus() starting.
                        Mar 8 15:46:26 php-fpm 92633 /services_dyndns_edit.php: Dynamic DNS cloudflare (@.domain.demo): _update() starting.
                        Mar 8 15:46:26 php-fpm 92633 /services_dyndns_edit.php: Dynamic DNS (@.domain.demo): running get_failover_interface for wan. found vmx0
                        Mar 8 15:46:26 php-fpm 92633 /services_dyndns_edit.php: Dynamic DNS cloudflare (@.domain.demo): xxx.xxx.xxx.xxx extracted from local system.
                        Mar 8 15:46:26 php-fpm 92633 /services_dyndns_edit.php: Dynamic DNS: updatedns() starting

                        I am on:

                        2.3.3-RELEASE (amd64)
                        built on Thu Feb 16 06:59:53 CST 2017
                        FreeBSD 10.3-RELEASE-p16

                        1 Reply Last reply Reply Quote 0
                        • Z
                          zuperjotmeil
                          last edited by

                          OK… my bad.

                          Have to put Global API key as password, do not put your account password as password.

                          User = user
                          Password = Global API Key

                          Works great... ThanksĀ  :)

                          1 Reply Last reply Reply Quote 0
                          • O
                            overcookedTOFU
                            last edited by

                            I'm on the latest release (2.4.0.b.20170308.0906) and I'm having a related issue or perhaps a regression.Ā  (I think.)

                            I'm updating a domain with the wildcard checkbox set.Ā  The domain to be updated is *.subdomain.domain.com.

                            I have confirmed that I am able to set the IP directly using curl and the cloudflare api.Ā  Via the pfsense updater, the update fails and I get the following in the log.

                            Mar 8 12:31:38 php-fpm 92474 /services_dyndns_edit.php: phpDynDNS (home): (Error) Zone or Host ID was not found, check the hostname.
                            Mar 8 12:31:38 php-fpm 92474 /services_dyndns_edit.php: Dynamic DNS cloudflare (subdomain.domain.com): _checkStatus() starting.
                            Mar 8 12:31:37 php-fpm 92474 /services_dyndns_edit.php: Dynamic DNS cloudflare (subdomain.domain.com): _update() starting.
                            Mar 8 12:31:37 php-fpm 92474 /services_dyndns_edit.php: DynDns (subdomain.domain.com): Dynamic Dns: cacheIP != wan_ip. Updating. Cached IP: 0.0.0.0 WAN IP: xxx.xxx.xxx.xxx Initial update.

                            Thanks!

                            Update: I was able to successfully update a non-wildcard domain.Ā  So, looks like whatever causes this issue is related to wildcard updates alone.

                            1 Reply Last reply Reply Quote 0
                            • J
                              jpns
                              last edited by

                              @zuperjotmeil:

                              OK… my bad.

                              Have to put Global API key as password, do not put your account password as password.

                              User = user
                              Password = Global API Key

                              Works great... ThanksĀ  :)

                              As far as I know, Cloudflare has always required use of your global API key as password for dynamic DNS update. I have the same issue where I cannot update a root domain (blah.tld), as it requires a subdomain. The patch linked in the earlier posts works for me.

                              1 Reply Last reply Reply Quote 0
                              • M
                                msanangelo
                                last edited by

                                The patched worked for pfsense 2.3.3 but I would like to update all the subdomains and root domain of a zone with the same ip, how can I do that? The wild card thing doesn't seem to work nor can I use the asterisk for the host name.

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