OpenDNS and DNS-O-Matic



  • Source: http://forum.pfsense.org/index.php/topic,7311.msg41445.html#msg41445

    If your friend content filtering for the kids Open DNS provides a nice free filtering of over 1 million sites. To keep your ip synched with OpenDNS you will need to use DNS-O-Matic. DNS-O-Matic support will likely be in PFSense1.3. If you are like me and would like to have it now. The attached files are modified using changes retrieved from http://cvstrac.pfsense.com/search?s=dns-o-matic&t=1&c=1&f=1 and applied manually to PFSense 1.2 RC3 files. To apply them enable SSH and then use SFTP to copy the files to the correct directory.

    Rename the files and copy them to:
    /etc/inc/
    dyndns.class

    /usr/local/www/
    services_dyndns.php

    (See Source for actual attachments.)

    How often does this update? Am I supposed to use all.dnsomatic.com [1] or updates.dnsomatic.com [2]?

    Thanks!



  • it updates when the IP changes or after a certain number of days.
    I think updates, but am not sure.



  • Aha! Looked at logs and found this:

    php: : Request completed. DNS-O-Matic reported: Couldn't resolve host 'company.com:password@updates.dnsomatic.com'

    The username is something like person@company.com and the password is about 16 characters long with upper+lower case, numbers, and symbols (including '@'). D: What am I supposed to do?



  • Dont know I dont use DNS-O-Matic, I will give it a try this weekend and get back to you.



  • @BlueToast:

    Am I supposed to use all.dnsomatic.com [1] or updates.dnsomatic.com [2]?

    Your second reference answers your question. updates.dnsomatic.com is the web server your request should go to. Embedded in the url is a yourhostname field which gives the entry in dnsomatic which is to be updated. If that yourhostname field is all.dnsomatic.com (e.g. the URL used is https://username:password@updates.dnsomatic.com/nic/update?hostname=all.dnsomatic.com&myip=ipaddress&wildcard=NOCHG&mx=NOCHG&backmx=NOCHG)

    Quite some time ago I published some changes to the Fit123 package for pfSense 1.2.3 to get it to work on a pfSense box downstream of a router interfacing to the Internet. My recollection is that the dynamic DNS support at that time assumed the pfSense box directly interfaced to the Internet and that it would  get informed of public IP address changes by being informed of IP address changes on the WAN interface. My changes were to poll every five minutes for changes in the IP address returned by http://myip.opendns.com.

    If the IP address of the WAN interface of your pfSense box is NOT your public IP address you might be interested in those changes. You can probably track them down by searching the forums for notes from me containing dnsomatic.



  • i used updates and it worked to update dns o matic.



  • @XIII:

    i used updates and it worked to update dns o matic.

    Well it isn't working for me. Something is incorrect with the PHP.

    I have tried usernames of person and person@company.com. The password was previously a 24-character password, and did contain symbols @ and :.

    Jan 3 12:06:20 php: /services_dyndns.php: DNS-O-Matic: (Unknown Response)
    Jan 3 12:06:20 php: /services_dyndns.php: DNS-O-Matic: PAYLOAD:
    Jan 3 12:06:20 php: /services_dyndns.php: DynDns: Current Service: dnsomatic
    Jan 3 12:06:20 php: /services_dyndns.php: DynDns: DynDns _checkStatus() starting.
    Username used is 'person@company.com' using a password of 7B1n499bXJxh
    Jan 3 12:06:20 php: /services_dyndns.php: Request completed. DNS-O-Matic reported: Couldn't resolve host 'company.com:7B1n499bXJxh@updates.dnsomatic.com'
    Jan 3 12:06:20 php: /services_dyndns.php: DNS-O-Matic: DNS update() starting.
    Jan 3 12:06:20 php: /services_dyndns.php: DynDns: DynDns _update() starting.
    Jan 3 12:06:20 php: /services_dyndns.php: DynDns: Initial run. Updating.
    Jan 3 12:06:20 php: /services_dyndns.php: DynDns: cacheIP != wan_ip. Updating.
    Jan 3 12:06:20 php: /services_dyndns.php: DynDns: No Cached IP found.
    Jan 3 12:06:20 php: /services_dyndns.php: DynDns: Current WAN IP: xxx.xxx.xxx.xxx
    Jan 3 12:06:20 php: /services_dyndns.php: DynDns: _detectChange() starting.
    Jan 3 12:06:20 php: /services_dyndns.php: DynDns: updatedns() starting
    Jan 3 12:06:20 php: /services_dyndns.php: DynDns: Running updatedns()
    Jan 3 12:01:59 php: /services_dyndns.php: DNS-O-Matic: (Unknown Response)
    Jan 3 12:01:59 php: /services_dyndns.php: DNS-O-Matic: PAYLOAD:
    Jan 3 12:01:59 php: /services_dyndns.php: DynDns: Current Service: dnsomatic
    Jan 3 12:01:59 php: /services_dyndns.php: DynDns: DynDns _checkStatus() starting.
    **_Username is 'person' using a password of F@k2J'a+m>[8\0=([[/u]
    Jan 3 12:01:59 php: /services_dyndns.php: Request completed. DNS-O-Matic reported: Couldn't resolve host '**k2J'a+m>[8\0=(@updates.dnsomatic.com[/b]'
    Jan 3 12:01:59 php: /services_dyndns.php: DNS-O-Matic: DNS update() starting.
    Jan 3 12:01:59 php: /services_dyndns.php: DynDns: DynDns _update() starting.
    Jan 3 12:01:59 php: /services_dyndns.php: DynDns: Initial run. Updating.
    Jan 3 12:01:59 php: /services_dyndns.php: DynDns: cacheIP != wan_ip. Updating.
    Jan 3 12:01:59 php: /services_dyndns.php: DynDns: No Cached IP found.
    Jan 3 12:01:59 php: /services_dyndns.php: DynDns: Current WAN IP: xxx.xxx.xxx.xxx
    Jan 3 12:01:59 php: /services_dyndns.php: DynDns: _detectChange() starting.
    Jan 3 12:01:59 php: /services_dyndns.php: DynDns: updatedns() starting
    Jan 3 12:01:59 php: /services_dyndns.php: DynDns: Running updatedns()

    When I would use person@company.com with that complex 24-character password, the error would say something like '@domain:blablahblah..' Quite similar to the following from above except with an @ in from of company.com:

    Jan 3 12:06:20    php: /services_dyndns.php: Request completed. DNS-O-Matic reported: Couldn't resolve host 'company.com:[Simple password of just alphanumeric characters]@updates.dnsomatic.com'

    I redownloaded at Post#10 @ http://forum.pfsense.org/index.php/topic,30401.msg157359.html when I did a search on 'opendns' on the user 'wallabybob'. The filesizes of the files were different, so I definitely overwrote them. I used a username of person@company.com with both a complex 24-character password and simplified password:

    Using simple 12-character alphanumeric password and I get this error; I have no idea what it means
    Jan 3 12:23:40 php: /services_dyndns.php: DNS-O-Matic: The hostname passed could not be matched to any services configured. The service field will be blank in the return code
    Jan 3 12:23:40 php: /services_dyndns.php: DynDns: Current Service: dnsomatic
    Jan 3 12:23:40 php: /services_dyndns.php: DynDns: DynDns _checkStatus() starting.
    Jan 3 12:23:40 php: /services_dyndns.php: DNS-O-Matic: DNS update() starting.
    Jan 3 12:23:40 php: /services_dyndns.php: DynDns: DynDns _update() starting.
    Jan 3 12:23:40 php: /services_dyndns.php: DynDns: Initial run. Updating.
    Jan 3 12:23:40 php: /services_dyndns.php: DynDns: cacheIP != wan_ip. Updating.
    Jan 3 12:23:40 php: /services_dyndns.php: DynDns: No Cached IP found.
    Jan 3 12:23:40 php: /services_dyndns.php: DynDns: Current WAN IP: xxx.xxx.xxx.xxx
    Jan 3 12:23:39 php: /services_dyndns.php: DynDns: _detectChange() starting.
    Jan 3 12:23:39 php: /services_dyndns.php: DynDns: updatedns() starting
    Jan 3 12:23:39 php: /services_dyndns.php: DynDns: Running updatedns()
    Complex password doesn't work
    Jan 3 12:23:04 php: /services_dyndns.php: DNS-O-Matic: The DNS-O-Matic username or password specified are incorrect. No updates will be distributed to services until this is resolved.
    Jan 3 12:23:04 php: /services_dyndns.php: DynDns: Current Service: dnsomatic
    Jan 3 12:23:04 php: /services_dyndns.php: DynDns: DynDns _checkStatus() starting.
    Jan 3 12:23:04 php: /services_dyndns.php: DNS-O-Matic: DNS update() starting.
    Jan 3 12:23:04 php: /services_dyndns.php: DynDns: DynDns _update() starting.
    Jan 3 12:23:04 php: /services_dyndns.php: DynDns: Initial run. Updating.
    Jan 3 12:23:04 php: /services_dyndns.php: DynDns: cacheIP != wan_ip. Updating.
    Jan 3 12:23:04 php: /services_dyndns.php: DynDns: No Cached IP found.
    Jan 3 12:23:04 php: /services_dyndns.php: DynDns: Current WAN IP: xxx.xxx.xxx.xxx
    Jan 3 12:23:04 php: /services_dyndns.php: DynDns: _detectChange() starting.
    Jan 3 12:23:04 php: /services_dyndns.php: DynDns: updatedns() starting
    Jan 3 12:23:04 php: /services_dyndns.php: DynDns: Running updatedns()

    I have no idea what that error means. Additionally, the WAN IP detected is correct.

    Success! Needed to make sure that 'Hostname/Interface' field on the Dynamic DNS page was set to the hostname I have specified in my DNS-O-Matic account, not updates.dnsomatic.com or any address of any kind.

    Jan 3 12:30:28 php: /services_dyndns.php: DNS-O-Matic: (Success) IP Address Changed Successfully! (xxx.xxx.xxx.xxx)
    Jan 3 12:30:28 php: /services_dyndns.php: phpDynDNS: updating cache file /cf/conf/dyndns.cache: xxx.xxx.xxx.xxx
    Jan 3 12:30:28 php: /services_dyndns.php: DynDns: Current Service: dnsomatic
    Jan 3 12:30:28 php: /services_dyndns.php: DynDns: DynDns _checkStatus() starting.
    Jan 3 12:30:28 php: /services_dyndns.php: DNS-O-Matic: DNS update() starting.
    Jan 3 12:30:28 php: /services_dyndns.php: DynDns: DynDns _update() starting.
    Jan 3 12:30:28 php: /services_dyndns.php: DynDns: Initial run. Updating.
    Jan 3 12:30:28 php: /services_dyndns.php: DynDns: cacheIP != wan_ip. Updating.
    Jan 3 12:30:28 php: /services_dyndns.php: DynDns: No Cached IP found.
    Jan 3 12:30:28 php: /services_dyndns.php: DynDns: Current WAN IP: xxx.xxx.xxx.xxx
    Jan 3 12:30:28 php: /services_dyndns.php: DynDns: detectChange() starting.
    Jan 3 12:30:28 php: /services_dyndns.php: DynDns: updatedns() starting
    Jan 3 12:30:28 php: /services_dyndns.php: DynDns: Running updatedns()**
    **



  • I got it to contact dnsomatic, but it would not update any services, i looked at the logs at dnsomatic and it was full of errors. it seems that no matter whats done there are errors on one side.
    Have you tried contacting them?



  • @XIII:

    I got it to contact dnsomatic, but it would not update any services,

    This is probably only vaguely related to pfSense, but I routinely get mail from no_reply@opendns.com to say DNS-O-matic has updated my services at dyndns.org, no-ip.com and opendns.com. Various activities suggest the updates genuinely succeeded.



  • I found a problem with this.

    (Note: the following is a business/company account)
    In my DNS-O-Matic account I have two services: No-IP and OpenDNS. I gave my OpenDNS service under DNS-O-Matic an identifier/hostname of "Headquarters." In pfSense, the Hostname/Interface field is required to be filled in.

    When I have this set to Headquarters, it will only update OpenDNS in DNS-O-Matic.
    When I have this set to company.no-ip.org, it will only update No-IP in DNS-O-Matic.

    (Note: the following is a personal account)
    At home on my Windows 7 workstation, I use a program that has a GUI. In that program, all it requires is my DNS-O-Matic username and password. And yes, this program has a Hostname field as well, but does not require me to fill it, and it does update both my No-IP and OpenDNS with the same timestamp.



  • @BlueToast:

    I found a problem with this.

    The dnsomatic API documentation at http://www.dnsomatic.com/wiki/api says in the section Update Parameters "To update all services registered with DNS-O-Matic to the new IP address, hostname may be omitted or set to all.dnsomatic.com (useful if required by client)."



  • @wallabybob:

    @BlueToast:

    I found a problem with this.

    The dnsomatic API documentation at http://www.dnsomatic.com/wiki/api says in the section Update Parameters "To update all services registered with DNS-O-Matic to the new IP address, hostname may be omitted or set to all.dnsomatic.com (useful if required by client)."

    Ok, yes, this worked. Thanks!


Locked