NTP (2) Configuration

Feature 2014.11.27 14:41

<>NTP Configuration





1. Configuration



   R1(config)# ntp server 100.1.1.1 {key} {number}


   NTP 시간정보를 긁어올 서버를 지정한다. 서버는 상위 Stratum으로 동작하며, 복수의 서버를 지정할경우 한개의 서버로 동기

   화되고 백업서버는 ntp candidate로 지정된다. 복수개의 NTP 서버중 마스터가 선정되는 순서는 (1) stratum이 낮은순 

   (2) stratum이 동일할경우 manual 설정 서버가 broadcast client방식보다 우선한다. (3) 위 사항도 모두 동일한경우 먼저 NTP 

   패킷을 수신한 쪽의 서버를 등록한다. (NTP server 이중화).



   R1(config)# ntp server 100.1.1.1 prefer


   prefer 명령은 동일한 Stratum 서버가 다수 존재할경우 이중 마스터 서버를 수동으로 선정할수 있게 하기위한 명령어이다.

   반드시 Stratum이 동일한경우에만 해당하며, Stratum이 다른경우 prefer 설정유무에 상관없이 stratum이 작은값을 선호한다. 



   R1(config)# ntp master {1-15}


   해당장비가  NTP 마스터서버로 동작한다.Stratum 은 기본값 7로 설정된다. (1-15 설정가능). 위에서 설명했듯 어느것을 기준

   으로 하냐에 따라, 7도 될수 있고 8도 될수 있다. 추가로 본인의 장비가 NTP 마스터서버로 동작하게되면 되도록 보안에 신경을

   써야  한다. 이는 NTP가 개발된지가 오래된만큼 보안상 취약점이 많이 존재하기 때문인데, 2014년초 프랑스 웹을 거의 마비시

   킨  NTP monlist 어택같은 디도스공격도 monlist 기능의 취약점을 이용한 패킷증폭공격이었다. 

   NTP server와 NTP master가 동시에 설정되었을경우, 두개의 NTP 정보 (외부서버정보와 로컬타임정보)가 서로 경쟁한다.

   마스터로 지정되지 않아도 외부에 NTP 정보를 동기화해주는것은 가능하다.

  


   R1(config)# ntp max-association 1


   Association 을 맺는 서버의 갯수를 1로 제한한다. (1-4249967295 사이에서 설정)


  

   R1(config)# ntp logging


   로깅 기능 활성화. 테스트 환경이나 트러블슈팅시에 필수적이다.

   


   R1(config)# ntp clock-period 00000000


   ntp clock-period는 하드웨어 Tick을 보정하는 장비별 자동설정값이다. 따라서 수동설정을 할필요가 없다.

  모델이 다른 타장비로 설정값을 복사할시에도 이값은 제외하도록 한다. 



   R1(config)# ntp update-calendar


   NTP로 동기화된 software time을 hardware time으로도 동기화한다.

   하드웨어 시간정보는 장비부하나 기타 외부 환경에 의해 정확도가 점차 떨어지므로 소프트웨어 시간정보를 주기적으로 받아

   오도록 하는것이 권장된다.



   R1(config)# ntp access-group


   스탠다드 ACL을 이용하여 출발지 IP별로 NTP 쿼리 요청을 차단하거나 서버가 외부 디바이스로 동기화해주는 기능을 필터링

   한다. 보통은 인증기능을 사용할경우 더 나은 보안효과를 가질수 있기 때문에, 실제 잘 사용되지 않는다.

   peer : 모든 요청, 동기화 허용

   serve : 외부 디바이스로 NTP 동기화를 하거나, 로컬장비에서 나가는 쿼리를 허용한다.  로컬장비 동기화는 허용안됨

   serve-only : 외부 디바이스로 NTP 동기화만 허용한다.

   query-only : 로컬장비의 쿼리 요청만 허용한다. 

   실상 이부분은 ACL의 permit, deny 명령어를 통해 직접 설정을 해보는게 감이 바로 온다.



   R1(config)# ntp source lo0


   장비의 NTP 소스 주소를 명시한다. 이는 외부에서 peer 나 server를 등록할시에 해당장비의 소스주소를 설정해야만 NTP 

   프로토콜을 주고 받게 된다. 이설정을 하여도 인터페이스에 ntp broadcast를 설정할경우엔 외부에서 서버의 소스주소가 아닌

   해당 인터페이스 주소가 ntp association에 등록된다.



   R1(config)# ntp trusted-key

   R1(config)# ntp authenticate

   R1(config)# ntp authenticaion-key {keynumber} md5 {WORD}


   NTP 인증을 위한 명령어들이다. 서버에서 인증기능을 활성화 (ntp authenticate)하고 인증키를 생성할시 (ntp authenticate

   -key) 해당 서버와 동기화를 원하는 클라이언트에서도 마찬가지로 인증기능을 활성화하고 동일한 인증키를 적용해야 한다.

   그리고 ntp trusted-key명령을 통해 신뢰하는 서버의 키값을 지정해야하며, ntp server {주소} {키값} 도 모두 동일하게 적용

   한다. 인증키 해싱은 MD5만 현재 지원한다.



   R1(config-if)# ntp broadcast {client} {ver} {key} {destination)

   R1(config-if)# ntp multicast {client} {ver} {key} {TTL} {group address}


   브로드캐스트, 멀티캐스트로 NTP를 주고받도록 인터페이스에서 설정한다. 동기화될 클라이언트는 client명령어를 설정해서

   작동하며, 위의 인증값도 모두 설정을 마쳐야 비로소 동기화가 가능하다. 멀티캐스트는 특정 그룹주소로 NTP 패킷을 방송하며

   서버와 클라이언트가 이미 멀티캐스트 통신(PIM)이 가능한 환경이어야 동기화된다. 

   

   NTP 설정은 시스코 IOS 종류에 따라 추가되거나, 설정자체가 상이한 부분이 많이 존재하므로 검색을 통해 확인하는것이 

   가장 빠르다.






2. 예제 Topology



  


 예제 조건

   (1) R1은 디폴트게이트웨이로 외부 인터넷의 관문이 되며, NTP 서버 202.118.1.46 (실서비스IP) 과 동기화한다.

        예제에서는 OSPF를 통해 디폴트게이트웨이정보 생성하여 실제 인터넷망을 나가도록 하며 R1~R6은 1.1.x.x

        사설 IP을 구성하고 R1 외부로 PAT 설정을 통해 실제 공인IP로 통신하도록 설정하였다.

   (2) 모든 장비는 NTP 로 서로 인증한다. 키넘버는 R1-R2의 경우 12로, MD5값은 pass12 (모든 라우터끼리 동일)

   (3) 모든 NTP 관련 통신은 1.1.0.0/16 네트워크만 허용한다. R1은 1.1.0.0/16 에 더하여 host 202.118.1.46 허용 

   (4) R2, R3은 R1과 각각 md5 인증하고 동기화한다. 

   (5) R2, R3은 서로 피어를 맺고 md5인증한다.

   (6) R4은 R2, R3과 md5 인증하고 동기화한다. 다만 R3의 NTP 정보를 우선하여 동기화하도록 설정

   (7) R4의 F0/1은 R5와 PIM-DM 멀티캐스트 통신하고 NTP 패킷 광고, R6으로는 broadcast로 NTP 광고한다.

        VER 3으로 R4-R5 멀티캐스트 NTP TTL은 3으로 제한

   (8) R5와 R6은 최대 association 갯수를 1로 제한하고 R4와 각각 인터페이스 F0/0에서 멀티캐스트, 브로드캐스트

        NTP 패킷을 수신한다. 


   R1

   (1) R2, R3와 인증하기위한 키 12, 13을 생성하였다. 인증값은 각각 pass12, pass13을 생성하였고 이는 인증할 장비와 동일한
         인증값으로 구성해야한다.
   (2) NTP 인증 활성화. 기본값은 비활성
   (3) standard ACL 2를 참조하여 해당 네트워크는 모든 NTP관련 통신을 허용한다(peer) R1의 NTP 서버인 202.118.1.46
         그리고 하위 사설 네트워크대역인 1.1.0.0/16 을 모두 허용하였다. 이 룰에 의해 이외에 다른 네트워크는 모든 요청 및 동기
         화가 차단된다.
   (4) 202.118.1.46은 실제 중국에서 운용중인 오픈 NTP 서버이다. 인증값이 필요하지 않은 오픈 서버이므로 key명령을 넣
         지 않는다.

   R2


   (1) 인증키 12, 23은 각각 R1과 클라이언트 인증, R3과 피어 인증을 위해 설정한다.

   (2) 인증키 24는 R4가 R2로 동기화 요청시 인증할 키이다.

   (3) trusted-key는 클라이언트가 실수로 동기화하는것을 막기위한 장치로 서버의 인증키와 동일한값을 명시한다.

        여기서는 R1과 인증값 12, R3과 피어 인증값 23을 설정했다.

   (4) R1을 NTP 마스터 서버로 지정하고 인증키값을 12 로 설정했다. 존재하지 않는 키를 설정하면 인증하지 않는다.

   (5) R3 과 ntp peer 를 맺고 위에서 설정한 인증키 23을 입력한다. 소스인터페이스를 루프백으로 명시하였다.

  

   R3은 R2와 동일하므로 생략

   

   R4


   (1) R2, R3 두개의 서버로부터 동기화시 필요한 인증키 24,34 그리고 R5, R6에 각각 멀티캐스트, 브로드캐스트로 NTP인증할
        키값 45, 46설정
   (2) 받아올 서버에서 설정한 인증키를 trusted-key로 설정하였다 (24, 34)
   (3) R2, R3의 NTP정보를 받을시 실제로 두서버의 stratum이 3 으로 동일하므로 먼저 NTP 패킷을 수신한 쪽을 마스터로 설정
        하지만 여기서 prefer명령을 통해 이와 관계없이 R3을 마스터 서버로 지정되도록 한다.
   (4) R5에게 멀티캐스트로 NTP 동기화 할것이므로 멀티캐스트 활성화
   (5) F0/1로 broadcast 패킷을 광고하고 인증값을 46으로 설정한다. R6과 동일한 인증값을 생성해야함
   (6) F0/1로 멀티캐스트 패킷을 광고하고 인증값을 45로 설정한다. 예제의 조건과 같이 ver 3 그리고 TTL 3으로 제한한다.

   R5


   (1) 예제 조건대로 max-association을 1로 제한했다. 따라서 R5는 다른서버의  NTP 멀티캐스트 패킷을 수신해도 더이상

        등록하지 않는다.

   (2) F0/0으로 NTP 멀티캐스트 패킷을 수신하고 동기화 하도록 설정한다. 정해진 그룹주소를 지정해야 하고, 클라이언트는

         인증값을 여기에 설정하지 않으며 할수도 없다. 


   R6의 설정도 동일하며, 인터페이스에서 ntp broadcast client 명령으로 패킷을 수신하고 동기화한다.


   결과값

   (1) R1이 202.118.1.46을 마스터 서버로 등록한다. (stratum 1)

   (2) R2, R3이 NTP 마스터서버를 1,1,1,1 로 지정하였다. (stratum 2) 그리고 R2-R3을 서로 피어로 지정하고 selected가 

         되었다.(stratum 3)

   (3) R4가 R3을 마스터 서버로 지정하고(prefer), R2를 selected 로 지정한다. (stratum 3)

   (4) R5와 R6이 자동으로 R4 [1.1.4.4]를 마스터 서버로 지정한다. (stratum 4)


   어느 한곳이라도 마스터 서버 지정에 실패하거나, association 목록 서버, 피어가 보이지 않는경우 잘못 설정된것이다.

   명령어 설정, 인증값비교, 라우팅 가능여부등을 체크하여 트러블슈팅한다. 


   R6




'Feature' 카테고리의 다른 글

SSH  (0) 2015.05.14
Netflow  (0) 2014.12.31
NTP (2) Configuration  (0) 2014.11.27
NTP (1)  (0) 2014.11.14
IGMP  (0) 2014.10.08
Flash memory 파일관리  (0) 2014.06.10