Menu

Tree [r8] /
 History

HTTPS access


File Date Author Commit
 branches 2014-04-18 nrze [r1] Add initial directories
 images 2014-04-18 nrze [r2] Initial Version
 tags 2014-04-18 nrze [r1] Add initial directories
 trunk 2014-04-18 nrze [r1] Add initial directories
 LICENSE.txt 2015-04-08 nrze [r6]
 README.txt 2015-04-08 nrze [r5]
 Versioninfo.txt 2015-04-14 nrze [r8]
 admin.php 2014-04-18 nrze [r2] Initial Version
 auth.php 2014-04-18 nrze [r2] Initial Version
 change.php 2015-04-14 nrze [r8]
 changeX.php 2015-04-14 nrze [r8]
 dbsettings.php 2015-04-08 nrze [r5]
 del.php 2015-04-08 nrze [r5]
 favicon.ico 2014-04-18 nrze [r2] Initial Version
 head.part.html 2014-04-18 nrze [r2] Initial Version
 index.php 2015-04-14 nrze [r8]
 install.php 2015-04-14 nrze [r8]
 login.php 2015-04-08 nrze [r5]
 logout.php 2015-04-08 nrze [r5]
 main.js 2015-04-08 nrze [r5]
 mand.php 2015-04-14 nrze [r8]
 newdom.php 2014-04-18 nrze [r2] Initial Version
 newsuff.php 2015-04-08 nrze [r5]
 newupdateuser.php 2014-04-18 nrze [r2] Initial Version
 newuser.php 2015-04-08 nrze [r5]
 notify.php 2015-04-08 nrze [r5]
 settings.php 2015-04-08 nrze [r5]
 style.css 2015-04-08 nrze [r5]
 subhead.part.html 2014-04-18 nrze [r2] Initial Version
 suffixov.php 2015-04-14 nrze [r8]
 template.html 2015-04-09 nrze [r7]
 update.php 2015-04-09 nrze [r7]
 updateip.php 2015-04-08 nrze [r5]
 updateusers.php 2015-04-14 nrze [r8]
 users.php 2015-04-14 nrze [r8]

Read Me

SETUP
==========================================

System prerequisites
--------------------

 - Installed and configured nameserver (e.g. BIND)
 - Updatescript (within this document)
 - Webserver with PHP any MySQL
 - NS Record with all domains you want to manage to your DNS Server

Please note that the webinterface is able to run on almost any system. Although all examples require a unix-like system running a nameserver which can be updated by nsupdate. Feel free to write your own update routines for other nameservers or operating systems.


Configuring Nameserver and Updatescript
---------------------------------------

This example shows how to configure the bind Nameserver for dynamic DNS updates.

1) Run ddns-confgen -z dyn.YOURDOMAIN.com
   Output:

# To activate this key, place the following in named.conf, and
# in a separate keyfile on the system or systems from which nsupdate
# will be run:
key "ddns-key.dyn.YOURDOMAIN.com" {
        algorithm hmac-sha256;
        secret "k2AnrALavnLKtonVsbSBO+JCc0se17/prHSKc2ba3d8=";
};

# Then, in the "zone" definition statement for "dyn.YOURDOMAIN.com",
# place an "update-policy" statement like this one, adjusted as
# needed for your preferred permissions:
update-policy {
          grant ddns-key.dyn.YOURDOMAIN.com subdomain dyn.YOURDOMAIN.com A AAAA;
};

# After the keyfile has been placed, the following command will
# execute nsupdate using this key:
nsupdate -k <keyfile>


The named.conf zonedefinition should now look like this:

zone "dyn.YOURDOMAIN.com" {
  type master;
  file "/var/cache/bind/db.dyn.YOURDOMAIN.com";
  update-policy {
    grant ddns-key.dyn.YOURDOMAIN.com subdomain dyn.YOURDOMAIN.com A AAAA;
  };
};


In this example updates are restricted to the subdomain only. Don't forget co create the key file (/etc/bind/dyn.YOURDOMAIN.com.ddns-key). Also create a db-file (/var/cache/bind/db.dyn.YOURDOMAIN.com) if it not exists yet.


2) In order to update the records, webinterface executes a bash script which is defined within the config.ini file. The script should look like this:

#!/usr/bin/env bash
DOMAIN=$1
IP=$2
V=$3
KEY=/etc/bind/dyn.YOURDOMAIN.com.key
TIMEOUT="60"

if [ "$V" = "6" ]; then
  echo -e "
  update delete $DOMAIN AAAA
  update add $DOMAIN $TIMEOUT AAAA $IP
  show
  send" | /usr/bin/nsupdate -k $KEY
else
  echo -e "
  update delete $DOMAIN A
  update add $DOMAIN $TIMEOUT A $IP
  show
  send" | /usr/bin/nsupdate -k $KEY
fi


Running Installer
-----------------

run http://yourdomain.com/install.php and follow the installation instructions.


UPDATING RECORDS
==========================================
Updates can be made by a simple HTTP get call to updateip.php

The following parameters are avaialable

Parameter Mandatory Description
--------- --------- ------------------------------------------------------------------
hostname  yes       Your Domain Name
myip      no        ipv4 address, clientaddress is used if nothing else is specified.
my6ip     no        ipv6 address, clientaddress is used if nothing else is specified.
username  no        either you specify username or you perform http auth.
password  no        either you specify password or you perform http auth.

example: http://yourdomain.com/updateip.php?hostname=<hostname>&ipaddr=<ipaddr>&username=<username>&password=<password>

Most Dynamic DNS Clients support updates by calling an update URL like shown within the example above.
Please refer to your device's manufacurers manual in order to get the correct variables.

AVM FritzBox Users
------------------
example: http://yourdomain.com/updateip.php?ipaddr=<ipaddr>&hostname=<domain>&ip6addr=<ip6addr>
Username and password need to be specified within the corresponding fields.

Want the latest updates on software, tech news, and AI?
Get latest updates about software, tech news, and AI from SourceForge directly in your inbox once a month.