
그림을 참조하십시오.
LAN에 두 대의 컴퓨터가 있는데 그 중 하나만 다른 인터페이스를 통해 인터넷에 연결되어 있습니다. 서버 1에는 쓰레기 하드웨어 시계가 있습니다. 서버 2에는 좋은 하드웨어 RTC가 있습니다.
불행하게도 서버 1은 일반적으로 인터넷에 연결되어 있지만 좋은 하드웨어 RTC를 갖춘 서버는 그렇지 않습니다. 따라서 인터넷 연결 상태에 따라 서버 1이 가장 정확하거나 매우 불안정합니다.
두 시스템이 서로 긴밀한 동기화를 유지하는 것이 중요합니다.
각 시스템의 계층에 대한 자동 조정을 통해 시스템이 시나리오 1에서 시나리오 2로 자동으로 실패하도록 하는 것이 가능합니까?
답변1
첫째, Stratum에 액세스할 가능성이 거의 없습니다.1Stratum 1 서버 관리자가 귀하를 알고 명시적인 권한을 부여한 경우를 제외하고는 서버. 하지만 이 답변에서는 해당 서버의 계층이 무엇인지는 중요하지 않으므로 명확성을 위해 해당 시스템을 "낮은 계층" 서버라고 부르겠습니다.
server2
에서가 아닌 낮은 계층 서버에서 시간을 가져오도록 구성해야 합니다 server1
. 이를 위해서는 (적어도 NTP의 경우) 의 인터넷 링크에 액세스할 수 있어야 합니다 server1
. 낮은 계층 서버에 액세스할 수 있는 인터넷 링크가 없는 경우 루트로 server2
다음 명령을 실행하여 이를 허용할 수 있습니다 .server1
iptables -A FORWARD -s server2 -p udp --dport 123 -j ACCEPT
iptables -A FORWARD -s server2 -p tcp --dport 123 -j ACCEPT
iptables -A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
sysctl -w net.ipv4.ip_forward=1
처음 두 줄은 호스트의 NTP 트래픽을 허용합니다.server2
오직. 참고: TCP 연결이 필요한지 100% 확신할 수는 없지만 문제가 되지는 않습니다. 이 두 줄에도 추가하여 -d lowstratumserver
이 컴퓨터가 다른 서버(낮은 계층 서버만)에 액세스할 수 없도록 할 수도 있습니다. 다음 줄은 설정된 연결의 반환 트래픽을 허용합니다. 네 번째 줄은 네트워크 주소 변환을 활성화합니다. 마지막 줄은 IP 패킷 전달을 활성화합니다. 이를 통해 server1
이제 (최소) 라우터가 됩니다.
server2
기본 라우터 가 없으면 낮은 server1
계층 서버에 대한 명시적인 경로도 추가해야 합니다.
ip route add lowstratumserver via server1
이를 통해 에서는 에 대한 네트워크 연결을 위한 라우터로 server2
사용 하고 그 밖의 모든 것에는 일반 라우터를 사용합니다.server1
lowstratumserver
server2
그런 다음 가 아닌 인터넷의 낮은 계층 서버를 NTP 소스로 사용하도록 구성합니다 server1
.
마지막으로 인터넷상의 Stratum 1 서버가 아닌 server1
에 연결되도록 구성합니다.server2
이제 server2
가 아닌 인터넷의 하위 계층 서버와 동기화됩니다 server1
. 항상 server1
동기화되므로 장애 server2
조치 설정을 추가할 필요가 없습니다(기껏해야 취약함).
이렇게 하면 추가 홉으로 인해 정확도가 약간 떨어지지만 품질이 낮은 시스템보다는 로컬 네트워크의 시스템을 하드웨어 RTC가 좋은 시스템과 동기화하는 것이 항상 더 좋습니다.