Làm cách nào để tùy chỉnh tỷ lệ thăm dò của NTP?


17

Tôi đang thiết lập Ubuntu trên một máy nhúng chạy qua kết nối di động, nơi chúng tôi trả tiền cho mỗi byte. Máy cũng không có pin RTC, vì vậy nó bắt đầu từ một thời gian ngẫu nhiên mỗi khi khởi động.

Tôi muốn đảm bảo rằng thời gian được đồng bộ hóa khi kết nối di động khả dụng để thông điệp tường trình, v.v. có thời gian thực, nhưng tôi cũng không muốn trả một cánh tay và một chân cho lưu lượng truy cập NTP.

Tôi có thể tùy chỉnh tốc độ NTP cập nhật thời gian không? Hiện tại tôi đang sử dụng openntpd, nhưng tôi không kết hôn với nó.

Internet không nhất thiết phải khởi động, vì vậy ntupdate và liên quan khi khởi động sẽ không hoạt động. Và lập lịch trình qua cron có nghĩa là chờ đợi tác vụ theo lịch trình khởi động, trong khi tôi muốn một trình nền thời gian để có được đồng bộ hóa thời gian càng sớm càng tốt.

Câu trả lời:


5

Một số câu trả lời có thể giành chiến thắng trong cuộc thi cấu hình ntp bị xáo trộn.

Sử dụng triển khai tham chiếu ntp và sử dụng iburst để đặt thời gian nhanh chóng khi khởi động. Sau đó, bạn có thể sử dụng lệnh minpoll để giới hạn tần suất ntpd truy vấn các máy chủ thời gian từ xa. Điều này sẽ cho phép bạn tận dụng kỷ luật đồng hồ của ntpd và giữ băng thông xuống.

minpoll minpoll
maxpoll maxpoll
    These options specify the minimum and maximum poll intervals for NTP 
    messages, in seconds as a power of two. The maximum poll interval 
    defaults to 10 (1024 s), but can be increased by the maxpoll option to 
    an upper limit of 17 (36 h). The minimum poll interval defaults to 6 (64 s), 
    but can be decreased by the minpoll option to a lower limit of 3 (8 s).

Chrony là một thay thế tốt cho việc thực hiện tham chiếu ntp. Openntpd thì không.


8

Kinh nghiệm của tôi là với ntp chứ không phải openntpd.

Bạn nên biết rằng giao thức NTP thường bắt đầu bằng việc gửi các gói mỗi phút (64 giây), nhưng thường giải quyết bằng cách gửi và nhận một gói mỗi 17 phút cho mỗi máy chủ bạn có trong tệp /etc/ntp.conf của mình. Tuy nhiên, sự cố ngừng mạng hoặc đồng hồ không ổn định trong thiết bị của bạn có thể làm tăng điều này. Mỗi gói có tải trọng khoảng 68 byte, do đó, có lẽ chỉ hơn 100 byte, mỗi cách, cho mỗi cuộc thăm dò.

Các ndate và ntpdate tại thời gian lên mạng là những ý tưởng tốt để thiết lập thời gian. Và nếu đó là tất cả những gì bạn cần thì nên làm việc tốt cho bạn.

Tuy nhiên, nếu bạn cần giữ thời gian đồng bộ hóa trong một thời gian dài, giao thức ntp được thiết kế để làm điều đó. Đồng hồ trong thiết bị của bạn sẽ chạy nhanh hay chậm một chút tùy thuộc vào mức độ ấm hay lạnh của nó, mặc dù nó có thể có đồng hồ điều khiển bằng pha lê - và việc bấm giờ liên tục có nghĩa là điều chỉnh cho điều đó.

Dưới đây là một số gợi ý nếu bạn cần chấm công liên tục và muốn giảm băng thông được sử dụng. Họ đề cập đến các mục trong ntp.conf.

Đừng sử dụng iburst. (Nhưng sẽ mất nhiều thời gian hơn để đặt thời gian ban đầu).

Tăng minpoll lên từ 6 (2 ^ 6 giây là 64 giây). Điều này làm giảm lưu lượng khi giao thức khởi động sau khi mạng xuất hiện.

Tăng maxpoll lên từ 10 (2 ^ 10 giây là 1024 giây hoặc cứ sau 17 phút. Bạn có thể đi xa tới 17 để thăm dò ý kiến ​​cứ sau 36 giờ. Tôi chưa thử điều này.

Chỉ sử dụng một số lượng máy chủ tối thiểu, nếu bạn có một máy chủ có thể truy cập đáng tin cậy từ các thiết bị nhúng của mình, điều đó thật tuyệt vời. Càng nhiều máy chủ thì thời gian chờ càng đáng tin cậy, nhưng lưu lượng truy cập tăng lên, vì vậy đó là một sự đánh đổi.



3

Trên bản cài đặt mặc định của Ubuntu, trình nền NTP không chạy. Thay vào đó, thời gian được đặt mỗi lần giao diện mạng được đưa lên bởi /etc/network/if-up.d/ntpdatehook.

Nếu bạn sau khi đồng bộ hóa một lần thay vì đồng bộ hóa liên tục, thì điều này có thể là đủ cho bạn.

Bạn có thể kiểm soát máy chủ nào được truy vấn để đặt thời gian thông qua /etc/ntp.conftệp tiêu chuẩn hoặc thông qua NTPSERVERSbiến trong /etc/default/ntpdate.


2

Bạn có cần đồng bộ hóa chính xác và chính xác mà ntp cung cấp không? Nếu không, bạn có thể thoát khỏi việc sử dụng rdatehoặc ntpdatekhởi động và sau đó định kỳ qua cron.


2

Có lẽ bạn đã đọc trang man openntpd.

http://www.openbsd.org/cgi-bin/man.cgi?query=ntpd.conf

Có lẽ bạn đã nhận thấy việc thiếu một lựa chọn bỏ phiếu cho thời gian.

Tôi có những hack có thể để đề xuất:

  1. Đừng sử dụng bất kỳ ntpd nào, chỉ cần gọi ntpdate qua cron.
  2. Sử dụng cron và / hoặc tập lệnh kết nối di động của bạn để chuyển đổi quy tắc iptables để giảm hoặc cho phép lưu lượng truy cập cổng 123 khi bạn muốn cho phép nó. Điều này có thể đơn giản như

    0 12 * * * iptables -D OUTPUT -j DROP -p udp --dport 123 # at noon start allowing ntp

    0 13 * * * iptables -A OUTPUT -j DROP -p udp --dport 123 # at 1pm stop allowing ntp

  3. Nhúng một máy thu đồng hồ radio trong máy nhúng của bạn. Tôi gần như không biết gì về điều này nhưng các sản phẩm như thế này:

làm tôi nghĩ rằng không khó nếu bạn có thể nhận được tín hiệu radio.


1
Nếu bạn định thêm phần cứng, tại sao lại khuyên dùng đồng hồ radio và không thêm GPS bằng PPS?
dfc

@dfc điểm tốt. OP, Hãy xem xét phần cứng GPS để có thời gian.
Jay _silly_evarlast_ Wren

1
Với 50 đô la (Chắc chắn GPS là một thỏa thuận tuyệt vời) và một số máy hàn tôi có một máy chủ 1 tầng trong phòng ngủ dự phòng. Tôi có ăng-ten Sure GPS ngồi trong một cửa sổ bị chặn bởi một cây phong khổng lồ và một ngôi nhà khác và nó hoạt động tốt.
dfc

@dfc bạn có thể liên kết với phần cứng và phần mềm nào bạn sử dụng với phần cứng không?
Jay _silly_evarlast_ Wren

1
@Jay_silly_everlast_Wren phần mềm: thực hiện tham chiếu NTP www.ntp.org Ban: sureelectronics.net/goods.php?id=99 Couple thảo luận: satsignal.eu/ntp/Sure-GPS.htmlists.ntp.org/pipermail/questions /2011-March/028854.html Còn nhiều nữa. Đừng sợ hãi bởi hàn. Đó là lần đầu tiên tôi hàn và nó rất dễ dàng. Danh sách gửi thư câu hỏi ntp có đầy đủ những người đã sử dụng bảng chắc chắn và rất hài lòng với nó.
dfc

1

Nếu tôi nhớ chính xác, khoảng thời gian thăm dò ý kiến ​​có thể được đặt thành tối đa 1024 giây. Có lẽ giải pháp đơn giản nhất là chạy ntpdate ở mỗi lần khởi động và sau đó mỗi giờ và sau đó từ crontab.

Nếu đồng hồ của bạn bắt đầu với thời gian ngẫu nhiên ở mỗi lần khởi động, thì có lẽ bạn sẽ không thể chạy ntpd bằng mọi cách và trước tiên bạn sẽ phải sử dụng ntpdate. Ntpd từ chối đồng bộ hóa thời gian nếu chênh lệch quá lớn giữa đồng hồ và đồng hồ máy chủ của bạn.


+1 cho thông tin về ntp từ chối đồng bộ hóa nếu độ trôi quá lớn
David Pfeffer

ntpdate được phản đối ủng hộ lựa chọn để ntpdmà sẽ xử lý tình huống sử dụng này tốt hơn so với cronlon eecis.udel.edu/~mills/ntp/html/ntpdate.html
MSW

1

NTP, giống như TCP, có một số Lý thuyết sâu sắc và Kinh nghiệm thực tế được tích hợp trong giao thức; nếu bạn thay đổi các tham số cơ bản của nó, nó sẽ ngừng có các thuộc tính đồng bộ hóa mà nó được thiết kế cho.

Nếu thiết bị của bạn được kết nối không thường xuyên, có lẽ RDATE cũ sẽ phục vụ bạn tốt nhất. Nó không xử lý vòng quay đồng hồ, cũng không trung bình ngang hàng, cũng không thể được bảo vệ chống lại các vụ hack tinh vi khác nhau mà một người đàn ông ở giữa có thể chơi nếu nó đáng giá trong thời gian của anh ta. Nó chỉ nhận được một ngày tham chiếu từ một máy chủ từ xa và đập đồng hồ địa phương bằng búa. Nhưng, nó làm điều đó khi bạn muốn, và hành vi của nó mang tính quyết định.

Độ chính xác RDATE kém hơn nhiều so với NTP, tôi sẽ không tin tưởng nó tốt hơn ± 1 giây, nhưng nếu bạn chỉ được đính kèm lẻ tẻ, thời gian chính xác hơn không liên quan; thật vậy, theo thuyết tương đối, nó thậm chí có thể không có ý nghĩa.


0

Để làm cho minpool/ maxpoolđược đưa vào tài khoản, bạn phải thêm sau đó cho mỗi máy chủ trong của bạn ntp.conf.

Không nên lộn xộn với deamon NTP (nó được tích hợp sẵn trong mathod để tối ưu hóa tần số) nhưng bạn sẽ cần thêm các tùy chọn như thế này:

server time.google.com iburst minpoll 12 maxppol 17
server ntp.ubuntu.com iburst minpoll 12 maxppol 17
server europe.pool.ntp.org iburst minpoll 12 maxppol 17

Ở đây, nếu đặt câu hỏi tối thiểu thành 2 ^ 12 giây và tối đa là 2 ^ 17 giây.

Theo mặc định, tôi phát hiện ra rằng NTP sẽ đưa ra yêu cầu mỗi phút hoặc lâu hơn. Đó là quá nhiều. Ở đây tôi giảm tần suất từ ​​một lần một giờ xuống một lần một ngày (chắc chắn).

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.