Thiết lập tầng 2 máy chủ NTP cục bộ


9

Tôi đang cố gắng thiết lập NTP trên mạng cục bộ không có kết nối internet (và sẽ không bao giờ). Ưu tiên chính là các máy trên mạng được đồng bộ hóa với nhau, ngay cả khi thời gian chúng được đồng bộ hóa không chính xác 100%.

Chúng tôi cũng có yêu cầu sử dụng hệ thống phân cấp NTP để sao chép thiết lập hệ thống đã triển khai. Những gì tôi muốn làm là có một hệ thống phân cấp các máy như thế này:

Moon  (Main Server running Windows) (10.1.3.10)
|____Earth   (Linux x64 client) (10.1.3.1)
|____Mars    (Linux x64 client) (10.1.3.2)
|____Saturn  (Linux x64 client) (10.1.3.3)
|____RackCard23   (Linux x64 client and server to the two machines below)  (10.1.3.23)
     |___RackCard21   (Linux x64 client) (10.1.4.21)
     |___RackCard22   (Linux x64 client) (10.1.4.22)

Lưu ý rằng RackCards có hai cổng ethernet, một cổng được kết nối với mạng 10.1.3.x và một trên mạng 10.1.4.x. RackCard23, đồng bộ hóa với máy chủ chính Moon sẽ làm như vậy trên mạng 10.1.3.x và RackCard22 / 23 sẽ kết nối với RackCard23 trên mạng 10.1.4.x. Điều này là do tôi không muốn RackCards22 / 23 rời khỏi mạng của họ để đồng bộ hóa thời gian và vì nó sao chép một hệ thống được triển khai cuối cùng.

Cho đến nay tôi đã xoay sở để có được mọi thứ cần thiết bằng cách đồng bộ hóa Moon để đồng bộ hóa chính xác (bao gồm RackCard23).

Nhưng tôi gặp khó khăn khi lấy RackCard22 và 23 để đồng bộ hóa RackCard23.

[root@RackCard23]# cat /etc/ntp.conf
# NTP Deamon Configuration File "ntp.conf"
# Created on 27/04/2010
# Original backed-up as "ntp.conf.backup"

server 10.1.3.10 iburst minpoll 4 maxpoll 4 prefer #This is what we want to happen
fudge   127.127.1.0 stratum 2   #Not sure about these two lines, was trying to force it to be a stratum 2 server
fudge   127.127.0.1 stratum 2

# Drift file.  Put this in a directory which the daemon can write to.
# No symbolic links allowed, either, since the daemon updates the file
# by creating a temporary in the same directory and then rename()'ing
# it to the file.
driftfile /var/lib/ntp/drift
restrict 10.1.3.10 mask 255.255.255.255 nomodify notrap noquery

#Attempt to get to act as an NTP Server
broadcast 10.1.4.255

restrict 10.1.3.21 mask 255.255.255.255 nomodify notrap
restrict 10.1.4.21 mask 255.255.255.255 nomodify notrap

Đây là đầu ra từ ntptrace:

[rootRackCard23]# /usr/sbin/ntptrace
localhost.localdomain: stratum 16, offset 0.000000, synch distance 0.000030

Như bạn có thể thấy máy đang tự báo cáo là máy chủ tầng 16, mặc dù nó đã được đồng bộ hóa với máy chủ "tầng 1" (Mặt trăng):

[root@RackCard23 awd]# /usr/sbin/ntpdate -d 10.1.3.10
21 Jun 13:55:09 ntpdate[19410]: ntpdate 4.2.2p1@1.1570-o Tue May 19 13:57:56 UTC 2009 (1)
Looking for host 10.1.3.10 and service ntp
host found : 10.1.3.10
transmit(10.1.3.10)
receive(10.1.3.10)
transmit(10.1.3.10)
receive(10.1.3.10)
transmit(10.1.3.10)
receive(10.1.3.10)
transmit(10.1.3.10)
receive(10.1.3.10)
transmit(10.1.3.10)
server 10.1.3.10, port 123
stratum 1, precision -6, leap 00, trust 000
refid [LOCL], delay 0.04135, dispersion 0.00383
transmitted 4, in filter 4
reference time:    cfc99402.e010624d  Mon, Jun 21 2010  8:32:18.875
originate timestamp: cfc9dfad.48000000  Mon, Jun 21 2010 13:55:09.281
transmit timestamp:  cfc9dfad.47e27179  Mon, Jun 21 2010 13:55:09.280
filter delay:  0.04155  0.04155  0.04137  0.04135
         0.00000  0.00000  0.00000  0.00000
filter offset: -0.01448 0.000781 0.000537 0.000394
         0.000000 0.000000 0.000000 0.000000
delay 0.04135, dispersion 0.00383
offset 0.000394

21 Jun 13:55:09 ntpdate[19410]: adjust time server 10.1.3.10 offset 0.000394 sec

Cấu hình của máy khách (RackCard21 / 22) trông như thế này:

[root@RackCard21]# cat /etc/ntp.conf
# NTP Deamon Configuration File "ntp.conf"
# Created on 27/04/2010
# Original backed-up as "ntp.conf.backup"

server 10.1.4.23 iburst minpoll 4 maxpoll 4 prefer

server 127.127.1.0
fudge   127.127.1.0 stratum 10

# Drift file.  Put this in a directory which the daemon can write to.
# No symbolic links allowed, either, since the daemon updates the file
# by creating a temporary in the same directory and then rename()'ing
# it to the file.
driftfile /var/lib/ntp/drift

# restrict 127.0.0.1

restrict None mask 255.255.255.255 nomodify notrap noquery

Và ntptrace đưa ra điều này:

[root@RackCard21]# /usr/sbin/ntpdate -d 10.1.4.23
21 Jun 14:04:34 ntpdate[14381]: ntpdate 4.2.2p1@1.1570-o Tue May 19 13:57:56 UTC 2009 (1)
Looking for host 10.1.4.23 and service ntp
host found : 10.1.4.23
transmit(10.1.4.23)
receive(10.1.4.23)
transmit(10.1.4.23)
receive(10.1.4.23)
transmit(10.1.4.23)
receive(10.1.4.23)
transmit(10.1.4.23)
receive(10.1.4.23)
transmit(10.1.4.23)
10.1.4.23: Server dropped: strata too high
server 10.1.4.23, port 123
stratum 16, precision -20, leap 11, trust 000
refid [10.1.4.23], delay 0.02568, dispersion 0.00000
transmitted 4, in filter 4
reference time:    00000000.00000000  Thu, Feb  7 2036  6:28:16.000
originate timestamp: cfc9dfef.12b79516  Mon, Jun 21 2010 13:56:15.073
transmit timestamp:  cfc9e1e2.aeae7d56  Mon, Jun 21 2010 14:04:34.682
filter delay:  0.02573  0.02571  0.02568  0.02568
         0.00000  0.00000  0.00000  0.00000
filter offset: -499.609 -499.609 -499.609 -499.609
         0.000000 0.000000 0.000000 0.000000
delay 0.02568, dispersion 0.00000
offset -499.609286

21 Jun 14:04:34 ntpdate[14381]: no server suitable for synchronization found

Vì vậy, nó không thể tìm thấy một máy chủ phù hợp bởi vì máy chủ mà tôi đang cố sử dụng đang báo cáo rằng đó là một máy chủ tầng 16 (mà tôi tin là không đồng bộ hóa). Điều này là mặc dù thực tế là nó được đồng bộ hóa.

Vì vậy, tôi cần bằng cách nào đó biến RackCard23 thành một tầng cao hơn (Tầng lý tưởng 2). Làm thế nào để tôi đi về làm điều đó?

Bất kỳ trợ giúp đều được đánh giá cao vì tôi đã cố gắng để làm việc này trong nhiều ngày nay!

BIÊN TẬP:

Xin chào Christopher

Tôi đã khởi động lại ntpd, vâng;)

Tất cả các hộp linux đang chạy CentOS 5.4.

Đây là đầu ra từ các lệnh bạn đề xuất. Đầu tiên từ máy chủ:

[root@RackCard23]# /usr/sbin/ntpq -p
     remote           refid      st t when poll reach   delay   offset  jitter
==============================================================================
 10.1.3.10       .INIT.          16 u    -   16    0    0.000    0.000   0.000
 10.1.4.255      .BCST.          16 u    -   64    0    0.000    0.000   0.001

[root@RackCard23]# /usr/sbin/ntpdc -c monlist
remote address          port local address      count m ver code avgint  lstint
===============================================================================
localhost.localdomain  34566 127.0.0.1              1 7 2      0      0       0
10.1.4.21                123 10.1.4.23              5 3 4    180      5       1
10.1.4.22                123 10.1.4.23              7 3 4      0      2       2

Và sau đó từ khách hàng:

[root@RackCard21]# /usr/sbin/ntpq -p
     remote           refid      st t when poll reach   delay   offset  jitter
==============================================================================
 10.1.4.23       .INIT.          16 u   10   16    0    0.000    0.000   0.000
 LOCAL(0)        .LOCL.          10 l   44   64    1    0.000    0.000   0.001

Nếu bạn không có kết nối internet, nguồn thời gian của bạn là gì, tôi có bỏ lỡ nó ở đâu không?
dbasnett

Nguồn thời gian không thực sự quan trọng, chúng tôi không theo thời gian chính xác 100%. Điều chúng tôi muốn là tất cả các máy đều đồng bộ với nhau, ngay cả khi điều đó có nghĩa là thời gian của chúng là hơn 10 phút so với thời gian thực tế. Vì vậy, chúng tôi đang sử dụng một máy ngẫu nhiên trên mạng làm nguồn thời gian chính - tức là chỉ đồng hồ bên trong của nó. Những gì chúng tôi biết và chấp nhận là không đáng tin cậy, nhưng miễn là mọi thứ đồng bộ hóa với chúng tôi. Trong hệ thống được triển khai thực tế, chúng tôi sẽ đồng bộ hóa với nguồn thời gian trên một hệ thống khác mà chúng tôi không kiểm soát được, điều này có thể chính xác hoặc không chính xác hơn.
fwgx

Câu trả lời:


5

Như Chris đã đề cập, tầng 16 cho thấy một máy chủ chưa thực sự đồng bộ hóa với máy chủ. Để chắc chắn, bạn đã khởi động lại dịch vụ ntp, phải không? ( service ntpd restart) Tôi không cố gắng ám chỉ bạn bỏ lỡ những thứ dễ dàng, nhưng tôi luôn làm thế!

Bạn có thể đăng đầu ra của một vài lệnh nữa để giúp chẩn đoán không?

ntpq -ptrên máy khách và máy chủ. Nên hiển thị những máy chủ mà nó đã cấu hình, cũng như số liệu thống kê cho các máy chủ đó.
ntpdc -c monlisttrên máy chủ. Nên hiển thị các khách hàng kết nối.

Ngoài ra, vì bạn không đề cập đến HĐH, tôi đang chạy với các lệnh kiểu RHEL. Hãy cho tôi biết nếu bạn có một cái gì đó khác biệt.

EDIT sau khi biết thêm thông tin
OK, thấy đầu ra của bạn, đây là vấn đề của bạn: Bạn không có máy chủ tầng 1. Trên thực tế, "Mặt trăng" đang sử dụng đồng hồ địa phương. Nó tự báo cáo là một máy chủ 16 tầng. Để bạn tham khảo, máy chủ Stratum1 sẽ có đồng hồ GPS hoặc nguyên tử cục bộ. Bạn có một trong số đó không? Mặt khác, Moon cần đồng bộ hóa đồng hồ của nó với máy chủ ntp KHÁC. Nếu nó không có quyền truy cập mạng, bạn sẽ cần làm mờ tầng tầng của nó. (Điều này đòi hỏi bạn không quan tâm quá nhiều đến thời gian 'thật'. Mà bạn không, nhưng bất kỳ ai khác đọc điều này cũng cần lưu ý điều đó.)

Trên Mặt trăng, thêm dòng sau vào tệp ntp.conf của bạn : fudge 127.127.1.0 stratum 10. Điều này sẽ làm cho nó báo cáo đồng hồ cục bộ của nó là tầng 10. Điều này sẽ làm cho tất cả các máy chủ khác sử dụng nó trên đồng hồ 16 tầng địa phương của họ.

--Christopher Karel


thêm kết quả vào bài câu hỏi chính.
fwgx

đồng ý với Christopher. rất nhiều quan niệm sai lầm về Strata ntp.org/ntpfaq/NTP-s-algo.htm
dbasnett

3

Có thể nằm ngoài chủ đề, máy chủ Stratum 2 cục bộ yêu cầu kết nối với máy chủ Stratum 1 và trong mạng bị cô lập của bạn, bạn không có.

Bạn có thể nhận được một mô-đun GPS giá rẻ và Raspberry Pi, một máy tính bảng đơn với mức tiêu thụ năng lượng tối thiểu và khả năng giao tiếp rộng rãi. Kết nối mô-đun GPS của bạn với Raspberry Pi và kết nối Pi vào mạng của bạn, với phần mềm thích hợp, đó có thể là máy chủ Stratum 1 NTP mà máy chủ Stratum 2 của bạn hoặc kể từ khi bạn có nó trong mạng của mình mọi máy tính, đồng bộ hóa thời gian.


2

NTPd sẽ thiết lập tầng riêng của nó theo:

  1. Nếu độ trôi của đồng hồ cục bộ chưa được đánh giá, hãy đặt tầng thành 16. Quá trình này mất khoảng 15 phút trên một máy chủ bình thường, sau đó nó sẽ chuyển sang bước tiếp theo.
  2. Kết nối với tất cả các máy chủ thời gian được định cấu hình, đánh giá máy chủ nào đáng tin cậy (và được ưu tiên), đặt tầng địa phương thành tầng tầng máy chủ có độ tin cậy thấp nhất cộng với một tầng. Vì vậy, nếu máy chủ đáng tin cậy thấp nhất được tìm thấy là 1, thì cục bộ sẽ là 2.

(Đây không nhất thiết là thứ tự của các sự kiện, nhưng thứ tự chúng được xử lý cho các mục đích thiết lập tầng địa phương.)
(Ngoài ra, tầng 16 không nhất thiết có nghĩa là nó không được đồng bộ hóa).


1
Có thể là do Moon là máy Windows XP Pro x64 sử dụng dịch vụ N32 W32Time mặc định thực sự là NTP đơn giản (SNTP), mà RackCard23 không xem nó là máy chủ NTP thích hợp, do đó sẽ không bao giờ đặt tầng của nó thành bất kỳ thứ gì khác hơn 16?
fwgx

Tôi không thấy điều này trước khi chỉnh sửa bài viết của mình. Điều này rất có khả năng. Bất kỳ lý do không sử dụng một khách hàng ntp thích hợp trên đầu phân cấp của bạn? (Hoặc Windows, hoặc dựa trên Unix)
Christopher Karel

2

Như một phần của một bên, tôi sẽ bao gồm một số phân tích về đầu ra ntpq của bạn. Chỉ để giúp khắc phục sự cố chung trong tương lai, cho chính bạn và những người khác.

Đầu tiên, từ máy chủ của bạn:

[root@RackCard23]# /usr/sbin/ntpq -p
     remote           refid      st t when poll reach   delay   offset  jitter
==============================================================================
 10.1.3.10       .INIT.          16 u    -   16    0    0.000    0.000   0.000
 10.1.4.255      .BCST.          16 u    -   64    0    0.000    0.000   0.001

Cột đầu tiên cho biết hai máy chủ mà máy này được cấu hình để đồng bộ hóa. Đáng chú ý là việc thiếu *hoặc +sẽ chỉ ra một ứng cử viên đồng bộ hoặc ứng cử viên phụ. Điều này có nghĩa là máy chủ của bạn sẽ không sử dụng các mục ở đây, nhưng ít nhất nó cũng đang đăng ký với chúng.

Cột ba, "st", biểu thị tầng của các máy chủ đó. Trong trường hợp này, điều đó chỉ ra rằng cả hai máy đó đều đang sử dụng đồng hồ cục bộ của chúng. (tầng mặc định là 16) Ba cột cuối cùng sẽ cho biết hai đồng hồ cách nhau bao xa. Giá trị "chênh lệch giây trong đồng hồ" hoặc độ trễ giữa hai máy, với chênh lệch về độ trễ đó. Ở đây, số cao hơn là tồi tệ hơn.

Lý do cho các mục không đồng bộ hóa như thế này có thể phụ thuộc vào một số yếu tố: Nếu phần bù trong đồng hồ quá nhiều, thì bạn thậm chí sẽ không thử, vì nó sẽ tạo ra bước nhảy quá lớn trong giờ địa phương. Nếu jitter trở nên xấu, máy khách sẽ không đồng bộ, cho đến khi mọi thứ ổn định. (Điều này thường là tạm thời, tuy nhiên, tái sử dụng) Thay vào đó, như trong trường hợp của bạn, nếu các máy chủ được cấu hình có giá trị địa tầng bằng hoặc cao hơn, cho thấy chúng kém tin cậy như nguồn thời gian, thì máy khách sẽ không sử dụng chúng.

--Christopher Karel

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.