Synchronizing time across network devices is a **critical service**. While it might not seem important at first glance, many key network functions rely on **accurate clocks**, including:
- Time-based **ACLs**
- Expiring **passwords** and **certificates**
- **Key exchange validation** for VPNs and secure tunnels
- Accurate **log timestamps** for troubleshooting and correlation
> **NTP uses UDP port 123**
NTP works on a **hierarchical model** called the **Stratum model**, which defines the "distance" a device is from the **reference clock** (usually an atomic or GPS clock).
- **Stratum 0**: Reference clock (atomic, GPS, etc.)
- **Stratum 1**: Directly connected to Stratum 0
- **Stratum 2+**: Syncs to a device at a lower stratum
Each hop **away from the atomic clock** increases the stratum level.
## NTP Roles
Devices can participate in NTP in one of several roles:
#### NTP Client
- Syncs time from a specified server
#### NTP Server
- Provides time to other clients or peers
- Use `ntp master` if you're making a router or switch act as an authoritative clock source
#### NTP Peer
- Two devices at the **same stratum** can peer
- Helps provide **redundancy** and **resilience**
- If both peers lose connection to their stratum-lower server, they can **stay in sync with each other**
> NTP Peering is great for maintaining consistent time across a zone when the upstream clock source is temporarily unreachable.
## NTP Configuration
```none
! Configure as a time source (typically on the "server" side)
ntp master [stratum]
! Configure as an NTP client
ntp server [ipaddress]
! Peer with another device (must be same stratum)
ntp peer [ipaddress]
! Enable NTP authentication & Define authentication key
ntp authenticate
ntp authentication-key [number] md5 [key-string]
ntp trusted-key [number]
ntp server [address] key [number]
```
```none
show ntp status ! View current sync status and stratum
show ntp associations ! View peers/servers and their reachability
```
## Precision Time Protocol (PTP)
While NTP provides reasonable time synchronization (typically accurate within milliseconds), the Precision Time Protocol (PTP) is designed for applications that require **much higher precision**, often in the **sub-microsecond** range.
PTP is defined in **IEEE 1588** and is commonly used in environments such as:
- Industrial automation
- Telecommunications (e.g., mobile backhaul, 5G)
- Financial trading systems
- Power distribution networks
| Feature | NTP | PTP |
|--------------------|-------------------------------|-------------------------------|
| Accuracy | Milliseconds | Sub-microseconds |
| Transport Protocol | UDP (port 123) | UDP (port 319/320) or Ethernet |
| Hardware Support | Optional | Typically hardware-assisted |
| Use Case | General network devices | Precision-critical systems |