Ddclient
Version
ddclient - DNS record updating
Use this contrib when you have a sme server connected to a ISP service using a dynamic IP, and you wish to host multiple domains.
ddclient is a client for updating dynamic DNS entries for domains hosted at different DNS providers.
Configure your dynamic host domains via the ddclient server manager panel.
ddclient can be used on servers configured in server gateway mode or in server only mode.
Smecontribs repository version
Maintainer
Stéphane de Labrusse AKA Stephdl
and for SME10 Brian Read AKA brianr
This contrib is the official and maintained version for SME Server 8,9 and 10. Note that some free and paid dynamic dns services have been incorporated into the contrib.
Installation
yum install --enablerepo=smecontribs smeserver-ddclient
then
signal-event ddclient
or
signal-event post-upgrade; signal-event reboot
yum install --enablerepo=smecontribs smeserver-ddclient
then
signal-event ddclient
or
signal-event post-upgrade; signal-event reboot
yum install --enablerepo=smecontribs smeserver-ddclient ddclient
then
signal-event smeserver-ddclient-update
or
signal-event post-upgrade; signal-event reboot
A new panel will be added to the server manager.
Use this panel to configure domain records you wish to keep updated with your dynamic IP using the ddclient contrib
How to use
First you need to create a domain in the server-manager (domains panel) which must match the domain you set with your dynamic dns provider.
For example if the domain you made at DTdns is :
home.dtdns.net
You have to create a relevant domain with this name.
Then go to the panel of "Dynamic clients", choose the domain you made then set your dynamic DNS provider eg (dtdns) and associated credentials to that provider.
DB settings
- There are some of the services that you can use to detect your external ip
- ip.changeip.com
- ipdetect.dnspark.com
- checkip.dyndns.org:8245
- checkip.dyndns.org
- checkip.amazonaws.com
If you want to change the service which verifies your external ip you can do :
config setprop ddclient urlcheckip ip.changeip.com signal-event smeserver-ddclient-update
- Every 300s the contrib perform a check to verify if your ip has been changed to http://checkip.dyndns.org/. you can change the interval of the deamon update by a db command (by default it is 300 seconds). It seems that the minimum accepted is 60s. Possibly you could be blacklisted by providers if you decrease the time-out under of 300s.
config setprop ddclient DeamonUpdate 60 signal-event smeserver-ddclient-update
- use SSL
since ddclient 3.7.0 you can encrypt transactions to avoid clear messages. by default forced to yes
config setprop ddclient SSL yes
or
config setprop ddclient SSL no
then
signal-event smeserver-ddclient-update
- Controlling email notifications
- DB entries are: mailSuccess and mailFailure
- default behaviour: If the keys are not set then they default to admin
config setprop ddclient mailSuccess '' or 'none'
Output:
mail=
config setprop ddclient mailFailure '' or 'none'
Output:
mail-failure=
config setprop ddclient mailSuccess someaddress@yahoo.com
Output:
mail=someaddress@yahoo.com
config setprop ddclient mailFailure somewhereelse@gmail.com
Output:
mail-failure=somewhereelse@gmail.com
Remove the keys to reset to the default 'admin'
config delkey ddclient mailSuccess config delkey ddclient mailFailure
- full db ddclient
ddclient=service DeamonUpdate=1800 Extinterface= ForceIP= SSL=yes cmd= debug=enabled method=web quiet=disabled status=enabled syslog=enabled urlcheckip=https://checkip.amazonaws.com/ verbose=enabled mailSuccess | unset default=admin mailFailure | unset default=admin
- method
this will allow you to set the way you retrieve the new IP. By default this use the web request to an external url, which you can set. THis would work for all server, even if not gateway. However you can get many timeout depending of the website you try to reach to get the IP.
available methods :
- smeIF : will get IP from external interface. BEST choice if your SME act as gateway.
- smeCMD : will get the IP from the configuration DB : /sbin/e-smith/db configuration getprop ExternalInterface IPAddress
- web : will get the ip from webpage at the URL in property 'urlcheckip' and use the filter from property 'webskip'
- if : will get the IP from the network interface which name is in property 'Extinterface'
- ip : will manually force the ip in property 'ForceIP'
- cmd : will call the script in property 'cmd' and use the filter in the property 'cmdskip' to get the IP
- 'CUSTOM' : replace CUSTOM by one of the accepted value of the ddclient command for use option. Yo also have to fill the property 'fwaddress' which is the gateway address, and could also fill the properties 'fwlogin', 'fwpassword' and 'fwskip'
-use=2wire : obtain IP from 2Wire 1701HG Gateway at the -fw {address}. -use=3com-3c886a : obtain IP from 3com 3c886a 56k Lan Modem at the -fw {address}. -use=3com-oc-remote812 : obtain IP from 3com OfficeConnect Remote 812 at the -fw {address}. -use=alcatel-510 : obtain IP from Alcatel Speed Touch 510 at the -fw {address}. -use=alcatel-stp : obtain IP from Alcatel Speed Touch Pro at the -fw {address}. -use=allnet-1298 : obtain IP from Allnet 1298 at the -fw {address}. -use=cayman-3220h : obtain IP from Cayman 3220-H DSL at the -fw {address}. -use=cisco : obtain IP from Cisco FW at the -fw {address}. -use=cisco-asa : obtain IP from Cisco ASA at the -fw {address}. -use=dlink-524 : obtain IP from D-Link DI-524 at the -fw {address}. -use=dlink-604 : obtain IP from D-Link DI-604 at the -fw {address}. -use=dlink-614 : obtain IP from D-Link DI-614+ at the -fw {address}. -use=e-tech : obtain IP from E-tech Router at the -fw {address}. -use=elsa-lancom-dsl10 : obtain IP from ELSA LanCom DSL/10 DSL FW at the -fw {address}. -use=elsa-lancom-dsl10-ch01 : obtain IP from ELSA LanCom DSL/10 DSL FW (isdn ch01) at the -fw {address}. -use=elsa-lancom-dsl10-ch02 : obtain IP from ELSA LanCom DSL/10 DSL FW (isdn ch01) at the -fw {address}. -use=linksys : obtain IP from Linksys FW at the -fw {address}. -use=linksys-rv042-wan1 : obtain IP from Linksys RV042 Dual Homed Router WAN Port 2 at the -fw {address}. -use=linksys-rv042-wan2 : obtain IP from Linksys RV042 Dual Homed Router WAN Port 2 at the -fw {address}. -use=linksys-ver2 : obtain IP from Linksys FW version 2 at the -fw {address}. -use=linksys-ver3 : obtain IP from Linksys FW version 3 at the -fw {address}. -use=linksys-wcg200 : obtain IP from Linksys WCG200 FW at the -fw {address}. -use=linksys-wrt854g : obtain IP from Linksys WRT854G FW at the -fw {address}. -use=maxgate-ugate3x00 : obtain IP from MaxGate UGATE-3x00 FW at the -fw {address}. -use=netcomm-nb3 : obtain IP from NetComm NB3 at the -fw {address}. -use=netgear-dg834g : obtain IP from netgear-dg834g at the -fw {address}. -use=netgear-rp614 : obtain IP from Netgear RP614 FW at the -fw {address}. -use=netgear-rt3xx : obtain IP from Netgear FW at the -fw {address}. -use=netgear-wgt624 : obtain IP from Netgear WGT624 at the -fw {address}. -use=netgear-wpn824 : obtain IP from Netgear WPN824 FW at the -fw {address}. -use=netopia-r910 : obtain IP from Netopia R910 FW at the -fw {address}. -use=olitec-SX200 : obtain IP from olitec-SX200 at the -fw {address}. -use=rtp300 : obtain IP from Linksys RTP300 at the -fw {address}. -use=sitecom-dc202 : obtain IP from Sitecom DC-202 FW at the -fw {address}. -use=smc-barricade : obtain IP from SMC Barricade FW at the -fw {address}. -use=smc-barricade-7004vbr : obtain IP from SMC Barricade FW (7004VBR model config) at the -fw {address}. -use=smc-barricade-7401bra : obtain IP from SMC Barricade 7401BRA FW at the -fw {address}. -use=smc-barricade-alt : obtain IP from SMC Barricade FW (alternate config) at the -fw {address}. -use=sohoware-nbg800 : obtain IP from SOHOWare BroadGuard NBG800 at the -fw {address}. -use=sveasoft : obtain IP from Sveasoft WRT54G/WRT54GS at the -fw {address}. -use=vigor-2200usb : obtain IP from Vigor 2200 USB at the -fw {address}. -use=watchguard-edge-x : obtain IP from Watchguard Edge X FW at the -fw {address}. -use=watchguard-soho : obtain IP from Watchguard SOHO FW at the -fw {address}. -use=westell-6100 : obtain IP from Westell C90-610015-06 DSL Router at the -fw {address}. -use=xsense-aero : obtain IP from Xsense Aero at the -fw {address}.
Providers available
Here the official wiki
- Dyndns.org
- ZoneEdit.com
- Easydns.com
- Hammernode (hn.org)
- dslreports.com
- eurodyndns.org
- Dtdns.com
- loopia.se
- dnspark.com
- Dynhost (ovh.com)
- Noip.com
- Changeip.com
- Namecheap
If your dynamic dns provider is not available in smeserver-ddclient, please raise a bug and provide the settings for your provider with ddclient (search for settings with google).
Removal
yum remove smeserver-ddclient signal-event post-upgrade; signal-event reboot
Debug
For debug mode you may need per-JSON-Any
To install that you will need the EPEL repo: https://wiki.contribs.org/Epel
Then
yum --enablerepo=epel install perl-JSON-Any
- You can keep an eye on log
watch 'cat /var/log/messages|grep SUCCESS'
- You can supervise dns record
watch 'dig any your_dynamic_dns_host.xxx @dns_server_of_your_dynamic_dns_provider'
- If you want to know the dns servers of your dynamic provider, do
dig any your_dynamic_dns_host.xxx
and look about hosts in NS columns.
- If stuff goes bad you can debug and see what is happening to the deamon
ddclient -daemon=0 -debug -verbose -noquiet
and report please
- keep an eye on the ddclient cache
less /var/cache/ddclient/ddclient.cache
Bugs
Please raise bugs under the SME-Contribs section in bugzilla and select the smeserver-ddclient component or use this link .
ID | Product | Version | Status | Summary (9 tasks) ⇒ |
---|---|---|---|---|
12778 | SME Contribs | 11.0 | CONFIRMED | perl-CGI 'startform' and 'endform' are dropped in favor of 'start_form' and 'end_form' |
12676 | SME Contribs | 10.0 | RESOLVED | when using pppoe 2nd instance of ddclient running as root |
12675 | SME Contribs | 10.0 | RESOLVED | ddclient still using old interface after console reconfigure |
12600 | SME Contribs | 10.0 | RESOLVED | old manager free form domain table not localised |
12599 | SME Contribs | 10.0 | CONFIRMED | ddclient[3019]: Scalar value @total_payload{$ipv} better written as $total_payload{$ipv} at /usr/sbin/ddclient line 4120. |
12598 | SME Contribs | 10.0 | RESOLVED | WARNING: file /etc/ddclient/ddclient.conf, line 50: Invalid Value for keyword 'protocol' = 'DYNHOST' |
12448 | SME Contribs | 10.0 | CONFIRMED | Create action script on conf file expansion to delete contents of the cache |
12311 | SME Contribs | 10.0 | CONFIRMED | Configuration DB option for getting IP does not work |
12240 | SME Contribs | 10.0 | CONFIRMED | Upgrade Server manager to incorporate ddclient 3.10 new options. |
Changelog
Only released version in smecontrib are listed here.
- Edit Menu entry to conform to new arrangements [SME: 12493]
2023/11/10 Brian Read 1.3.0-28.sme
- Update template for deprecated commands and v3.11.1 ddclient [SME: 12427]
- Alter require to greater than or equal to 3.11.1 [SME: 12425]
- Remove 3.10 as a requirement in spec
2023/01/25 Brian Read 1.3.0-25.sme
- Remove the ddc_ from the front of the (translateble) messages [SME: 12217]
smeserver.free.fr version
Note: This RPM works with SME 8 or SME 7
The smeserver.free.fr site appears to be defunct (since at least April 2012), so this article provides a link to the contrib at another external file download site.
This contrib has some additional features like the ability to select the method on how the detect the external IP address and the ability to publish arbitrary domain names (i.e. not just the ones that are on your server).
Installation
Download the latest rpm version from
http://www.files.com/shared/4f89e32b9c187/sme7-ddclient-3.7.3-7.noarch.zip
to an empty folder eg /tmp and unzip the file
unzip sme7-ddclient*
The currently available rpm is:
sme7-ddclient-3.7.3-7.noarch.rpm
Then cd to that folder and install the rpm (change the rpm name in the following command to match the latest available version)
cd /tmp yum localinstall sme7-ddclient*.rpm
Removal
yum remove sme7-ddclient signal-event post-upgrade;signal-event reboot
Bugzilla
Open
ID | Status | Component | Version | Summary (9 tasks) ⇒ |
---|---|---|---|---|
12778 | CONFIRMED | smeserver-ddclient | 11.0 | perl-CGI 'startform' and 'endform' are dropped in favor of 'start_form' and 'end_form' |
12676 | RESOLVED | smeserver-ddclient | 10.0 | when using pppoe 2nd instance of ddclient running as root |
12675 | RESOLVED | smeserver-ddclient | 10.0 | ddclient still using old interface after console reconfigure |
12600 | RESOLVED | smeserver-ddclient | 10.0 | old manager free form domain table not localised |
12599 | CONFIRMED | smeserver-ddclient | 10.0 | ddclient[3019]: Scalar value @total_payload{$ipv} better written as $total_payload{$ipv} at /usr/sbin/ddclient line 4120. |
12598 | RESOLVED | smeserver-ddclient | 10.0 | WARNING: file /etc/ddclient/ddclient.conf, line 50: Invalid Value for keyword 'protocol' = 'DYNHOST' |
12448 | CONFIRMED | smeserver-ddclient | 10.0 | Create action script on conf file expansion to delete contents of the cache |
12311 | CONFIRMED | smeserver-ddclient | 10.0 | Configuration DB option for getting IP does not work |
12240 | CONFIRMED | smeserver-ddclient | 10.0 | Upgrade Server manager to incorporate ddclient 3.10 new options. |
Closed
ID | Status | Component | Version | Summary (41 tasks) ⇒ |
---|---|---|---|---|
12439 | CLOSED | smeserver-ddclient | 10.0 | Update to 3.11.2 |
12427 | CLOSED | smeserver-ddclient | 10.0 | Update SM2 code for ddclient v3.11.1 new protocols |
12425 | CLOSED | smeserver-ddclient | 10.0 | Update to 3.11.1 |
12323 | CLOSED | smeserver-ddclient | 10.0 | Replace ddclient by ddupdate |
12306 | CLOSED | smeserver-ddclient | 10.0 | With Multi domains the second update fails |
12217 | CLOSED | smeserver-ddclient | 10.0 | Upgrade ddclient to 3.10.0 |
11874 | CLOSED | smeserver-ddclient | Futur | Status email is sent on checkip schedule, unable to be turned off or set to other than admin |
11860 | CLOSED | smeserver-ddclient | 10.0 | Zoneedit public server incorrect |
11852 | CLOSED | smeserver-ddclient | Futur | spelling error in ddclient.service file - After=network.targe |
11849 | CLOSED | smeserver-ddclient | Futur | Initial run of ddclient when internet comes up does not honour the config db debug |
11847 | CLOSED | smeserver-ddclient | 10.0 | smeserver-ddclient unit file does not work correctly |
11812 | CLOSED | smeserver-ddclient | Futur | Tweak format on SM2 panel |
11794 | CLOSED | smeserver-ddclient | Futur | for smeserver-manager - add class = "module" to div id="module" |
11752 | CLOSED | smeserver-ddclient | Futur | Restore the dyndns.org checkip as the web query default |
11686 | CLOSED | smeserver-ddclient | 10.0 | SM2 - The ddclient service is not started with the correct config file |
11667 | CLOSED | smeserver-ddclient | 10.0 | The ddclient service is not started with the correct config file |
11656 | CLOSED | smeserver-ddclient | Futur | Warning email received every 2-3 hours "found neither ipv4 nor ipv6 address" |
11450 | CLOSED | smeserver-ddclient | 10beta | DDclient not being run after Ip address for server has changed. |
11446 | CLOSED | smeserver-ddclient | 10beta | Permissions incorrect on configuration file? |
11414 | CLOSED | smeserver-ddclient | 10beta | Update to latest version of ddclient and make sure that all the options are offered in the SM panel |
11379 | CLOSED | smeserver-ddclient | 10beta | ddclient does not seem to run at boot |
11371 | CLOSED | smeserver-ddclient | 10beta | ddclient ignoring interval after it was changed |
11370 | CLOSED | smeserver-ddclient | 10beta | ddclient logs all transactions to /var/log/messages |
11320 | CLOSED | smeserver-ddclient | 10alpha | Update Createlinks according to bug:10959 |
10973 | CLOSED | smeserver-ddclient | 9.2 | smeserver-ddclient Zonedit URL changed |
10942 | CLOSED | smeserver-ddclient | 10alpha | First import to SME10 Tree [smeserver-ddclient and ddclient] |
10796 | CLOSED | smeserver-ddclient | 9.2 | ddclient failing to register NoIP dynamic dns |
10765 | CLOSED | smeserver-ddclient | 9.2 | missing newline in 10Header |
10593 | CLOSED | smeserver-ddclient | 9.2 | spdns.de / spdyn.de (securepoint) changed server |
10363 | CLOSED | smeserver-ddclient | Futur | Adding a new Dynamic DNS Provider - https://freedns.afraid.org/dynamic/ |
9450 | CLOSED | smeserver-ddclient | 8.2 | allow alternative methods to get ip |
8983 | CLOSED | smeserver-ddclient | 9.0 | add a free domains field with a new ddclient database |
8975 | CLOSED | smeserver-ddclient | 8.1 | add SPDNS.DE to smeserver-ddclient |
8964 | CLOSED | smeserver-ddclient | 9.0 | add locale-2015-07-01.patch and missing NAMECHEAP translation |
8963 | CLOSED | smeserver-ddclient | 9.0 | Adding a New provider DNSEXIT |
8754 | CLOSED | smeserver-ddclient | 9.0 | ddclient missing dependency |
8538 | CLOSED | smeserver-ddclient | 8.1 | Namecheap dynamic DNS setup |
8414 | CLOSED | smeserver-ddclient | 8.1 | smeserver-ddclient : Import the stephdl repository |
8338? | CLOSED | smeserver-ddclient | 9.0 | First import to sme9 tree [smeserver-ddclient] |
6505 | CLOSED | smeserver-ddclient | 7.5 | does not seem to be working, easyDNS 7.5.1 |
6211 | CLOSED | smeserver-ddclient | 7.5 | smeserver-ddclient-1.0.0-19.el4.sme.noarch.rpm in smetest has missing folder & service start problems |