NTP 서버란? 물리서버 간 시간 동기화하는 이유

NTP 서버는 네트워크에 구성된 물리서버 간 시간을 동기화해줍니다. 컴퓨터 자체적으로 시간을 세는 경우 환경에 따라 차츰 시간이 틀어질 수 있습니다. 시간 동기화는 네트워크 유지보수 및 보안의 관점에서 중요합니다. 시간은 디버깅 시 중요하게 고려되는 요소이기 때문입니다. 게다가 NTP 서버 구축 유무는 인프라 관련 감사 항목에도 포함됩니다.  

NTP 서버란?

NTP(Network Time Protocol)는 네트워크에서 컴퓨터의 시간을 동기화하는 데 사용되는 프로토콜입니다. 그러니 NTP 서버는 NTP 규약을 이용하여 장비 시간 동기화를 제공하는 서버를 의미합니다.

 

정확한 시간의 기준은 원자 시계입니다. 원자시계는 원자의 진동수가 일정하며 외부 영향을 거의 받지 않아 정확도가 매우 높은 시계입니다. 원자시계로부터 정보를 얻어오기 위해서는 전용 수신기가 필요합니다. 모든 컴퓨터가 이런 수신기를 탑재할 수는 없습니다. 대신 기준이 되는 컴퓨터에 수신기를 장착하고 NTP로 통신해서 시간을 동기화 하는 구조라고 이해하시면 됩니다.

NTP 서버를 사용하는 이유

우선 언급했던 것처럼 네트워크에 구성된 장비 간 시간을 동일하게 맞추기 위함입니다. 통상 조직에 구성되는 물리서버들은 독립적으로 시간이 설정됩니다. 물리 서버는 날씨, 기온 등에 영향을 받는 하드웨어기 때문에 시간이 지날수록 틀어질 가능성이 높아집니다.

 

장비 간 시간이 다르면 장애 발생 원인을 분석하는데 어려움을 겪을 수 있습니다. 로그는 컴퓨터 시간을 기준으로 생성되는데 컴퓨터의 시간이 틀어지면 정확하게 원인 파악이 어렵습니다. 꼭 디버깅이 아니라도 시간 기록 자체가 중요한 서비스라면 시간의 정확성은 더 중요하게 작용할 것입니다.

 

조직 내 인프라, 보안팀 등이 감사를 받을 때 측정 항목에 NTP 구축 여부가 포함됩니다. 이런 경우 굳이 시간 오차가 크게 신경쓰이지 않더라도 시간 동기화를 구성이 필요할 수 있습니다.

NTP 서버 작동 방식

간단하게 말하면 NTP 서버는 특수 수신기를 통해 원자시계로부터 받아온 시간을 서버에 표시하고 다른 일반 서버들은 NTP 서버를 바라보고 시간을 표시하는 방식으로 동기화가 이루어집니다. NTP 클라이언트는 NTP 서버에 시간을 요청하고 NTP 서버는 시간을 응답합니다.

 

이런 식으로 동기화가 완료되면 클라이언트는 주기적으로 시계를 업데이트하며 정확성을 유지합니다. 이 작업은 UDP 123번 포트를 사용합니다.

외부 NTP 서버 사용

통상 조직에서 사용하는 NTP 서버는 내부망에서 사용하는 전용 서버입니다. 이런 솔루션을 판매하는 업체들도 물론 존재하고요. 그러나 인터넷망을 통해 NTP 서버를 구축하는 방법도 있습니다. 예를 들어, time.bora.net, kr.pool.ntp.org, time.nuri.net, ntp.kornet.net, time.kriss.re.kr처럼 이용 가능한 서버들이 많이 있습니다.

 

출처=layerstack

 

문제는 조직에 있는 물리 서버를 인터넷망과 바로 연결해버리면 보안상 좋지 못하다는 것입니다. 그래서 이런 경우엔 인터넷망이 연결된 서버 한대를 두고 외부 NTP 서버와 연동한 다음 내부망에 있는 서버들은 해당 NTP 서버와 연동하는 방법을 이용할 수 있습니다.

반응형

댓글

Designed by JB FACTORY