소수의 서버에 적합한 NTP 구성 Linux 서버가 있고 서로 시계가 적절하게 가까이

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

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

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


답변

  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은이 답변에 대한 좋은 출발점을 제공했습니다. 둘 다 감사합니다.


답변

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

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

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


답변