소수의 서버에 적합한 NTP 구성


9

소규모 네트워크에 약 20 개의 Linux 서버가 있고 서로 시계가 적절하게 가까이 있어야합니다 (예 : 20msec 이내). 나는 europe.pool.ntp.org에 동기화 된 모든 것을 시작했고 작업이 완료되었습니다.

이제 두 가지 질문이 있습니다.

  1. 나는 수영장에 눈에 띄는 부담입니까? 즉 , 20 대의 서버 또는 2 대의 서버에 충돌하는 경우 풀에 눈에 띄는 차이가 있습니까?
  2. 차이가 나는 경우 서브넷을 동기화하고 부하가 적은 풀을 유지하는 설정 / 구성은 무엇입니까? 거대한 네트워크 ( http://www.ntp.org/ntpfaq/NTP-s-config-adv.htm#AEN3101 )에 대한 지침이 있지만 소규모 네트워크에는 아무것도 없습니다.

1
일반적으로 내부 네트워크를 동기화 할 하나 또는 두 개의 내부 시간 서버가 있어야합니다. 두 개의 내부 서버는 peer관계 가있을 수 있습니다 . 예를 들어 ntp.org/ntpfaq/NTP-s-config-adv.htm#AEN3101
— Marki

의견을 보내 주셔서 감사합니다. Marki. 링크에 관해서는 그것은 분명히 내 경우가 아닌 "거대한 네트워크"에 대한 것임을 지적합니다. 귀하의 제안과 관련하여 : 하나의 내부 시간 서버는 좋은 생각 (단일 실패 지점)이라고 생각하지 않지만 2는 좋은 생각처럼 보입니다. 동료 관계가 무엇인지 설명하거나 링크를 제공 할 수 있습니까?
— ndemou

또한 나는 분명히 NTP 전문가가 아니라는 점에 주목해야한다.
— :))

동료가 무엇인지에 대해 조금이라도 구글을 아프게하지 않을 것입니다. 이 사이트는 사람들이 전혀 연구하지 않을 때은 플래터에 아무것도 제공하지 않습니다.
— Marki

잘못 이해하지 마십시오. 숙제를했지만 NTP는 대부분의 문서가 너무 삼키거나 (ntp.conf입니다. 그냥 사용하십시오) 또는 너무 깊게 (50 페이지의 작동 이론으로 읽을 수있는) 주제입니다. 기본 사실 파악을 시작할 수 있습니다).
— ndemou

답변:


8
  1. 나는 수영장에 눈에 띄는 부담입니까? 즉, 20 대의 서버 또는 2 대의 서버에서 타격을 받으면 풀과 눈에 띄는 차이가 있습니까?

풀에 몇 년 동안 서버가 지속적으로 필요하다는 점을 고려할 때 ([1] 참조) 실제로 2 ~ 20 대의 서버가 차이를 만들지는 않지만 항상 혼자가 아니라는 것을 기억해야합니다. 당신은 더 나은 우리가 2000 또는 20000 서버를 얘기하고 1000 관리자이 경우 말에 대해 생각하고이 그래서 않습니다 차이를 확인하십시오.

  1. 차이가 나는 경우 서브넷을 동기화하고 부하가 적은 풀을 유지하는 설정 / 구성은 무엇입니까?

네트워크에있는 두 대의 서버를 풀 과 동기화 한 다음 ( 기본 NTP 서버라고 함 ) 다른 모든 서버를이 두 서버와 동기화해야합니다. 이 방법은 또한 모든 서버 간의 시간이 1msec 미만으로 더 밀접하게 일치한다는 이점이 있습니다. 이것은 IETF 모범 사례 에 따른 것 입니다.

1) 기본 NTP 서버 구성

ntp [d] .conf 의 server및 restrict행을 다음으로 바꾸고 나머지는 배포 기본값 [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

이 구성을 사용하면 인터넷의 모든 호스트가 NTP 쿼리를 통해 호스트 시간을 쿼리 할 수 ​​있습니다. 원하지 않으면 방화벽을 사용하십시오 . 필자의 예제 10.11.12.1 및 10.11.12.2는 기본 NTP 서버의 IP입니다 (공개 인터넷에 연결된 네트워크 카드와 로컬 10.11.12.x 서브넷에 각각 하나씩 두 개의 네트워크 카드가 있음). 각 기본 NTP 서버에는 피어로 선언 된 다른 서버가 있습니다. 피어는 기본적으로 서버와 클라이언트를 모두 의미합니다. 다른 호스트는 시간 소스로 사용하고 다른 호스트는 사용자를 시간 소스로 사용합니다. 따라서 각 1 차 NTP 서버의 구성이 다른 서버를 피어로 가리 키도록 첫 번째 라인의 IP를 조정하십시오 . 4 대의 서버를 사용하기로 선택한 것에 대해서는 [4]를 참조하십시오.

2) 다른 모든 서버의 구성

2A) 네트워크 인터페이스가 두 개인 경우

두 번째 인터페이스를 사용하여 로컬 서브넷 (예 :)을 만들고 10.11.12.0/24NTP 쿼리에 사용하는 것이 좋습니다. 이 경우 제한선이 더 빡빡 할 수 있습니다. 따라서 ntp [d] .conf 의 server및 restrict행을 다음과 같이 바꾸고 나머지는 배포 기본값 [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) 두 개의 네트워크 인터페이스가없는 경우

다음 제한 줄을 사용해야합니다 (위의 NTP 서버에 대한 액세스를 차단하기 위해 방화벽 사용에 대한 참고 사항을 읽으십시오). 따라서 ntp [d] .conf 의 server및 restrict행을 다음과 같이 바꾸고 나머지는 배포 기본값 [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

노트

[1] 2006 년부터 2012 년까지 2006 년 요청, 2009 년 서버 및 2012 년 서버에 더 많은 서버가 참여하도록 지속적으로 요청합니다 . 현재 상태에 대한 업데이트는 www.pool.ntp.org 를 확인하십시오 .

[2] 2 개의 주 NTP 서버는 복잡한 고 가용성 배열없이 중복성을 갖는 간단한 방법으로 만 제안됩니다. 다른 이유로 3 또는 4를 선택할 수 있습니다 ( IETF 모범 사례를 다시 읽으십시오 )

[3] 실제로 배포와 상관없이 ntpd 구성에 포함해야 할 유일한 것은 드리프트 파일을 넣을 디렉토리를 정의하는 행과 그 이름입니다 (예 :) driftfile /var/lib/ntp/ntp.drift. CentOS, Debian 및 Ubuntu에서 솔루션을 테스트했습니다. 나는 그것이 대부분의 다른 배포판에서 작동한다고 생각합니다.

[4] 모범 사례에 따라 4 개의 풀 서버를 구성 했습니다 . 기술적으로는 4 대 이상의 서버를 구성하는 것이 허용되지만 가용성이 의심 스럽다면 NTP 풀에 대한 부하가 증가 하므로 그렇게하지 마십시오. 모범 사례에서 "ntp-4.2.6으로 시작하면 'pool'지시문이 강력한 시간 서비스를 제공하기 위해"충분한 "연결을 시작 하므로 .pool을 사용하는 경우입니다. 여기서 내가하는 주소와 ntp> = 4.2.6 정확한 서버 줄 수는 중요하지 않을 것입니다.

랜트 오! 나는 NTP를 싫어한다 (나는 그것이 작동한다는 것을 제외하고). 공식 문서는 더 이상 사용되지 않는 정보로 가득 차 있으며 "어떻게 사용합니까?" 내부에 대한 과학적 세부 사항과 혼합 된 정보. 그리고 나는 또한 restrict 127.0.0.1정말로 의미 하는 것이 싫어allow everything for 127.0.0.1


업데이트의 역사

iburst풀에 대한 친숙 함이 논쟁의 여지가 있으므로 로컬 NTP 서버 구성 에서 옵션을 제거했습니다 . (의견 참조). 이를 제거하면 첫 번째 동기화에 몇 분의 대기 시간 만 추가 됩니다.


크레딧

SF 사용자의 의견과 답변 Marki와 Sven은이 답변에 대한 좋은 출발점을 제공했습니다. 둘 다 감사합니다.


1
나에게서 +1 나는 풀 서버를 실행하고, 그 제외하고는이 게시물의 정당성 지나치게 강조, 할 수없는 iburst공공 서버에서 사용하기에 성가신 매개 변수, 그래서하지 마십시오 (그러나 그것의 아무것도 성가신 등 같은 burst). 풀 서버 관리자는 인터넷을 더 잘 운영하기 위해 자신이 누구인지 모르고 스스로를 보상하지 않고 호의를 베풀고 있습니다. 당신이 더 열심히 일함으로써 그들의 삶을 더 쉽게 만들 수 있다면, 그렇게하는 것이 그들에게 빚진 것입니다.
— MadHatter

고마워 MadHatter. iburst와 관련하여 일반적인 "항상 켜져있는"서버에는 문제가 없다고 생각했습니다. 이 옵션을 사용하지 않는 것에 대한 조언을 제공하는 링크가 있습니까? (저는 www.pool.ntp.org/en/use.html을 확인하고 10 분 동안 Google 검색을했지만 결정적인 결과를 얻지 못했습니다)
— ndemou

트래픽 통계를 행복하게 공유하겠습니다. 빠른 샘플은 잘못 구성된 호스트, 즉 분당 1 회 이상 더 자주 전송하는 호스트가 내 클라이언트의 약 45 %를 구성하지만 트래픽의 약 75 %를 담당한다는 것을 나타냅니다. 즉 대부분의 서버에서 해당 사용됩니다 burst만,도 iburst(로부터 말한다 ntpd"사람 페이지) 메시지의 헤딩슛은 데이터를 신랑과 10 초 약에 시계를 설정하는 교환이 옵션을 ". 사용 iburst"라고 신속하게 서버 낮은 부하를 유지하는 것보다 더 중요한 내 시계를 설정 "과의 무례있다.
— MadHatter

당신은 "메시지 볼륨"에 대해서는 맞지만이 버스트는 NTP 데몬이 시작되는 동안 그리고 풀 서버에 일시적으로 접근 할 수없는 경우 (i는 처음부터) 발생한다는 것을 이해할 수 있습니다. 다음은 Arch wiki NTPd 페이지의 요약입니다. "iburst 옵션이 권장되며 첫 번째 시도와 연결을 얻을 수없는 경우에만 패킷 버스트를 보냅니다. burst 옵션은 첫 번째 시도에서도 항상이를 수행합니다. 명시적인 허가없이 사용해서는 안되며 블랙리스트에 올 수 있습니다. "
— ndemou

당신 iburst보다 훨씬 덜 불쾌한 것이 맞습니다 burst. 내 요점은 당신이 다른 사람의 자원을 무료로 사용할 때, 배려하여 배려해야한다는 주장이 있다는 것이다. 단지 적극적으로 고려하지 않는 것으로 충분하다고 생각되지 않을 수 있습니다. 모범 사례라고하지만 동의 한 업스트림 서버가 기업의 일부인지 여부는 해당 문서에 포함되지 않습니다. 그들은 사회적 모범 사례가 아닌 기술적 모범 사례를 사용 합니다. iburst
— MadHatter

6

이를위한 일반적인 접근 방식은 계층 구성을 사용하는 것입니다. 네트워크에서 하나 또는 두 개의 서버를 풀과 동기화 한 다음 로컬 시간 소스로 사용합니다. 이 수준 을 NTP 용어로 지층 이라고 합니다.

또한 생각해보십시오. 설명하지 않은 것처럼 이렇게하면 실제로 눈에 띄지 않지만 1000 개의 사이트 크기로 시작하면 20k 주로 불필요한 요청이 발생하고 어느 시점에서 눈에 띄게됩니다.

http://en.wikipedia.org/wiki/Network_Time_Protocol을 읽으십시오


그러나 대체 견해를 고려하십시오. 수백만 개의 기존 클라이언트 위에있는 20 개 이상의 클라이언트는 거의 없습니다.
— 200_success

2
그가 말했듯이, 모든 사람들이 그렇게 생각하기 시작하면 ...
— Marki

그러나 어느 시점에서 멈추십니까? 사용하도록 사전 구성되어 제공되는 모든 Linksys 급 장치를 생각해보십시오 pool.ntp.org. 반드시 DNS 트래픽이 NTP 트래픽을 초과합니다. DNS를 로컬로 캐시해야합니까? DNS 트래픽도 나머지 대역폭 소비에 비해 아주 적습니다.
— 200_success

@ 200_success : 토론 할 가치는 없지만,이 "Linksys 클래스"장치의 대부분은 실제로 DNS 트래픽을 로컬로 캐시하고 ISP DNS도 쿼리합니다.
— Sven

1
링크시스 선박 장치 만약에 동기화하는 ntp.pool.org그들은 위반에있어 풀 용어 ; 공급 업체 영역을 적용하여 올바르게 수행 한 경우 (링크 참조) 또한 부하에 비례하여 풀 프로젝트에 기여할 것으로 예상됩니다 (다시 링크 참조).
— MadHatter
당사 사이트를 사용함과 동시에 당사의 쿠키 정책과 개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.