NTPD와 ntpdate 비교


23

서버를 동기화하는이 두 가지 방법의 장단점은 무엇입니까?

서버가 매일 1 초 이상 드리프트하지 않을 것 같으므로 crontab의 ntpdate는 괜찮을 것입니다. 하지만 여기서 중복 NTP 서버를 사용할 수 있다고 들었습니다.

http://www.pool.ntp.org/en/use.html

고장시 동기화 된 시간을 유지하기 위해.

의견 있으십니까?

답변:


26

NTP 알고리즘에는 서버 시계의 드리프트를 계산하고 수정할 수있는 정보가 포함되어 있습니다. NTPD에는이 기능을 사용하여 시계 동기화를 유지하는 기능이 포함되어 있으며 NTPD를 실행하지 않는 컴퓨터의 시계보다 더 정확하게 실행됩니다. NTPD는 또한 여러 서버를 사용하여 정확성을 향상시킵니다.

ntpdate는이 서비스를 수행하기위한 상태를 유지하지 않으므로 동일한 종류의 정확성을 제공하지 않습니다. 더 나은 결과를 제공하기 위해 사용할 서버 목록을 제공 할 수 있지만 시간이 지남에 따라 각 서버에서 드리프트를 추적하는 NTPD에서 제공하는 정교한 알고리즘을 대체 할 수는 없습니다.

NTPDATE는 시스템 시간을 즉시 수정하여 일부 소프트웨어에 문제를 일으킬 수 있습니다 (예 : 현재는 오래된 것으로 보이는 세션 파괴). NTPD는 의도적으로 시스템 시간을 느리게 수정하여 문제를 방지합니다. NTPD를 시작할 때 -g 스위치를 추가하여 NTPD가 NTPD를 시작하기 전에 ntpdate를 한 번 실행하는 것과 다소 비슷한 큰 업데이트를 만들 수 있습니다.

보안 문제와 관련하여 ntp 서버는 시작되지 않은 연결에서 다시 연결하지 않습니다. 즉, 방화벽에서 ntp 요청을 시작했음을 알리고 반환 트래픽을 허용 할 수 있어야합니다. NTPD가 작동하도록하기 위해 임의의 연결을 위해 포트를 열어 두지 않아도됩니다.

ntpdate (8) 매뉴얼 페이지에서 :

호스트 시계를 설정하기 위해 필요에 따라 ntpdate를 수동으로 실행하거나 부팅시 시계를 설정하기 위해 호스트 시작 스크립트에서 실행할 수 있습니다. 이것은 일부 경우에 NTP 데몬 ntpd를 시작하기 전에 시계를 처음 설정하는 데 유용합니다. cron 스크립트에서 ntpdate를 실행할 수도 있습니다. 그러나 고안된 cron 스크립트를 사용하는 ntpdate는 NTP 데몬을 대체하지 않으며, 이는 정교한 알고리즘을 사용하여 정확성과 신뢰성을 최대화하면서 자원 사용을 최소화합니다. 마지막으로, ntpdate는 ntpd와 마찬가지로 호스트 클럭 주파수를 규율하지 않기 때문에 ntpdate를 사용하는 정확도가 제한됩니다.


ntpd를 시작하기 전에 ntpdate를 사용하는 것보다 낫습니다. -g를 사용하십시오!
Alex J

8

ntpd는 ntpdate보다 선호됩니다. 시계에서 점프하지 않고 매끄러운 시간 수정을하기 때문입니다. 뒤로 이동하는 로그가있을 때 로그에 어떤 의미가 있습니까? ntpdate는 필요에 따라 서버간에 투명하게 전환합니다.

Kyle이 언급 한 개방 포트가 필요한 경우 암호화 인증을 통해 최신 버전의 ntpd (예 : 데비안 서버의 4.2.4)를 LAN으로 브로드 캐스트 / 멀티 캐스트하도록 구성 할 수 있습니다.

편집 : 이 질문 도 참조하십시오 .


5

일반적으로 NTPD를 실행하고 조직 내의 지정된 시간 서버와 서버를 동기화하는 것이 좋습니다. 해당 내부 서버는 일반적으로 공용 NTP 서버 중 하나와 연결됩니다 (링크 된대로).

나는 아무런 문제없이 ntpdate 메소드를 사용했지만 실제 ntpd 데몬을 실행하는 것보다 더 해킹처럼 보입니다.


3

ntpd를 실행하는 가상 머신의 클럭 스큐 문제에 대해 들었습니다. 또한 여러 풀 서버에 대해 ntpdate를 호출하는 일반 크론 작업을 실행하여이 문제를 해결하는 사람들의 이야기를 들었습니다. 이런 문제는 없었지만 여러 번 들었습니다.


1
그들은 VM에 틱리스 커널을 실행하고자 할 것입니다
끈적 거리는

1
ESX VM의 VMware 도구 소프트웨어는 시간 동기화를 처리하므로 VMware 도구와 함께 VM에서 ntpd를 사용하지 마십시오. 대신 호스트에 NTPD를 설정하고 나머지는 VMware 도구를 사용하십시오.
dunxd

3

다른 곳에서 언급했듯이 NTP는 원활한 시간 보정 기능을 제공합니다. 서버의 응용 프로그램에서 전체 초가 누락되거나 동일한 초를 다시 반복해도 신경 쓰지 않으면 ntpd는 ntpdate보다 많은 것을 얻지 못합니다.

반면에 초에 민감한 시간에 민감한 응용 프로그램이 있거나 부분 초에 더 민감한 응용 프로그램이 있으면 ntpd가 훨씬 더 나은 선택입니다. Novell eDirectory는 업데이트 충돌 처리를 위해 업데이트 타임 스탬프를 업데이트합니다. 이는 아침에 로그인이 급증하는 등 업데이트가 매우 빠른 경우에 중요합니다. 정상 로그를 유지하려면 syslog 서버의 시간이 최소한 0.5 초 이상이어야합니다.

집에있는 MythTV 박스의 경우 케이블 공급 업체가 시간을 고려한 시간에서 몇 초가 걸리더라도 NTP를 사용합니다. 작업중인 UPS 모니터 서버의 경우 Kyle Hodgson이 지적한 것과 같은 이유로 crontabbed ntpdate를 사용합니다. 포트리스 호스트이므로 응용 프로그램을 잠근 경우에도 해당 포트를 열고 싶지 않습니다. 그 응용 프로그램에 대한 두 번째 사실이 무서운 것은 아닙니다.

중복성에 관해서는 네트워크에서 최소 두 개의 시간 호스트를 유지하고 모든 내부 호스트를이 두 호스트로 지정합니다. 이 둘은 서로 다른 인터넷 NTP 호스트를 추적합니다. 또한, Peer 배열로 구성되어 인터넷 연결이 끊어지면 합의 방식으로 시간을 유지할 수 있습니다. 강력한 NTP는 엔지니어링이 가능합니다.


1

액세스 및 강화가 중요한 서버에서, 내가 의존하고 있던 ntpd의 버전 인 xntpd가 개방 UDP 포트 123을 필요로한다는 추론을 사용했습니다. 대신 crontab에서. 나는 그것이 왜 그것이 필요한지, 또는 내가 기억하지 못하는 이유를 들어 본 적이 없다.

crontab의 ntpdate 호출을 사용하는 단점 중 하나는 드리프트 수정을 우아하게 처리 할 수 ​​없다는 것입니다. ntpdate, iirc는 시간이 오래되었다는 것을 알 수있는 즉시 시계를 업데이트합니다. ntp 데몬은 일반적으로 드리프트를 부드럽게 수정합니다. 예를 들어, 바쁜 웹 서버에서 RTC가 몇 분 동안 표류하면 다음 날 웹 로그를 읽는 것이 사람들이 안전하게 공격 할 수 있다고 추측 할 수 있습니다. 웹 조회수가 잘못되어 URL이 로그인하기 전입니다.


1

ntpdate는 일회성 업데이트를위한 것으로, 정기적으로 시간을 동기화하려면 서비스를 해당 목적으로 사용하십시오 (ntpd).

내가 말할 수있는 한 ntpd를 사용하지 않는 강력한 이유는 없습니다.


0

crontab을 사용할 필요가 없습니다. 이것이 바로 ntpd입니다.

처음에는 시간이 다했을 때 한 가지 방법은 단순히 ntpd를 중지 한 다음 ntpdate ntp.server.com다시 동기화하기 위해 실행 한 다음 ntp를 다시 시작하는 것입니다.

그래도 네트워크가 크면 로컬 ntp 서버 몇 개를 설정하고 모든 호스트가 해당 서버를 사용하게 할 것입니다.


0

"ntpdate"가 여전히 요구되고 사용되는 이유에 대한 이해는 이 토론 을 참조하십시오 .

요약하자면 , -g 옵션을 사용하더라도 시간을 크게 조정할 때 ntpd가 느립니다 .


-3

가정용으로 ntpdate는 실제로 큰 문제가 아닙니다. "느린"이유가 있습니다. PRODUCTION ENTERPRISE 환경에서 ntpdate와 함께 cron을 사용하는 사람은 바보입니다.


2
용도가 있습니다. +/- 1000ms 정도의 모든 종류의 최소 개방 포트 및 시간 확인 요구 사항이 필요한 서버와 같이 cron + ntpdate는 시간 동기화를 유지하기위한 완벽한 방법입니다.
sysadmin1138
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.