NỘI DUNG

Hosting tốc độ cao Vietnix - tốc độ tải trang trung bình dưới 1 giây
VPS siêu tốc Vietnix - trải nghiệm mượt mà, ổn định
21/04/2023
Lượt xem

Hướng dẫn cách cấu hình NTP để sử dụng trong NTP Pool Project trên CentOS 7

21/04/2023
18 phút đọc
Lượt xem

Đánh giá

5/5 - (181 bình chọn)

Sự ra đời của Network Time Protocol – NTP (giao thức mạng thời gian) được xem như một bước tiến vượt bậc giúp giải quyết các vấn đề về thời gian và mang lại sự đồng bộ hóa thời gian giữa các hệ thống khác nhau. Trong bài viết này, Vietnix sẽ hướng dẫn bạn cách cấu hình NTP trong NTP Pool Project trên CentOS 7. Mời bạn cùng tham khảo. 

Giới thiệu về NTP Pool Project

Để đồng bộ hóa hệ thống thời gian với nguồn đáng tin cậy bên ngoài (chẳng hạn như GPS receiver, đồng hồ nguyên tử hay time server khác), các dịch vụ hay phần mềm cần phải sử dụng Network Time Protocol (viết tắt là NTP).

Giới thiệu về NTP Pool Project
Giới thiệu về NTP Pool Project

Nhận thấy tầm quan trọng của NTP, NTP Pool Project đã ra đời và trở thành một cụm máy chủ thời gian khổng lồ trên toàn cầu với khả năng cung cấp quyền truy cập vào “good time” cho hàng chục triệu người dùng trên thế giới. Ngoài ra, NTP Pool Project còn được biết đến như một time server mặc định cho hệ điều hành Ubuntu, các bản phân phối khác của Linux và một số ứng dụng phần mềm hay thiết bị nối mạng thông dụng. 

Các yêu cầu và điều kiện tiên quyết để cấu hình NTP trong NTP Pool Project trên CentOS 7

Trước khi tham gia NTP Pool Project, bạn cần đáp ứng 3 yêu cầu cơ bản sau:

  • Máy chủ của bạn phải có 1 địa chỉ IP tĩnh.
  • Máy chủ của bạn phải được kết nối internet ổn định và lâu dài.
  • Địa chỉ IP không thay đổi hoặc thay đổi với tần suất thấp (khoảng 1 lần/năm hoặc ít hơn). 

Hai yêu cầu đầu tiên hầu như là có thể tự động được đáp ứng đối với các máy chủ dựa trên đám mây. Riêng yêu cầu thứ 3, bạn cần phải có sự cam kết lâu dài nếu muốn tham gia vào dự án NTP Pool Project.

Đồng thời, bạn còn phải đáp ứng các điều kiện tiên quyết gồm:

  • Máy chủ CentOS 7 có cấu hình mạng IPv6
  • Người dùng non-root có quyền sudo và firewall.

Nếu bạn chưa có máy chủ để thực hiện cài đặt NTP, bạn có thể tham khảo dịch vụ VPS tại Vietnix. Hiện Vietnix đang cung cấp nhiều gói VPS có hỗ trợ hệ điều hành CentOS 7 với tốc độ cao, ổn định, có giao diện quản trị dễ quản lý, cấu hình đa dạng, đáp ứng nhu cầu lưu trữ ứng dụng của bạn. Liên hệ ngay với Vietnix để được tư vấn chi tiết hơn.

Tiếp theo bạn lần lượt thực hiện theo các bước sau:

Bước 1: Cài đặt NTP 

NTP không được cài đặt mặc định nên bạn cần phải cài đặt gói NTP thông qua trình quản lý gói. Để cập nhật các gói, bạn nhập: 

sudo yum update

Sau đó, bạn cài đặt NTP với lệnh: 

sudo yum install ntp

Sau khi hoàn tất quá trình cài đặt, bạn khởi động và cấu hình dịch vụ để mỗi khi máy chủ khởi động, dịch vụ sẽ tự động khởi động qua lệnh:

sudo systemctl start ntpd sudo systemctl enable ntpd

Trong trường hợp bạn đã thiết lập cấu hình firewall như các chỉ định trong điều kiện tiên quyết, bạn buộc phải cấp phép lưu lượng UDP cho dịch vụ NTP để giao tiếp với NTP pool bằng cách nhập: 

sudo firewall-cmd --permanent --add-service=ntp sudo firewall-cmd --reload

Sau những thao tác trên, NTP đã được cài đặt thành công, nhưng cấu hình hiện tại của NTP lại được dùng để sử dụng time server mặc định. Khi đó, bạn cần chọn một số time server cụ thể thay vì mặc định.

Bước 2: Chọn một upstream server phù hợp

NTP Pool Project thường khuyến khích người dùng chọn network-local time servers chất lượng thay vì sử dụng máy chủ mặc định pool.ntp.org để đảm bảo về độ tin cậy, sự nhanh chóng và an toàn đối với người dùng. Ngoài ra, đa số người dùng sẽ mong muốn tìm kiếm và lựa chọn được nguồn thời gian có kết nối mạng ổn định mà không bị mất gói và hạn chế tối đa bước nhảy giữa các máy chủ.

Giao thức NTP được tổ chức theo đa tầng và nhiều cấp độ, sẽ phân tách các thiết bị liên quan thành máy chủ chính, máy chủ phụ và máy khách. Các máy chủ chính được gọi là Stratum 1 và kết nối trực tiếp với nguồn thời gian (Stratum 0). Nguồn thời gian này có thể là GPS receiver, đồng hồ nguyên tử hay hệ thống định vị vô tuyến. Còn các máy chủ thứ cấp (máy chủ phụ) trong chuỗi lần lượt sẽ được gọi là Stratum 2, Stratum 3,…

Trong đó, mỗi máy chủ trong hệ thống NTP cũng được xem như một client. Chẳng hạn như, một client của Stratum 2 nhận thời gian từ một máy chủ Stratum 1 ở phía trên, sẽ đồng thời cung cấp thời gian cho các máy chủ Stratum 3 ở phía dưới hoặc các client khác. Như vậy, để đảm bảo rằng các thành viên trong NTP Pool Project hoạt động một cách trơn tru, bình thường, thì chương trình NTP cần thiết lập ít nhất 3 máy chủ. Tuy nhiên, theo đề xuất của các chuyên gia, để đảm bảo về tính tin cậy thì tốt nhất là dự án nên có từ 4 – 7 nguồn.

NTP Pool Project sẽ cung cấp danh sách các time server công cộng của Stratum 1 và Stratum 2. Danh sách này sẽ chỉ định các time server NTP có sẵn để truy cập công cộng, nhưng sẽ đi kèm với những hạn chế đã được quy định. Theo đó, bạn sẽ tìm thấy ba loại máy chủ như sau: 

  • OpenAccess: Time server này mở cho bất cứ client nào tuân thủ các quy định sử dụng NTP Pool.
  • RestrictedAccess: Time server này đi kèm với một số hạn chế truy cập bổ sung (ngoài các khuyến nghị sử dụng NTP Pool).
  • ClosedAccess: Time server này đã bị đóng hoặc yêu cầu sắp xếp trước để sử dụng. 

Lưu ý: Trừ khi bạn nhận được sự chấp thuận, bạn không nên sử dụng các máy chủ không được liệt kê là OpenAccess để tránh gặp các vấn đề liên quan đến hiệu suất và bảo mật. 

 

Sau khi bạn truy cập danh sách time server Stratum 1, bạn sẽ nhận được danh sách như hình bên: 

Danh sách time server Stratum 1
Danh sách time server Stratum 1

Hãy sắp xếp danh sách trên theo cột mã ISO và tìm một hoặc 2 máy chủ gần vị trí trung tâm dữ liệu máy chủ của bạn. Trong trường hợp cột Access PolicyOpenAccess, bạn đã có thể sử dụng nó. Tuy nhiên, nếu tại cột đó hiển thị RestrictedAccess, bạn cần click vào đó để mở thư mục và đọc các hướng dẫn có trong trường AccessDetails

Thông thường, tại NotificationMessage sẽ được đặt là Yes, tức là bạn phải viết một email không chính thức để gửi đến địa chỉ được cung cấp tại ServerContact và thông báo cho nhà điều hành máy chủ mong muốn sử dụng time server này làm nguồn thời gian cho các thành viên trong NTP Pool Project của bạn. 

Sau khi chọn được máy chủ mà bạn muốn dùng, bạn có thể click vào liên kết cho mỗi máy chủ trong cột ISO rồi sao chép tên (hoặc địa chỉ IP) của máy chủ đó. Tên và địa chỉ IP của máy chủ sẽ tiếp tục được sử dụng trong bước 3.

Sau đó, với quy trình tương tự, bạn sẽ tiếp tục chọn 3 – 4 máy chủ trong danh sách Stratum 2. Cuối cùng, hãy đến với bước 3 để thiết lập cấu hình máy khách NTP của mình để có thể sử dụng chúng.

Bước 3: Cấu hình NTP để tham gia Pool 

Để sử dụng máy chủ với NTP Pool và thiết lập cấu hình time server mới của bạn, bạn cần phải thực hiện điều chỉnh, thay đổi một số điểm trong cấu hình daemon NTP. Để làm được điều này, bước đầu tiên bạn cần làm là chỉnh sửa file /etc/ntp.conf.

sudo vi /etc/ntp.conf

Bạn cần đảm bảo rằng driftfile phải được thiết lập cấu hình. Driftfile sẽ lưu trữ độ lệch tần số giữa đồng hồ hệ thống đang chạy ở tần số danh định với tần số cần thiết. Nói cách khác, file này lưu trữ thông tin sai lệch giữa đồng hồ máy chủ NTP với nguồn thời gian chính xác, đồng thời giúp daemon NTP hiệu chỉnh đồng hồ và duy trì việc đồng bộ hóa thời gian với các máy chủ khác trên mạng một cách chính xác. Thông thường, bạn sẽ tìm thấy phần này ở file cấu hình khi cài đặt mặc định. 

/etc/ntp.conf # For more information about this file, see the man pages # ntp.conf(5), ntp_acc(5), ntp_auth(5), ntp_clock(5), ntp_misc(5), ntp_mon(5).  driftfile /var/lib/ntp/drift  ...

Ở thao tác tiếp theo, bạn cần xóa các mục nhập nguồn thời gian mặc định ra khỏi cấu hình và tìm kiếm tất cả các dòng có mẫu server 0.centos.pool.ntp.org iburst. Trong trường hợp bạn đang sử dụng cấu hình mặc định, hãy xóa các dòng được đánh dấu như sau: 

... # Use public servers from the pool.ntp.org project. # Please consider joining the pool (http://www.pool.ntp.org/join.html). server 0.centos.pool.ntp.org iburst server 1.centos.pool.ntp.org iburst server 2.centos.pool.ntp.org iburst server 3.centos.pool.ntp.org iburst

Sau đó, bạn thay thế thủ công những dòng đã xóa ở trên bởi các máy chủ được chọn ở bước 2: 

... server ntp_server_hostname_1 iburst server ntp_server_hostname_2 iburst server ntp_server_hostname_3 iburst server ntp_server_hostname_4 iburst server ntp_server_hostname_5 iburst ...

Ở đây, theo đề xuất của NTP Pool, Vietnix sẽ sử dụng tùy chọn iburst cho từng máy chủ. Thông qua đó, trong trường hợp máy chủ không thể truy cập được, nó sẽ gửi một lúc tám gói thay vì một gói như thông thường. Ngược lại, nếu như bạn sử dụng tùy chọn burst trong NTP Pool Project, hệ thống sẽ gửi 8 gói đó mỗi khi thăm dò ý kiến (khác với iburst chỉ gửi trong lần đầu tiên) và đây được xem như một hành vi lạm dụng không được khuyến khích. 

Tiếp theo, bạn cần đảm bảo rằng cấu hình mặc định không cho phép truy vấn quản lý. Nếu không, máy chủ của bạn sẽ bị tấn công bởi các truy vấn ntpq ntpdc khi cố gắng thay đổi trạng thái máy chủ, hoặc bị sử dụng trong các cuộc tấn công phản chiếu NTP.

Lúc này, hãy kiểm tra xem tùy chọn noquery đã được thêm vào các dòng restrict mặc định hay chưa, đồng thời đảm bảo rằng mình đã thêm các tùy chọn kodlimited vì chúng có thể hạn chế việc request từ client bị quá mức và thực thi giới hạn tỷ lệ. 

... # Permit time synchronization with our time source, but do not # permit the source to query or modify the service on this system. restrict default nomodify notrap nopeer noquery kod limited  # Permit all access over the loopback interface.  This could # be tightened as well, but to do so would effect some of # the administrative functions. restrict 127.0.0.1 restrict ::1

Lúc này, daemon NTP sẽ như bên dưới. Trong trường hợp file của bạn có đi kèm với các nhận xét bổ sung, bạn vẫn có thể bỏ qua một cách an toàn:

 driftfile /var/lib/ntp/ntp.drift  restrict default nomodify notrap nopeer noquery kod limited  restrict 127.0.0.1 restrict ::1  server ntp_server_hostname_1 iburst server ntp_server_hostname_2 iburst server ntp_server_hostname_3 iburst server ntp_server_hostname_4 iburst server ntp_server_hostname_5 iburst

Sau khi lưu file và thoát khỏi trình chỉnh sửa, bạn tiến hành khởi động dịch vụ NTP và để time server của bạn bắt đầu đồng bộ hóa đồng hồ của nó với các máy chủ ngược dòng (upstream servers).

sudo systemctl restart ntpd

Sau ít phút, bạn dùng lệnh ntpq sau để kiểm tra tình trạng của time server: 

ntpq -p

Output sẽ như sau: 

Output      remote               refid        st   t    when   poll     reach      delay     offset     jitter ==============================================================================  mizbeaver.udel. .INIT.           16  u       -        64         0          0.000    0.000   0.000  montpelier.ilan .GPS.             1   u      25      64         7         55.190   2.121   130.492 +nist1-lnk.binar .ACTS.          1   u      28      64         7          52.728   23.860   3.247 *ntp.okstate.edu .GPS.           1   u      31      64         7         19.708   -8.344   6.853 +ntp.colby.edu   .GPS.            1   u      34      64         7         51.518   -5.914   6.669

Cột remote sẽ hiển thị tên máy chủ của các máy chủ mà daemon NTP đang sử dụng, còn cột refid sẽ cho biết nguồn sử dụng của các máy chủ. Như vậy, đối với máy chủ Stratum 1, trường refid sẽ hiển thị GPS, PPS, ACTS hoặc PTB. Còn Stratum 2 trở lên sẽ có IP của upstream server. Ở cột st, bạn sẽ biết được stratum, còn delay, offset, jitter thì biểu thị chất lượng của nguồn thời gian. Ở ba trường cuối, giá trị càng thấp thì càng tốt. 

Time server của bạn ở thời điểm hiện tại đã có thể cung cấp thời gian cho cộng đồng. Để chắc chắn hơn, hãy xác minh thông qua việc gọi ntpdate từ một host khác: 

ntpdate -q your_server_ip

Output sẽ cho bạn biết nó đã điều chỉnh time server và độ lệch, được hiển thị như bên dưới:

Output server your_server_ip, stratum 2, offset 0.001172, delay 0.16428  2 Mar 23:06:44 ntpdate[18427]: adjust time server your_server_ip offset 0.001172 sec

Như vậy là bạn đã có thể bắt đầu đăng ký máy chủ NTP của mình với NTP Pool Project để mọi người có thể cùng sử dụng nó. Bước 4 sẽ giúp bạn làm rõ hơn điều này.

Bước 4: Thêm máy chủ vào NTP Pool

Bạn cần đăng ký tài khoản tại manage.ntppool.org v nếu muốn thêm máy chủ NTP của mình vào NTP Pool và để người khác có thể sử dụng nó. Sau đó, bạn sẽ nhận được email yêu cầu xác minh tài khoản từ NTP Pool (help@ntppool.org). Lúc này, bạn chỉ cần làm theo hướng dẫn cụ thể trong email để xác minh và đăng nhập vào manage.ntppool.org.

Sau khi đăng nhập, bạn sẽ nhìn thấy giao diện sau: 

Nhập địa chỉ IP máy chủ
Nhập địa chỉ IP máy chủ

Đây là giao diện đơn giản được dùng để thêm máy chủ. Bạn hãy nhập địa chỉ IP máy chủ của mình rồi chọn Submit.

Lúc này, bạn sẽ nhận được yêu cầu xác minh về khu vực máy chủ của bạn. Nếu như khu vực được xác minh không đúng với khu vực bạn muốn, hãy điền vào mục Comment.

Xác minh khu vực máy chủ
Xác minh khu vực máy chủ

Nếu bạn hài lòng, hãy bấm vào mục Yes, this is my server, add it!. Bây giờ, máy chủ của bạn đã là một phần trong NTP Pool Project trên CentOS 7. 

Bạn có thể truy cập http://www.pool.ntp.org/scores/your_server_ip để kiểm tra thông tin mà hệ thống giám sát của NTP Pool đã thu thập được về máy chủ của mình. Cứ mỗi giờ, hệ thống giám sát này sẽ kiểm tra máy chủ của bạn vài lần và hiển thị thông tin dữ liệu bù đắp tương ứng với điểm số của máy chủ. Chỉ cần máy chủ của bạn vẫn hoạt động ổn định và có thể truy cập được, điểm sẽ tăng dần cho đến khi chạm mốc 20. Cần lưu ý là chỉ những máy chủ nào có điểm số trên 10 điểm thì mới được sử dụng trong nhóm. 

Cách khắc phục sự cố kết nối (nếu có)

Nếu như trong quá trình đồng bộ hóa máy chủ mà bạn gặp phải sự cố kết nối, rất có thể nguyên nhân đến từ việc tồn tại một gói firewall tại chỗ đã loại bỏ các gói outgoing của bạn trên cổng 123

Cụ thể là, khi trạm giám sát NTP Pool Project không thể kết nối với máy chủ NTP của bạn và tình hình điểm số máy chủ có xu hướng giảm, hoặc bạn không thể sử dụng máy chủ để đồng bộ hóa với các đồng hồ khác, thì lý do có thể là vì bạn đang có một gói firewall tại chỗ, gây giảm lưu lượng truy cập incoming trên cổng 123. Lúc này, bạn cần phải nhanh chóng kiểm tra lại trạng thái firewall của mình. 

Trong trường hợp loại bỏ nguyên nhân đến từ firewall, tức là bạn không có firewall và cũng đã mở cổng 123 cho cả lưu lượng truy cập ra và vào, thì lúc này sự cố có thể đến từ việc nhà cung cấp máy chủ của bạn (hoặc nhà cung cấp dịch vụ chuyển tiếp khác) đang bỏ các gói của bạn trên đường đi. 

Nếu bạn chưa có nhiều kinh nghiệm, hãy nhờ sự hỗ trợ từ các cộng đồng, diễn đàn NTP Pool Project, hoặc gửi email cho nhà điều hành NTP Pool Project. Tuy nhiên, cần lưu ý là bạn nên trình bày rõ toàn bộ các bước thực hiện mà bạn đang cố xử lý nhưng chưa thành công trước khi yêu cầu sự trợ giúp từ cộng đồng, tổ chức. 

Ngoài ra. bạn cũng nên tham khảo về cách theo dõi System Metrics bằng TICK Stack trên CentOS 7, bởi vì bằng cách sử dụng Telegraf, InfluxDB, Chronograf và Kapacitor, bạn có thể thu thập và xử lý dữ liệu về các chỉ số hệ thống quan trọng một cách dễ dàng và hiệu quả, từ đó giúp bạn nâng cao hiệu quả cũng như hiệu suất trong công việc.

Lời kết

Như vậy, nội dung bên trên đã hướng dẫn bạn cách thiết lập cấu hình NTP trong NTP Pool Project trên CentOS 7. Việc cấu hình NTP để sử dụng trong NTP Pool Project trên CentOS 7 sẽ giúp bạn tăng cường độ chính xác thời gian hệ thống, giúp tăng hiệu suất và đáp ứng tốt hơn cho nhu cầu sử dụng. Đừng quên chia sẻ bài viết này để mọi người cùng tham khảo nếu như cảm thấy thông tin trên hữu ích và có giá trị nhé. Mọi vấn đề thắc mắc, bạn hãy để lại bình luận bên dưới để được hỗ trợ.

THEO DÕI VÀ CẬP NHẬT CHỦ ĐỀ BẠN QUAN TÂM

Đăng ký ngay để nhận những thông tin mới nhất từ blog của chúng tôi. Đừng bỏ lỡ cơ hội truy cập kiến thức và tin tức hàng ngày

Chọn chủ đề :

Hưng Nguyễn

Co-Founder
tại

Kết nối với mình qua

Kết nối với mình qua

Theo dõi
Thông báo của
guest
0 Comments
Phản hồi nội tuyến
Xem tất cả bình luận

Tăng tốc độ website - Nâng tầm giá trị thương hiệu

Tăng tốc tải trang

95 điểm

Nâng cao trải nghiệm người dùng

Tăng 8% tỷ lệ chuyển đổi

Thúc đẩy SEO, Google Ads hiệu quả

Tăng tốc ngay

SẢN PHẨM NỔI BẬT

7 NGÀY DÙNG THỬ HOSTING

NẮM BẮT CƠ HỘI, THÀNH CÔNG DẪN LỐI

Cùng trải nghiệm dịch vụ hosting tốc độ cao được hơn 100,000 khách hàng sử dụng

ĐĂNG KÝ NHẬN TÀI LIỆU THÀNH CÔNG
Cảm ơn bạn đã đăng ký nhận tài liệu mới nhất từ Vietnix!
ĐÓNG

ĐĂNG KÝ DÙNG THỬ HOSTING

7 NGÀY MIỄN PHÍ

ĐĂNG KÝ DÙNG THỬ HOSTING

7 NGÀY MIỄN PHÍ

XÁC NHẬN ĐĂNG KÝ DÙNG THỬ THÀNH CÔNG
Cảm ơn bạn đã đăng ký thông tin thành công. Đội ngũ CSKH sẽ liên hệ trực tiếp để kích hoạt dịch vụ cho bạn nhanh nhất!
ĐÓNG