#989150 ddclient: Fail to update IP address in some rare cases with PPP connection

#989150#5
Date:
2021-05-26 20:14:08 UTC
From:
To:
Dear Maintainer,


I was using ddclient to manage my dynamic DNS for years.
I'm using a PPP connection which is supposed to remain connected all the time, but still, disconnections can happen, and when it does, my IP address usually need to be updated.
Using the /etc/ppp/ip-up.d update mechanism, ddclient was keeping my IP address up to date most of the time.
But I ran into an unfrequent, but still major issue recently.

My PPP connection dropped and was re-established. ddclient updated the IP address as it should. However, the PPP connection dropped and was re-established a second time within a 5 minutes timeframe. ddclient refused to update the IP address again, because it consider updating less than 5 minutes after a previous update could be considered abuse.
The problem is, since I'm not running ddclient as a daemon, ddclient never retried to update the IP address again, so my dynamic DNS was no longer valid.
It would remain like that until the next PPP reconnection, which could be weeks later.

Relevant lines from syslog:


May 21 03:46:15 localhost pppd[2253]: Modem hangup
May 21 03:46:15 localhost pppd[2253]: Connect time 74973.3 minutes.
May 21 03:46:15 localhost pppd[2253]: Sent 2469255726 bytes, received 824242333 bytes.
May 21 03:46:15 localhost pppd[2253]: Connection terminated.
May 21 03:46:16 localhost pppd[2253]: Sent PADT
May 21 03:47:21 localhost pppd[2253]: Timeout waiting for PADO packets
May 21 03:47:21 localhost pppd[2253]: Unable to complete PPPoE Discovery
May 21 03:48:26 localhost pppd[2253]: Timeout waiting for PADO packets
May 21 03:48:26 localhost pppd[2253]: Unable to complete PPPoE Discovery
May 21 03:48:56 localhost pppd[2253]: PPP session is 2927
May 21 03:48:56 localhost pppd[2253]: Using interface ppp0
May 21 03:48:56 localhost pppd[2253]: Connect: ppp0 <--> enp3s0
May 21 03:48:59 localhost pppd[2253]: Remote message: Login ok
May 21 03:48:59 localhost pppd[2253]: PAP authentication succeeded
May 21 03:48:59 localhost pppd[2253]: local  IP address 77.77.77.130
May 21 03:48:59 localhost pppd[2253]: remote IP address 10.11.16.17

May 21 03:48:59 localhost ddclient[18582]: WARNING:  forcing update of my-dynamic-dns.com from 77.77.77.130 to 77.77.77.130; 30 days since last update on Wed Mar 31 09:26:46 2021.
May 21 03:48:59 localhost ddclient[18582]: WARNING:  forcing update of yo.my-dynamic-dns.com from 77.77.77.130 to 77.77.77.130; 30 days since last update on Wed Mar 31 09:26:46 2021.
May 21 03:49:04 localhost pppd[2253]: Modem hangup
May 21 03:49:04 localhost pppd[2253]: Connect time 0.1 minutes.
May 21 03:49:04 localhost pppd[2253]: Sent 130000 bytes, received 203873 bytes.
May 21 03:49:04 localhost pppd[2253]: Connection terminated.
May 21 03:49:04 localhost pppd[2253]: Sent PADT
May 21 03:49:34 localhost pppd[2253]: PPP session is 2928
May 21 03:49:34 localhost pppd[2253]: Using interface ppp0
May 21 03:49:34 localhost pppd[2253]: Connect: ppp0 <--> enp3s0
May 21 03:49:37 localhost pppd[2253]: Remote message: Login ok
May 21 03:49:37 localhost pppd[2253]: PAP authentication succeeded
May 21 03:49:37 localhost pppd[2253]: local  IP address 70.52.5.154
May 21 03:49:37 localhost pppd[2253]: remote IP address 10.11.16.17
May 21 03:49:37 localhost ddclient[18629]: WARNING:  skipping update of my-dynamic-dns.com from 77.77.77.130 to 77.77.5.154.
May 21 03:49:37 localhost ddclient[18629]: WARNING:   last updated Fri May 21 03:48:59 2021.
May 21 03:49:37 localhost ddclient[18629]: WARNING:   Wait at least 5 minutes between update attempts.
May 21 03:49:37 localhost ddclient[18629]: WARNING:  skipping update of yo.my-dynamic-dns.com from 77.77.77.130 to 77.77.5.154.
May 21 03:49:37 localhost ddclient[18629]: WARNING:   last updated Fri May 21 03:48:59 2021.
May 21 03:49:37 localhost ddclient[18629]: WARNING:   Wait at least 5 minutes between update attempts.


/etc/ddclient.conf

# Configuration file for ddclient generated by debconf
#
# /etc/ddclient.conf
use=if, if=ppp0

ssl=yes
protocol=googledomains
login=my_user
password=my_pass
my-dynamic-dns.com

ssl=yes
protocol=googledomains
login=my_user
password=my_pass
yo.my-dynamic-dns.com