Time synchronization is a critical foundation for any server environment. If your system clock drifts, you risk issues such as:
- SSL/TLS certificate validation errors
- Authentication failures (Kerberos, LDAP, SSO)
- Incorrect log timestamps, making audits impossible
- Cron jobs running at the wrong time
- Database replication errors
To avoid these problems, Linux systems use the Network Time Protocol (NTP). By default, most distributions rely on the global NTP pool project. However, for servers based in India, using National Informatics Centre (NIC) maintained NTP servers gives you more accurate and reliable synchronization:
samay1.nic.insamay2.nic.in
Why Use Indian NTP Servers?
- Lower latency – Much closer geographically than global servers.
- Official Indian Standard Time – Maintained by NIC, aligned with IST.
- Government grade reliability – Ideal for financial, telecom, and compliance systems.
- Fallback independence – Even if international connectivity is poor, NIC servers remain accessible locally.
server vs pool in NTP Configuration
When configuring NTP or Chrony, you’ll encounter two keywords: server and pool. They look similar but behave differently.
The server Directive
- Points directly to one specific NTP server.
- Example:
server samay1.nic.in iburst
- Chrony will keep querying this server unless it becomes unreachable.
- If you list multiple
serverentries, it will choose the best available.
Use server when:
- You trust specific servers (e.g., NIC-operated samay1/samay2).
- Compliance requires fixed time sources.
- Accuracy and predictability are important (production servers).
The pool Directive
- Refers to a DNS pool that resolves to many rotating servers.
- Example:
pool 2.pool.ntp.org iburst
- Provides automatic redundancy. If one server is down, another is selected.
- Used mostly for general-purpose systems.
Use pool when:
- Running desktops or non-critical servers.
- You want many backup sources without manually listing them.
- You’re outside India without local trusted servers.
Comparison: server vs pool
| Feature | server | pool |
|---|---|---|
| Definition | Single, fixed NTP server | Dynamic list of multiple servers |
| Example | server samay1.nic.in iburst | pool 2.pool.ntp.org iburst |
| Redundancy | Only if you manually add more servers | Automatic — pool rotates among servers |
| Best For | Enterprise, compliance, trusted sources | General-purpose, non-critical systems |
| Reliability | High (when servers are stable) | Variable (quality depends on pool entries) |
| Use Case in India | Yes (samay1/samay2) | Optional fallback to global pools |
👉 For Indian servers, use server samay1.nic.in and server samay2.nic.in. Optionally, add one pool entry for global fallback.
Configuring NTP on Rocky Linux (EL Family)
Rocky Linux, AlmaLinux, and RHEL use Chrony as the default NTP client.
Step 1: Install Chrony
sudo dnf install chrony -y
Step 2: Configure Chrony
sudo nano /etc/chrony.conf
Comment out default pool:
# pool 2.centos.pool.ntp.org iburst
Add NIC servers:
server samay1.nic.in iburst
server samay2.nic.in iburst
(Optional: add a fallback)
pool 0.pool.ntp.org iburst
Step 3: Restart and Enable Chrony
sudo systemctl restart chronyd
sudo systemctl enable chronyd
Step 4: Verify
chronyc sources -v
chronyc tracking
Configuring NTP on Debian/Ubuntu
Debian and Ubuntu can use systemd-timesyncd or Chrony.
Option 1: Using systemd-timesyncd
Edit config:
sudo nano /etc/systemd/timesyncd.conf
Add servers:
[Time]
NTP=samay1.nic.in samay2.nic.in
Restart service:
sudo systemctl restart systemd-timesyncd
Verify:
timedatectl status
Option 2: Using Chrony
Install Chrony:
sudo apt update
sudo apt install chrony -y
Edit config:
sudo nano /etc/chrony/chrony.conf
Replace pools with:
server samay1.nic.in iburst
server samay2.nic.in iburst
# Optional fallback
pool 0.pool.ntp.org iburst
Restart Chrony:
sudo systemctl restart chrony
sudo systemctl enable chrony
Verify:
chronyc sources -v
chronyc tracking
Testing NTP Servers
You can test NIC servers before committing changes:
ntpdate -q samay1.nic.in
ntpdate -q samay2.nic.in
A successful response will show the time offset in milliseconds.
Best Practices for Enterprise Servers
- Always configure at least two fixed servers (
samay1,samay2). - Add one
poolentry as a global backup. - Use
serverfor predictable, trusted time sources. - Use
poolonly for redundancy on non-critical nodes. - Monitor drift with:
chronyc tracking
- Ensure all servers in a cluster use the same time sources.
Conclusion
For Indian Rocky Linux and Debian/Ubuntu servers, the best configuration is:
server samay1.nic.in iburst
server samay2.nic.in iburst
This ensures synchronization with official Indian Standard Time (IST) while maintaining accuracy and reliability. Optionally, add a global pool for fallback, but for enterprise systems, trusted fixed servers should always take priority.