본문 바로가기
서버/Linux

[Linux] NTP (시간 동기화 프로토콜)

by 느링 2017. 10. 24.

NTP (Network Time Protocol) 시간 동기화 프로토콜 (UDP/123)

- 네트워크 상에 분산된 NTP서버들로부터 각종 컴퓨터, 서버, 네트워크 장비들의 시간을 동기화합니다.

- NTP는 Stratum 이라는 구조를 가집니다.

 

Stratum0 - 세슘 원자 시계, GPS, 표준 주파수 등을 이용하여 시간을 측정해주는 장비

   (Primary Referance Clock)

Stratum1 - 0계층 장비와 직접 연결되어 시간을 동기화 시킨 서버 (Primary Time Server)

   1차 타임 서버

Stratum2 - 트리 구조로 구성되어 Stratum 1계층의 시간 서버와 시간을 동기화 한다.

 

※ Stratum : 지층, 계층

   우리나라 NTP 서버리스트

       ntp.ehwa.or.kr 이대부속 초등학교

       time.bora.net LG U+

       time.kornet.net KT

       time.kriss.re.kr 한국표준과학연구원(KRISS)

 

 

NTP 서버 구축하기

 

Stratum3 - Server-A (NTP SERVER)

Stratum4 - Server-B, Client-Linux, Client-Win (NTP CLIENT)

 

[Server-A]

# yum -y install ntp → ntp 패키지 설치

# vim /etc/ntp.conf ( ntp 주 설정 파일 )의 내용을 모두 삭제한 뒤 Server-A와 동기화하는 상위 계층의 NTP 서버의 IP 주소나 혹은 도메인 주소를 입력하고 저장합니다.

 

# NTP Server List

server time.bora.net → LG U+

※ server를 입력한 뒤 IP주소나 도메인 주소를 입력해야 합니다.

 

③ ntp 데몬 활성화

# service ntpd start 

 

④ 부팅 시 ntp 데몬이 활성화되도록 설정

# chkconfig ntpd on
# chkconfig --list ntpd

 

[현재 상태]

2계층 time.bora.net

|

3계층 Server-A 

 

<실습 1>

Server-B와 Client-Linux가 Server-A로 부터 시간 정보를 받아올 수 있도록 NTP 패키지 설치와 해당 설정 파일을 수정하고 데몬을 활성화 시켜봅니다.

 

① # yum -y install ntp

 

  

 

③ 데몬 활성화

# service ntpd start 

 

④ 부팅 시 ntp 데몬이 활성화되도록 설정

# chkconfig ntpd on
# chkconfig --list ntpd

 

[현재 상태]

2계층      time.bora.net                 

    |                      

3계층    [    Server-A    ]                

  |                |                 

4계층 Server-B    Client-Linux 

 

동작 확인하기

# ntpq -p

 

[Server-A]

 

# date

핸드폰 시간이랑 같으면 동기화가 된 것입니다.

 

remote

- 해당 서버와 동기화하는 상위 NTP서버의 IP주소 혹은 도메인 주소

- remote 필드 첫 부분에 나오는 문자

"     " (공백) → 접속 불가능

"  *  " → 동기화 중인 상태

"  + " → 연결 가능

 

refid

다다음 (time.bora.net → 1계층 NTP서버) NTP서버의 IP혹은 도메인 주소

 

※ 그 외 필드는 네트워크 지연 및 전송에 관련된 필드입니다.

 

▶ 동기화 시간 오래 걸릴 경우 조치 방법

# vi /etc/ntp.conf

server [도메인/IP주소] iburst

# service ntpd restart

(정말 오래 걸리면 하루 동안 동기화가 안된다고 합니다.)

 

 

# rdate [옵션] [NTP서버 IP/DOMAIN]

ntp 서버의 시간 정보를 확인합니다.

→ 옵션

-p 지정한 NTP 서버의 시간 확인

-s 지정한 NTP 서버의 시간으로 현재 시스템의 시간을 동기화

 

rdate 설치

# yum -y install rdate

time.bora.net의 시간을확인

 

 

# clock

CMOS 시간 관리 명령어입니다. (하드웨어에 설정하는 시간)

→ 옵션

-w 리눅스 시스템 시간으로 CMOS 시간을 변경

-s CMOS시간을 이용하여 리눅스 시스템 시간을 변경

 

※ CMOS란? (Complementary metal-oxide-semiconductor, 시모스)

- 상보성 금속 산화막 반도체

- 광다이오드를 사용하여 집적회로를 만들기 위한 기술의 하나

- 부팅하면서 부팅 설정을 하기 위한 파란 화면에 뜨는 내용들은 실제 CMOS(RTC/NVRAM)에 저장되어 있다.

 

시스템이 꺼져있는 상태에서도 정확한 시간을 측정하고 부팅 시 해당 시간정보를 이용하여 운영체제에서 설정 할 수 있도록 해야합니다.

 

<실습 2>

매일 정각마다 CMOS 시간을 동기화하여 운영체제에 설정할 수 있도록 하기

( rdate & clock & 스크립트 이용, 경로 : /root/ntp.sh )

 

스크립트 파일 생성

ntp 서버로부터 시간을 받아와 CMOS 시간을 변경

※ [명령어1] && [명령어2]

명령어 1이 정상적으로 실행되면 명령어 2를 실행

 

작업 예약하기

매일 정각마다 ntp.sh 스크립트가 실행됩니다.

 

 

※ 서버에서 정확한 시간이 중요한 이유

1. 로그에 대한 신뢰도

시스템 장애나, 침해가 발생했을 때 가장 먼저 확인하는 파일이 로그 파일입니다.

로그 파일 ex)

2017년 10월 19dlf [프로그램] [접속IP] [접속계정]

[    시간 → 시스템 시간으로 결정    ]

로그 파일에 작성되어 있는 시간이 틀리다면 해당 로그는 더이상 신뢰할 수 없어 로그 분석을 통해 문제점을 파악하거나 해결할 수 없게 됩니다.

 

2. 예약 작업의 실행 불가능한 상황을 방지

업무 시간외에 백업/스크립트 등의 예약이 실행되어야 하는데,

서버가 바쁘게 동작하는 시간에 예약 작업이 동작할 수도 있습니다.

 

3. 인증, 백업 시점 불일치 방지

암호화 인증 관련 프로토콜로 통신을 할 때 현재 시스템의 시간정보가 상대방에게 전달되는데, 이때 상대방의 시간과 전송된 데이터의 시간정보가 다를 경우, 상대방 컴퓨터가 해당 데이터는 오래되거나 잘못된 데이터로 판단하여 폐기 시킬 수 있습니다. (통신이 불가능하다.) 

 

'서버 > Linux' 카테고리의 다른 글

[Linux] 본딩 ( bonding )  (0) 2017.10.24
[Linux] 네트워크 관련 파일  (0) 2017.10.24
[Linux] 부팅 프로세스  (0) 2017.10.23
[Linux] find & xargs & du  (0) 2017.10.23
[Linux] quota (쿼터) 설정  (0) 2017.10.23