TR-069 개요
- TR-069(Technical Report 069 의 약자)는 DSL 포럼 (이후 Broadband 포럼으로 변경)의 기술 명세서이다.
- 이 문서의 정식 명칭은 CPE WAN Management Protocol (CWMP)이다.
- 이 문서는 CPE(말단 사용자 장치)를 관리하기 위한 Application Layer Protocol(사용자 계층 프로토콜)을 정의하고 있다.
- TR-069는 2004년 5월에 작성되었고 2006,2007,2010,2011년 개정되었음 (2011년 7월 version 1.3)
TR-069 배경
- 브로드밴드 시장이 활성화 되면서 여러개의 다른 종류의 인터넷 접속 또한 많이 생겨났고, 이러한 장비(모뎀, 라우터, 게이트웨이, 세트톱박스, VoIP-phone 등)들을 설정하는 것은 더욱 복잡해졌다.
- 말단 사용자에게는 이러한 설정이 더욱 어려운데 이러한 이유로 TR-069 표준이 개발되었다.
- TR-069 표준은 여러가지 접속 방법에 대한 자동 설정을 제공한다.
- TR-069는 DSL broadband 시장에서 터미널을 활성화하기 위해 현재 사용중인 표준이다.
TR-069를 사용하는 다른 포럼
- the Home Gateway Initiative (HGI)
- Digital Video Broadcasting (DVB)
- WiMAX Forum 은 네트워크 장비와 터미널(DVB IPTV 셋톱박스 같은) 관리용으로 CWMP를 사용함. 홈네트워크 장치(IPTV, FTTH CPE/ONT, WIMAX CPE)등을 위해 TR-069 기능을 점차 사용함.
TR-069 용어
- CPE : Customer-Premises Equipment, 말단 사용자 장치
- ACS : Auto Configuration Servers, 자동 설정 서버
- CWMP : CPE WAN Management Protocol
TR-069 기술사항
- TR-069 프로토콜을 이용해서 CPE들은 ACS에 접속하고 필요한 설정을 자동으로 받아오게 된다.
- TR-069 프로토콜은 양방향 SOAP/HTTP 을 기반으로 CPE와 ACS간 통신을 가능하게 한다.
- 또한 안전한 자동 설정 기능을 제공하며 통합 환경 내에서 다른 CPE 관리 함수를 제어하고 동작시킬 수 있도록 해준다.
- 이렇게 함으로써 사용자가 따로 설정하지 않아도 필요한 서비스를 사용하는 것이 가능해진다.
사용자 삽입 이미지
장치와 ACS 간 통신
- CWMP는 텍스트 기반의 프로토콜임 : HTTP 또는 HTTPS로 전송
- CPE는 클라이언트, ACS는 서버임 : 프로비저닝 세션은 CPE가 수행함.
프로비저닝 세션
1단계
- 프로비저닝 세션은 CPE가 Inform 메시지를 전송하면서 시작됨
- ACS는 InformResponse를 하여 세션이 초기화됨.
- holdRequests 플래그에 따라 다음 절차에 들어감
- true : ACS가 먼저 요청(?)함.
- false : CPE의 요청에 의해 초기화 단계로 들어감.
2단계 (holdRequest가 false 일때)
- CPE가 ACS에 어떤 method를 요청함.
- ACS에 비어있는 HTTP-request를 요청하면 끝남
3단계
- CPE의 HTTP-response에는 ACS로부터의 CWMP-request가 담겨있다.
- CPE의 HTTP-request에는 CWMP-response를 담아서 보낸다.
- 비어있는 HTTP-response를 보내면 끝남.
보안 및 인증
- 방법 : HTTPS를 사용, ACS 인증
- CPE인증의 어려움 : password가 HTTP로 전송됨, 최초 password는 공장초기값임.
연결 요청
- 프로비저닝 세션의 초기화 및 제어는 CPE가 수행하므로, ACS가 CPE를 통해 세션을 시작하는 방법이 필요함.
- CPE는 HTTP 서버 역할을 해야 함.
- CPE로의 DDos공격을 방지하기 위해 URL을 협상하여야 함.
- ACS는 협상한 URL을 사용하여 CPE로 인증함
- 인증후 30초 이내에 세션이 열려야 함.
NAT 통과
- 방법 : STUN and UDP NAT traversal
- TR-111 참조 : http://www.broadband-forum.org/technical/download/TR-111.pdf
Data model
- 대부분의 설정 및 진단은 device parameter를 주고 받음으로 이루어짐.
- BB포럼 : 2가지 포멧의 data model 제정
- http://www.broadband-forum.org/cwmp.php
- 사용하는 Data model은 표기되어야 함
- Device:1.0 and InternetGatewayDevice:1.1 –> Device.DeviceSummary 또는 InternetGatewayDevice.DeviceSummary 에 표기됨
- 위의 값이 없으면 InternetGatewayDevice:1.0 이라고 판단함.
- Device:1.4 and InternetGatewayDevice:1.6 –>’.SupportedDatamode 필드가 추가됨
- 배열
- writable / read-only
- writable 이면 AddObject, DeleteObject 할 수 있음.
주요 메시지
- GetParameterNames (GPN) : 장치에서 지원하는 매개 변수 키 목록을 검색
- GetParameterValues (GPV) : 키에 의해 식별 된 매개 변수의 현재 값을 검색. 한번에 한개 또는 여러개 검색 가능.
- SetParameterValues (SPV) : 하나 또는 여러 개의 매개 변수의 값을 설정
- GetParameterAttributes (GPA) : 하나의 속성 또는 여러 개의 매개 변수를 가져옴
- SetParameterAttributes (SPA) : 하나의 속성 또는 여러 개의 매개 변수를 설정
- 다운로드 : CPE가 지정된 URL을 통해 파일을 다운로드 하고, 파일 종류에 따라 이를 사용함 (펌웨어 이미자, 설정 파일, 벨소리 파일 등)
- 업로드 : CPE가 지정된 위치에 파일을 업로드한다. 현재 설정, 로그 파일 등..
- AddObject (ADD) : 배열에 인스턴스를 추가
- DeleteObject (DEL) : 배열에서 인스턴스를 제거
다른 작업들
- 서비스 활성화 및 재구성
- 손대지 않거나 원터치로 서비스를 위한 설정
- 서비스 회복 (예 : 장치가 공장 초기화, 교환 후)
- 원격 가입자 지원
- 장치 상태 및 기능에 대한 검증
- 수동 재구성
- 펌웨어 및 구성 관리
- 펌웨어의 업그레이드 / 다운 그레이드
- 구성의 백업 / 복원
- 진단 및 모니터링
- 처리량 (TR-143) 및 연결 진단 : http://www.broadband-forum.org/technical/download/TR-143.pdf 참조
- 매개 변수 값 검색
- 파일 검색 로그
오픈소스
OpenACS
- 종류 : ACS
- 주소 : http://sourceforge.net/projects/openacs
- 기술사항 : Jboss 4.2.2 and JRE 1.5 (for webservices to work)
- SVN : http://svn.code.sf.net/p/openacs/code/trunk
- download : http://sourceforge.net/projects/openacs/files/latest/download
libtringle
- 종류 : ACS
- 주소 : http://code.google.com/p/libtringle/
- 기술사항 : C
- SVN : http://libtringle.googlecode.com/svn/trunk/cwmpd
Open-tr069
- 종류 : ACS
- 주소 : https://code.google.com/p/open-tr069/
- 기술사항 : C
- SVN : http://open-tr069.googlecode.com/svn/trunk/evcpe
jCWMPServer
- 종류 : ACS
- 주소 : http://sourceforge.net/projects/jcwmpserver/
- 기술사항 : Java, PHP
- SVN : http://sourceforge.net/projects/jcwmpserver/files/
FreeCWMP
- 종류 : CPE
- 기술사항 : C
- 주소 : http://www.freecwmp.org/
- GIT : http://www.freecwmp.org/ 참고
modus-tr-069
- 종류 : CPE
- 주소 : http://modus-tr-069.sourceforge.net/
- 주소 : http://sourceforge.net/projects/modus-tr-069/
- 기술사항 : Java
- SVN : https://modus-tr-069.svn.sourceforge.net/svnroot/modus-tr-069/trunk/ClientTR69
기타
- http://stackoverflow.com/questions/4793690/cwmp-cpe-client-implementation
- http://code.google.com/intl/ko/query/#q=cwmp







이글을 보게되네요 김별 형님~ㅋㅋ
CnW 할때 쓴 글인가보네.. 나도 오랜만에 보니 감회가 새롭네. 다들 잘 지내고 있는지 궁금하구먼. ㅎㅎ.