Projects / ddclient / Comments

RSS Comments for ddclient

16 Jun 2004 13:54 angusby2

cache file not working ver 3.6.3: Slackware 9.1
ddclient installed and gets the WAN IP form SOHO router; have not uncommented lines in ddclient.conf to allow updates to Dynamic Service Provider until I know all is working. Problem I have is the ddclient.cache file is not being created. Without this file my guest is that ddclient will update the Dynamic Service Provider on ever check (5 min.). Anyone know what may be the problem.

See ddclient.config:

daemon=300 # check every 300 seconds = 5 min.

syslog=yes # log update msgs to syslog

mail=root # mail all msgs to root, mail=root

mail-failure # mail failed update msgs to root, mail-failure=root

pid=/var/run/ddclient.pid # record PID in file.

use=linksys, fw=192.168.1.1:80 # via Linksys's internet FW

fw-login=admin, fw-password=XXXXX # FW login and password

26 May 2004 01:19 pcunha

Bind Dynamic DNS Server Patch and DSLlinl 200U/E Support
This patch allows you to use ddclient as client for a bind dynamic dns server

it needs some fixes on the hosts code to allow more then a host to be updated, but my perl is terrible.

someone, please fix it !

you will need the nsupdate tool and the key files to your bind server.

ohh ,, this patch allows you too to use a DSlink 200U/E modem in PPPoE Mode ok!

sample config:

##

## BindDNS (isc.org)

##

#the dns server

server=200.200.200.200, \

protocol=binddns, \

#the domain zone you want to update

domain=pcunha.org, \

#The password key file to be passed to nsupdate program

password=/etc/Kuser.+157+08335.private \

#the host, it only work for one host for now

somehost.pcunha.org

The DIFF code for version 3.6.3 of ddclient script

<--- BEGIN --->

--- ddclient 2004-05-26 04:20:14.000000000 -0300

+++ old/ddclient 2003-06-14 14:39:16.000000000 -0300

@@ -151,11 +151,6 @@

'url' => '/st_devic.html',

'skip' => 'WAN',

},

- 'dslink200' => {

- 'name' => 'Dslink 200U/E',

- 'url' => '/MainPage',

- 'skip' => 'PPPoE',

- },

);

my %ip_strategies = (

'ip' => ": obtain IP from -ip {address}",

@@ -248,20 +243,6 @@

'mx' => setv(T_OFQDN, 0, 1, 1, '', undef),

'backupmx' => setv(T_BOOL, 0, 1, 1, 0, undef),

},

- 'binddns-common-defaults' => {

- 'server' => setv(T_FQDNP, 1, 0, 1, '', undef),

- 'password' => setv(T_PASSWD, 1, 0, 1, '', undef),

- 'domain' => setv(T_STRING, 1, 1, 1, '', undef),

- 'host' => setv(T_STRING, 1, 1, 1, '', undef),

- 'ip' => setv(T_IP, 0, 1, 0, undef, undef),

- 'wtime' => setv(T_DELAY, 0, 1, 1, 0, interval('30s')),

- 'mtime' => setv(T_NUMBER, 0, 1, 0, 0, undef),

- 'atime' => setv(T_NUMBER, 0, 1, 0, 0, undef),

- 'status' => setv(T_ANY, 0, 1, 0, '', undef),

- 'min-interval' => setv(T_DELAY, 0, 0, 1, interval('30s'), 0),

- 'max-interval' => setv(T_DELAY, 0, 0, 1, interval('15d'), 0),

- 'min-error-interval' => setv(T_DELAY, 0, 0, 1, interval('5m'), 0),

- },

'dnspark-common-defaults' => {

'mx' => setv(T_OFQDN, 0, 1, 1, '', undef),

'mxpri' => setv(T_NUMBER, 0, 0, 1, 5, undef),

@@ -338,14 +319,6 @@

$variables{'service-common-defaults'},

),

},

- 'binddns' => {

- 'updateable' => undef,

- 'update' => \&nic_binddns_update,

- 'examples' => \&nic_binddns_examples,

- 'variables' => merge(

- $variables{'binddns-common-defaults'},

- ),

- },

);

$variables{'merged'} = merge($variables{'global-defaults'},

$variables{'service-common-defaults'},

@@ -1739,13 +1712,13 @@

my $sub = shift;

my $update = 0;

-# if ($config{$host}{'login'} eq '') {

-# warning("null login name specified for host %s.", $host);

+ if ($config{$host}{'login'} eq '') {

+ warning("null login name specified for host %s.", $host);

-# } elsif ($config{$host}{'password'} eq '') {

-# warning("null password specified for host %s.", $host);

+ } elsif ($config{$host}{'password'} eq '') {

+ warning("null password specified for host %s.", $host);

- if ($opt{'force'}) {

+ } elsif ($opt{'force'}) {

info("forcing update of %s.", $host);

$update = 1;

@@ -2686,83 +2659,3 @@

}

}

######################################################################

-

-######################################################################

-## nic_binddns_updateable

-######################################################################

-sub nic_binddns_updateable {

- my $host = shift;

- my $update = 0;

-

- if ($config{$host}{'mx'} ne $cache{$host}{'mx'}) {

- info("forcing updating %s because 'mx' has changed to %s.", $host, $config{$host}{'mx'});

- $update = 1;

-

- } elsif ($config{$host}{'mx'} && ($config{$host}{'mxpri'} ne $cache{$host}{'mxpri'})) {

- info("forcing updating %s because 'mxpri' has changed to %s.", $host, $config{$host}{'mxpri'});

- $update = 1;

- }

- return $update;

-}

-######################################################################

-## nic_dnspark_examples

-######################################################################

-sub nic_binddns_examples {

- return <<EoEXAMPLE;

-

-no help avaliable yet ...

-

-EoEXAMPLE

-}

-######################################################################

-## nic_binddns_update

-######################################################################

-sub nic_binddns_update {

- debug("\nnic_binddns_update -------------------");

-

- ## group hosts with identical attributes together

- ## my %groups = group_hosts_by([ @_ ], [ qw(login password server wildcard mx backupmx) ]);

-

- ## each host is in a group by itself

- my %groups = map { $_ => [ $_ ] } @_;

-

-

- ## update each set of hosts that had similar configurations

- foreach my $sig (keys %groups) {

- my @hosts = @{$groups{$sig}};

- my $hosts = join(',', @hosts);

- my $h = $hosts[0];

- info("setting IP address to %s for %s", $ip, $hosts);

- verbose("UPDATE:","updating %s", $hosts);

-

- #'www.dnspark.com:80/vis...;

-

- my $url;

- $url = "server $config{$h}{'server'}\n";

- $url .= "zone $config{$h}{'domain'}\n";

- $url .= "update delete $hosts\n";

- $url .= "update add $hosts 60 A $ip\n";

- $url .= "send\n";

-

- my $command;

-

- $command = "/usr/bin/nsupdate -k $config{$h}{'password'} ";

-

- verbose("UPDATE:","Bind Command is :%s", $command);

- verbose("UPDATE:","Bind Arguments is :%s", $url);

-

- my $status = pipecmd($command,$url);

-

-

-

- if ($status eq 1) {

- $config{$h}{'ip'} = $ip;

- $config{$h}{'mtime'} = $now;

- success("updating %s: %s: IP address set to %s", $h, $status, $ip);

- } else {

- failed("updating %s", $h );

- }

-

- }

-}

-######################################################################

<--- END --->

i hope it work for you, take a look at the end of the code of ddclient if you want to change anything ok !

Paulo Cunha

25 May 2004 01:42 DieKat

South African Dynamic DNS
Hi

Your client does not connect to the following url for updates. dynamic-dns.co.za/dnsm...

Can this be added to your client as I have several people using Linux who want to use my Dynamic-DNS service in South Africa.

Info returned by the web server for a correct entry is as follows:

HTTP/1.1 200 OK

Server: Microsoft-IIS/5.0

Date: Tue, 25 May 2004 08:30:47 GMT

X-Powered-By: ASP.NET

Connection: Keep-Alive

Content-Length: 14

Content-Type: text/html

Expires: Tue, 25 May 2004 08:29:48 GMT

Set-Cookie: ASPSESSIONIDSATRTDAT=AKBEHKPBGBAOCIBFOGGEEAAA; path=/

Cache-control: private

165.165.33.110

Other string's returned are:

Successful

already updated

Bad UserID or Password

suspended for abuse

period has expired

Record Not Found

Domain is Disabled

Many thanks

Conrad

19 May 2004 18:52 bweinel

v3.6.3 WARNING: caught SIGTERM; exiting
I am running ddclient v3.6.3 on a Fedora Core 1 system. It seems to work well most of the time, but when I reboot and restart it I get the following error report: "WARNING: caught SIGTERM; exiting". At this point my Dyndns domain is not updated correctly. I suspect this has to do with IP address cacheing in some way as telnetting to the router and forcing a change of the WAN address seems to eventually fix the problems after a couple of go rounds. Is this a known problem...? Tnx.. Bill

30 Apr 2004 12:51 Devanchya

Mutiple domain updates
Is it possible to get ddclient to update mutple subdomains at once?

For testing reasons I have 3 domains

testsite.domain.com

testsite2.domain.com

testsite3.domain.com

All point to the same IP, but in order to get virtual domains to work properly in apache I can't simply have one point to another... any suggestions?

21 Apr 2004 22:59 jnarino

Re: dyndns abuse

> ddclient runs fine and does it's updates

> perfectly. But it does them every 5

> minutes regardless of whether my IP

> address has changed. Dyndns has

> correctly bumped me for abuse. How do I

> get ddclient to not update if nothing

> changed?

>

> I'm running

> ddclient 3.6.2

> Lindows (debian)

> Linksys router

> Verizon DSL

>

> here's my /etc/ddclient.conf

> daemon=0

> pid=/var/run/ddclient.pid

> protocol=dyndns2

> use=linksys

> server=members.dyndns.org

> login=tomcerul

> password= is my password on dyndns.org

> cerul.dyndns.org

> fw=192.168.1.1/Status.htm

> fw-skip=WAN.*?IP Address

> fw-password= is my password on my

> router

>

> ps -ef gives me this:

> /usr/bin/perl -w /usr/sbin/ddclient

>

> Someone mentioned a FAQ, where is it?

> Thanks in advance.

>

>

In /etc/ddclient.conf there is an entry that reads

daemon=xxx

Where xxx is the frequency of the updates, in seconds. Set this to a suitable value.

Hope this helps

09 Mar 2004 10:54 TomCerul

dyndns abuse
ddclient runs fine and does it's updates perfectly. But it does them every 5 minutes regardless of whether my IP address has changed. Dyndns has correctly bumped me for abuse. How do I get ddclient to not update if nothing changed?

I'm running
ddclient 3.6.2
Lindows (debian)
Linksys router
Verizon DSL

here's my /etc/ddclient.conf
daemon=0
pid=/var/run/ddclient.pid
protocol=dyndns2
use=linksys
server=members.dyndns.org
login=tomcerul
password= is my password on dyndns.org
cerul.dyndns.org
fw=192.168.1.1/Status.htm
fw-skip=WAN.*?IP Address
fw-password= is my password on my router

ps -ef gives me this:
/usr/bin/perl -w /usr/sbin/ddclient

Someone mentioned a FAQ, where is it?
Thanks in advance.

01 Mar 2004 11:22 cyberindy

Re: Added Feature
Great!! Thanks alot, that's exactly what I was looking for. So far it seems to work perfectly.

I have one last problem though:
I run ddclient as a daemon. It seems like the script runs every 5mins (the time interval the daemon waits, before he tests again). I think this is because the runpostscript($ip); command is in the wrong place after update_nics(); . Unfortunately I'm not very experienced with PERL, so I would be really greatful for some advise.

Thanks again for this great contribution ;)

19 Feb 2004 12:48 fischtoeter

Re: entry for the netgear rp614 cable/dsl router

Hi,
I didnt activate the entry in ddclient.conf which way ddclient will use to perform the update: in my case I use the web, so I activated the entry #use web ... and then it works ...

regards
Thomas

> Hi.
> I am using RH8 with netgear rp614
> router.
> I have configured my ddclient exactly as
> you explained, but it does not work.
> I may have other issues.
> When I do
> $ ddclient -daemon=0 -debug -verbose
> -noquiet
> I get something like
> ==cache==
> DEBUG: get_ip: using ip, ip reports
> WARNING: unable to determine IP address
> What kind of setting should I fix to
> solve this issue?
> I am sorry. I am a newbie, and this
> ddclient thing is a bit difficult for
> me. I appreciate any comment.
> Shin1

09 Jan 2004 01:22 geebutbut

change required to work with Linksys router firmware 2.45.5
in the 'linksys' section at line ~95 change the line that reads:
'url' => '/Status.htm',
to:
'url' => '/Status_Router.htm',

Screenshot

Project Spotlight

OpenMW

A reimplementation of the Morrowind engine.

Screenshot

Project Spotlight

reposurgeon

A tool for editing version control repository history.