본문

RFC4740 : Diameter Session Initiation Protocol (SIP) Application #2. 동작_REGISTER

이 페이지에서는 어떻게 Diameter SIP 응용이 SIP 과 함께 사용될 수 있을지에 대해 기술한다. 여기에서는 DIameter SIP 응용에 대한 특정 사용방법이나 SIP과 Diameter 메시지의 특정한 매핑을 강요하지 않는다. 대신, AAA에 필요한 기능들이 SIP와 함께하여 어떻게 구현될 수 있을지에 대한 다양한 예를 제공하는데 목적이 있다.


Diameter SIP 응용은 SIP 리소스 사용에 대한 authenticate와 authorize를 위해 사용되는, AAA 인프라에 연결되는 인터페이스가 필요한 경우에 사용될 수 있다. 이 응용은 SIP User Agent와 proxy를 지원하며, 이때, SIP[RFC3261] 인증 메커니즘에 따라,  HTTP Digest Authentication(RFC2617)을 사용한다. 이 응용은 확장가능하며, 필요에 따라, HTTP Digest Authentication 이외의 다른 인증 메커니즘이나 확장을 사용할 수 있다.


이 응용은 다음과 같은 한정된 과금 서비스를 지원한다. Diameter 서버는 Diameter 클라이언트에 과금서버의 주소를 제공할 수 있다. 아래 [그림 1]에서는 SIP 구조와 AAA 구조가 결합된 전체적인 구조를 보여준다. [그림 1]에 따르면, 하나 이상의 SIP User Agents(UAs)가 있어 하나 이상의 SIP 서버에 대한 SIP traffic을 초기화 하거나 종료시킬 수 있다.  양측의 SIP 서버에서는 Diameter 클라이언트가 구현되어 있어 이 문서에서 기술하는 Diameter 응용을 지원한다.



[그림 1] Diameter SIP 응용 구조


[그림 1]에서, SIP 서버 1은 SIP 서버 2에서 사용되지 않는 다양한 Diameter 명령을 보내고 받을 수 있다. 이것은 SIP 서버 1이 네트워크의 edge에 위치해있기 때문이고, 또한 이것의 주요역할은 SIP 서버 2를 찾는 것이기 때문이다. SIP 서버 2는 Authentication/Authorization 요청/응답 데이터를 edge에 위치하지 않은 Diameter 서버에서 받아온다.


물론 사용자의 데이터는 단일 Diameter 서버에 저장되어야 하겠지만 안정성을 위한다면 여러 Diameter 서버에 중복되어 저장될 수 있다. 단, 이때 외부에서는 이들을 단일 서버로 인지해야 할것이고, 서로간의 데이터는 동기화가 되어있어야 할 것이다. 이러한 경우, Diameter SIP 응용에서는 이러한 서버들을 향하는 하나 이상의 DNS 레코드를 사용하는 형태로 다중의 Diameter 서버를 지원한다.


Diameter SIP 응용은 관리 도메인으로 하여금 SIP 서버 2의 집합을 제공하도록 하는 기능을 제공한다. 사용자가 처음으로 네트워크에 등록할때, SIP 서버중 하나가 선택되고, 그 사용자에 대한 모든 SIP 요청은 동일한 SIP 서버에서 처리된다. Diameter Subscriber Locator(SL)은 사용자와 관련한 데이터를 가지는 Diameter 서버의 위치를 제공하는 역할을 한다. 이것의 역할은 Diameter Redirect 메커니즘에 따르며, 이것은 뒤에 더 자세히 기술될 것이다.


알아두어야 할 점은 이 문서는특정 SIP/AAA 구조를 강요하지 않는다는 것이다. 하지만, Diameter SIP 응용은 SIP과 Diameter가 사용되는 다양한 구조에서 필요한 핵심적인 기능들을 제공한다. 아래에서는 Diameter SIP 응용과 명령, 그리고 SIP과의 연동에 대해 기술한다.


* 사용자를 인증하는 Diameter 서버

여기에서는 사용자를 인증하는 일반적인 메커니즘에 대해 다루며, Diameter가 SIP 사용자의 요청을 처리하는 administrative 네트워크의 예를 보여줄 것이다. Diameter 서버가 사용자 정보를 보유하고 특정한 정보교환을 위해 SIP 요청을 인증하는 중형 네트워크의 경우를 생각해볼 수 있다. 아래 예에서는 SIP REGISTER 요청을 들었지만, SIP 서버는 다른 SIP 요청에 대한 인증 또한 요구할 수도 있다.



[그림 2] Diameter 서버에서 이루어지는 authentication.


[그림 2]에 따르면, SIP User Agent Client(UAC)는 SIP REGISTER 메시지를 SIP 서버 1에게 보낸다. 여기에서 SIP 서버는 administrative home domain상의 edge에 위치해 있다 가정한다. SIP 서버 1내부의 Diameter 클라이언트는 Diameter User-Authorization-Request(UAR)메시지를 보냄으로써 Diameter 서버와 연결하고, 이 과정에서 사용자가 해당 서비스를 받을 수 있는지, 만약 가능하다면 이 사용자를 처리할 수 있는 local SIP 서버의 주소를 요청한다. Diameter 서버는 Diameter User-Authorization-Answer(UAA)메시지로 이에 응답하며, 여기에는 SIP 서버 1이 선택할 수 있는 SIP 서버들의 리스트, 혹은 특정 서버들을 가리키는 SIP/SIPS URI가 들어있다.


SIP 서버 1은 SIP REGISTER 요청을 적절한 SIP 서버(여기에서는 SIP 서버 2)에 젅달한다. 그러면 SIP 서버 2에 위치한 Diameter 클라이언트는 Diameter Multimedia-AUth-Request(MAR)메시지를 전송함으로써 Diameter 서버로부터의 사용자 authentication을 요청한다. 이 요청은 이에 더불어 Diameter 서버가 SIP 서버 2에 대한 SIP/SIPS URI를 인지할 수 있도록하여, 해당 사용자에대한 또다른 요청에 대해 SIP 서버 2가 처리하도록 할 수 있다. Diameter 서버는 이에 대해 Diameter Multimedia-Auth-Answer(MAA)메시지로 응답하는데, 이때 메시지 내부에는 DIAMETER_MULTI_ROUND_AUTH으로 값이 설정된, Result-Code AVP가 포함된다. Diameter 서버는 nonce를 생성하고 challenge를 MAA 메시지에 포함시킨다. SIP 서버 2는 이 challenge를 SIP 401(Unauthorized) 응답내의 WWW-Authenticate header에 추가한다. 이 SIP 401 응답은 SIP 서버 1로 들어가고, 그리고 SIP UAC에 전달된다.(~8번)


SIP 서버 1은 이전에 수신했던 REGISTER 요청에 이어, 사용자 credential을 포함하는 SIP REGISTER 요청을 받는다. 알아두어야 할 것은, IP 서버 1은 상태를 저장할 필요가 없으며, 또한, SIP 요청이 이전과 동일하게 SIP 서버 1에 도달할 필요가 없다는 것이다. (이전에 언급했던 여러개의 동일한 SIP 서버 시나리오를 생각해 보자) SIP 서버 1내의 Diameter 클라이언트는 Diameter UAR메시지를 보내어 DIameter 서버에 접속하고, 이를 통해 해당 사용자에게 할당된 SIP 서버를 알게된다. Diameter 서버는 SIP 서버 2의 SIP/SIPS URI을 포함한 Diameter UAA 메시지를 전송한다.(~11번)


UAA 메시지를 받은 SIP 서버 1은 SIP REGISTER 요청을 SIP 서버 2에게 보낸다. SIP 서버 2는 SIP REGISTER 요청 내에 있는  credential을 뽑아내고, 이 정보를 가지고  Diameter 서버에 Diameter MAR 메시지를 전송한다. 이 시점에서, Diameter 서버는 사용자를 authenticate할 수 있으며, 또한 성공하는 경우, AVP Result-Code의 값이 DIAMETER_SUCCESS로 설정된, Diameter MAA 메시지를 반환한다. 그러면 SIP 서버 2는 SIP 200(OK) 응답을 생성하고 이는 SIP 서버 1에 포워딩 되어 결국 SIP UAC에 도달하게 된다.


만약 SIP 서버 2 내의 Diameter 클라이언트가 사용자 프로필 정보를 다운로드 하고싶다면, 혹은 Diameter 서버 내의 SIP 서버 주소를 저장해야 한다면, Diameter 클라이언트는 Diameter SAR 메시지를 Diameter 서버에 보낸다. 이에 대해 Diameter 서버는 요청된 사용자 프로파일 정보나 SIP 서버 정보를 담은 Diameter SAA 메시지로 SAR 메시지에 응답한다. 



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

2001년 2월에 출간된 전자통신동향분석 제16권 제1호의 'DIAMETER 프로토콜' 문서를 참고하면서 보면 더욱 이해가 쉬울것이다.

댓글

Holic Spirit :: Tistory Edition

design by tokiidesu. powerd by kakao.