Let's assume you have a Cisco CUCM server(s) setup to use public NTP servers.
Let's assume those servers are unreliable, have been retired or are unreachable and you want to change them in CUCM.
Let's also assume you are running in CUCM in VMWare and you realize changing the NTP servers will invalidate your licenses because the license MAC will change.
Let's assume rehosting the licenses might be time consuming, or for whatever reason, an issue.
Let's assume you know you could, but don't want to root the CUCM server to spoof the license MAC.
You know what I mean, right?
Here's a dirty little hack.
Use a voice gateway as your NTP master (you could use any device with a real clock):
; setup your time zone correctly
clock timezone EST -5
clock summer-time EDT recurring
; setup name look ups
ip name-server 18.104.22.168
ip name-server 22.214.171.124
; setup some name servers
ntp server 0.north-america.pool.ntp.org
ntp server 1.north-america.pool.ntp.org
ntp server 2.north-america.pool.ntp.org
; setup the gateway as an NTP master
ntp master 5
; add a loopback interface
; use the address of the CUCM NTP server that's unreliable
ip address 126.96.36.199 255.255.255.255
; verify your NTP status
show ntp associations
show ntp status
If the voice gateway is not your CUCM's default gateway, add a route to your new time server (you could have just made the default gateway the NTP master, but let's say it's an old layer 3 switch without an internal clock):
; create a static route to the old unreliable NTP server
; and route it to the voice gateway address
ip route 188.8.131.52 255.255.255.255 192.168.1.10
You now are using an internal NTP server (the voice gateway's loopback) that you have control over (courtesy of some basic routing), synching with a reliable list of public clocks, and don't have to fiddle with CUCM.
Maybe dirty. Definitely works. Go nuts.