DDNS upadate to Cloudflare DNS will fail using: Enable Proxy (Cloudflare)


  • Hello there,

    I have trouble using DDNS upadate my domain name at nameserver at Cloudflare DNS, to map to my home WAN IP address.

    If not enabling Proxy (not using Cloudflare proxy), auto DDNS update works in Cloudflare DNS.

    However, when I enable the option: Enable Proxy (see note No.1 on the picture below),
    press "Save and force update", it works(see note No.2) on the picture below,
    and yet, automatically update DDNS does not work. It will fail.

    This guy in the forum is having the same problem like mine: https://forum.netgate.com/topic/137380/possible-bug-in-cloudflare-ddns

    Any clue how to fix this problem? Anyway workaround method?0_1550676021682_2019-02-20_23-02-00.jpg


  • Yes, same issue here too.
    It looks like the code that services_dyndns_edit.php uses for updates is completely different from dyndns.class

    btw, this is the same issue of this (old&unanswered) topic:
    https://forum.netgate.com/topic/124063/cloudflare-dyndns-errors/3

    And a lot of months after there's still no fix.

    //I had tried to play around with /etc/inc/dyndns.class code but without luck


  • Let's copy here (again) the error msg:

    /rc.dyndns.update: phpDynDNS (@): PAYLOAD: {"success":false,"errors":[{"code":1004,"message":"DNS Validation Error","error_chain":[{"code":9003,"message":"Invalid 'proxied' value, must be a boolean"}]}],"messages":[],"result":null}
    

    Tried with the latest stable version and latest *developer; same issue.


  • @v1ckxy said in DDNS upadate to Cloudflare DNS will fail using: Enable Proxy (Cloudflare):

    Let's copy here (again) the error msg:

    /rc.dyndns.update: phpDynDNS (@): PAYLOAD: {"success":false,"errors":[{"code":1004,"message":"DNS Validation Error","error_chain":[{"code":9003,"message":"Invalid 'proxied' value, must be a boolean"}]}],"messages":[],"result":null}
    

    Tried with the latest stable version and latest *developer; same issue.

    Hi thanks for replying.
    I am glad that someone in the forum is in the same boat as I am.
    I am a newbie in using pfsense. So I am just a novice fella
    who does not a in depth understanding how the internal
    coding works.

    I am not a programmer in PHP, therefore if I am, I will have more appreciation and understanding to your reply, given the code you have just highlighted above.☝

    Bottom line..........
    My question here:
    If Enabled Proxy is not ticked, that is Cloudflare DNS proxy is NOT enabled and...........it is broken, what happen if I use the normal method of using DDNS to Cloudflare? All DDNS updates transmission to Cloudflare will be in the clear, and subject to being sniffed by a hacker and IP address of my home's WAN IP address can be revealed? 😧


  • If enable proxy is not "ticket", cloudflare proxy will be disabled upon update.

    As simple as that.

  • Banned

    Bug reports need to go on redmine: https://redmine.pfsense.org/projects/pfsense


  • Finally someone reported it.
    https://redmine.pfsense.org/issues/9362

    Hope it will be fixed soon.

    Really need Cloudflare proxy and don't know why pfSense team haven't solved it yet.


  • Thanks for your info. I did open an account with Pfsense Bugtracker, but I did not how to create a report, let alone finding the php code, which is responsible for doing DDNS update. Well...at least someone has finally report this issue to the Pfsense development team, and see whether they look in to it.
    A big thank you to: Nico Schneider for lodging this issue. ☺


  • It's exactly 2 months after opening ticket and still no reply ...
    fortunately there is other free FWs with better support.


    1. Januar 2020 and the issue is still existent. With proxy disabled, its working like a charm and with proxy enabled, I got the same error. Updating manually with proxy enabled, is working fine as well.

  • @Overlord said in DDNS upadate to Cloudflare DNS will fail using: Enable Proxy (Cloudflare):

    1. Januar 2020 and the issue is still existent. With proxy disabled, its working like a charm and with proxy enabled, I got the same error. Updating manually with proxy enabled, is working fine as well.

    It's been solved ... You should do some php code editing till new version arrives.

    https://redmine.pfsense.org/issues/9362


  • @arian_0098 said in DDNS upadate to Cloudflare DNS will fail using: Enable Proxy (Cloudflare):

    @Overlord said in DDNS upadate to Cloudflare DNS will fail using: Enable Proxy (Cloudflare):

    1. Januar 2020 and the issue is still existent. With proxy disabled, its working like a charm and with proxy enabled, I got the same error. Updating manually with proxy enabled, is working fine as well.

    It's been solved ... You should do some php code editing till new version arrives.

    https://redmine.pfsense.org/issues/9362

    Yes, found it already. Thank you!

    I'm wondering that it takes so long time to integrater this in the master


  • @Overlord

    Thank you for the reminder.......

    Would you be enough kind to illustrate how to edit the PHP
    coding?

    I am not a PHP programmer, let alone a computer programmer
    who can skillfully change the the coding within pfSense.

    Or better wait for the next update of pfSense v2.5 stable to be released to the public?

    Thank you.


  • @Wepee

    I edited the code yesterday and it's working fine. And it's really easy.

    1. Connect so pfSense via SSH or directly and open a Shell
    2. Use your preferred text editor (normal is vi, I used nano (pkg install nano)) to open this /etc/inc/services.inc
    3. sudo nano /etc/inc/services.inc or sudo vi /etc/inc/services.inc

    Look for this part (simply search like this $dyndns['curl_ssl_verifypeer'] = isset($dyndns['curl_ssl_verifypeer']); ) and add the line with the + between.

    $dyndns['verboselog'] = isset($dyndns['verboselog']);
    				$dyndns['curl_ipresolve_v4'] = isset($dyndns['curl_ipresolve_v4']);
    				$dyndns['curl_ssl_verifypeer'] = isset($dyndns['curl_ssl_verifypeer']);
    +	Add this	->	$dyndns['proxied'] = isset($dyndns['proxied']);
    				services_dyndns_configure_client($dyndns);
    				sleep(1);
    			}
    
    1. Save
    2. A restart is not requiered.

    Greetz
    Overlord