IMS의 P-CSCF를이용한 NAT Traversal 해결방안 (Solution of NAT Traversal Using P-CSCF in the IMS) 김정호, 조재형, 이재오한국기술교육대학교전기전자공학과 { jungho32, tlsdl2, jolee }@kut.ac.kr 요 약 제한된 IPv4 를효율적으로사용하기위한여러가지방법들이존재한다. 그방법중의하나가 Network Address Translator (NAT) 장비를이용한사설망구축이다. 하지만 NAT 의 Filtering 특성때문에 NAT Traversal 문제가발생한다. Simple Traversal of UDP through NAT (STUN) 이나 Traversal Using Relay NAT (TURN), Interactive Connectivity Establishment(ICE) 같은기존의해결책들이존재하지만, 대부분의해결책들은부가적인장비를요구하기때문에구축하는데어려움이있다. 따라서기존 IP Multimedia Subsystem (IMS) 의 P-CSCF 를이용해패킷을변형해레지스트레이션과정에서사용했던 NAT 장비의 Pinhole 을재사용함으로써부가적인장비없이 NAT Traversal 문제를해결하는방안을연구및제안한다. 1. 서론 네트워크사용자가늘어나고 IP 기반의장비들이증가함에따라 IP 부족현상이발생하고있다. 이를극복하기위한방법중대표적인것이 NAT 장비를이용한사설망구축이다. 사설망을구축하고 NAT 장비를통해공인망과연결함으로써, 다수의사용자는하나의공인 IP 주소로네트워크에접속이가능해진다. All-IP 기반의 IMS 망에서의모든네트워크장비들은 IP 기반이다. 따라서 IMS 망에서 IP 부족문제는더욱더심각해지고 NAT 장비의사용은불가피하다. IMS 란 IP Multimedia 서비스제공을위한기반구조로서국제표준화에대한시도를추진해왔다는점이꾸준히관심을받게되었으며, Session Initiation Protocol (SIP) 프로토콜기반의세션제어를핵심기술로개발하였다. IMS 가추구하는기본적인서비스목표는 IP 프로토콜을기반으로하여음성, 오디오, 비디오및데이터등의멀티미디어를복합적으로제공하는것이며, 신속한서비스개발및변경이용이하다는장점을구현하고자하고있다. 또한범용의인터넷기반기술을사용함으로써서비스의가격경쟁력향상을꾀하는동시에, 효율적인세션관리기능을기반으로다양한 3 rd Party 어플리케이션과손쉽게연동을가능하게한다. [1] 그러나 NAT 장비를이용한사설네트워크환경에서 SIP 를이용한 Real-time Transport Protocol(RTP) 전송을하게되면 NAT Traversal 문제가발생하게된다. Session Description Protocol (SDP) 부분의사용자 IP 주소부분과 NAT 장비를통과한패킷의 Source IP 부분의차이로인해 NAT Traversal 문제가발생하는것이다. [2] 이문제점을해결하기위한다양한방법이있다. 대표적인해결책으로는 STUN, TURN 서버를이용하거나 SBC 장비를사용함으로써해결할수있다. 그리고현재의 IMS 에서는 Interconnection Border Control Function(IBCF) 와 Interconnection Border Gateway Function(IBGF) 라는미디어릴레이서버를통하여 NAT Traversal 문제를해결하고있다. 본논문에서는기존의 IMS 망에서사용되는 P-CSCF 를이용해추가적인서버구축없이 NAT 13
Traversal 문제를해결할수있는방법을제안한다. 본논문의 2 장에서는 IMS 와 NAT 장비에대한기본이론과몇가지해결책들을알아보고, 3 장에서 NAT Traversal 해결을위한 P-CSCF 의알고리즘과문제해결시나리오를제안하고, 4 장에서결론을맺을것이다. 2. 관련연구 2.1 NAT NAT 장비는사설주소를자신의공인 IP 주소로변경해주는장치로써, 사설망에존재하는다수의단말기들을하나의 NAT 공인 IP 주소로인터넷망에접속하고사용할수있도록해준다. 하지만 NAT 내부사설망에서외부공인망으로패킷이나갈때 NAT 장비는패킷의 Source IP/Port 와 Destination IP/Port 정보를조합한 Mapping table 을생성하게되고, Mapping table 에따라 NAT 내부로통과시켜주는 Pinhole 을생성하기때문에 NAT 장비에알맞은 Mapping table 이없는패킷은통과하지못한다. NAT 장비는 Mapping Rule 에따라크게 Cone NAT 와 Symmetric NAT 로나눠진다. 그리고 Cone NAT 는 Full Cone, Restricted Cone, Port Restricted Cone 으로나눠진다. [3] 2.1. 1 Cone NAT Cone NAT 의경우내부망의 IP: Port 에대해 Destination 에관계없이공유기의외부 IP:Port Pinhole 이변하지않는다. 그림 1. Cone NAT 의 Pinhole 그림 1 은 Cone NAT 가내부망의사용자가같으면하나의 Pinhole 을사용해여러사용자들과통신하는예이다. Full Cone 같은내부 IP/Port 에서온패킷은모두하나의외부 IP/Port 를이용해보낸다. 외부에서 NAT 장비가할당한외부 IP/Port 로패킷이오면맵핑된내부장비에게릴레이한다. Restricted Cone Full Cone 과동일하게동작하지만, 내부에서외부로보낸적이있는 IP 에서온패킷만릴레이한다. 즉, 내부장비가주소 A 로패킷을보낸적이있어야만 A 주소에서내부장비로보내는패킷의통과가가능하다. Port Restricted Cone Restricted 방식에서 Port 제한이추가된방식이다. 내부장비에서해당 IP/Port 로패킷을보낸 14
적이없으면, 그곳에서온메시지를릴레이하지않는다. 2.1.2 Symmetric NAT Symmetric NAT 의경우 Destination 에따라다른공유기의외부 IP:Port Pinhole 을가진다. 그림 2. Symmetric NAT 의 Pinhole 그림 2 는 Symmetric NAT 가사용자수에따라각각의 Pinhole 을생성하는그림이다. Symmetric NAT 는내부 IP 주소와 Port 로부터특정목적 IP 와 Port 로의각요청이유일한외부소스 IP 주소와 Port 로 Mapping 되는것으로같은주소와포트를가진내부호스트가다른목적지로패킷을보내더라도다른 Pinhole 을사용한다. 때문에내부호스트로부터패킷을수신한외부호스트만이내부로패킷을전송할수있다. 2.2 IMS 그림 3. IMS 기본망구조 IMS 는유무선망에서기본적으로음성이나영상통화등의멀티미디어서비스를제공할수있도록구축되어있다. 그림 3 의 IMS 플랫폼의구조는 IMS 망에서는호처리를하는다수의 Call 15
Session Control Function(CSCF) 가존재한다. 이는 SIP 기반의멀티미디어세션제어를위한기본기능을수행하는인프라시스템으로서, 역할에따라 Proxy-CSCF(P-CSCF), Interrogating-CSCF(I-CSCF), Serving-CSCF(S-CSCF) 로분류된다. 특히 P-CSCF 의경우사용자가 IMS 망에접속할때가장먼저만나는지점이다. 사용자는자신의 P-CSCF 의주소를알고있다. P-CSCF 는포워딩기능뿐만아니라 IMS-ALG 기능을통해 NAT 내의단말에대한통신지원도가능하다. I-CSCF 는다른망으로부터들어오는모든호에대해서접점역할및망내에로밍한타망가입자와의접점역할을수행한다. 이러한역할로인해 I-CSCF 는방화벽역할도가능해진다. S-CSCF 는모든세션에대한관리뿐만아니라, Home Subscriber Server(HSS) 와연동하여가입자의프로필을이용해호처리를해준다. Breakout Gateway Control Function (BGCF) 는 IMS 망에서 PSTN 을통해들어오는호에대해서연결해주는기능을한다. Media Gateway Control Function(MGCF) 는 Media Gateway(MGW) 의미디어채널을위한연결제어에관한호를제어한다. 2.3 다양한해결책 현재 NAT Traversal 문제를해결하기위한여러가지방법들이존재한다. 본절에서는 STUN, TURN 그리고 Media Relay 방식을살펴보겠다. [4][5][6] STUN STUN 은 STUN 서버라불리는 NAT probe 를사용한방법이다. 세션을확립하기위해사설망내의사용자는 STUN 서버에게 query 메시지를보내면 STUN 서버는 NAT 의공인 IP 주소와 NAT 형태정보를사용자에게알려준다. 이렇게 STUN 서버에의해제공받은공인 IP 주소와포트는세션성립단계에서사용된다. 그러나 STUN 서버는시그널링과실제미디어스트림의전송경로에존재하지못한다. 따라서이방법은 Symmetric NAT 환경에서는동작하지못한다. TURN TURN 은 STUN 과마찬가지로 TURN 서버라는 NAT probe 를사용하는방법이다. TURN 서버는 STUN 서버의기능을수행하면서직접시그널링과미디어스트림전송경로상에놓여진다. 다시말해해당사설망으로전해지는모든메시지는 TURN 서버를경유해서가게된다. 그러므로모든메시지의 Source IP 는 TURN 서버의 IP 가되고미리생성되어있던 Symmetric NAT 의 Pinhole 을통과할수있게된다. 하지만사용자가조금만많아져도 TURN 서버에무리한트래픽이집중되어 delay 가생기는단점이있다. Media Relay 이방법은미디어패킷을중계한다는관점에서 TURN 과유사한방법이다. 그러나 TURN 과는달리, Media Relay 방법은 SIP 메시지에대한접근을가진다. 전형적으로 SIP 세션경로에는 NAT proxy 라불리는서버가존재하는데, 이는 NAT 통과를위해 SDP(Session Description Protocol) 메시지를수정한다. 뿐만아니라그것은 SDP 메시지를변경함으로써두개의 SIP 사용자간에직접미디어스트림을전송하는대신에특정포트를통해 NAT proxy 에미디어패킷을보내도록지시한다. Media Relay 방법은세션에대한내부매핑을가지고있다가내부의사설 IP 주소와포트를목적지의 IP 주소와포트로변경하여전송함으로써 NAT 통과문제를해결한다. 16
IMS 에서의해결책 그림 4. IBCF 를이용한해결방법 현재의 IMS 는그림 4 와같이 IBCF 와 IBGF 를통해 NAT Traversal 문제를해결하고있다. IBCF 는 IMS 망간연동시망과망사이의 Border Controller 역할을수행하고, 다양한네트워크와연동시보안및연동관련이슈를처리하는시스템이다. IBCF 는세션설립과정에서 SDP Offer 가발생하면 SDP Answer 을기다렸다가 SDP Answer 가도착하면 SDP 의 IP 정보를확인해 IBGF 에게 SDP 의 IP 정보를알려준다. SDP 의 IP 정보를받은 IBGF 는 IP 정보를이용해미디어릴레이서버역할을한다. 즉세션과정에서 SDP 의정보를이용하여 NAT Traversal 문제를해결한다. 3. P-CSCF 를이용한 NAT Traversal 그림 5. NAT Traversal 발생시나리오 17
그림 5 는미디어전송에있어서 NAT Traversal 문제가생기는시나리오이다. 사용자 1 은세션과정을거쳐 RTP 전송을위한미디어세션을설립하게된다. 하지만 RTP 는 SDP 의 IP 정보를기반으로세션을열기때문에 NAT 사설망내의사용자를찾을수없게된다. 본논문에서이러한문제를 IMS 망속의 P-CSCF 를이용해해결방법을찾을것이다. P-CSCF 는 IMS 망에서사용자가가장먼저만나는부분이다. 즉, 사용자에게들어오거나나가는메시지는자신이속해있는 P-CSCF 를꼭거쳐야한다. P-CSCF 는 4 계층이상의상위계층의기능을수행할수있기때문에 SIP 와 SDP 의내용을보고수정할수있다. P-CSCF 에서 IP 헤더의 Source IP 와 SDP 정보의 IP 를바꿔주는기능을추가할수있다면부가적인서버설치없이기존의 Pinhole 을재사용해 NAT Traversal 문제를해결할수있다. [7][8] 3.1 문제해결을위한 P-CSCF 의동작 본논문에서는 NAT Traversal 문제를해결하기위해 P-CSCF 가자신을거치는패킷을규칙에따라조작함으로써 NAT Traversal 문제를해결한다. 그림 6. Out going 패킷에대한 P-CSCF 알고리즘 그림 7. Incoming 패킷에대한 P-CSCF 알고리즘 그림 6 은 P-CSCF 의 Outgoing Packet 일때사용되는알고리즘이다. SIP 에서 Media plane 에관한설정은 SDP 부분에정의된다. 따라서 P-CSCF 는내부에서메시지가도착하면먼저 SDP 유무를체크한다. SDP 없다면원래대로포워딩한다. 만약 SDP 가있다면 SDP 의 IP 정보와패킷의 Source IP 를비교한다. 비교한결과가같다면 NAT 장비가없는것이기때문에 nat = No 로설정하고, 다르다면 NAT 장비가있는것이기때문에 nat = Yes 로설정해주고포워딩한다. NAT 장비의유무에따라 P-CSCF 의처리방법이달라지기때문에 nat 파라미터를설정해줌으로써 SIP 메시지가상대편의 P-CSCF 에도착했을때 NAT 장비의유무판단을쉽게할수있다. 그림 7 은 P-CSCF 에서 Incoming Packet 일경우사용되는알고리즘이다. 외부로부터 P-CSCF 에패킷이도착하면 nat 파라미터의유무를체크한다. 만약 nat 파라미터가없다면 SDP 부분이없 18
다고판단하여 Source IP 를자신의 P-CSCF IP 주소로바꿔줌으로써레지스트레이션과정에서사용된 Pinhole 을통해사용자가메시지를받을수있게해준다. nat = Yes 의경우 SDP 의 IP 부분을 Source IP 로바꿔준다. 이렇게하면미디어가흐를때세션과정에서생성된 NAT 의 Pinhole 를이용하여미디어를통과시킬수있다. 만약 nat = No 이면 Source IP 를자신의주소, 즉 P-CSCF 의 IP 주소로바꿔서레지스트레이션과정에서생성된 Pinhole 을통해사용자에게포워딩한다. 3.2 문제해결시나리오 그림 8 의시나리오사용자는 NAT 사설망안의사용자이고, 자신의 P-CSCF 주소를알고, 레지스터메시지를자신의 P-CSCF 에게보낸다. 그리고사용자는 INVITE 메시지를통해외부의다른사용자와미디어전송을위한세션을만들고미디어전송을한다. 이때사용자로부터나가는메시지에대한처리방법은그림 6 에서나타내고있고, 응답메시지같이외부에서사용자로들어오는메시지처리방법은그림 7 에서나타낸다 그림 8. P-CSCF 를이용한 NAT Traversal 문제해결시나리오 그림 8 의사용자는레지스트레이션과정후미디어스트림전송을원한다. (1)REGISTER 메시지가 NAT 에도착하면 NAT 는사용자와 P-CSCF 사이의 Pinhole1 을생성한다. Pinhole1 은사용자 1 과 P- CSCF 사이를연결해주는 Pihhole 이기때문에, 이후 P-CSCF 의 2Incoming Packet 과정을거친 SIP 메시지들을통과한다. NAT 장비는 Pinhole1 생성후 P-CSCF 로 (2)REGISTER 메시지를포워딩한다. P-CSCF 는그림 6 에서설명한 1 알고리즘을수행한다. REGISTER 메시지에는 SDP 부분이없으므로 IMS 망으로 (3)REGISTER 메시지를포워딩한다. IMS 망내의레지스트레이션과정을거쳐레지스트레이션되면 (4)200 OK 메시지가사용자의 P-CSCF 에도착한다. (4)200 OK 메시지를받은 P-CSCF 는그림 7 에서설명한 2 알고리즘에따라 (5)200 OK 메시지를가공해 NAT 장비로포워딩한다. 200OK 메시지의경우 SDP 가없기때문에 nat 파라미터가존재하지않는다. 따라서패킷의 Source IP 를 P-CSCF 의 IP 로바꿔줌으로써 Pinhole1 을통해 NAT 장비를통과가능하다. 19
레지스트레이션과정이끝난후사용자는미디어전송을위한 SDP 가포함된 (7)INVITE 메시지를사용자 2 에게보낸다. (7)INVITE 메시지의 Source IP 주소와 SDP 의 IP 정보는모두 A 로동일하다. 하지만사용자 1 의 NAT 장비를거치면서 Source IP 는 N 으로바뀌게된다. 즉 (8)INVITE 메시지의 SDP 의 IP 정보와 Source IP 가달라지게된다. 그리고 NAT 장비에는사용자 1 과사용자 2 를맵핑해놓은 Pinhole2 가생성된다. 이 Pinhole2 는사용자 1 과사용자 2 사이를연결시켜주는 Pinhole 이기때문에이후두사용자사이의미디어가전송될것이다. (8)INVITE 메시지를받은 P- CSCF 는그림 6 의 1 의처리과정을수행한다. 1 의과정을거친 (9)INVITE 메시지의 nat 파라미터는 Yes 로셋팅된다. 이렇게보내진 INVITE 메시지는사용자 2 의 P-CSCF 에도착하면그림 7 의 2 의처리과정을거치면서 SDP 의 IP 정보가사용자 2 의 P-CSCF IP 주소로바뀌게된다. 이렇게함으로써마지막 (19) Media plane 이사용자가아닌 NAT 장비로흐르게되고, NAT 장비에도착한미디어스트림은 Pinhole2 를통해사용자 1 에게전송된다. 이후 SDP 가없는 (10)Ringing 메시지나 (13)200 OK 메시지는사용자 1 의 P-CSCF 에도착하면 2 의처리과정을거쳐패킷의 Source IP 가 P-CSCF 의주소로변환되어 Pinhole1 을통해사용자에게도착하게된다. (16)ACK 메시지가 Pinhole2 를통해사용자 1 의 P-CSCF 에도착하면 1 과정을거쳐포워딩된다. 이렇게함으로써마지막 (19)Media plane 이 NAT 장비가있더라도우회문제없이전송이가능하다. 패킷의헤더를변경해주기때문에 NAT 의형태에상관없이전송가능하다. 세션을성립해주는 SIP 메시지들은사용자 1 과사용자 1 의 P-CSCF 를맵핑해놓은 Pinhole 1 을통과할것이고, 이후미디어는사용자 1 과사용자 2 를맵핑해놓은 Pinhole 2 를통과하는것이다. 4. 향후연구 본논문에서는 IMS 망에존재하는 P-CSCF 를이용하여, 다른부가적인장치없이 NAT Traversal 문제를해결하였다. 비록 P-CSCF 의기능이확장이필요하지만, NAT 장비를사용하는환경이불가피한현재의 IMS 구조에서는효율적으로사용될것이다. 하지만 SIP 의암호화문제나 P-CSCF 에발생되는오버헤드문제는피할수없는문제점이다. 이러한문제점들은향후구현을통해해결해나갈것이다. 5. 참고문헌 [1] Gonzalo Camarillo, Miguel A. Garcia-Martin, "The 3G IP Multimedia Subsystem (IMS)", pp. 29-33, 2006 [2] Rogelio Martinez Perea, "Internet Multimedia Communication Using SIP, pp 467-493, 2008 [3]Andreas M uller, Andreas Klenk and Georg Carle, "Behavior and Classification of NAT devices and implications for NAT Traversal", IEEE draft, 2008 [4] Ju-Hee Park, Choon-Gul Park, Seung-Hak Seok, Tae-Young Kim, Byung-Deok Chung, "Implementation of the OSGi-based Home SIP Proxy and UDP Relay for NAT Traversal", JCCI2007 [5] IETF TURN draft behave-turn-04: Obtaining Relay Addresses from Simple Traversal Underneath NAT (STUN) [6] J. Rosenberg, R. Mahy, C. Huitema, "Traversal Using Relay NAT (TURN)", IETF draft, October 2004. [7] Tzu-Chi Huang, "Smart Tunnel Union for NAT Traversal", NCA 2005 [8] IETF RFC 3261: SIP Session Initiation Protocol 20
2009.8 한국기술교육대학교정보기술공학부학사 2009.8-현재한국기술교육대학교전기전자공학부석사재학관심분야 : IMS, SIP, NAT, NAT Traversal 조재형 2006.8 한국기술교육대학교정보기술공학부학사 2008.8 한국기술교육대학교전기전자공학석사 2008.8-현재한국기술교육대학교전기전자공학부박사재학관심분야 : IMS, QoS 제어플랫폼, 개인화서비스, Cloud computing 이재오 1987 광운대학교전산학학사 1989 광운대학교전산학석사 1993 광운대학교전산학박사 1994-1995 코오롱정보통신연구소과장 1995-2000 한국통신선임연구원 1999-2002 웨어플러스, 연구소장 2002-현재한국기술교육대학교정보기술공학부부교수관심분야 : IMS, 시스템및네트워크관리, 객체지향분산처리기술, 네트워크 QoS 제어플랫폼, 개인화서비스 21