Routing vẫn chạy, ping vẫn thông, nhưng khi kiểm tra log thì timestamp trên mỗi thiết bị lại lệch nhau.
Đây là một vấn đề khá dễ bị bỏ qua khi xây dựng Network Lab. Nhìn bên ngoài, hệ thống vẫn hoạt động bình thường, nhưng khi cần phân tích Syslog, SNMP, security event hoặc xác định chính xác thứ tự xảy ra của một sự cố, việc mỗi thiết bị hiển thị một thời điểm khác nhau sẽ trở thành một vấn đề thực sự.
Đó cũng là lý do mình thực hiện bài lab Implement NTP trên Cisco, với mô hình đồng bộ thời gian theo từng tầng:
R3 → R2 → R1 → LAN
Trong bài lab này, R3 đóng vai trò NTP Master, R2 và R1 lần lượt nhận thời gian từ thiết bị phía trên, sau đó R1 tiếp tục cung cấp NTP Broadcast cho các thiết bị trong LAN. 🔹 1. Kiểm tra routing trước khi cấu hình NTP
Topology gồm:
Các router và Layer 3 Switch sử dụng OSPFv2.
Trước tiên cần đảm bảo các thiết bị reach được R3:
D1# ping 172.16.1.2
Sending 5, 100-byte ICMP Echos to 172.16.1.2:
!!!!!
Success rate is 100 percent (5/5)
Đây là bước mình thấy rất quan trọng.
Routing chưa thông thì chưa nên troubleshoot NTP. 🔹 2. Kiểm tra thời gian ban đầu
Trên D1:
D1# show clock
Thời gian hiển thị không chính xác và giữa các thiết bị cũng không đồng nhất.
Đây chính là vấn đề mà NTP cần giải quyết. 🔹 3. Cấu hình R3 làm NTP Master
Đầu tiên thiết lập thời gian cho R3:
R3# clock set 19:25:00 20 Jan 2020
Cấu hình timezone:
R3(config)# clock timezone EST -5
Kiểm tra:
R3# show clock detail
Sau đó cấu hình R3 trở thành NTP Master:
R3(config)# ntp master 10
Kiểm tra trạng thái:
R3# show ntp status
Kết quả mong đợi:
Clock is synchronized, stratum 10,
reference is 127.127.1.1
Ở đây cần nhớ:
Stratum càng thấp thì nguồn thời gian càng gần nguồn tham chiếu và thường được ưu tiên hơn.
R3 đang đóng vai trò nguồn thời gian chính với stratum 10. 🔹 4. Cho R2 đồng bộ với R3
Trên R2:
R2(config)# ntp server 172.16.1.2
R2(config)# clock timezone EST -5
Sau đó kiểm tra:
R2# show clock detail
R2# show ntp associations
R2# show ntp status
Điểm mình quan tâm nhất là:
Time source is NTP
Khi R2 đồng bộ thành công với R3, R2 sẽ trở thành stratum 11.
Mô hình lúc này:
R3 → R2
R3 cung cấp thời gian, R2 nhận thời gian từ R3. 🔹 5. Đồng bộ tiếp xuống R1
R1 sẽ lấy thời gian từ R2:
R1(config)# ntp server 172.16.0.1
R1(config)# clock timezone EST -5
Kiểm tra:
R1# show clock detail
R1# show ntp associations
R1# show ntp status
Kết quả mong đợi:
Clock is synchronized, stratum 12,
reference is 172.16.0.1
Lúc này hierarchy đã trở thành:
R3 → R2 → R1
Đây là phần mình thấy khá thú vị khi làm lab, vì nhìn vào hierarchy sẽ dễ hiểu NTP hoạt động như thế nào hơn là chỉ nhớ câu lệnh ntp server. 🔹 6. Triển khai NTP Broadcast
Tiếp theo, R1 sẽ cung cấp thời gian cho các thiết bị trong mạng LAN 10.10.0.0/29.
Trên R1:
R1(config)# interface g0/0/1
R1(config-if)# ntp broadcast
A1 nhận NTP Broadcast:
A1(config)# interface vlan 1
A1(config-if)# ntp broadcast client
A1(config-if)# clock timezone EST -5
Kiểm tra:
A1# show clock detail
A1# show ntp associations
A1# show ntp status
Nếu cấu hình đúng, A1 sẽ có:
Time source is NTP
🔹 7. Cấu hình D1 và D2
D1:
D1(config)# interface g1/0/5
D1(config-if)# ntp broadcast client
D1(config)# clock timezone EST -5
D2:
D2(config)# interface g1/0/5
D2(config-if)# ntp broadcast client
D2(config)# clock timezone EST -5
Kiểm tra:
D2# show ntp associations
D2# show ntp status
Khi thấy:
Clock is synchronized
và reference trỏ về 10.10.0.1, có thể xác nhận D2 đã nhận thời gian từ R1. 🔎 8. Kiểm tra toàn bộ hệ thống
Cuối cùng, mình kiểm tra:
R3# show clock detail
R2# show clock detail
R1# show clock detail
D1# show clock detail
D2# show clock detail
A1# show clock detail
Không nhất thiết thời gian trên tất cả thiết bị phải giống nhau tuyệt đối đến từng giây ngay lập tức.
Quan trọng là kiểm tra được:
Time source is NTP
và các thiết bị đã synchronize thành công.
Mô hình hoàn chỉnh:
R3 – NTP Master
↓
R2 – NTP Client/Server
↓
R1 – NTP Client/Server
↓
A1 + D1 + D2 – Broadcast Clients 💡 Một vài kinh nghiệm sau khi làm lab
NTP nhìn qua chỉ có vài câu lệnh, nhưng khi troubleshoot mình thấy nên đi theo đúng thứ tự:
1. Routing phải thông.
2. NTP Master phải có thời gian đúng.
3. Kiểm tra show ntp associations.
4. Kiểm tra show ntp status.
5. Cuối cùng kiểm tra show clock detail.
Nếu show ntp associations chưa xuất hiện peer hoặc reach chưa tăng, cũng đừng vội kết luận NTP bị lỗi. NTP cần thời gian để polling và thực hiện synchronization.
Điều mình rút ra sau bài lab này là:
NTP không đơn thuần là cấu hình để các thiết bị “hiển thị cùng giờ”.
Trong hệ thống thực tế, timestamp chính xác giúp việc đọc log, phân tích sự kiện bảo mật, troubleshooting và xác định thứ tự xảy ra của sự cố đáng tin cậy hơn rất nhiều.
Một bài lab khá cơ bản, nhưng khi tự tay cấu hình từ R3 → R2 → R1 → LAN, mình hiểu rõ hơn rất nhiều về NTP hierarchy, stratum và broadcast synchronization.
Đây là một vấn đề khá dễ bị bỏ qua khi xây dựng Network Lab. Nhìn bên ngoài, hệ thống vẫn hoạt động bình thường, nhưng khi cần phân tích Syslog, SNMP, security event hoặc xác định chính xác thứ tự xảy ra của một sự cố, việc mỗi thiết bị hiển thị một thời điểm khác nhau sẽ trở thành một vấn đề thực sự.
Đó cũng là lý do mình thực hiện bài lab Implement NTP trên Cisco, với mô hình đồng bộ thời gian theo từng tầng:
R3 → R2 → R1 → LAN
Trong bài lab này, R3 đóng vai trò NTP Master, R2 và R1 lần lượt nhận thời gian từ thiết bị phía trên, sau đó R1 tiếp tục cung cấp NTP Broadcast cho các thiết bị trong LAN. 🔹 1. Kiểm tra routing trước khi cấu hình NTP
Topology gồm:
- R1 – R2 – R3
- D1, D2: Layer 3 Switch
- A1: Layer 2 Switch
Các router và Layer 3 Switch sử dụng OSPFv2.
Trước tiên cần đảm bảo các thiết bị reach được R3:
D1# ping 172.16.1.2
Sending 5, 100-byte ICMP Echos to 172.16.1.2:
!!!!!
Success rate is 100 percent (5/5)
Đây là bước mình thấy rất quan trọng.
Routing chưa thông thì chưa nên troubleshoot NTP. 🔹 2. Kiểm tra thời gian ban đầu
Trên D1:
D1# show clock
Thời gian hiển thị không chính xác và giữa các thiết bị cũng không đồng nhất.
Đây chính là vấn đề mà NTP cần giải quyết. 🔹 3. Cấu hình R3 làm NTP Master
Đầu tiên thiết lập thời gian cho R3:
R3# clock set 19:25:00 20 Jan 2020
Cấu hình timezone:
R3(config)# clock timezone EST -5
Kiểm tra:
R3# show clock detail
Sau đó cấu hình R3 trở thành NTP Master:
R3(config)# ntp master 10
Kiểm tra trạng thái:
R3# show ntp status
Kết quả mong đợi:
Clock is synchronized, stratum 10,
reference is 127.127.1.1
Ở đây cần nhớ:
Stratum càng thấp thì nguồn thời gian càng gần nguồn tham chiếu và thường được ưu tiên hơn.
R3 đang đóng vai trò nguồn thời gian chính với stratum 10. 🔹 4. Cho R2 đồng bộ với R3
Trên R2:
R2(config)# ntp server 172.16.1.2
R2(config)# clock timezone EST -5
Sau đó kiểm tra:
R2# show clock detail
R2# show ntp associations
R2# show ntp status
Điểm mình quan tâm nhất là:
Time source is NTP
Khi R2 đồng bộ thành công với R3, R2 sẽ trở thành stratum 11.
Mô hình lúc này:
R3 → R2
R3 cung cấp thời gian, R2 nhận thời gian từ R3. 🔹 5. Đồng bộ tiếp xuống R1
R1 sẽ lấy thời gian từ R2:
R1(config)# ntp server 172.16.0.1
R1(config)# clock timezone EST -5
Kiểm tra:
R1# show clock detail
R1# show ntp associations
R1# show ntp status
Kết quả mong đợi:
Clock is synchronized, stratum 12,
reference is 172.16.0.1
Lúc này hierarchy đã trở thành:
R3 → R2 → R1
Đây là phần mình thấy khá thú vị khi làm lab, vì nhìn vào hierarchy sẽ dễ hiểu NTP hoạt động như thế nào hơn là chỉ nhớ câu lệnh ntp server. 🔹 6. Triển khai NTP Broadcast
Tiếp theo, R1 sẽ cung cấp thời gian cho các thiết bị trong mạng LAN 10.10.0.0/29.
Trên R1:
R1(config)# interface g0/0/1
R1(config-if)# ntp broadcast
A1 nhận NTP Broadcast:
A1(config)# interface vlan 1
A1(config-if)# ntp broadcast client
A1(config-if)# clock timezone EST -5
Kiểm tra:
A1# show clock detail
A1# show ntp associations
A1# show ntp status
Nếu cấu hình đúng, A1 sẽ có:
Time source is NTP
🔹 7. Cấu hình D1 và D2
D1:
D1(config)# interface g1/0/5
D1(config-if)# ntp broadcast client
D1(config)# clock timezone EST -5
D2:
D2(config)# interface g1/0/5
D2(config-if)# ntp broadcast client
D2(config)# clock timezone EST -5
Kiểm tra:
D2# show ntp associations
D2# show ntp status
Khi thấy:
Clock is synchronized
và reference trỏ về 10.10.0.1, có thể xác nhận D2 đã nhận thời gian từ R1. 🔎 8. Kiểm tra toàn bộ hệ thống
Cuối cùng, mình kiểm tra:
R3# show clock detail
R2# show clock detail
R1# show clock detail
D1# show clock detail
D2# show clock detail
A1# show clock detail
Không nhất thiết thời gian trên tất cả thiết bị phải giống nhau tuyệt đối đến từng giây ngay lập tức.
Quan trọng là kiểm tra được:
Time source is NTP
và các thiết bị đã synchronize thành công.
Mô hình hoàn chỉnh:
R3 – NTP Master
↓
R2 – NTP Client/Server
↓
R1 – NTP Client/Server
↓
A1 + D1 + D2 – Broadcast Clients 💡 Một vài kinh nghiệm sau khi làm lab
NTP nhìn qua chỉ có vài câu lệnh, nhưng khi troubleshoot mình thấy nên đi theo đúng thứ tự:
1. Routing phải thông.
2. NTP Master phải có thời gian đúng.
3. Kiểm tra show ntp associations.
4. Kiểm tra show ntp status.
5. Cuối cùng kiểm tra show clock detail.
Nếu show ntp associations chưa xuất hiện peer hoặc reach chưa tăng, cũng đừng vội kết luận NTP bị lỗi. NTP cần thời gian để polling và thực hiện synchronization.
Điều mình rút ra sau bài lab này là:
NTP không đơn thuần là cấu hình để các thiết bị “hiển thị cùng giờ”.
Trong hệ thống thực tế, timestamp chính xác giúp việc đọc log, phân tích sự kiện bảo mật, troubleshooting và xác định thứ tự xảy ra của sự cố đáng tin cậy hơn rất nhiều.
Một bài lab khá cơ bản, nhưng khi tự tay cấu hình từ R3 → R2 → R1 → LAN, mình hiểu rõ hơn rất nhiều về NTP hierarchy, stratum và broadcast synchronization.