0

I have noticed that my Ubuntu instances on both Google Compute Engine (GCE) and Azure have broken network after installing and configuring ddclient and rebooting these machines. This issue does not happen on AWS.

When this happens, everything looks fine, the interface comes up, is assigned an IP, but it says the default gateway is unreachable. Uninstalling ddclient and deleting its config file, followed by a reboot, solves the issue.

Why does ddclient seem to break the network on these GCE and Azure instances?

This is a sample of my ddclient config:

ssl=yes
use=web, web=checkip.dyndns.com/, web-skip='IP Address'
protocol=namecheap
server=dynamicdns.park-your-domain.com
login=<mydomain>
password=<mypassword>
@
najel
  • 115

1 Answers1

1

I just ran into this issue too.
Dwight Lyle filed a bug report in May. https://bugs.launchpad.net/ubuntu/+source/ddclient/+bug/1688052

The steps I took to repair the boot disk are inspired by Dwight's description. TL;DR I mounted the disk that wouldn't boot to another instance, chroot'd into it, apt-get purged ddclient, and created a new instance using the (now) functioning disk.

And in detail:

In the GCE console click on the broken instance to view details about it. Click edit and unselect "delete boot disk when instance is deleted".

Now, delete the instance that wouldn't boot (after double checking that you're not about to delete the disk too!).

In Google Coud Shell:


gcloud compute instances attach-disk WORKING_INSTANCE --disk DISK_OF_BROKEN_INSTANCE --device-name new_disk

In a working GCE instance:


lsblk       # to know which disk to mount
sudo mount /dev/sdb1 /mnt/      # sdb1 was the disk not mounted as root (the broken disk)
sudo chroot /mnt/
sudo apt-get purge ddclient
exit
sudo umount /mnt

In Google Coud Shell:


gcloud compute instances detach-disk WORKING_INSTANCE --disk DISK_OF_BROKEN_INSTANCE

Back in the GCE console, go to the disks tab, find the disk you just modified, and create a new instance with it. With any luck, you should be able to launch this and SSH into it!