NTP fudge network source stratum
After some more research it seems "fudging" the stratum level of a network source is not possible. So I moved on and tried dtoubeli's answer. To my surprise, simply making my local time server a stratum level 2 (equal to the 3rd party device) did not always cause it to be the preferred time source. My local ntpd would still rule them both as "false ticks". For what reason, I'm not sure, but I'm guessing because they were the only two time sources, and their times were so far off.
The biggest problem here is the fact that my 3rd party device doesn't seem to hold a very consistent time, in fact it fluctuates a lot. The solution to my problem was adding several other accurate time sources (pool.ntp.org) to my /etc/ntp.conf
. Now my local server is always chosen as the preferred time source, often times despite having a higher stratum level than some of the servers in the pool.
You could try running your local ntpd at stratum 2. Instead of pointing it to pool.ntp.org just create a list of 5-7 stratum 1 servers and add them to configuration directly. With reference server at stratum 1 yours will be running at stratum 2. Then your prefer
option may work.
However, from my experience stratum level is not always the winning factor in primary source election. I think latency and jitter have significant influence as well. I had noticed on several occasions that lower stratum server was elected as primary source even though there were several higher stratum servers available only because it had the lowest latency. That is why I cannot guaranty that suggested approach will work.
I have a "high stratum (10)" hardware GPS time source in our local network that gives me a falsetick status (x) in ntpq, I found that using server [x.x.x.x] true
(x=IP address) in ntp.conf will bypass the falsetick checking, allowing it to be a possible candidate. Looks like the stratum number does not always means higher priority.