최근에는 서버/네트워크 장비에 대한 시간 동기화(타임서버 시간 동기화)하는 방법으로 NTP(Network Time Protocol)을 이용하여 관리자 계정에서 시스템의 시각을 현재 시각으로 설정할 수 있다.
1. Windows 환경
1.1 NTP란?
Network Time Protocol(네트워크 시간 프로토콜)의 약자로 네트워크 환경으로 구성된 장비(서버, PC, 통신장비, 방화벽 장비 등)의 시스템 시간을 동기화 하기 위한 규약이다.
윈도우에는
- 모든 윈도우서버는 NTP 서버가 될 수 있다.
- 모든 서버의 방화벽에서 UDP 123 번이 열려있어야 한다.
- NTP 서버와의 시간차이가 많이 날 경우(기본값: 15 시간) 동기화 되지 않는다.
실제 시간과 근접한 시간으로 변경 후 동기화 할 수 있도록 한다.
- 데이터 일치를 위하여 동기화(Sync)요청을 하더라도 즉시 반영되는 것이 아니라, 조금씩 맞춰 간다.
(예: Server#2 서버가 Server#1 서버 보다 시간이 빠를 경우, Server#1 번의 시간으로 Server#2 의 시스템시간을 동기화 할 경우, 동일한 시간대의 데이터가 생성되므로, 데이터 정합성에 오류가 발생한다. 이에 시간 동기화는 즉시 반영되는 것이 아니라, 조금씩 그 차이를 줄여나가는 방식이다. - 표 12 참조)
1.2 시스템 환경
NTP 시간을 제공해주는 서버를 "NTP 서버", NTP 서버로 시간 동기화를 요청하는 서버를 "Slave 서버"로 명명한다.
서버명 및 IP 주소
1.3 내부 NTP 서버
1) 외부 NTP 서버와 시간 동기화
내부 NTP 서버 시스템 시간을 인터넷 표준시(예:time.bora.net)으로 설정한다.
① 실행서버
Server#1(IP:10.10.10.1)
② 시나리오
내부 NTP 서버 역할로 운용할 서버의 시간 동기화 대상을 외부 NTP(예:time.bora.net, time.kornet.net)으로 설정하고, 설정(레지스트리)값을 확인 후 동기화 작업을 수행한다.
③ 작업
첫번째, 외부 NTP 서버를 기준으로 시간동기화 설정을 한다.
* 시작 -> cmd -> w32tm /config /syncfromflags:manual /manualpeerlist:time.microsoft.com /update
표 1: 예상결과
C:\>w32tm /config /syncfromflags:manual /manualpeerlist:time.microsoft.com /update 명령이 성공적으로 완료되었습니다 |
두번째, Windows Time 서비스의 설정값(레지스트리) 확인
* 시작 -> cmd -> w32tm /dumpreg /subkey:Parameters
표 2: 예상 결과
C:\>w32tm /dumpreg /subkey:Parameters 값 이름 값 종류 값 데이터 ----------------------------------------------------------------------------- ServiceMain REG_SZ SvchostEntry_W32Time ServiceDll REG_EXPAND_SZ C:\WINDOWS\system32\w32time.dll NtpServer REG_SZ time.bora.net,0x9 <- 외부 NTP 서버주소 Type REG_SZ NTP <- 외부 NTP 서버 사용 |
세번째, Windows Time 서비스 재시작
* 시작 -> cmd -> net stop w32tm
-> net start w32tm
표 3: 예상결과
C:\>net stop w32time Windows Time 서비스를 멈춥니다.. Windows Time 서비스를 잘 멈추었습니다. C:\>net start w32time Windows Time 서비스를 시작합니다.. Windows Time 서비스가 잘 시작되었습니다. |
네번째, 시간 동기화
* 시작 -> cmd -> w32tm /resync
표 4: 예상결과
[정상] C:\>w32tm /resync 로컬 컴퓨터에 다시 동기화 명령을 보내는 중 명령이 성공적으로 완료되었습니다. [오류] : 방화벽에서 외부 UDP 123 포트가 막혀 있을 경우 발생할 수 있다. C:\>w32tm /resync 동기화 명령 전송 - local computer... 사용 가능한 시간 데이터가 없어 컴퓨터가 동기화하지 못했습니다. |
2) NTP 서비스 제공을 위한 구성 확인
내부 NTP 서버가 외부 NTP 서버를 참조하는지 확인한다.
① 실행서버
Server#1(IP:10.10.10.1)
② 시나리오
내부 NTP 서버 역할로 운용할 서버의 서비스를 확인하여 Slave 서버에서 연결 할 수 있도록 구성 값을 확인한다.
③ 작업
첫번째, Windows Time 서비스 구동 확인
* 시작 -> cmd -> sc query w32time
표 5: 예상 결과
C:\>sc query w32time SERVICE_NAME : w32time TYPE : 20 WIN32_SHARE_PROCESS STATE : 4 RUNNING (STOPPABLE,NOT_PAUSABLE,ACCEPTS_SHUTDOWN) WIN32_EXIT_CODE : 0 (0x0) SERVICE_EXIT_CODE : 0 (0x0) CHECKPOINT : 0x0 WAIT_HINT : 0x0 |
두번째, NTP 서비스 구동 확인
* 시작 -> cmd -> netstat -ano | findstr 123
표 6: 예상 결과
C:\>netstat -ano | findstr 123 UDP 0.0.0.0:123 *:* 1128 UDP 0.0.0.0:62123 *:* 1428 UDP [::]:123 *:* 1128 |
1.4 Slave 서버
1) Slave 서버 환경 구성
내부 NTP 서버(IP:10.10.10.1)를 기준으로 Slave 서버의 시스템 시간을 설정한다. 시간 차이가 너무 많을 경우 동기화가 되지 않으니, 수동으로 근접한 시간을 맞추고 동기화 할 수 있도록 한다.
① 실행서버
Server#2(IP:10.10.10.2)
Server#3(IP:10.10.10.3)
(각 서버별로 수행)
② 시나리오
시간 동기화 대상을 내부 NTP 서버(IP:10.10.10.1)로 설정하고, 동기화 작업을 수행한다.
③ 작업
첫번째, 내부 NTP 서버(IP:10.10.10.1)를 기준으로 시간동기화 설정을 한다.
* 시작 -> cmd -> w32tm /config /syncfromflags:manual /manualpeerlist:10.10.10.1 /update
표 7: 예상결과
C:\>w32tm /config /syncfromflags:manual /manualpeerlist:10.10.10.1 /update 명령이 성공적으로 완료되었습니다. |
두번째, Windows Time 서비스의 설정값(레지스트리) 확인
* 시작 -> cmd -> w32tm /dumpreg /subkey:Parameters
표 8: 예상 결과
C:\>w32tm /dumpreg /subkey:Parameters 값 이름 값 종류 값 데이터 ----------------------------------------------------------------------------- ServiceMain REG_SZ SvchostEntry_W32Time ServiceDll REG_EXPAND_SZ C:\WINDOWS\system32\w32time.dll NtpServer REG_SZ 10.10.10.1 <- 외부 NTP 서버주소 Type REG_SZ NTP <- 외부 NTP 서버 사용 |
세번째, Windows Time 서비스 재시작
* 시작 -> cmd -> net stop w32tm
-> net start w32tm
표 9: 예상결과
C:\>net stop w32time Windows Time 서비스를 멈춥니다.. Windows Time 서비스를 잘 멈추었습니다. C:\>net start w32time Windows Time 서비스를 시작합니다.. Windows Time 서비스가 잘 시작되었습니다. |
세번째, 시간 동기화
* 시작 -> cmd -> w32tm /resync
표 10: 예상결과
C:\>w32tm /resync 로컬 컴퓨터에 다시 동기화 명령을 보내는 중 명령이 성공적으로 완료되었습니다. |
2) NTP 서버와 시간차 확인
특정 서버(ex.NTP 서버)와 실행한 서버와의 시간차이를 확인한다.
① 실행서버
Server#2(IP:10.10.10.2)
Server#3(IP:10.10.10.3)
(각 서버별로 수행하여 확인 할 수 있다.)
② 시나리오
특정서버(Master Server:10.10.10.1)와 Slave Server(10.10.10.2)시간 동기화 대상을 Master Server 설정하고, 동기화 작업을 수행한다.
③ 작업
첫번째, Master Server 를 기준으로 시간동기화 설정을 한다.
* 시작 -> cmd -> w32tm /stripchart /dataonly /computer:10.10.10.1
비교대상 서버와 시간이 일치한다면, 하기와 유사한 결과값을 볼 수 있다.
표 11: 예상결과
C:\> w32tm /stripchart /dataonly /computer:10.10.10.1 Tracking 10.10.10.1 [10.10.10.1]. The current time is 2012-04-18 오후 19:17:13 (local time). 19:17:13, +00.2676328s -> 비교 대상 서버와 +00.2676328 초만큼 차이가 난다. 19:17:15, +00.2593851s 19:17:17, +00.2589499s 19:17:19, +00.2428931s ^C -> 중지하기 위해서는 “Ctrl + c”를 누르면 된다. +00.xxxxxxx(또는 -00.xxxxxxx)로 대상 NTP 서버와 차이나는 시간만큼 표기된다. 예) +120.2428931s -> +120 초 차이가 남 |
1.5 NTP 설정 후 동기화 요청 및 동기화 확인
표 12: Slave 서버 동기화 설정
NTP 서버(IP:10.10.10.1) 서버를 시스템 시간으로 설정한다. C:\>w32tm /config /syncfromflags:manual /manualpeerlist:10.10.10.1/update 명령이 성공적으로 완료되었습니다. Windows Time 서비스를 재기동한다. C:\>net stop w32time Windows Time 서비스를 멈춥니다.. Windows Time 서비스를 잘 멈추었습니다. C:\>net start w32time Windows Time 서비스를 시작합니다.. Windows Time 서비스가 잘 시작되었습니다. NTP 서버(IP:10.10.10.1)로 지정한 서버와 동기화를 요청한다. C:\>w32tm /resync 로컬 컴퓨터에 다시 동기화 명령을 보내는 중 명령이 성공적으로 완료되었습니다. NTP 서버(IP:10.10.10.1)와 실행 중인 서버와의 시간차이를 확인한다. C:\>w32tm /stripchart /dataonly /computer:10.10.10.1 10.10.10.1[10.10.10.1:123] 추적 중 현재 시간은 2012-04-19 오후 22:47:25 입니다. 22:47:25, +23.2364090s 22:47:27, +22.7004942s -> 조금씩이지만 차이가 줄어드는 것을 볼 수 있다. 22:47:30, +22.1639462s 22:47:32, +21.6430236s ^C -> 중지하기 위해서는 “Ctrl + c”를 누르면 된다. |
1.6 주기적인 시간 동기화
주기적으로 시간을 자동으로 동기화 하게 만드는데, 방법은 다음과 같다.
1) 시작 – 실행 – regedit (혹은 Winkey+R – regedit)
2) HKEY_LOCAL_MACHINE\
SYSTEM\
CurrentControlSet\
services\
W32Time\
TimeProviders\
NtpClient
3) SpecialPollInterval 이름을 더블 클릭
4) 10진수로 바꿔서 본인이 원하는 숫자를 입력.
60 = 60초, 600 = 10분, 3600 = 1시간, 86400 = 1일
초로 계산한다.
5) 시작 – 실행 – cmd (혹은 Winkey+R – cmd)
6) Windows Time 서비스 재기동
net stop w32time 엔터
net start w32time 엔터
7) Windows Time 서비스 재부팅 시 자동 실행
sc config w32time start= auto
sc triggerinfo w32time start/networkon stop/networkoff
1.7 참고 사항
1) NTP Client 활성화
reg add "HKLM\SYSTEM\CurrentControlSet\Services\W32Time\TimeProviders\NtpClient" /v Enabled /t REG_DWORD /d 1 /f |
2) 동기화 요청주기 설정(60초)
reg add "HKLM\SYSTEM\CurrentControlSet\Services\W32Time\TimeProviders\NtpClient" /v SpecialPollInterval /t REG_DWORD /d 60 /f |
3) 동기화 조건 설정
reg add "HKLM\SYSTEM\CurrentControlSet\Services\W32Time\Config" /v MaxPosPhaseCorrection /t REG_DWORD /d 0xFFFFFFFF /f reg add "HKLM\SYSTEM\CurrentControlSet\Services\W32Time\Config" /v MaxNegPhaseCorrection /t REG_DWORD /d 0xFFFFFFFF /f |
기본 값은 54000초(15시간)인데, 현재 시간과 NTP 서버의 시간이 15시간 이상 차이가 나면 동기화 하지 않는다. 이 값을 0xFFFFFFFF로 변경하면 시간 차이에 상관없이 무조건 동기화 하겠다는 뜻이다.
4) NTP 서버 설정
w32tm /config /syncfromflags:manual /manualpeerlist:"kr.pool.ntp.org" |
NTP 서버는 기본적으로 "time.windows.com"을 우리나라 pool time server인 "kr.pool.ntp.org"로 지정함.
5) Windows Time 서비스가 자동으로 시작되도록 설정
sc config w32time start=auto sc triggerinfo w32time start/networkon stop/networkoff |
Windows Time 서비스는 기본적으로 Domain에 가입된 상태에서만 자동으로 시작되게 트리거 설정되어 있다. 따라서 이 트리거를 네트워크 시작/중지로 변경해 주는 것이다. 이렇게 하지 않으면 Workgroup 환경에서는 "sc config w32time start=auto" 해두어도 실제로는 리부팅 후 자동으로 서비스가 올라오지 않는다. 따라서 반드시 필요한 설정이라 할 수 있다.
6) Windows Time 서비스 재시작
net stop w32time net start w32time |
7) NTP 동기화 즉시 실행
w32tm /resync /nowait |
8) 현재 NTP 동기화 상태를 확인
w32tm /query /status |
reg add "HKLM\SYSTEM\CurrentControlSet\Services\W32Time\TimeProviders\NtpClient" /v Enabled /t REG_DWORD /d 1 /f reg add "HKLM\SYSTEM\CurrentControlSet\Services\W32Time\TimeProviders\NtpClient" /v SpecialPollInterval /t REG_DWORD /d 60 /f reg add "HKLM\SYSTEM\CurrentControlSet\Services\W32Time\Config" /v MaxPosPhaseCorrection /t REG_DWORD /d 0xFFFFFFFF /f reg add "HKLM\SYSTEM\CurrentControlSet\Services\W32Time\Config" /v MaxNegPhaseCorrection /t REG_DWORD /d 0xFFFFFFFF /f w32tm /config /syncfromflags:manual /manualpeerlist:"kr.pool.ntp.org" sc config w32time start=auto sc triggerinfo w32time start/networkon stop/networkoff net stop w32time net start w32time w32tm /resync /nowait w32tm /query /status |
9) Windows 현재 날짜 및 시간 확인 및 자동 설정
Windows 우측 하단의 날짜와 시간에 커서를 대고 "마우스 오른쪽 버튼"을 클릭하면 다음과 같은 팝업 화면이 나타난다.
위의 팝업 화면의 메뉴에서 "날짜/시간 조정(A)"을 클릭하면 다음과 같은 "날짜 및 시간"을 설정하는 화면이 나타난다.
위 화면의 항목 중 "자동으로 시간 설정"과 "자동으로 표준 시간대 설정" 항목을 "On"해야 한다.
2. Linux 환경
최근에는 Windows/서버/데이터베이스/네트워크 장비/저장장치에 대한 시간 동기화(타임서버 시간 동기화)하는 방법으로 NTP(Network Time Protocol)을 이용하여 루트 계정에서 시스템의 시각을 현재 시각으로 설정할 수 있다.
NTP를 사용하기 위해서는 기본적으로 NTP 패키지가 반드시 설치되어 있어야 한다. 설치 확인은 다음의 명령어를 실행하여 확인한다. 만약, 설치되어 있지 않으면 Redhat, CentOS 8 이하 버젼은 "yum install ntp" 그외는 "sudo apt-get install ntp" 명령어로 설치하면 된다.
[root]# rpm -qa | grep ntp ntp-4.2.2p1-18.el5.centos chkfontpath-1.10.1-1.1 |
ntpd 서비스를 서버 부팅 시 시작프로그램에 등록 및 ntp 활성화 여부 확인은 다음과 같은 명령어로 확인 할 수 있다.
[root]# chkconfig ntpd on [root]# chkconfig --list | grep ntp ntpd 0:해제 1:해제 2:활성 3:활성 4:활성 5:활성 6:해제 |
chkconfig 이용하여 서버 부팅시 ntpd 데몬 활성화 여부 확인 3, 5 level에 off(해제) 가 되어 있으면 자동 활성화 되지 않는다. 자동 활성화 하기 위해서는 3, 5에 on(활성)으로 다음과 같은 명령어로 변경해야 한다.
[root]# chkconfig --level 3 ntpd on [root]# chkconfig --level 5 ntpd on |
우리나라에서 운영되고 있는 NTP 서버는 다음과 같다.
server kr.pool.ntp.org server time.bora.net server time.kornet.net |
우리나라에서 운영되고 있는 NTP 서버를 ntpd 데몬 설정을 위한 설정 파일인 "/etc/ntp.conf"에 다음과 같이 설정한다.
[root]# vi /etc/ntp.conf # Use public servers from the pool.ntp.org project. # Please consider joining the pool (http://www.pool.ntp.org/join.html). #server 0.centos.pool.ntp.org #server 1.centos.pool.ntp.org #server 2.centos.pool.ntp.org #server 3.centos.pool.ntp.org server kr.pool.ntp.org iburst server time.bora.net iburst server time.kornet.net iburst |
iburst 옵션은 일종의 옵션 설정으로써 동기화 하는데 걸리는 시간을 짧게 줄여주는 옵션임.
ntpd 데몬 설정을 위한 설정이 끝나면 반드시 NTP 설정이 제대로 추가되었는지 확인한 후 NTP 데몬의 Restart 작업이 반드시 필요하다.
[root]# /etc/init.d/ntpd restart ntpd를 종료 중: [ OK ] ntpd (을)를 시작 중: [ OK ] |
ntpd 시간 확인은 다음과 같은 명령어로 확인할 수 있다.
[root]# ntpq -p remote refid st t when poll reach delay offset jitter ============================================================================== static.betaidc. 106.247.248.106 3 u 7 64 1 2.884 287.718 0.001 time.bora.net .INIT. 16 u - 64 0 0.000 0.000 0.000 183.110.225.61 .INIT. 16 u - 64 0 0.000 0.000 0.000 LOCAL(0) .LOCL. 10 l 4 64 1 0.000 0.000 0.001 |
* 표시된 ip 가 현재 시간을 가져오고 있는 ntp 서버임
NTP를 사용하기 위해서는 기본적으로 NTP 패키지가 반드시 설치되어 있어야 한다. 설치 확인은 다음의 명령어를 실행하여 확인한다. 만약, 설치되어 있지 않으면 Redhat, CentOS 8 이상 버젼은 "yum install chrony" 명령어로 설치하면 된다.
[root@baropam ~]# rpm -qa | grep chrony chrony-3.5-1.el8.x86_64 |
우리나라에서 운영되고 있는 NTP 서버는 다음과 같다.
server kr.pool.ntp.org server time.bora.net server time.kornet.net |
우리나라에서 운영되고 있는 NTP 서버를 ntpd 데몬 설정을 위한 설정 파일인 "/etc/chrony.conf"에 다음과 같이 설정한다.
[root@baropam ~]# vi /etc/chrony.conf # Use public servers from the pool.ntp.org project. # Please consider joining the pool (http://www.pool.ntp.org/join.html). #pool 2.centos.pool.ntp.org iburst server kr.pool.ntp.org iburst server time.bora.net iburst server time.kornet.net iburst # Record the rate at which the system clock gains/losses time. driftfile /var/lib/chrony/drift # Allow the system clock to be stepped in the first three updates # if its offset is larger than 1 second. makestep 1.0 3 # Enable kernel synchronization of the real-time clock (RTC). rtcsync # Enable hardware timestamping on all interfaces that support it. #hwtimestamp * # Increase the minimum number of selectable sources required to adjust # the system clock. #minsources 2 # Allow NTP client access from local network. allow 192.168.0.0/16 # Serve time even if not synchronized to a time source. #local stratum 10 # Specify file containing keys for NTP authentication. keyfile /etc/chrony.keys # Get TAI-UTC offset and leap seconds from the system tz database. leapsectz right/UTC # Specify directory for log files. logdir /var/log/chrony # Select which information is logged. #log measurements statistics tracking |
ntpd 데몬 설정을 위한 설정이 끝나면 반드시 NTP 설정이 제대로 추가되었는지 확인한 후 NTP 데몬의 Restart 작업이 반드시 필요하다. (chrony 서비스 시작 및 부팅시 구동 등록)
[root@baropam ~]# systemctl start chronyd [root@baropam ~]# systemctl enable chronyd |
ntpd 시간 확인은 다음과 같은 명령어로 확인할 수 있다.
시간을 받아오는 서버 리스트 / chrony.conf 파일에 등록한 server 리스트)
[root@baropam ~]# chronyc sources 210 Number of sources = 2 MS Name/IP address Stratum Poll Reach LastRx Last sample =============================================================================== ^* ec2-54-180-134-81.ap-nor> 2 6 377 43 -349us[-1059us] +/- 24ms ^- time.bora.net 2 6 377 42 +1398us[+1398us] +/- 90ms |
시간을 받아 오는 서버 정보)
[root@baropam ~]# chronyc tracking Reference ID : 36B48651 (ec2-54-180-134-81.ap-northeast-2.compute.amazonaw) Stratum : 3 Ref time (UTC) : Sun Mar 22 07:07:43 2020 System time : 0.000130027 seconds slow of NTP time Last offset : -0.000710122 seconds RMS offset : 0.000583203 seconds Frequency : 19.980 ppm fast Residual freq : +0.142 ppm Skew : 3.235 ppm Root delay : 0.013462566 seconds Root dispersion : 0.017946836 seconds Update interval : 65.0 seconds Leap status : Normal |
시간 상태 및 동기화 등 정보 확인)
[root@baropam ~]# timedatectl status Local time: Sun 2020-03-22 16:08:45 KST Universal time: Sun 2020-03-22 07:08:45 UTC RTC time: Sun 2020-03-22 07:08:44 Time zone: Asia/Seoul (KST, +0900) System clock synchronized: yes NTP service: active RTC in local TZ: no |
3. Solaris 환경
NTP(Network Time Protocol)는 컴퓨터 클라이언트나 서버의 시간을 다른 서버나 라디오 또는 위성 수신기와 같은 참조할 수 있는 타임 소스 또는 모뎀에 동기화하는데 사용된다.
1) 세 가지 유형의 시간 서버(Time Server)
① peer host_address [key #] [version #] [prefer]
- 로컬 서버가 호스트 주소로서 지정된 원격 서버와 함께 symmetric active 모드로 운영.
- 로컬 서버는 원격 서버에 맞추어 동기화 할수 있음.
② server host_address [kery #] [version #] [prefer] [mode #] server
- 로컬 서버가 command에서 이름이 지정된 원격 서버와 함께 client 모드로 운영.
- 이 모드에서 로컬 서버는 원격 서버에 맞추어 동기화될 수 있지만 원격 서버는 로컬 서버에 동기화
할 수 없음.
③ broadcast host_address [key#] [version #] [ttl #]
로컬 서버가 broadcast 모드로 운영된다는 것을 지정한다. 이 모드에서 로컬 서버는 명령어에서 지정된 broadcast/multicast 주소의 클라이언트 무리에게 정기 적인 broadcast 메시지를 전송한다.
- key 주소에 전송된 모든 패킷이 지정된 키 번호를 사용하여 암호화된 인증 필드를 포함
- version outgoing NTP 패킷에 사용되는 버전 번호를 지정 Version ①, ②, ③ 선택 기본 버전 ③번.
- prefer 호스트를 선택된 호스트로 표시, 동기화를 위해 다른 비교 가능한 호스트보다 이 호스트가 선택.
2) NTP SERVER 설정. (server 모드) 방법
(sun>root)/etc/inet# cp ntp.server ntp.conf (sun>root)/etc/inet# vi ntp.conf # Either a peer or server. Replace "XType" with a value from the # table above. #server 127.127.XType.0 prefer #fudge 127.127.XType.0 stratum 0 server 127.127.1.0 ---> 언제나 로컬로 돌아갈수 있음. server time.kriss.re.kr prefer server 127.127.1.0 server gps.bora.net server ntp.ewha.net server time.bora.net server time.nuri.net server ntp2.gngidc.net server time.kriss.re.kr #broadcast 224.0.1.1 ttl 4 -->기본 설정 (네트웍내 여러개의 ntp 서버가 존재할 경우 변경) broadcast 192.168.0.222 ttl 4 wq! |
3) NTP SERVER 설정. (피어(peer) 모드) 방법
peer gps.bora.net key 0 version 3 prefer --> server 모드와 동일 server 설정대신 peer 설정.
(sun>root)/etc/inet# /etc/init.d/xntpd start (sun>root)/etc/inet# ps -ef | grep ntp root 479 400 0 08:40:55 pts/2 0:00 grep ntp root 456 1 0 08:23:07 ? 0:01 /usr/lib/inet/xntpd (sun>root)/etc/inet# ntpq -p (NTP 서버에게 피어 리스트에 관해 질의) remote refid st t when poll reach delay offset disp ============================================================================== sun 0.0.0.0 16 - - 64 0 0.00 0.000 16000.0 gps.bora.net 0.0.0.0 16 u 48 64 0 0.00 0.000 16000.0 (e220>root)/# snoop -d hme0 port 123 Using device /dev/hme (promiscuous mode) 192.168.0.222 -> gps.bora.net NTP symmetric active (Fri Feb 24 08:35:26 2006) gps.bora.net -> 192.168.0.222 NTP server (Sat Jan 19 03:58:31 2002) e220 -> 192.168.0.222 NTP client (Fri Feb 24 08:35:46 2006) 192.168.0.222 -> e220 NTP server (Fri Feb 24 08:35:47 2006) |
4) NTP Client 설정
(sun>root)/etc/inet# cp ntp.client ntp.conf |
기본 ntp.client 파일은 multicast를 사용하여 ntp 업데이트를 수신한다. NTP 클라이언트가 이러한 업데이트를 수신할 수 있는 장소를 제한하려는 경우 이것을 broadcast로 변경한다. (broadcast 패킷은 다른 서브넥에 전달되지 않는 반면 multicast 패킷은 전달 된다.)
(sun>root)/etc/inet# /etc/init.d/xntpd start #multicastclient 224.0.1.1 --> 기본설정 server 192.168.0.222 wq! (sun>root)/etc/inet# ps -ef | grep ntp root 479 400 0 08:40:55 pts/2 0:00 grep ntp root 456 1 0 08:23:07 ? 0:01 /usr/lib/inet/xntpd (sun>root)/etc/inet# (sun>root)/etc/inet# ntpq -p remote refid st t when poll reach delay offset disp ============================================================================== sun 0.0.0.0 16 - - 64 0 0.00 0.000 16000.0 gps.bora.net 0.0.0.0 16 u 48 64 0 0.00 0.000 16000.0 |
remote-원격 피어, refid-피어가 동기화되는 호스트, st-stratum 번호, t-유형 즉 unicast, multcst, local(- = 알수 없음), poll-초 단위 폴링 간격, reach-도달 가능성 레지스터
* 원격에서 현재 선택된 피어를 나타낸다.
+ 호스트가 동기화에 대한 수락 가능한 피어이지만 수락되지 않았음을 나타냄.
_ 수락 불가능
4. HP-UX 환경
최근에는 서버/네트워크 장비에 대한 시간 동기화(타임서버 시간 동기화)하는 방법으로 NTP(Network Time Protocol)을 이용하여 루트 계정에서 시스템의 시각을 현재 시각으로 설정할 수 있다.
1) SERVER 설정 (Time Server)
① /etc/ntp.conf 구성
$ vi /etc/ntp.conf server 0.0.0.0(맨 마지막 줄 서버IP) |
② Start xntpdDeamon
$ vi /etc/rc.config.d/netdaemons export NTPDATE_SERVER=0.0.0.0 (ntp server IP Address or hostname) export XNTPD=1 <------- 0을 1로 변경 |
③ XNTP Deamon시작
$ /sbin/init.d/xntpd start <------- Deamon시작 |
④ XNTP 확인
$ ntpq -crv status=c011 sync_alarm, sync_unspec, 1 event, event_restart system="UNIX/HPUX", leap=11, stratum=16, rootdelay=0.00, rootdispersion=0.00, peer=0, refid=0.0.0.0, reftime=00000000.00000000 Thu, Feb 7 2036 15:28:16.000, poll=4, clock=c7bba289.c8740000 Fri, Mar 10 2006 16:00:25.783, phase=0.000, freq=0.00, error=0.00 |
* 여기서 'reftime=' 부분이 0이면 아직 server에서 sync 받지 못한 것임. 이 부분이 16진수로 표시되면 time information을 client에게 줄 준비완료.
$ ntpq -crv status=0544 leap_none, sync_local_proto, 4 events, event_peer/strat_chg system="UNIX/HPUX", leap=00, stratum=4, rootdelay=0.00, rootdispersion=885.01, peer=2116, refid=LOCAL(1), reftime=c7bba37a.1c2c2000 Fri, Mar 10 2006 16:04:26.110, poll=6, clock=c7bba3b1.8ecdb000 Fri, Mar 10 2006 16:05:21.557, phase=0.000, freq=0.00, error=885.01 |
$ ntpq -p remote refidst t when poll reach delay offset disp ===================================================== *LOCAL(1) LOCAL(1) 3 l 21 64 377 0.00 0.000 10.01 |
* 5분 정도 기다려 이 명령어로 remote부분에 * 표시가 생기면 정상적으로 동작하는 것임.
2) CLIENT 설정
① /etc/ntp.conf에 time server의 IP 설정
$ vi /etc/ntp.conf server 0.0.0.0 {Time Server IP Address 또는 Hostname(/etc/hosts 등록되어 있어야 함)} |
② 여기에서 주의를 요하는데, clock syncronization 초기화 하는데 있어 ntpdate를 사용하는데 반드시 xntpd daemon이 떠 있으면 않된다.
$ ps -ef | grep xntpd $ /sbin/init.d/xntpd stop |
* Daemon 떠 있으면 종료한다. 또한 종료되지 않을 경우 Kill 죽인다. (kill -9 사용)
$ ntpdate <ip address> |
③ xntpd시작
$ vi /etc/rc.config.d/netdaemons --------- 생략 --------- export NTPDATE_SERVER=0.0.0.0 (ntp server IP or hostname) export XNTPD=1 (0을 1로변경) $ /sbin/init.d/xntpd start (Deamon 시작) |
④ xntpd 확인
$ ntpq -p |
* 5분 정도 기다려 이 command로 remote부분에 * 표시가 생기면 정상적으로 동작하는 것임.
$ ntpq -crv status=0644 leap_none, sync_ntp, 4 events, event_peer/strat_chg system="UNIX/HPUX", leap=00, stratum=5, rootdelay=0.18, rootdispersion=10.70, peer=46996, refid=192.168.1.177, reftime=c7bbba2d.7bee7000 Fri, Mar 10 2006 17:41:17.484, poll=6, clock=c7bbba3b.9a39b000 Fri, Mar 10 2006 17:41:31.602, phase=-0.234, freq=-28.50, error=0.26 |
**server 가 database server 인 경우 시간을 되돌리기는 큰문제를 일으킬 수 있습니다. 따라서 ntp 사용시 time backward 를 disable 하는 기능이 있다. -x option을 사용하여 이 기능을 사용할 수 있다.
$ vi /etc/rc.config.d/netdaemons export NTPDATE_SERVER=ntp server IP or hostname export XNTPD=1 export XNTPD_ARGS=-x =>-x option 추가 $ /sbin/init.d/xntpd stop $ /sbin/init.d/xntpd start |
* -x option 기능을 사용하면 시간이 되돌려지지는 않고 서서히 clinet쪽 시간을 느리게 하여 시간을 fix 하게 한다.
3) 장애유형
sbin/init.d/xntpd start 명령을 실행하면 xntpd 데몬이 시작되지 않고 다음과 같은 오류가 발생된다.
"socket(AF_INET, SOCK_DGRAM, 0) failed: Too many open files
[해결]
xntpd에 필요한 파일 설명자수는 시스템의 인터페이스 수와 열려 있는 몇 개의 일반 파일에 따라 결정
maxfiles:
=========
xntpd -d -d -d를 실행하면 열려있는 인터페이스 수가 표시된다.
일반 작업의 경우 fd를 10을 더 추가 해야 한다.
기본규칙
maxfiles 60 -> 120 (double it)
나중에 lan 인터페이스를 추가 하는 경우 maxfiles를 늘려야 한다.
nfiles:
=======
sar -o temp -v 1 120을 실행하여 nfile이 최대 값에 도달 했는지 확인한다. 그럴 경우 커널 nfile의 크기를 늘린다.
16:54:03 text-szovproc-szovinod-szov file-szov
16:54:04 N/A N/A 103/276 0 0/476 0 355/920 0
^^^^^^^
추가 maxfiles 또는 nfile을 사용하여 새 커널을 만드는 경우 /sbin/init.d/xntpd start를 실행하여 xntpd 데몬을 시작해야 한다.
5. AIX 환경
최근에는 서버/네트워크 장비에 대한 시간 동기화(타임서버 시간 동기화)하는 방법으로 NTP(Network Time Protocol)을 이용하여 루트 계정에서 시스템의 시각을 현재 시각으로 설정할 수 있다.
1) NTP 설명
① NTP(Network Time Protocol)는 UDP 포트 123번을 사용
② 이 포트가 Open되어 잇지 않으면 NTP 서버와 동기화할 수 없음.
③ 8~10분 정도가 지난 후 서버와 클라이언트 간에 시간이 동기화 됨.
2) NTP 서버 구성
① 현재 Timezone / 시간 확인
▶ 현재 Timezone이 어떻게 설정 되었는지 확인한다. 하기 결과창에는 CDT 측, 북아메리카 Timezone으로 설정되어 있다.
$ date Sat Mar 14 01:01:43 CDT 2015 |
▶ 한국에서 일반적으로 "KORST-9" Timezone을 사용하기 때문에 AIX 설치 시 기본적으로 설정되는 "CDT" Timezone을 "KORST-9"로 변경해준 후에 서버 재기동을 해야 한다.
▶ Timezone을 변경하고, 다시 로그인을 하게 되면 Timezone이 KORST로 변경된 것을 확인할 수 있으나, 이는 실제 AIX에 적용된 값이 아닌 변경된 값을 보여 주는 것일 뿐이다. Timezone 변경 후, 반드시 재기동이 필요하다.
$ chtz "KORST-9" |
② NTP Server 설정
▶ /etc/ntp.conf 파일을 하기와 같이 수정한다.
-첫번째로 참조한 Timeserver는 뒤에 prefer를 붙여줌.
-아래 ntp.conf 파일 상에서는 참조한 NTP_Server_IP 뒤에 prefer를 붙여 줬음.
-아래 설정파일을 해석해 보면, NTP_Server_IP를 첫번째로 참조하고, 두번째로 자기 자신의 Local clock을 참조하겠다고 설정한 것이다.
$ vi /etc/ntp.conf #broadcast client server NTP_server_IP prefer #NTP Server IP as reference server 127.127.1.0 #local clock as reference fudge 127.127.1.0 stratum 0 #values for local clock driftfile /etc/ntp.drift #where to keep drift data tracefile /etc/ntp.trace |
▶ xntpd daemon 확인
$ lssrc -a | grep -i xntpd Xntpd tcpip inoperative |
▶ ntp 활성화 정보 확인
$ ntpq -nq remote refid st t when poll reach delay offset jitter ============================================================================== 10.0.0.1 0.0.0.0 3 u 7 64 1 2.884 287.718 0.001 127.127.1.0 127.127.0.1 16 u - 64 0 0.000 0.000 0.000 |
③ NTP daemon 시작
동기화 과정에서 NTP Client 측에서 시간이 뒤로 돌아가는 것을 방지하기 위해서, Daemon 시작시, -X option을 준다. (Time backward 방지, 클라이언트 시간 흐름을 조절하여 동기화)
$ startsrc -s xntpd -a "-x" 0513-059 The xntpd Subsystem has been started. Subsystem PID is 6946978. |
④ NTP daemon 확인
▶ xntpd daemon 확인
$ lssrc -a | grep -i xntpd Xntpd tcpip inoperative |
▶ ntp 활성화 정보 확인
$ ntpq -nq remote refid st t when poll reach delay offset jitter ============================================================================== 10.0.0.1 0.0.0.0 3 u 7 64 1 2.884 287.718 0.001 127.127.1.0 127.127.0.1 16 u - 64 0 0.000 0.000 0.000 |
3) NTP 클라이언트 구성
① 현재 Timezone / 시간 확인
▶ Timezone은 NTP Server와 동일하게 맞춰 줌.
▶ xntpd는 Server / Client간 1000초(16분) 이상 차이가 나면 더 이상 동기화 하지 않는다.
▶ NTP Server / Client간 시간을 맞추기 위해, Client단에서 #smitty date 명령어를 통해 16분 이상 차이가 나지 않게 설정해 준다. (권장사항은 NTP Server와 가장 근소한 시간으로 맞추는 것)
② NTP Client 설정
$ vi /etc/ntp.conf #broadcast client server NTP_server_IP prefer #NTP Server IP as reference driftfile /etc/ntp.drift #where to keep drift data tracefile /etc/ntp.trace |
참조하고자 하는 NTP Server IP를 Server 항목에 입력
③ NTP daemon 시작
동기화 과정에서 NTP Client 측에서 시간이 뒤로 돌아가는 것을 방지하기 위해서, Daemon 시작시, -X option을 준다. (Time backward 방지, 클라이언트 시간 흐름을 조절하여 동기화)
$ startsrc -s xntpd -a "-x" 0513-059 The xntpd Subsystem has been started. Subsystem PID is 6946978. |
④ NTP daemon 확인
▶ 대부분의 경우 Reach 값이 377에 다다르면 동기화가 완료된다.
▶ 보통 6~10분 사이에 동기화되며, 바로 시간을 맞추려면 NTP 서버가 active인 상태에서 클라이언트 단에서 "$ ntpdate <ip_of_NTP_Server>" 또는 "setclock <NTP_Server_Hostname>" 명령어를 수행해 주면 된다.
▶ ntpupdate 명령어 수행 후 xntpd daemon을 재기동해 준다.
4) 재기동시에도 NTP 자동실행 설정
① /etc/rc.tcpip 파일 수정
start /usr/sbin/xntpd "$src_running" "-x" |
▶ AIX default 설정 상에는 xntpd이 자동 실행으로 설정이 되어 있지 않음.
▶ /etc/rc.tcpip 파일에서 xntpd와 관련된 라인의 주석을 해제하고 위의 명령어 형태로 수정.
5) 참고사항
xntpd를 이용하여 시간을 동기화 한 후 Time 서버의 시간을 바꾸면 전체 클라이언트의 시간이 바뀐다. Time 서버의 시간을 임시로 바꾸려면 Time 서버 단에서 xntpd를 정지 시킨 후($ stopsrc -s xntpd) 작업한다.
6. FreeBSD 환경
최근에는 서버/네트워크 장비에 대한 시간 동기화(타임서버 시간 동기화)하는 방법으로 NTP(Network Time Protocol)을 이용하여 루트 계정에서 시스템의 시각을 현재 시각으로 설정할 수 있다.
NTP를 사용하기 위해서는 기본적으로 NTP 패키지가 반드시 설치되어 있어야 한다. 설치 확인은 다음의 명령어를 실행하여 확인한다. 만약, 설치되어 있지 않으면 "pkg install ntp" 명령어로 설치하면 된다.
[root]# pkg install ntp |
ntpd 서비스를 활성화 하기 위해서는 다음 같은 명령어를 사용하여 "/etc/rc.conf"에 등록 해야 한다.
[root]# /etc/rc.d/ntpd enabled |
우리나라에서 운영되고 있는 NTP 서버는 다음과 같다.
server kr.pool.ntp.org server time.bora.net server time.kornet.net |
우리나라에서 운영되고 있는 NTP 서버를 ntpd 데몬 설정을 위한 설정 파일인 "/etc/ntp.conf"에 다음과 같이 설정한다.
[root]# vi /etc/ntp.conf # # NTP # server kr.pool.ntp.org iburst server time.bora.net iburst server time.kornet.net iburst |
ntpd 데몬 설정을 위한 설정이 끝나면 반드시 NTP 설정이 제대로 추가되었는지 확인한 후 NTP 데몬의 Restart 작업이 반드시 필요하다.
[root]# /etc/rc.d/ntpd restart ntpd not running? (check /var/run/ntpd.pid). Starting ntpd. |
ntpd 시간 확인은 다음과 같은 명령어로 확인할 수 있다.
[root]# ntpq -p remote refid st t when poll reach delay offset jitter ============================================================================== 0.freebsd.pool. .POOL. 16 p - 64 0 0.000 0.000 0.000 106.247.248.106 141.223.182.106 2 u 7 64 1 4.412 0.544 0.000 time.bora.net 204.123.2.5 2 u 7 64 1 5.206 7.741 0.000 *send.mx.cdnetwo 204.123.2.5 2 u 1 64 1 3.968 3.807 0.446 211.52.209.148 216.239.35.12 2 u 1 64 1 11.862 2.838 0.259 dadns.cdnetwork 204.123.2.5 2 u 2 64 1 4.833 0.005 0.408 92.223.73.5 (st 106.247.248.106 3 u - 64 1 5.015 1.397 0.482 |
* 표시된 ip 가 현재 시간을 가져오고 있는 ntp 서버임
'▶ BaroSolution > 가이드' 카테고리의 다른 글
BaroPAM installation Guide (Windows) (0) | 2023.08.03 |
---|---|
BaroPAM Solution installation summary (Windows) (0) | 2023.08.02 |
가볍고 가장 빠른 암호화 알고리즘을 위한 BaroCRYPT 솔루션의 API 가이드(Cubrid) (0) | 2023.06.21 |
BaroPAM installation Guide (Mac OS X) (0) | 2023.06.07 |
BaroPAM installation Guide (Linux) (0) | 2023.06.03 |