http://mnet.skku.ac.kr/data/2007data/JCCI2007/papers/pdf/III-D-1.pdf 요 약 Session Initiation Protocol (SIP) 은 두 개의 엔드 포인트 간의 통신 세션을 시작하는 데 필요한 확장 가능하고 가벼운 요청/응답 프로토콜로서 VoIP 와 같은 서비스에 많이 이용되고 있다. 그 러나 사설 망 환경에서 SIP 을 지원하기 위한 NAT (Network Address Translator) 통과 문제는 끊 임없는 논쟁이 되어왔으며 이는 NAT 의 형태에 의존하였다. 이에 본 논문은 특히 Symmetric NAT 환경에서 SIP 의 NAT 통과 문제를 해결하기 위한 홈 SIP 프록시와 UDP Relay 모듈을 제 안하고 구현하였다. 이를 위해 우리는 OSGi 기반 홈게이트웨이 위에 SIP 라이브러리 번들을 정의하고 구현하였으며 SIP 서버모듈과 UDP relay 모듈을 OSGi 번들 형태로 구현하였다. 본 논 문에서 제안한 방법은 NAT 의 형태에 관계없이 RTP 미디어 스트림을 전송하도록 할 뿐만 아 니라 SIP 사용자 에이전트에게 어떤 추가적인 설정도 요구하지 않는다. 1. 서론 향후 네트워크는 급속한 인터넷과 정보가전의 발달, 그리고 고객의 편리에 대한 욕구로 인해 홈 네트워크 환경으로 진화할 것이다. 이러한 홈 네트워크 환경에서는 댁내 단말기에 모두 공인 IP(Internet Protocol)를 부여하기보다는 각 가정 별로 NAT 를 이용한 사설 망이 구축될 것으로 전망된다. 한편 현재 인터넷은 웹 중심의 데이터 트래픽 위주에서 점차 원격 회의, VoIP(voice over IP) 등과 같은 실시간 트래픽을 필요로 하는 서비스로 진화하고 있다. 따라서 향후 네트워크는 서비스에 따라 데이터의 정확한 전송보다는 도달 시간이 더 중요한 UDP(User Datagram Protocol)를 기반으로 하는 서비스도 제공할 수 있어야 한다. 현재 이러한 실시간 전송 서비스를 위한 호 설정 프로토콜로는 가장 많이 쓰이는 ITU-T 에서 제시한 H.323 과 IETF(Internet Engineering Task Force)의 SIP 등이 있다. 현재 대다수의 장비 업체들과 서비스 업체들이 H.323 프로토콜을 지원하고 있으나 많은 기능과 확장성을 가진 IETF 의 SIP 프로토콜이 향후 보편화될 것으로 전망된다. 일반적으로 SIP 는 IETF RFC3261 문서에 표준이 정의되어 있으며 영상, 음성 등의 멀티미디어 통신을 위한 세션이나 호를 설정, 수정, 종료하기 위한 애플리케이션 계층의 제어 프로토콜이다.[1] SIP 는 클라이언트- 서버 기반 프로토콜로서 호 시도자가 상대편을 세션에 참석시키기 위하여 호출하는 형태로 전개되는 프로토콜이다. 또한 멀티미디어 서비스 통신을 위하여 세션에 표현되어야 할 세션 정보들은 SDP(Session Description Protocol)를 이용하여 기술한다. 하지만, NAT 를 이용하여 사설 망을 갖는 홈 네트워크 환경에서는 이러한 SIP 서비스의 제공에 제약이 있다. 즉, 사설 망에 위치한 UAC(User Agent Client)와 UAS(User Agent Server)간의 SIP 를 이용한 RTP 미디어 스트림(stream)의 통신에는 NAT 의 유형에 따라 처리 여부가 달라지는데, Full Cone NAT 라면 공인망에 존재시킨 STUN(Simple Traversal of UDP through NAT)를 구성하면 처리가 가능하고 Symmetric NAT 라면 STUN 을 존재시켜도 불가능하다. 만약 홈 네트워크의 NAT 가 Symmetric NAT 라면 공인 망에 TURN(Traversal Using Relay NAT)서버를 구성하여 RTP 처리가 가능하도록 할 수 있다. 하지만 이때 TURN 은 많은 수의 클라이언트로부터의 미디어 릴레이 요청으로 인한 대역폭 낭비와 지연 등의 문제를 갖게 된다. 이러한 문제를 해결하기 위해 우리는 홈 SIP 프록시와 UDP Relay 번들을 설계하고 구현하였다. 이 번들들은 홈 게이트웨이의 OSGi 프레임워크 위에 탑재되어 상호 작용함으로써 향후 가장 보편화 될 것으로 보이는 symmetric NAT 환경에서도 성공적으로 실시간 미디어 스트림을 주고 받을 수 있도록 도와준다. 2. SIP 의 NAT 통과 문제 NAT 는 사설 IP 주소와 공인 IP 주소를 변환 해주 는 장치로서 사설망에 존재하는 다수의 단말이 하 나의 공인 IP 를 공유함으로써 공인 IP 주소를 절약 할 수 있도록 해준다. 이러한 NAT 는 크게 full cone NAT, restricted cone NAT, port restricted cone NAT, symmetric NAT 로 분류되는데, SIP 세션의 관점에서 볼 때 호 설정을 위한 시그널링과 그 후의 미디어 전송이 모두 NAT 를 통과할 수 있는지 여부는 NAT 의 형태에 따라 달라진다.[2] 지금까지 이러한 SIP 의 NAT 통과 문제를 해결하기 위한 몇 가지 방법들이 존재한다.[2] 이 장에서 우리는 이 문제를 해결하기 위한 기존의 주요 방법을 소개하고 그 방 법 중의 하나를 OSGi 기반으로 구현했음을 다음 장에서 보일 것이다. 2.1. UpnP UPnP 는 Microsoft 사에 의해 제창되어 가정내의 PC 나 주변기기, AV 기기 등을 네트워크를 통해서 접속해, 복잡한 조작이나 설정 작업을 수반하는 일 없이 기능하는 것을 목표로 하고 있다. UPnP 는 클 라이언트 응용프로그램으로 하여금 NAT 와 방화벽 같은 네트워크 구성성분을 찾아서 자동으로 구성하 도록 허락한다. 이를 위해서는 각각의 장치가 UPnP 소프트웨어를 탑재하고 있어야 한다. 많은 소규모 NAT 판매업체들이 SIP 응용을 위해 UPnP 기능을 지원하는데 헌신하고 있지만 아직 유용한 UPnP 클 라이언트는 거의 없는 실정이다. UPnP 는 클라이언 트 프로그램의 동적인 제어 하에 외부 공인망으로 연결하기 위해 NAT 의 opening pinhole 에만 의존하 고 있기 때문에 보안에 취약한 단점이 있다. 따라 서 이 방법은 소규모 응용으로 그 범위가 제한될 것으로 보인다. 2.2. STUN (Simple Traversal of UDP through NAT) STUN 은 STUN 서버라 불리는 NAT probe 를 사용 한 방법이다. 세션을 확립하기 위해, STUN 기능을 탑재한 클라이언트는 외부의 STUN 서버에게 미디 어 스트림을 수신 할 포트를 결정하기 위해 query 메시지를 보낸다. STUN 서버는 이 메시지를 읽고 메시지를 보낼 때 어느 공인 IP 주소와 포트가 NAT 에 의해 사용되었는지를 클라이언트에게 알려줄 뿐 만 아니라 NAT 의 형태도 알려준다. 이렇게 STUN 서버에 의해 제공받은 공인 IP 주소와 포트는 호 설 정단계에서 사용된다. 그러나 STUN 서버는 시그널 링과 실제 미디어 스트림의 전송 경로에 존재하지 못한다. 따라서 이 방법은 출발지 주소와 포트뿐만 아니라 목적지 주소와 포트에 따라 주소 매핑을 형 성하는 symmetric NAT 환경에서는 동작하지 못한다. 다시 말해 목적지 SIP 클라이언트의 주소는 STUN 서버의 주소와는 다르기 때문에 NAT 는 SIP 클라 이언트를 위해 새로운 매핑을 형성할 것이고 이것 은 다시 호 설정 단계에 포함된 정보는 의미가 없 어지게 된다는 것을 의미한다. 따라서 호 확립 시 도는 실패가 된다. 이 방법의 단점은 SIP 클라이언 트에게 STUN 기능을 지원할 수 있도록 추가적인 기능을 요구한다는 점이다. 뿐만 아니라 이 방식이 동작하는 NAT 는 포트 스캔 공격에 취약하여 보안 에 대한 염려를 야기한다.[3] 2.3. TURN (Traversal Using Relay NAT) TURN 은 symmetric NAT 환경에서 미디어 통과 무 제를 해결하기 위해 IETF 에 의해 제안되었다.[4] STUN 방식과 달리 TURN 은 TURN 서버라 불리는 NAT probe 를 시그널링과 미디어 스트림의 전송 경 로 상에 배치한다. TURN 기능을 갖춘 SIP 클라이언 트는 공인 망에 위치한 TURN 서버에게 query 메시 지를 보낸다. 그러면 TURN 서버는 그 메시지를 위 해 NAT 에 의해 사용된 공인 IP 주소와 포트 정보 를 가지고 SIP 클라이언트에게 응답한다. 이 정보는 호 설정 및 실제 미디어 스트림의 전송에 유용하다. 왜냐하면 TURN 서버가 시그널링과 미디어 전송 경 로상에 같이 위치해 있기 대문이다. 그러나 이 방 법은 SIP 클라이언트의 수가 많아지면 TURN 서버 가 많은 부하를 받게 되고 SIP 클라이언트에 의한 미디어 중개 요청으로 인해 전송 지연을 야기할 수 있는 단점이 있다. 2.4. Media Relay 이 방법은 미디어 패킷을 중개한다는 관점에서 TURN 과 유사한 방법이다. 그러나 TURN 과는 달리, media relay 는 SIP 메시지에 대한 접근을 가진다. 전 형적으로 SIP 세션 경로에는 NAT proxy 라 불리는 서버가 존재하는데, 이는 NAT 통과를 위해 SDP 메 시지를 수정한다. 뿐만 아니라 그것은 SDP 메시지 를 변경함으로써 두 개의 SIP 클라이언트간에 직접 미디어 스트림을 전송하는 대신에 특정 포트를 통 해 NAT 프록시에 미디어 패킷을 보내도록 지시한 |