Cấu hình NTP thích hợp cho một vài máy chủ


9

Tôi có khoảng 20 máy chủ Linux trong một mạng nhỏ và tôi cần các đồng hồ của chúng gần nhau (ví dụ trong vòng 20msec). Tôi đã bắt đầu với mỗi người trong số họ được đồng bộ hóa với europe.pool.ntp.org và công việc đã hoàn thành.

Bây giờ tôi có hai câu hỏi:

  1. Tôi có phải là một gánh nặng đáng chú ý cho hồ bơi? Tức là nó có bất kỳ sự khác biệt đáng chú ý nào đối với nhóm nếu tôi truy cập từ 20 máy chủ hoặc từ 2 không?
  2. Nếu nó tạo ra sự khác biệt thì thiết lập / cấu hình sẽ giữ cho mạng con của tôi được đồng bộ hóa và nhóm dưới tải nhẹ? Có các hướng dẫn cho các mạng lớn ( http://www.ntp.org/ntpfaq/NTP-s-config-adv.htm#AEN3101 ) nhưng tôi không tìm thấy cho các mạng nhỏ.

1
Thông thường, bạn nên có một hoặc hai máy chủ thời gian nội bộ mà bạn đồng bộ hóa mạng nội bộ của mình. Hai máy chủ nội bộ của bạn có thể có một peermối quan hệ. Xem ví dụ ntp.org/ntpfaq/NTP-s-config-adv.htm#AEN3101
Marki

Cảm ơn các ý kiến ​​và liên kết Marki. Về liên kết, nó lưu ý rằng đó là "một mạng lưới khổng lồ" chắc chắn không phải là trường hợp của tôi. Về đề xuất của bạn: Tôi không nghĩ một máy chủ thời gian nội bộ là một ý tưởng hay (một điểm thất bại) nhưng 2 có vẻ như là một ý tưởng tốt. Bạn có thể giải thích mối quan hệ ngang hàng là gì (hoặc cung cấp một liên kết)?
ndemou

Cũng nên lưu ý rằng tôi chắc chắn không phải là chuyên gia về NTP - cách xa nó :-)
ndemou 27/12/14

Sẽ không đau nếu bạn google một chút về những gì một người ngang hàng. Lưu ý rằng trang web này không phục vụ bất cứ thứ gì trên đĩa bạc khi mọi người không tự nghiên cứu.
Marki

Đừng hiểu nhầm tôi đã làm bài tập về nhà nhưng NTP là một trong những môn học mà hầu hết các tài liệu đều quá nuốt (đây là ntp.conf - chỉ sử dụng nó) hoặc quá sâu (50 trang lý thuyết hoạt động để đọc trước bạn có thể bắt đầu nắm bắt các sự kiện cơ bản).
ndemou

Câu trả lời:


8
  1. Tôi có phải là một gánh nặng đáng chú ý cho hồ bơi? Tức là nó có bất kỳ sự khác biệt đáng chú ý nào đối với nhóm nếu tôi truy cập từ 20 máy chủ hoặc từ 2 không?

Cho rằng nhóm này cần máy chủ liên tục trong nhiều năm (xem [1]) Tôi sẽ nói rằng mặc dù 2 hoặc 20 máy chủ không thực sự tạo ra sự khác biệt, bạn nên luôn nhớ rằng bạn không cô đơn. Vì vậy, bạn tốt hơn là suy nghĩ về nói 1000 quản trị viên trong trường hợp này chúng ta đang nói 2000 hoặc 20000 máy chủ và điều này không tạo sự khác biệt.

  1. Nếu nó tạo ra sự khác biệt thì thiết lập / cấu hình sẽ giữ cho mạng con của tôi được đồng bộ hóa và nhóm dưới tải nhẹ?

Bạn phải đồng bộ hóa hai [2] máy chủ trong mạng của mình với nhóm (hãy gọi chúng là Máy chủ NTP chính ) và sau đó đồng bộ hóa tất cả các máy chủ khác với hai máy chủ đó. Phương pháp này cũng có lợi thế là thời gian giữa tất cả các máy chủ của bạn sẽ được kết hợp chặt chẽ hơn (trong vòng dưới 1msec). Điều này phù hợp với thực tiễn tốt nhất của IETF .

1) Cấu hình cho Máy chủ NTP chính

Thay thế serverrestrictcác dòng của ntp [d] .conf của bạn bằng các dòng sau và giữ phần còn lại về mặc định phân phối của bạn [3]:

server 10.11.12.1  iburst peer
#      ^^^^^^^^^^^
#      The LAN IP of the _other_ Primary NTP server 
server 0.europe.pool.ntp.org 
server 1.europe.pool.ntp.org 
server 2.europe.pool.ntp.org 
server 3.europe.pool.ntp.org 
restrict -4 default kod notrap nomodify nopeer noquery
restrict -6 default kod notrap nomodify nopeer noquery
restrict 127.0.0.1
restrict ::1

Xin lưu ý rằng cấu hình này cũng cho phép các máy chủ từ khắp nơi trên Internet truy vấn thời gian lưu trữ của bạn thông qua các truy vấn NTP. Sử dụng tường lửa của bạn nếu bạn không muốn. Trong ví dụ 10.11.12.1 và 10.11.12.2 của tôi là các IP của Máy chủ NTP chính (chúng có hai card mạng một mạng đối diện với internet công cộng và một mạng con 10.11.12.x cục bộ). Mỗi Máy chủ NTP chính có một máy chủ khác được khai báo là ngang hàng (về cơ bản có nghĩa là cả máy chủ và máy khách - bạn sử dụng máy chủ khác làm nguồn thời gian và máy chủ khác cũng sử dụng bạn làm nguồn thời gian). Vì vậy, điều chỉnh IP trên dòng đầu tiên để cấu hình của mỗi Máy chủ NTP chính trỏ đến một máy chủ khác dưới dạng ngang hàng. Xem [4] về lựa chọn của tôi để sử dụng 4 máy chủ.

2) Cấu hình cho tất cả các máy chủ khác

2A) Nếu bạn có hai giao diện mạng

Bạn nên sử dụng giao diện thứ 2 để tạo một mạng con cục bộ (ví dụ 10.11.12.0/24) và sử dụng giao diện đó cho các truy vấn NTP. Trong trường hợp đó, các dòng hạn chế có thể chặt chẽ hơn. Vì vậy, một lần nữa thay thế các dòng serverrestrictntp [d] .conf của bạn bằng các dòng sau và giữ phần còn lại để mặc định phân phối của bạn [3]:

restrict -4 default ignore
restrict -6 default ignore
restrict 10.0.0.0 mask 255.0.0.0 kod notrap nomodify nopeer noquery
restrict 127.0.0.1
restrict ::1

# Only use our Primary NTP Servers
server 10.11.12.1 iburst
server 10.11.12.2 iburst
#      ^^^^^^^^^^
#      The IPs of your 2 Primary NTP Servers

2B) Nếu bạn không có hai giao diện mạng

Bạn nên sử dụng các dòng giới hạn dưới đây (và đọc ghi chú về việc sử dụng tường lửa của bạn để chặn truy cập vào các máy chủ NTP của bạn ở trên). Vì vậy, một lần nữa thay thế các dòng serverrestrictntp [d] .conf của bạn bằng các dòng sau và giữ phần còn lại để mặc định phân phối của bạn [3]:

restrict -4 default kod notrap nomodify nopeer noquery
restrict -6 default kod notrap nomodify nopeer noquery
restrict 127.0.0.1
restrict ::1

# Only use our Primary NTP Servers
server 10.11.12.1 iburst
server 10.11.12.2 iburst
#      ^^^^^^^^^^
#      The IPs of your 2 Primary NTP Servers

Ghi chú

[1] Từ năm 2006 đến 2012, họ liên tục yêu cầu thêm máy chủ tham gia: yêu cầu năm 2006 , năm 2009năm 2012 . Kiểm tra www.pool.ntp.org để biết thông tin cập nhật về tình trạng hiện tại.

[2] Hai máy chủ NTP chính chỉ được đề xuất như một cách đơn giản để có dự phòng mà không cần sắp xếp sẵn có cao. Bạn có thể chọn 3 hoặc 4 vì các lý do khác (đọc lại các thực tiễn tốt nhất của IETF )

[3] Trong thực tế và bất kể phân phối của bạn, điều duy nhất khác bạn cần đưa vào cấu hình ntpd của bạn là một dòng xác định một thư mục để đặt một tập tin trôi dạt và một tên cho nó - ví dụ driftfile /var/lib/ntp/ntp.drift. Tôi đã thử nghiệm giải pháp của mình trong CentOS, Debian và Ubuntu. Tôi đoán nó hoạt động trong hầu hết các distro khác.

[4] Tôi đã cấu hình 4 máy chủ nhóm theo các thực tiễn tốt nhất . Việc định cấu hình hơn 4 máy chủ được chấp nhận về mặt kỹ thuật nhưng bạn sẽ tăng tải cho nhóm NTP để đạt được khả năng khả dụng vì vậy đừng làm điều đó. Trong các thực tiễn tốt nhất tôi thấy rằng "bắt đầu với ntp-4.2.6, chỉ thị 'pool' sẽ tạo ra các hiệp hội" đủ "để cung cấp dịch vụ thời gian mạnh mẽ" vì vậy nếu bạn sử dụng .pool. địa chỉ như tôi làm ở đây và ntp> = 4.2.6 số dòng máy chủ chính xác có lẽ không quan trọng.

Rant Oh! Tôi ghét NTP (ngoại trừ việc tôi thích nó hoạt động). Các tài liệu chính thức có đầy đủ thông tin lỗi thời và họ có "làm thế nào để tôi sử dụng nó?" thông tin trộn lẫn với các chi tiết khoa học về nội bộ. Và tôi cũng ghét cách restrict 127.0.0.1thực sự có nghĩa làallow everything for 127.0.0.1


Lịch sử cập nhật

Tôi đã xóa ibursttùy chọn khỏi cấu hình của Máy chủ NTP cục bộ vì tính thân thiện của chúng đối với nhóm là điều gây tranh cãi. (Xem ý kiến). Loại bỏ chúng chỉ thêm một vài phút thời gian chờ cho đồng bộ hóa đầu tiên .


Tín dụng

Nhận xét và câu trả lời từ người dùng SF Marki và Sven đã cung cấp một điểm khởi đầu tốt cho câu trả lời này. Cảm ơn cả hai.


1
+1 từ tôi. Tôi chạy một máy chủ nhóm và tôi không thể đánh giá cao tính đúng đắn của bài đăng này, ngoại trừ đó iburstlà một tham số gây khó chịu khi sử dụng trên các máy chủ công cộng, vì vậy xin đừng (mặc dù nó không gây phiền nhiễu như burst). Quản trị viên máy chủ Pool đang giúp bạn mà không biết bạn là ai, và không có bất kỳ sự bù đắp nào cho bản thân họ, hoàn toàn là để internet hoạt động tốt hơn. Nếu bạn, bằng cách làm việc chăm chỉ hơn, có thể làm cho cuộc sống của họ dễ dàng hơn, bạn nợ họ để làm điều đó.
MadHatter

Cảm ơn MadHatter. Về iburst, tôi nghĩ rằng nó ổn đối với các máy chủ "luôn luôn bật" thông thường. Bạn có bất kỳ liên kết để hỗ trợ lời khuyên của bạn về việc không sử dụng tùy chọn này? (Tôi đã kiểm tra www.pool.ntp.org/en/use.html và cũng đã googled trong 10 phút nhưng không tìm thấy kết luận nào)
ndemou

Tôi sẽ vui vẻ chia sẻ số liệu thống kê lưu lượng truy cập của tôi; một mẫu nhanh gợi ý rằng các máy chủ được định cấu hình sai, tức là các máy chủ truyền tải thường xuyên hơn một lần một phút, chiếm khoảng 45% khách hàng của tôi nhưng chịu trách nhiệm cho khoảng 75% lưu lượng. Đó chủ yếu sẽ là từ các máy chủ sử dụng burst, nhưng thậm chí còn iburstnói (từ ntpdtrang man) " với tùy chọn này, một loạt tin nhắn được trao đổi để chải chuốt dữ liệu và đặt đồng hồ trong khoảng 10 giây ". Sử dụng iburstnói " cài đặt đồng hồ của tôi nhanh chóng quan trọng hơn việc giữ tải trên máy chủ của bạn ở mức thấp " và điều đó thật bất lịch sự.
MadHatter

Bạn nói đúng về "vô số tin nhắn" nhưng theo như tôi có thể hiểu thì vụ nổ này sẽ chỉ xảy ra trong quá trình khởi động NTP daemon và (có thể) nếu máy chủ pool không thể truy cập được trong giây lát (tôi là từ ban đầu). Đây là một bản tóm tắt từ trang Arch wiki NTPd: "Tùy chọn iburst được khuyến nghị và chỉ gửi một loạt các gói nếu nó không thể có được kết nối với lần thử đầu tiên. Tùy chọn cụm luôn thực hiện điều này, ngay cả trong lần thử đầu tiên và không bao giờ được sử dụng mà không có sự cho phép rõ ràng và có thể dẫn đến danh sách đen ".
ndemou

Bạn đúng đó iburstlà ít phản đối hơn burst. Quan điểm của tôi là khi bạn sử dụng tài nguyên của người khác miễn phí, có một lập luận rằng bạn nên cúi xuống để cân nhắc; chỉ đơn thuần là không tích cực vô tư có thể không được coi là đủ. Tôi đồng ý rằng nó được cho là thực tiễn tốt nhất, nhưng những tài liệu đó không tính đến việc các máy chủ ngược dòng mà bạn đang đồng bộ hóa có phải là một phần của doanh nghiệp của bạn hay không; họ ra lệnh thực hành kỹ thuật tốt nhất (mà tôi đồng ý là sử dụng iburst) chứ không phải thực hành tốt nhất xã hội .
MadHatter

6

Cách tiếp cận thông thường cho việc này là sử dụng một thiết lập theo cấp bậc - bạn đồng bộ hóa một hoặc hai máy chủ trong mạng của mình với nhóm và sau đó sử dụng chúng làm nguồn thời gian cục bộ. Các cấp độ này được gọi là tầng lớp trong biệt ngữ NTP.

Ngoài ra, hãy nghĩ về nó: Nếu bạn làm điều này giống như bạn đã mô tả, nó sẽ không thực sự đáng chú ý, nhưng nếu 1000 trang web của bạn bắt đầu điều này, bạn sẽ nhận được 20k yêu cầu không cần thiết và đến một lúc nào đó, nó sẽ được chú ý.

Đọc http://en.wikipedia.org/wiki/Network_Time_Protocol


Nhưng hãy xem xét quan điểm thay thế - hai mươi khách hàng nữa trong số hàng triệu khách hàng hiện tại hầu như không có gì.
200_success

2
Như anh ấy đã nói, nếu mọi người bắt đầu nghĩ như vậy ...
Marki

Nhưng tại điểm nào bạn dừng lại? Hãy nghĩ về tất cả các thiết bị lớp Linksys được cấu hình sẵn để sử dụng pool.ntp.org. Chắc chắn lưu lượng DNS vượt quá lưu lượng NTP. Bạn cũng phải lưu DNS cục bộ? Ngay cả lưu lượng DNS có thể rất nhỏ so với phần còn lại của mức tiêu thụ băng thông của bạn.
200_success

@ 200_success: Điều này không đáng để tranh luận, nhưng hầu hết các thiết bị "lớp Linksys" này thực sự lưu trữ lưu lượng DNS cục bộ và chúng truy vấn DNS ISP của chúng, cũng lưu trữ ...
Sven

1
Nếu Linksys gửi các thiết bị đồng bộ hóa với ntp.pool.orgchúng vi phạm các điều khoản nhóm ; nếu họ đã thực hiện đúng cách bằng cách đăng ký khu vực nhà cung cấp (xem liên kết) thì họ cũng sẽ được dự kiến ​​sẽ đóng góp cho dự án nhóm theo tỷ lệ tải của họ (một lần nữa, xem liên kết).
MadHatter
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.