All right, thanks for the precious info you guys provided. After a bit of research and testing here is the solution that I am using.
As Canonical stated here
Since Ubuntu 16.04, timedatectl/timesyncd (which are part of systemd)
replace most of ntpdate/ntp.
[...]
ntpdate is now considered deprecated in favor of timedatectl (or
chrony) and is no longer installed by default. timesyncd will
generally do the right thing keeping your time in sync, and chrony
will help with more complex cases.
So I gave Chrony a shot. I also checked:
- this link here
- Stack question,
- The Red Hat page
- This tutorial
So long story short...
Machine A - Configured as NTP server
sudo apt update && sudo apt upgrade
sudo apt install chrony
sudo vim /etc/chrony/chrony.conf
Configure the NTP server make sure to add local stratum 10
and allow 192.168.0.0/24 to force the server to work normally even if it is disconnected from the internet and that clients on this network are allowed to connect to our Chrony NTP server for time syncing.
confdir /etc/chrony/conf.d
pool ntp.ubuntu.com iburst maxsources 4
pool 0.ubuntu.pool.ntp.org iburst maxsources 1
pool 1.ubuntu.pool.ntp.org iburst maxsources 1
pool 2.ubuntu.pool.ntp.org iburst maxsources 2
allow 192.168.0.0/24
sourcedir /run/chrony-dhcp
sourcedir /etc/chrony/sources.d
keyfile /etc/chrony/chrony.keys
driftfile /var/lib/chrony/chrony.drift
ntsdumpdir /var/lib/chrony
logdir /var/log/chrony
maxupdateskew 100.0
rtcsync
makestep 1 3
leapsectz right/UTC
Restart the chrony service, check that is running and enable it to start on boot
sudo systemctl restart chrony
sudo systemctl status chrony
CTRL+C
sudo systemctl enable chrony
Machine B - Configured as Chrony Client
Synch the date and time with a pool of servers and set the 192.168.0.1 or whichever IP you have as the preferred server.
sudo apt update && sudo apt upgrade
sudo apt install chrony
sudo vim /etc/chrony/chrony.conf
Add your local NTP server to the pool.
pool 192.168.0.1 iburst prefer
keyfile /etc/chrony/chrony.keys
driftfile /var/lib/chrony/chrony.drift
logdir /var/log/chrony
log measurements statistics tracking
maxupdateskew 100.0
rtcsync
makestep 1.0 3
Restart, check the service and enable it at startup
sudo systemctl restart chrony
sudo systemctl status chrony
CTRL+C
sudo systemctl enable chrony
Finally, check if it gets the update from the right source
chronyc tracking
chronyc sources
Conclusion
Rock n' roll and keep pushing!
I will be conducting a brief test and will update this post with any issues I come across.