개요: NTP 정보와 설치

 

세부 설명:

 

차례

___________________

 

1. NTP 개념

2. NTP 서버 설치 - 운영 모드 선택

3. NTP 클라이언트 설치

4. ntpdate 명령의 사용

5. ntpq 명령의 사용

6. 유용한 디버그 옵션

7. 일반적인 문제와 알려진 버그

8. NTP에 대한 추가 자료

 

 

1. NTP 개념

_____________

 

NTP는 컴퓨터 클라이언트나 서버의 시간을 다른 서버나 라디오 또는 위성 수신기와 같은 참조할 수 있는 타임 소스 또는 모뎀에 동기화하는 데 사용됩니다.

Coordinated Universal Time(UTC)에 동기화된 프라이머리 서버와 관련하여, NTP는 대개 LAN 상에서는 1 ms 이내, WAN 상에서는 10ms 이내의 클라이언트 정확성을 제공합니다.

NTP를 주 서버에 적용하려면 라디오나 위성 수신기 또는 모뎀이 필요합니다.

 

시간은 NTP 서버 계층을 통해 분배되는 데, 각 서버는 파일의 최상단에 위치하고 라디오 클럭과 같은 외부 타임 소스(대개 라디오 클럭)에 대한 액세스를 갖고 있는 Primary(stratum 1) 서버를 채택합니다.

stratum-2 서버는 stratum-1 서버로부터 시간을 얻고, stratum-3 서버는 stratum 2 서버로부터 시간을 얻는 식으로 진행됩니다.

동기화 루프가 장기화되는 것을 피하려면 strata의 수를 15로 제한하십시오.

네트워크가 격리되어 있어서 인터넷을 통해 다른 사용자<br의 서버에 접근할 수 없는 경우, 라디오 클럭을 구입하면 좋습니다. 다른 방법은, 알려진 프라이머리 또는 세컨더리 NTP 서버 중 하나에 맞추어 서버를 구성하는 것입니다.

 

동기화 서브넷의 각 클라이언트(서버 자체일 수도 있음)는 사용 가능한 서버 중 정확히 하나만을 선택하여 동기화하는데, 대개의 경우 자신이 접근할 수 있는 최하위 stratum 서버 중에서 택하게 됩니다. 이것은 최적의 구성이라 할 수 없으므로 NTP는 다른 전제 하에서도 운영됩니다. 다시 말하면, 각 서버의 시간은 다소 부정확할 수 있습니다. 실제로 NTP는 보다 낮은 스트라텀의 여러 시간 소스(최소 세 군데)에 접근하려고 합니다. 이렇게 하면 계약 알고리즘을 적용하여 이들 중 어느 한 곳에서 발생하는 이상 현상을 탐지할 수 있기 때문입니다. 일반적으로 모든 서버가 계약 하에 있을 경우, NTP는 선택할 서버가 최하위 stratum 인지, 가장 가까운 것인지(네트워크 지연 측면에서), 그리고 정밀성이 있는지 등의 요건과 다른 고려사항을 감안하며 이들 중 최선의 서버를 선택합니다.

 

마지막으로, 연관 모드의 문제가 있습니다. 각 서버 간의 연관에 따라 선택 가능한 여러 가지 모드가 있습니다. 연관을 symmetric-active 모드로 구성하면(일반적으로 구성 파일에서 peer declaration으로 표시됨), 필요에 따라 원격 서버로부터 시간을 얻고, 원격 서버에게 시간을 제공하고자 한다는 것을 원격 서버에 지시할 수 있습니다. 이 모드는 다양한 네트워크 경로를 통해 상호 연결된 다수의 중복된 시간 서버가 관련된 구성에 적합하며, 오늘날 인터넷 상에서 운영되는 대부분의 stratum - 1 stratum - 2 서버에 해당합니다.

연관을 클라이언트 모드로 구성하면(일반적으로 구성 파일에서 server declaration으로 표시됨), 사용자가 원격 서버로부터 시간을 얻으려 하지만 원격 서버에 시간을 공급하려 하지 않는 경우를 나타냅니다. 이 모드는 다른 로컬 클라이언트에게 동기화를 제공하지 않는 파일 서버와 워크스테이션 클라이언트에 적합합니다. 정확성과 신뢰성 요건이 엄격하지 않은 경우, broadcast multicast 모드를 사용하도록 클라이언트를 구성할 수 있습니다. 최고의 정확성과 신뢰성이 요구되는 경우, 클라이언트와 서버는 각각 클라이언트나 서버 또는 대칭 모드로 운영합니다.

 

 

2. NTP server 설치

___________________________

 

1. 다음과 같이 /etc/inet/ntp.server /etc/inet/ntp.conf로 복사하십시오.

 

# cp /etc/inet/ntp.server /etc/inet/ntp.conf

 

2. ntp.conf 파일을 편집하십시오.

 

이 파일에는 명확한 설명을 위해 많은 코멘트를 추가했습니다.

기본 파일에는 코멘트가 많지 않습니다.

 

#----- start of ntp.conf file ---------------------

 

# @(#)ntp.server        1.4     97/05/05 SMI

#

# /etc/inet/ntp.server

#

# /etc/inet/ntp.conf로 복사해서 편집할 수 있는 예제 파일입니다.

# 이 파일은 외부 하드웨어 클럭에 따라 로컬 클럭을 동기화하고

# NTP 멀티캐스트 네트워크 상에서

# 자신을 발표하는 서버를 위한 구성 탬플릿을 제공합니다.

#

# 다음 클럭 장치에 대해서는 RFC 1305를 참조하십시오.

# 이것은 외부 클럭 장치입니다. 다음 장치들은

# xntpd 3.4y에 의해 인식됩니다.

#

# XType 장치     이름                    설명

# -------------------------------------------------------

# 1    (none)     LOCAL                  Undisciplined Local Clock

# 2    trak         GPS_TRAK            TRAK 8820 GPS Receiver

# 3    pst          WWV_PST             PSTI/Traconex WWV/WWVH Receiver

# 4    wwvb      WWVB_SPEC         Spectracom WWVB Receiver

# 5    goes      GPS_GOES_TRUE  TrueTime GPS/GOES Receivers

# 6    irig          IRIG_AUDIO            IRIG Audio Decoder

# 7    chu        CHU                        Scratchbuilt CHU Receiver

# 8    refclock- GENERIC               Generic Reference Clock Driver

# 9    gps         GPS_MX4200         Magnavox MX4200 GPS Receiver

# 10   gps        GPS_AS2201         Austron 2201A GPS Receiver

# 11   omega   OMEGA_TRUE       TrueTime OM-DC OMEGA Receiver

# 12   tpro        IRIG_TPRO            KSI/Odetics TPRO/S IRIG Interface

# 13   leitch      ATOM_LEITCH       Leitch CSD 5300 Master Clock Controller

# 14   ees        MSF_EES              EES M201 MSF Receiver

# 15   gpstm     GPS_TRUE           TrueTime GPS/TM-TMD Receiver

# 17   datum     GPS_DATUM         Datum Precision Time System

# 18   acts        NIST_ACTS           NIST Automated Computer Time Service

# 19   heath      WWV_HEATH        Heath WWV/WWVH Receiver

# 20   nmea      GPS_NMEA          Generic NMEA GPS Receiver

# 22   pps        ATOM_PPS           PPS Clock Discipline

# 23   ptbacts   PTB_ACTS           PTB Automated Computer Time Service

#

# 일부 장치는 "fudge" 인자의 혜택을 받습니다. xntpd

# 문서를 참조하십시오.

 

# 피어 또는 서버입니다.  "XType"

# 위 테이블의 값으로 교체하십시오.

 

#로컬 클럭 장치를 추가하는 경우,

#해당 드라이버는 다음과 같은 지침에 의해 식별됩니다.

#서버 127.127.XX.0에서 127.127 NTP에게 이것은 원격 네트워크 피어가 아닌

#로컬임을 지시하고, XX NTP distribution에서 설명된

#클럭 유형이라는 것을 지시합니다. 이러한 config file의 제한 지침은

#이 호스트가 지정된 두 IP 주소에만 이야기를 하며

#그 밖의 다른 곳은 신뢰하지 않으므로 어디에도

#시간을 제공하지 않는다고 설명하고 있습니다.

 

#다음 세 줄은 기본값으로 제공되는 것이고 사용자의 설치에 맞추어 변경하십시오.

 

server 127.127.XType.0 prefer

fudge 127.127.XType.0 stratum 0

 

broadcast 224.0.1.1 ttl 4

 

#세 가지 유형의 시간 서버

# 1. peer host_address [ key # ] [ version # ] [ prefer ]

#       로컬 서버가 호스트 주소로서 지정된 원격 서버와

#       함께 symmetric active 모드로 운영된다는 것을 지정합니다.

#       , 로컬 서버는 원격 서버에 맞추어 동기화할 수 있습니다.

# 2. server host_address [ key # ] [ version # ] [ prefer ] [ mode # ] server

#       로컬 서버가 command에서 이름이 지정된

#        원격 서버와 함께 "client" 모드로 운영된다는 것을

#         지정합니다. 이 모드에서 로컬 서버는 원격 서버에 맞추어

#         동기화될 수 있지만, 원격 서버는

#         로컬 서버에 동기화할 수 없습니다.

# 3. broadcast host_address [ key # ] [ version # ] [ ttl # ]

#       로컬 서버가 "broadcast" 모드로 운영된다는 것을

#         지정합니다. 이 모드에서 로컬 서버는 command에서

#         지정된 broadcast/multicast 주소의 클라이언트 무리에게

#          정기적인 broadcast 메시지를 전송합니다.

#

#         key       주소에 전송된 모든 패킷이

#                   지정된 키 번호를 사용하여 암호화된

#                   인증 필드를 포함한다는 것을 나타냅니다.

#                   번호의 범위는 unsigned 32 비트 정수입니다.

#                   기본값으로 암호화 필드는

#                   포함되어 있지 않습니다.

#         version   outgoing  NTP 패킷에 사용되는 버전 번호를

#                   지정합니다. Version 1, 2 3을 선택할 수

#                   있습니다. 기본값은 버전 3입니다.

#         prefer    호스트를 선택된 호스트로 표시합니다.

#                   동기화를 위해 다른 비교 가능한 호스트보다 이

                    호스트가 선택됩니다.

# 전체 목록은 xntpd에 관한 매뉴얼 페이지를 참조하십시오.

 

NTP stratum 1 서버에 대한 ntp.conf 파일 예제:

 

server 127.127.5.0

fudge 127.127.5.0 stratum 1

 

피어 모드의 NTP 서버에 대한 ntp.conf 파일 예제:

 

peer ntppeerserver

 

서버 모드의 NTP 서버에 대한 ntp.conf 파일 예제:

 

server sometimeserver prefer

server sometimeserver

server sometimeserver

# 언제나 로컬 클럭으로 되돌아갈 수 있습니다.

server 127.127.1.0

fudge 127.127.1.0 stratum 9

 

자신의 ntp.conf 파일을 생성했다면, 이를 저장한 다음 xntpd daemon을 시작하십시오.

# /usr/lib/inet/xntpd &

 

 

3. NTP 클라이언트 설치

____________________________

 

1. /etc/inet/ntp.client에서 /etc/inet/ntp.conf로 복사하십시오.

 

# cp /etc/inet/ntp.client /etc/inet/ntp.conf

 

기본 ntp.client 파일은 multicast를 사용하여 NTP 업데이트를 수신합니다. NTP 클라이언트가 이러한 업데이트를 수신할 수 있는 장소를 제한하려는 경우, 이것을 broadcast로 변경하십시오. (Broadcast 패킷은 다른 서브넷에 전달되지 않는 반면 multicast 패킷은 전달됩니다).

 

#

# /etc/inet/ntp.client

#

# /etc/inet/ntp.conf로 복사할 수 있는 예제 파일. 이 파일은

# 서버가 ntp multicast 네트워크 상에서 NTP 패킷을 제공하도록

# 수동적으로 기다리는 호스트를 위한 구성을 제공합니다.

#

 

multicastclient 224.0.1.1

 

2. xntpd daemon을 시작하십시오.

 

# /usr/lib/inet/xntpd -m &

 

(NTP 업데이트를 수신하는 방법으로 broadcast를 사용하는 경우 인수로서 -b를 사용하므로, xntpd daemon -m 인수와 함께 시작합니다.)

 

 

4. ntpdate 명령의 사용.

_____________________________

 

     ntpdate 유틸리티가 로컬 날짜와 시간을 설정합니다. 이 유틸리티는 정확한 시간을 결정하기 위해, 인수로 주어진 호스트 상에서 Network Time Protocol(NTP) 서버를 폴링합니다. 이 유틸리티는 로컬 호스트에서 루트로 실행되어야 합니다.  이 유틸리티는 각 서버로부터 샘플을 얻어 표준 NTP 클럭 필터와 선택 알고리즘을 적용하여 이들 중 최선의 값을 선택합니다.

 

     이 유틸리티는 daemon 실행의 대안으로서 cron(1M)으로부터 정기적으로 실행할 수 있습니다. 한 두 시간마다 한번씩 실행하면 충분히 정확한 시간을 얻을 수 있으므로 클럭 스테핑이 필요하지 않습니다.

 

 

이미 xntpd daemon을 실행하고 있다면 ntpdate 명령을 사용할 수 없습니다.

이 명령을 실행하려고 하면 다음과 같은 오류가 발생합니다.

 

# ntpdate champ

23 Sep 14:55:52 ntpdate[19780]: the NTP socket is in use, exiting

 

또한 ntpdate 명령을 실행하려면 루트 사용자가 되어야 합니다. 그렇지 않으면 다음과 같은 오류가 발생합니다.

 

% ntpdate champ

23 Sep 14:44:36 ntpdate[19743]: bind() fails: Permission denied

 

ntpdate 명령으로 서버를 지정할 경우, 이름을 IP 주소로 전환할 수 있도록 사용자의 naming service를 반드시 실행하십시오. 그렇지 않으면 다음과 같은 오류가 발생합니다.

 

# ntpdate tiger

23 Sep 15:20:43 ntpdate[20041]: no server suitable for synchronization found

 

이 예에서 ntp 서버 "jedi"를 동기화되는 서버로 지정합니다.

# ntpdate jedi

23 Sep 17:12:21 ntpdate[20963]: adjust time server 129.148.192.147 offset

0.001422 sec

 

 

5. ntpq 명령의 사용

___________________________

 

ntpq는 현재 상태에 대해, 권장된 NTP 모드 6 제어 메시지 형식을 수행하는 NTP 서버에게 질의합니다. 현재 상태의 변경을 요청할 수도 있습니다. 프로그램은 대화형 모드로 실행되거나 명령줄 인수를 사용하여 제어될 수 있습니다. raw and pretty-printed output 옵션을 사용할 수 있게 하면서 임의 변수에 대한 읽고 쓰기 요청을 조립할 수 있습니다. ntpq는 서버에 복수 쿼리를 전송함으로써 피어 리스트를 일반 형식으로 얻고 인쇄할 수 있습니다.

 

NTP 서버에게 피어 리스트에 관해 질의하는 방법:

 

# ntpq -p jedi

     remote           refid      st t when poll reach   delay   offset    disp

==============================================================================

*eastpager1.East dollar.East.Sun  3 u   97   64  376     2.03    4.564    2.33

 LOCAL(0)        LOCAL(0)         5 l   19   64  377     0.00    0.000   10.01

 NTP.MCAST.NET   0.0.0.0         16 -    -   64    0     0.00    0.000 16000.0

 255.255.255.255 0.0.0.0         16 -    -   64    0     0.00    0.000 16000.0

+sunswe.Sweden.S carbon.UK.Sun.C  3 u   48   64  377   156.80    6.367    0.41

+canadamail1.Can franc.East.Sun.  3 u   12   64  377    29.48   13.528   29.65

-cosmo.Eng.Sun.C rolex.East.Sun.  2 u   98  128  377    84.08   -1.069    0.87

-centralpager1.C venus.EBay.Sun.  3 u   41  128  377    68.73  -19.219    6.70

 

remote - 원격 피어

refid - 피어가 동기화되는 호스트

st - stratum 번호

t - 유형, unicast, mulitcast, local   (- = 알 수 없음)

poll - 초 단위 폴링 간격

reach - 도달가능성 레지스터

 

* 원격에서 현재 선택된 피어를 나타냅니다.

+ 호스트가 동기화에 대한 수락 가능한 피어이지만 수락되지 않았음을 나타냅니다

- 수락 불가능

 

 

6. 유용한 디버깅

_________________________

 

"server" 모드(연관)를 사용하는 경우, ntp.conf 파일에 최소한 세 개의 다른 서버를 두는 것이 바람직합니다. 구성하는 서버가 인터넷 상에서 멀리 떨어져 있고 Firewall을 설치했다면, Firewall 상에서 사용자의 NTP 서버로부터 포트 123 NTP 서버가 들어오고 나갈 수 있도록 허용하는 규칙을 작성하십시오. 일반적으로 NTP 서버를 ntp.conf에 나열된 시간 서버에 동기화하는 데에는 약 5분 정도가 소요됩니다. 동기화가 끝날 때까지 다른 NTP 클라이언트에게 broadcast/multicast NTP 패킷을 보내지 마십시오. 일반적으로 이들 패킷은 64초 간격마다 전송됩니다.

 

xntpd ntpdate 명령은 모두 debug 옵션을 가지고 있지만, ntpdate -d를 사용하는 경우 "작동은 끝까지 수행되지만" 실제로 네트워크 폴링은 수행하지 않으므로 주의해야 합니다.

 

다음 예에서는 ntp.conf에 대해 ntp.client를 사용하고 xntpd -d를 활성화했습니다.

 

# /usr/lib/inet/xntpd -d &

20743

# Solaris tick = 10000

kernel vars: tickadj = 625, tick = 10000

adj_precision = 1, tvu_maxslew = 61875, tsf_maxslew = 0.0fd70a37

create_sockets(123)

bind() fd 19, family 2, port 123, addr 00000000, flags=1

bind() fd 20, family 2, port 123, addr 7f000001, flags=0

bind() fd 21, family 2, port 123, addr 8194c097, flags=1

init_io: maxactivefd 21

report_event: system event 'event_restart' (0x01) status 'sync_alarm,

sync_unspec,

1 event, event_unspec' (0xc010)

input_handler: fd=19 length 48 from 8194c093 129.148.192.147

input_handler: fd=19 length 48 from 8194c093 129.148.192.147

input_handler: fd=19 length 48 from 8194c093 129.148.192.147

input_handler: fd=19 length 48 from 8194c093 129.148.192.147

input_handler: fd=19 length 48 from 8194c093 129.148.192.147

input_hander: fd=19 length 48 from 8194c093 129.148.192.147

input_handler: fd=19 length 48 from 8194c093 129.148.192.147

 

(129.148.192.147 is the host "jedi")

 

또한 multicast broadcast NTP 패킷을 기대하면서 동시에 포트 123(ntp) 상에서 ntp 클라이언트에 대한 snooping을 시작했습니다.

 

# snoop -d le0 port 123

device /dev/le (promiscuous mode) 사용

 slave-192-1 -> NTP.MCAST.NET NTP  broadcast (Thu Sep 23 16:42:15 1999)

       champ -> NTP.MCAST.NET NTP  broadcast (Thu Sep 23 16:42:46 1999)

        jedi -> NTP.MCAST.NET NTP  broadcast (Thu Sep 23 16:42:49 1999)

        jedi -> BROADCAST    NTP  broadcast (Thu Sep 23 16:42:50 1999)

 slave-192-1 -> NTP.MCAST.NET NTP  broadcast (Thu Sep 23 16:43:19 1999)

       champ -> NTP.MCAST.NET NTP  broadcast (Thu Sep 23 16:43:50 1999)

        jedi -> NTP.MCAST.NET NTP  broadcast (Thu Sep 23 16:43:53 1999)

        jedi -> BROADCAST    NTP  broadcast (Thu Sep 23 16:43:54 1999)

 slave-192-1 -> NTP.MCAST.NET NTP  broadcast (Thu Sep 23 16:44:23 1999)

 

 

7. 알려진 버그

______________

 

4060650  xntpd가 루핑되면서, cpu에 부하를 주고 메모리도 소진하여 컴퓨터를 사용할 수 없게 만듭니다.

 

4097366  외부 클럭 하드웨어는 xntpd에 의해 지원되지 않습니다.

 

4192098  xntpd는 일부 Ultra 5에서 "c011 sync_alarm"과 동기화되지 않습니다.

 

4130698  Solaris 2.6에 대한 ntp 설치/업그레이드 지시사항

 

4061948  SPARC 전용: 2.5.1 SUNWxntp Package Solaris 2.6과 호환되지 않습니다.

         (E10k 시스템 전용)

 

 

8. NTP에 대한 추가 자료

________________________________

 

http://www.eecis.udel.edu/~ntp/

http://www.con.wesleyan.edu/~triemer/network/ntp/ntp_tcp.html (contains RFC list)

 

 

 

 

사업자 정보 표시
(주)블루원 | 김홍태 | 서울특별시 용산구 원효로 4가 135 금홍 2빌딩 | 사업자 등록번호 : 106-86-76684 | TEL : 02-3272-7200 | Mail : support_ora@blueone.co.kr | 통신판매신고번호 : 호 | 사이버몰의 이용약관 바로가기

'SuperCluster,EXADATA,ODA' 카테고리의 다른 글

AIX 솔라리스 특징 및 명령어 비교  (0) 2015.12.29
TCP Time wait 개념  (0) 2015.12.29
IPMP 개요  (0) 2015.12.29
NFS 파일공유 RW 권한 갖는 방법  (0) 2015.12.29
ce NIC 속도 확인 및 설정  (0) 2015.12.29

+ Recent posts