소수의 서버에 적합한 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 의 serverrestrict행을 다음으로 바꾸고 나머지는 배포 기본값 [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 의 serverrestrict행을 다음과 같이 바꾸고 나머지는 배포 기본값 [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 의 serverrestrict행을 다음과 같이 바꾸고 나머지는 배포 기본값 [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.