네트워크 타임 프로토콜(Network Time Protocol, NTP)은 패킷 교환, 가변 레이턴시 데이터 네트워크를 통해 컴퓨터 시스템 간 시간 동기화를 위한 네트워크 프로토콜이다. 1위키백과에서 발췌
동일한 시간을 사용해야 하는 장비들 간 시간을 동기화 하기 위한 프로토콜이다.
외부 서비스를 하지 않고, 단일 서버만 운영되는 경우는 큰 의미가 없을 수도 있으나, 네트워크로 연결 되어있고, 구성요소간 시간이 동일해야 하는 경우 2예: hadoop 클러스터간 동기화, 결재 서비스를 하는 서버가 여러대로 구축 되어있을 경우 등 NTP 서버를 기준으로 시간을 동기화 한다.
NTP 서버
설치
[root@ntp-server: ~ ]# yum install -y ntp Loaded plugins: fastestmirror, langpacks Loading mirror speeds from cached hostfile everything-disc | 2.9 kB 00:00:00 Resolving Dependencies --> Running transaction check 중략 --> Finished Dependency Resolution Dependencies Resolved =============================================================================================================================================================================== Package Arch Version Repository Size =============================================================================================================================================================================== Updating: ntp x86_64 4.2.6p5-29.el7.centos everything-disc 548 k Updating for dependencies: ntpdate x86_64 4.2.6p5-29.el7.centos everything-disc 86 k Transaction Summary =============================================================================================================================================================================== Upgrade 1 Package (+1 Dependent package) 중략 Downloading packages: No Presto metadata available for everything-disc (1/2): ntpdate-4.2.6p5-29.el7.centos.x86_64.rpm | 86 kB 00:00:00 (2/2): ntp-4.2.6p5-29.el7.centos.x86_64.rpm | 548 kB 00:00:00 ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- Total 5.8 MB/s | 635 kB 00:00:00 중략 Running transaction Updating : ntpdate-4.2.6p5-29.el7.centos.x86_64 1/4 중략 Verifying : ntp-4.2.6p5-28.el7.centos.x86_64 4/4 Updated: ntp.x86_64 0:4.2.6p5-29.el7.centos Dependency Updated: ntpdate.x86_64 0:4.2.6p5-29.el7.centos Complete!
서버 구축을 위한 설정
이 꼭지에서 수정한 설정파일로 nptd를 구동한 서버는 ‘기준’ 이 된다.
이 서버를 바라보는 클라이언트들은 이 서버를 기준으로 시간이 동기화 된다.
# 서버도 /etc/ntp.conf 클라이언트도 동일하게 /etc/ntp.conf 파일을 수정한다. # 설정 변경. [root@ntp-server: ~ ]# vi /etc/ntp.conf #이대로 붙여 넣는다. restrict default kod nomodify notrap nopeer noquery restrict -6 default kod nomodify notrap nopeer noquery restrict 127.0.0.1 restrict -6 ::1 restrict 0.0.0.0 mask 0.0.0.0 nomodify notrap # 특별한 경로를 사용하는 경우만 여기서부터 includefile /etc/ntp/crypto/pw keys /etc/ntp/keys # 여기까지 수정한다. server 127.127.1.0 # local clock fudge 127.127.1.0 stratum 3
# 서버 시작 [root@ntp-server: ~ ]# service ntpd start Starting ntpd: [ OK ]
# 구동확인, NTPd는 123번 포트, UDP 프로토콜로 통신한다. [root@ntp-server: ~ ]# netstat -nlup Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name udp 0 0 192.168.4.160:123 0.0.0.0:* 10290/ntpd udp 0 0 192.168.4.254:123 0.0.0.0:* 10290/ntpd udp 0 0 127.0.0.1:123 0.0.0.0:* 10290/ntpd udp 0 0 0.0.0.0:123 0.0.0.0:* 10290/ntpd udp 0 0 0.0.0.0:636 0.0.0.0:* 1013/portreserve udp 0 0 192.168.4.160:53 0.0.0.0:* 25447/named udp 0 0 192.168.4.254:53 0.0.0.0:* 25447/named udp 0 0 127.0.0.1:53 0.0.0.0:* 25447/named [root@ntp-server: ~ ]# ntpq -pn remote refid st t when poll reach delay offset jitter ============================================================================== *127.127.1.0 .LOCL. 3 l 39 64 37 0.000 0.000 0.004
동기화를 위한 클라이언트 설정
[root@ntp-client: ~ ]# vi /etc/ntp.conf # 아래에 NTP 서버의 IP만 고쳐서 붙여넣는다. driftfile /var/lib/ntp/drift restrict default nomodify notrap nopeer noquery restrict 127.0.0.1 restrict ::1 # 위에서 ntp 서버로 설정한 서버의 IP가 192.168.0.1 이라면 server 192.168.0.1 iburst includefile /etc/ntp/crypto/pw keys /etc/ntp/keys disable monitor
# 서비스 재시작. 시간 동기화는 꾸준히 해야 하기 때문에 데몬을 구동한다. [root@ntp-client: ~ ]# service ntpd restart
# 서버측과의 결과 값과 비교해 보자. # 현재 클라이언트의 시각과 딜레이등의 정보가 표시 되는 것을 확인할 수 있다. [root@ntp-client: ~ ]# ntpq -pn remote refid st t when poll reach delay offset jitter ============================================================================== 192.168.0.1 LOCAL(0) 4 u 1 64 1 0.683 197.879 0.081