Cisco IP Telephony 디자인을 할 때, TFTP 서버를 어떻게 분배할 지 한 두번 고민해 보았을 것입니다. 전화기가 1,000대 이상 넘어가면, 전화기 펌웨어 업그레이드에 걸리는 시간은 상상을 초월합니다. 이런 고민을 해결할 수 있는 방법에 대해 살펴보겠습니다.

기본적인 전화기 펌웨어 분배
가장 일반적이며 기본적인 CUCM의 TFTP Server를 이용하여 전화기의 Firmware를 업그레이드하는 것입니다.  시스코의 장비는 TFTP 서버를 통해 전화기의 Configuration을 다운로드 받습니다. 전화기가 TFTP의 주소를 확인하는 방법은 DHCP에서 “Option 150” 을 설정하는 것과 전화기에 수동설정하는 법입니다. 전화기를 통해 TFTP 서버에서 XML Configuration을 다운로드 받은 후 전화기의 현재 Firmware와 일치하지 않으면, Firmware 다운로드를 수행합니다. 일련의 과정은 전화기마다 독립적으로 수행되어 많은 시간이 걸리고, 지속적으로 WAN 구간 대역폭을 소모하며, TFTP Resource를 많이 소모한다는 단점이 있지만, 가장 안전하고, 일반적인 방법입니다.

Load Server를 이용한 전화기 펌웨어 분배
만일 100 대 또는 그이상의 전화기를 한 번에 업그레이드한다면, 관리자에게는 상당한 부담입니다. 실제 펌웨어는 같은 기종의 전화기끼리 동일한 펌웨어를 사용하므로, 별도의 TFTP 서버를 각 지사에 두는 방법입니다. 아래 그림에서 보듯이 전화기의 설정화면에 “Load Server”의 설정이 가능합니다.

 

각 지사별로 별도의 Load Server를 활용하여  Firmware를 다운로드 받게 합니다. 이렇게 하면, Local Bandwidth를 활용하고, TFTP의 부하를 줄인다는 것이 장점입니다. 단점이라면, 수동으로 각 Load Server에 파일을 업그레이드해야하고, 만일 문제가 발생하면, 상황을 관리자가 감지할 수 없습니다. 모든 TFTP 서버가 기본적으로 지원한다 합니다만,  Cisco Router, Switch, 3rd party 제품으로는 SolarWinds의 제품을 사용하실 것을 추천합니다.

 

Peer Firmware Sharing을 이용한 전화기 펌웨어 분배
이 방법은 별도의 Load Server 없이도 가능하며, 전화기가 다른 전화기의 TFTP 서버가 되는 것입니다. 아래 그림에서 보듯이 전화기의 설정화면에 “Peer Firmware Sharing”을 활성화 합니다.

이를 이용하게 되면, 같은 서브넷에 있는 같은 기종의 전화기를 통해 Firmware를 분배합니다. 같은 서브넷이라는 이유는 Broadcast를 통해 전화기를 식별하기 때문입니다. 아래 그림은 분배하는 방법에 대해 나와 있습니다. 같은 서브넷의 전화기 한대가 Root가 되고, 다른 2대의 전화기는 차일드가 되어 파일이 분배된 후에 다시 차일드는 페어런트가 되고 다른 2대의 전화기가 차일드가 되는 구조로 전화기가 많을 수록 강력한 힘을 발휘합니다.

자세한 동작방식은 아래와 같습니다.

  1. 각 전화기는 필요로하는 파일을 UDP 메세지로 브로드케스트합니다.
  2. 각 Subnet의 전화기 한대가 Root가 됩니다.
  3. Root 전화기는 브로드캐스트에 대해 응답을 합니다.
  4. 각 전화기는 파일 분배를 위해 2대의 차일드 전화기까지 지원하며, 트리를 구성합니다.
  5. 페어런트 전화기와 차일드전화기 간에 TCP 세션이 만들어집니다.
  6. Root 전화기가 파일 다운로드를 완료하자마자 차일드 전화기로 Firmware를 전송하기 시작합니다.

만일, 전화기가 한대만 있거나, 서로 트리를 만들지 못하면, 자동으로 TFTP 서버로 부터 파일을 전송받습니다.

 

마치며
지금까지 논의한 방식을 기준으로 전체적인 펌웨어 분배 시간을 확인해 보겠습니다. 아래 그림에서 보듯이 전화기가 많을수록 Load Server를 이용한 방식과 Peer Firmware Sharing을 이용한 방식이 훨씬 잇점이 많습니다.  40대의 전화기를 10분만에 업그레이드를 할 수 있는 새로운 방식 아닌가 합니다.

이제 CUCM의 TFTP만을 이용하지 마시고, 다른 방법을 사용해 보시면 어떨까요? CUCM 업그레이드마다 고민하던 문제 가운데 하나가 해결되지 않을까 싶습니다.

---------------------------
라인하트 (linecard@naver.com)
CCIEV #18487

저작자 표시
신고
Posted by 라인하트

댓글을 달아 주세요

  1. Favicon of http://www.nexpert.net BlogIcon 솔민아빠 2009.11.09 19:37 신고  댓글주소  수정/삭제  댓글쓰기

    시차적응도 채 되기 전 포스팅이군요.

  2. Favicon of http://www.nexpert.net BlogIcon 허클베리 핀 2009.11.10 12:50 신고  댓글주소  수정/삭제  댓글쓰기

    쉽게만 생각했던 것들이... 이렇게 정리를 한걸 보면... 아직 모르는게 많구나라는 생각이 듭니다. 특히 Peer Firmware Sharing 같은 경우는..... ^^; 안다고 생각하는 것도 꼼꼼히 문서를 찾아 보는 노력이 필요 한 것 같습니다.

  3. 마스터치프 2009.11.16 17:29 신고  댓글주소  수정/삭제  댓글쓰기

    저런 기능도 있군요. 역시 현업분들은 대단하네요.

    • Favicon of http://www.nexpert.net BlogIcon 허클베리 핀 2009.11.16 21:59 신고  댓글주소  수정/삭제

      이 글은 현업에 계시는 분들도 모르는 분들이 꽤 있으실 겁니다. 가끔 노가다 하시는 분들도 있으시구요.... 아는 것과 모르는 것의 차이가 위 그래프에서 보시는 것 처럼 엄청난 시간을 절약해 주니... 이런건 꼭 숙지 하거나 북마크 해 놓으세요 ^^

  4. 김정훈 2009.11.29 02:54 신고  댓글주소  수정/삭제  댓글쓰기

    아 이런 알찬 기능이 있었군요. 바로 적용해야겠네요 :)

  5. BlogIcon 주범식 2010.07.24 14:58 신고  댓글주소  수정/삭제  댓글쓰기

    사이트에서 적용을 해보니 업그레이드 속도가 약 3배정도 개선되더라구요.
    근데 아쉬운점은 특정 전화기만 지원된다는 겁니다. CP-7940, 7960은 지원되지 않네요.

    • Favicon of http://www.nexpert.net BlogIcon 허클베리 핀 2010.07.27 01:18 신고  댓글주소  수정/삭제

      오호 실제 적용사례를 들으니 정말 좋은 기능이 맞군요 ^^ 7940,60이 안되는 이유는 전화기 자체의 스펙과 관련이 있을 것으로 생각이 됩니다. 물론 짐작 하셨겠죠? ^^

  6. 허행균 2013.02.05 13:56 신고  댓글주소  수정/삭제  댓글쓰기

    자료 감사합니다.

    근데....Peer Firmware Sharing으로 펌웨어가 업그레이드되는지 알수있는 방법이 있나요?

    • Favicon of http://www.nexpert.net BlogIcon 라인하트 2013.02.05 17:42 신고  댓글주소  수정/삭제

      글쎼요. 저도 직접 해보지는 않아서서
      요즘은 Default로 PPID가 설정되어 있으므로 자동으로 된다고 보시면 됩니다. PPID는 Peer-to-Peer Image Distibution으로 PFS과 같은 것입니다. 시간이 지나니 용어도 바뀌네요



티스토리 툴바