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 |