제2의 비엔지니어 인생관을 꿈꾸며

Posted
Filed under Study
<< 윈도우 2000 Server >>

1. 서비스 -> Windows Time -> 시작유형 "자동" 으로 변경


2. cmd 창에서 NTP 서버 설정

  a. c:\> net time /setsntp:"timeserver-A  timeserver-B ... "
          --> timeserver는 ip나 dns에서 찾을 수 있는 도메인명을 입력

  b. c:\> net time /querysntp


3. 레지스트리 수정 : ntp 서버와의 시간차이 최대값을 설정

  a. 실행창에서 regedit 실행( 시작 -> 실행 -> “regedit” 입력 )

  b. 다음 레지스트리 하위 키를 찾아서 누릅니다.
      HKEY LOCAL MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Parameters

  c. 오른쪽 창에서 Dword값 “MaxAllowedClockErrInSecs” 신규생성

  d. “MaxAllowedClockErrInSecs”를 마우스 오른쪽 단추로 누른 다음 수정을 누릅니다.  

  e. DWORD 값 편집에서 값 데이터 상자에 1000을 입력한 다음 확인을 누릅니다.


4. Time 서비스 재시작 후 동기화 테스트 : DB가 운영중인 서버의 경우 시간이 뒤로 가는것을 주의하시기 바랍니다.

   cmd 창에서 수행

   c:\> net stop w32time
   c:\> net start w32time
   c:\> w32tm -once




<< 윈도우 2003 Server >>
   

1. 서비스 -> Windows Time -> 시작유형 "자동" 으로 변경

2. cmd 창에서 NTP 서버 설정

  a. c:\> net time /setsntp:"timeserver-A  timeserver-B ... "
          --> timeserver는 ip나 dns에서 찾을 수 있는 도메인명을 입력

  b. c:\> net time /querysntp


3. 레지스트리 수정 : ntp 서버와의 시간차이 최대값을 설정

  a. 실행창에서 regedit 실행( 시작 -> 실행 -> “regedit” 입력 )
 
  b. 다음 레지스트리 하위 키를 찾아서 누릅니다.
    HKEY LOCAL MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Config

  c. “MaxPosPhaseCorrection”를 마우스 오른쪽 단추로 누른 다음 수정을 누릅니다.

  d. 단위를 10진수로 바꾸고 값 데이터 상자에 1000을 입력한 다음 확인을 누릅니다.

  e. “MaxNegPhaseCorrection”를 마우스 오른쪽 단추로 누른 다음 수정을 누릅니다.

  f. 단위를 10진수로 바꾸고 값 데이터 상자에 1000을 입력한 다음 확인을 누릅니다.



4. Time 서비스 재시작 후 동기화 테스트 : DB가 운영중인 서버의 경우 시간이 뒤로 가는것을 주의하시기 바랍니다.

   cmd 창에서 수행

   c:\> net stop w32time
   c:\> net start w32time
   c:\> w32tm /resync

2009/12/08 13:48 2009/12/08 13:48
Posted
Filed under Study
사용자 삽입 이미지
윈도우 서버로  NTP서버를 구성하는건 쉬웠다. 아주 쉬웠기 때문에 새로운 벽을 만나게 되었고 새로운걸 알게되었다.
회사에서 요구한 타임서버. 특정서버끼리는 시간을 동기화 시켜라. 내부끼리는 오차도 없어야 한다. 하지만 핸드폰 시간과도 동기화 시켜라. 이런 일을 주게되었다. 필자가 관리하는 서버들은 NT서버들이기 때문에 참 특이사항에 부딪혔고 유닉스 타임서버에는 어떤서버는 붙고 어떤서버는 안붙고 지 맘데로였다. 그래서 NT끼리만 동기화 하자해서 한대를 NTP서버로 구성하였고 다른 클라이언트 서버들을 동기화 시킬려고 하는데 안되는게 미칠노릇인거다. 온갖 문서나 트러블 슈팅을 봐도 교본대로 그대로 따라했을뿐인데 안되는게 이상했다.
NET TIME 명령어(net time
\\xxx.xxx.xxx.xxx /set /y)로 동기화를 하는건 UDP123번 통신을 하는게 아니고 RPC 와 넷바이오스 통신을 하면서 동기화를 하는것이였다. 결국 위방법은 안된다고 보안팀에서 너무 시끄럽게 해서 임시적으로만 동기화를 시키고 있는데 왜? 내가 운영하는 제주도 서버들은 잘만되는데 왜 여기 회사는 안되고 있는가? 뭐가 문제인가?라고 고민하던 찰나에 하나씩 찾아보기로 했다. 내 익스체인지 서버가 시간이 5분이상 늦었다는걸 알고 NTP 서버로 동기화 시킬때 스니퍼를 구동시켜봤다. 정확하게 패킷이 타임서버로 쏘는걸 모니터 된후 타임서버의 UDP123 포트가 정확하게 리스너가 되어 있는지를 확인했다.
사용자 삽입 이미지
정확하게 리스너 상태인것이 확인되었고 이서버는 타임서버로서 문제가 없으니 제대로 구동되고 있었던 것이다. 그럼 안되는 NTP 서버는 뭐가 문제인가?
netstat -an 으로 확인해보면 127.0.0.1 UDP123 이 리스너가 되고 있었고 그리고 지정한 ip로도 UDP123 이 리스너 상태였다.
혹시나 싶어 activeport로도 모니터 해본결과 127.0.0.1만 리스너 상태였고 지정한 아이피는 올라오지 않았던것이 주 원인이였다. 재부팅 해보면 될거 같았지만 특정서버라는 이유때문에 재부팅도 못하고 결국 네트워크 처리량이 없는 2003서버를 NTP서버로 다시 구성해야 하는 것으로 마무리 되었다.
소켓통신 방식은 항상 스니퍼든 패킷모니터든간에 한번은 확인을 해봐야 한다. 그렇지 않으면 패킷을 주고 받고 있는지 방화벽에서 차단되었는지를 알수 없기때문에 자신들은 문제없는데 왜 안되냐는둥 타부서를 원망하게 되는 함정에 빠지게 된다.
윈도우 서버 2003까지는 세션이 가득차서 빠지지 않으면 재부팅 해야되는 문제가 있는데 비스타엔진부터는 이게 해결되었다. 즉 윈도우2008 서버는 이문제가 없다는 것이다.
AD가 올라간 Stand Alone 서버를 다른서버와 시간을 동기화 시키기 위해서는 정책에서 클라이언트 사용구성을 해줘야 만 동기화가 적용된다.  
2008/11/30 13:26 2008/11/30 13:26