CÁC GIAO THỨC QUẢN TRỊ THIẾT BỊ (2)
NETWORK TIME PROTOCOL (NTP)
Mỗi thiết bị mạng đều có một khái niệm về ngày giờ hệ thống. Ví dụ, các thông báo nhật ký được đề cập trong phần đầu tiên của chương này đều có dấu thời gian ghi lại ngày và giờ. Bây giờ, hãy tưởng tượng bạn đang xem tất cả các thông báo nhật ký từ nhiều bộ định tuyến và thiết bị chuyển mạch được lưu trữ trên một máy chủ syslog. Mặc dù tất cả các thông báo đều có dấu thời gian, nhưng làm thế nào để đảm bảo rằng chúng nhất quán? Làm thế nào để tất cả thiết bị có thể đồng bộ hóa thời gian hệ thống để bạn có thể dễ dàng phân tích và so sánh các nhật ký trên syslog server? Và nếu một sự cố ảnh hưởng đến các thiết bị ở ba múi giờ khác nhau, làm thế nào để bạn có thể hiểu rõ dòng thời gian của sự kiện đó?
Ví dụ, hãy xem xét các thông báo trên hai bộ định tuyến, R1 và R2, như trong Ví dụ 9-6. Hai bộ định tuyến này không đồng bộ hóa đồng hồ hệ thống. Một sự cố liên tục xảy ra trên liên kết nối tiếp giữa R1 và R2. Tuy nhiên, khi kỹ sư mạng nhìn thấy một số tin nhắn từ R1, lúc 13:38:39 (khoảng 1:40 chiều), anh ấy không nghĩ đến việc tìm kiếm các tin nhắn từ R2 có dấu thời gian là khoảng 9:45 sáng.

Trên thực tế, các thông báo trong cả hai phần của Ví dụ 9-6 thực ra chỉ cách nhau 0,5 giây, vì đã chạy lệnh shutdown trên một trong hai bộ định tuyến. Tuy nhiên, do đồng hồ hệ thống của hai bộ định tuyến không được đồng bộ hóa, nên dấu thời gian trên nhật ký hiển thị khác nhau, khiến các thông báo trông như không liên quan đến nhau. Nếu đồng hồ trên cả hai bộ định tuyến được đồng bộ, các thông báo sẽ có dấu thời gian gần như giống hệt nhau, phản ánh chính xác thời điểm sự kiện xảy ra. Điều này giúp việc đọc và phân tích nhật ký sự kiện trở nên dễ dàng và chính xác hơn.
Bộ định tuyến (Router), bộ chuyển mạch (Switch), các thiết bị mạng khác và hầu như mọi thiết bị trong thế giới CNTT đều có đồng hồ thời gian hệ thống. Vì nhiều lý do khác nhau, việc đồng bộ hóa các đồng hồ này để tất cả thiết bị có cùng thời gian, ngoại trừ sự khác biệt về múi giờ, là điều hợp lý. Giao thức Thời gian Mạng (NTP) cung cấp phương tiện để thực hiện điều đó.
NTP cung cấp cho mọi thiết bị một phương thức để đồng bộ hóa đồng hồ thời gian hệ thống. NTP sử dụng các thông điệp giao thức giúp thiết bị xác định dấu thời gian của các thiết bị khác. Các thiết bị liên tục trao đổi dấu thời gian thông qua các thông điệp NTP, với một thiết bị điều chỉnh đồng hồ của mình để khớp với thiết bị kia, cuối cùng đồng bộ hóa thời gian giữa chúng. Nhờ đó, các hoạt động yêu cầu sự chính xác về thời gian, chẳng hạn như dấu thời gian trên nhật ký hệ thống, sẽ hoạt động hiệu quả hơn.
Phần này sẽ trình bày tuần tự các chủ đề dẫn đến những cấu hình NTP phổ biến thường thấy trong mạng thực tế. Trước tiên, phần này đề cập đến các thiết lập cơ bản, như múi giờ và thời gian ban đầu được cấu hình trên bộ định tuyến hoặc bộ chuyển mạch, sau đó là cấu hình NTP cơ bản. Tiếp theo, nội dung sẽ đi sâu vào một số cơ chế nội bộ của NTP, bao gồm cách NTP xác định nguồn dữ liệu thời gian (đồng hồ tham chiếu) và đánh giá độ chính xác của từng nguồn thời gian (cấp độ stratum).
Cuối cùng, phần này mở rộng sang cấu hình NTP nâng cao, giải thích các cấu hình doanh nghiệp điển hình, bao gồm việc sử dụng nhiều lệnh NTP để đảm bảo tính dự phòng và tận dụng giao diện loopback nhằm tăng tính khả dụng của hệ thống.
Thiết lập Thời gian và Múi giờ
NTP có nhiệm vụ đồng bộ hóa đồng hồ hệ thống, nhưng sẽ hoạt động hiệu quả hơn nếu bạn đặt thời gian thiết bị gần với thời gian thực tế trước khi kích hoạt máy khách NTP bằng lệnh ntp server. Ví dụ, nếu đồng hồ hiện tại hiển thị 8:52 tối, thì trước khi bật NTP trên một bộ định tuyến hoặc bộ chuyển mạch mới để đồng bộ hóa với thiết bị khác, nên đặt thời gian thiết bị, thiết lập múi giờ chính xác, bật tính năng điều chỉnh giờ tiết kiệm ánh sáng ban ngày, rồi mới kích hoạt NTP. Việc đặt thời gian chính xác ngay từ đầu giúp NTP đồng bộ hóa nhanh chóng và chính xác hơn.
Ví dụ 9-7 minh họa cách thiết lập ngày, giờ, múi giờ và giờ tiết kiệm ánh sáng ban ngày trên thiết bị. Đáng chú ý, quá trình này yêu cầu sử dụng hai lệnh cấu hình (để đặt múi giờ và giờ tiết kiệm ánh sáng ban ngày) cùng với một lệnh EXEC để thiết lập ngày và giờ trên bộ định tuyến.


Trước tiên, hãy tập trung vào hai lệnh cấu hình. Bạn nên đặt hai lệnh này trước khi thiết lập thời gian trong ngày bằng lệnh EXEC clock set, vì chúng ảnh hưởng đến thời gian được đặt.
Trong lệnh đầu tiên, phần clock timezone xác định lệnh và một từ khóa. Tham số tiếp theo, "EST", có thể là bất kỳ giá trị nào bạn chọn, nhưng nên đặt theo tên múi giờ của thiết bị để đảm bảo tính trực quan trong các lệnh show. Dù bạn tự đặt tên, nhưng nó cần có ý nghĩa đối với tất cả mọi người. Trong ví dụ này, vnpro đã chọn EST (viết tắt của US Eastern Standard Time – Giờ Chuẩn Miền Đông Hoa Kỳ).
Tham số "-5" chỉ ra rằng thiết bị này chậm hơn 5 giờ so với Giờ Phối hợp Quốc tế (UTC).
Phần clock summer-time trong lệnh thứ hai xác định cách xử lý giờ tiết kiệm ánh sáng ban ngày.
Một lần nữa, trường "EDT" là giá trị có thể tùy chỉnh, nhưng bạn nên chọn một tên có ý nghĩa. Giá trị này sẽ xuất hiện trong các lệnh show khi giờ tiết kiệm ánh sáng ban ngày có hiệu lực. Trong ví dụ này, chọn EDT, vì nó là viết tắt của Eastern Daylight Time, tương ứng với múi giờ EST khi có sự thay đổi do giờ tiết kiệm ánh sáng ban ngày.
Cuối cùng, từ khóa recurring yêu cầu bộ định tuyến tự động điều chỉnh thời gian – tiến lên một giờ vào mùa hè và lùi lại một giờ khi kết thúc mùa.
Sau đó, lệnh EXEC clock set được sử dụng để đặt thời gian, ngày, tháng và năm. Tuy nhiên, cần lưu ý rằng IOS sẽ diễn giải thời gian nhập vào dựa trên múi giờ và giờ tiết kiệm ánh sáng ban ngày đã được cấu hình trước đó.
Trong ví dụ, lệnh clock set đặt thời gian thành 20:52:49 (định dạng 24 giờ, không phải 12 giờ AM/PM). Khi kiểm tra bằng lệnh show clock, bạn sẽ thấy thời gian hiển thị là EDT, thay vì UTC, do ảnh hưởng của hai lệnh cấu hình trước đó.
NETWORK TIME PROTOCOL (NTP)
Mỗi thiết bị mạng đều có một khái niệm về ngày giờ hệ thống. Ví dụ, các thông báo nhật ký được đề cập trong phần đầu tiên của chương này đều có dấu thời gian ghi lại ngày và giờ. Bây giờ, hãy tưởng tượng bạn đang xem tất cả các thông báo nhật ký từ nhiều bộ định tuyến và thiết bị chuyển mạch được lưu trữ trên một máy chủ syslog. Mặc dù tất cả các thông báo đều có dấu thời gian, nhưng làm thế nào để đảm bảo rằng chúng nhất quán? Làm thế nào để tất cả thiết bị có thể đồng bộ hóa thời gian hệ thống để bạn có thể dễ dàng phân tích và so sánh các nhật ký trên syslog server? Và nếu một sự cố ảnh hưởng đến các thiết bị ở ba múi giờ khác nhau, làm thế nào để bạn có thể hiểu rõ dòng thời gian của sự kiện đó?
Ví dụ, hãy xem xét các thông báo trên hai bộ định tuyến, R1 và R2, như trong Ví dụ 9-6. Hai bộ định tuyến này không đồng bộ hóa đồng hồ hệ thống. Một sự cố liên tục xảy ra trên liên kết nối tiếp giữa R1 và R2. Tuy nhiên, khi kỹ sư mạng nhìn thấy một số tin nhắn từ R1, lúc 13:38:39 (khoảng 1:40 chiều), anh ấy không nghĩ đến việc tìm kiếm các tin nhắn từ R2 có dấu thời gian là khoảng 9:45 sáng.
Ví dụ 9 - 1 So sánh Nhật ký từ R1 và R2
Trên thực tế, các thông báo trong cả hai phần của Ví dụ 9-6 thực ra chỉ cách nhau 0,5 giây, vì đã chạy lệnh shutdown trên một trong hai bộ định tuyến. Tuy nhiên, do đồng hồ hệ thống của hai bộ định tuyến không được đồng bộ hóa, nên dấu thời gian trên nhật ký hiển thị khác nhau, khiến các thông báo trông như không liên quan đến nhau. Nếu đồng hồ trên cả hai bộ định tuyến được đồng bộ, các thông báo sẽ có dấu thời gian gần như giống hệt nhau, phản ánh chính xác thời điểm sự kiện xảy ra. Điều này giúp việc đọc và phân tích nhật ký sự kiện trở nên dễ dàng và chính xác hơn.
Bộ định tuyến (Router), bộ chuyển mạch (Switch), các thiết bị mạng khác và hầu như mọi thiết bị trong thế giới CNTT đều có đồng hồ thời gian hệ thống. Vì nhiều lý do khác nhau, việc đồng bộ hóa các đồng hồ này để tất cả thiết bị có cùng thời gian, ngoại trừ sự khác biệt về múi giờ, là điều hợp lý. Giao thức Thời gian Mạng (NTP) cung cấp phương tiện để thực hiện điều đó.
NTP cung cấp cho mọi thiết bị một phương thức để đồng bộ hóa đồng hồ thời gian hệ thống. NTP sử dụng các thông điệp giao thức giúp thiết bị xác định dấu thời gian của các thiết bị khác. Các thiết bị liên tục trao đổi dấu thời gian thông qua các thông điệp NTP, với một thiết bị điều chỉnh đồng hồ của mình để khớp với thiết bị kia, cuối cùng đồng bộ hóa thời gian giữa chúng. Nhờ đó, các hoạt động yêu cầu sự chính xác về thời gian, chẳng hạn như dấu thời gian trên nhật ký hệ thống, sẽ hoạt động hiệu quả hơn.
Phần này sẽ trình bày tuần tự các chủ đề dẫn đến những cấu hình NTP phổ biến thường thấy trong mạng thực tế. Trước tiên, phần này đề cập đến các thiết lập cơ bản, như múi giờ và thời gian ban đầu được cấu hình trên bộ định tuyến hoặc bộ chuyển mạch, sau đó là cấu hình NTP cơ bản. Tiếp theo, nội dung sẽ đi sâu vào một số cơ chế nội bộ của NTP, bao gồm cách NTP xác định nguồn dữ liệu thời gian (đồng hồ tham chiếu) và đánh giá độ chính xác của từng nguồn thời gian (cấp độ stratum).
Cuối cùng, phần này mở rộng sang cấu hình NTP nâng cao, giải thích các cấu hình doanh nghiệp điển hình, bao gồm việc sử dụng nhiều lệnh NTP để đảm bảo tính dự phòng và tận dụng giao diện loopback nhằm tăng tính khả dụng của hệ thống.
Thiết lập Thời gian và Múi giờ
NTP có nhiệm vụ đồng bộ hóa đồng hồ hệ thống, nhưng sẽ hoạt động hiệu quả hơn nếu bạn đặt thời gian thiết bị gần với thời gian thực tế trước khi kích hoạt máy khách NTP bằng lệnh ntp server. Ví dụ, nếu đồng hồ hiện tại hiển thị 8:52 tối, thì trước khi bật NTP trên một bộ định tuyến hoặc bộ chuyển mạch mới để đồng bộ hóa với thiết bị khác, nên đặt thời gian thiết bị, thiết lập múi giờ chính xác, bật tính năng điều chỉnh giờ tiết kiệm ánh sáng ban ngày, rồi mới kích hoạt NTP. Việc đặt thời gian chính xác ngay từ đầu giúp NTP đồng bộ hóa nhanh chóng và chính xác hơn.
Ví dụ 9-7 minh họa cách thiết lập ngày, giờ, múi giờ và giờ tiết kiệm ánh sáng ban ngày trên thiết bị. Đáng chú ý, quá trình này yêu cầu sử dụng hai lệnh cấu hình (để đặt múi giờ và giờ tiết kiệm ánh sáng ban ngày) cùng với một lệnh EXEC để thiết lập ngày và giờ trên bộ định tuyến.
Ví dụ 9 - 2 Đặt Ngày/Giờ với lệnh clock set, Cùng với Múi giờ/Giờ mùa hè (DST)
Trước tiên, hãy tập trung vào hai lệnh cấu hình. Bạn nên đặt hai lệnh này trước khi thiết lập thời gian trong ngày bằng lệnh EXEC clock set, vì chúng ảnh hưởng đến thời gian được đặt.
Trong lệnh đầu tiên, phần clock timezone xác định lệnh và một từ khóa. Tham số tiếp theo, "EST", có thể là bất kỳ giá trị nào bạn chọn, nhưng nên đặt theo tên múi giờ của thiết bị để đảm bảo tính trực quan trong các lệnh show. Dù bạn tự đặt tên, nhưng nó cần có ý nghĩa đối với tất cả mọi người. Trong ví dụ này, vnpro đã chọn EST (viết tắt của US Eastern Standard Time – Giờ Chuẩn Miền Đông Hoa Kỳ).
Tham số "-5" chỉ ra rằng thiết bị này chậm hơn 5 giờ so với Giờ Phối hợp Quốc tế (UTC).
Phần clock summer-time trong lệnh thứ hai xác định cách xử lý giờ tiết kiệm ánh sáng ban ngày.
Một lần nữa, trường "EDT" là giá trị có thể tùy chỉnh, nhưng bạn nên chọn một tên có ý nghĩa. Giá trị này sẽ xuất hiện trong các lệnh show khi giờ tiết kiệm ánh sáng ban ngày có hiệu lực. Trong ví dụ này, chọn EDT, vì nó là viết tắt của Eastern Daylight Time, tương ứng với múi giờ EST khi có sự thay đổi do giờ tiết kiệm ánh sáng ban ngày.
Cuối cùng, từ khóa recurring yêu cầu bộ định tuyến tự động điều chỉnh thời gian – tiến lên một giờ vào mùa hè và lùi lại một giờ khi kết thúc mùa.
Sau đó, lệnh EXEC clock set được sử dụng để đặt thời gian, ngày, tháng và năm. Tuy nhiên, cần lưu ý rằng IOS sẽ diễn giải thời gian nhập vào dựa trên múi giờ và giờ tiết kiệm ánh sáng ban ngày đã được cấu hình trước đó.
Trong ví dụ, lệnh clock set đặt thời gian thành 20:52:49 (định dạng 24 giờ, không phải 12 giờ AM/PM). Khi kiểm tra bằng lệnh show clock, bạn sẽ thấy thời gian hiển thị là EDT, thay vì UTC, do ảnh hưởng của hai lệnh cấu hình trước đó.