NAT-f SIP NAT 1 1, 2 1 IP SIP NAT NAT NAT NAT-f NAT-free protocol NAT-f SIP Session Initiation Protocol NAT-f SIP NAT Researches on NAT traversal for SIP utilizing NAT-f Kenkichi Miura, 1 Hidekazu Suzuki 1, 2 and Akira Watanabe 1 The demand of ubiquitous network that can be accessed from henever and anywhere is spreading. In the ubiquitous network, a communication of the individual becomes important. Therefore, SIP used by the Internet protocol telephone and information appliances is paid to attention. In general, a communication cannot start from a node on the Internet side to a node in the home network because the home network is constructed with private addresses. This problem called the NAT traversal problem. We have proposed NAT-f protocol that modifies the NAT router and the external node to solves the problem. However, NAT-f cannot handle SIP(Session Initiation Protocol). In this paper, We propose the NAT traversal for SIP utilizing NAT-f. 1 Graduate School of Science and Technology, Meijo University 2 PD Research Fellow of the Japan Society for the Promotion of Science 1. IPv4 IP NAT Network Address Translator 1) NAT NAT WWW NAT IPv4 NAT NAT NAT NAT-f NAT-free protocol 2) NAT-f IP SIP Session Initiation Protocol 3) SIP Proxy NAT-f SIP Proxy NAT SIP NAT 2 SIP SIP NAT 3 SIP NAT 4 NAT-f 5 6 2. SIP 2 UA User Agent 2 SIP Proxy 2.1 1 SIP Proxy UA2 SIP Proxy 2 REGISTER URI Uniform Resource Identifier URI2
UA1 SIP Proxy 1 SIP Proxy 2 UA2 UA1 SIP Proxy 1 SIP Proxy 2 UA2 URI: URI1, IP: G1 1 DB URI2:=(G2,d1) SIP Server URI2, G2:d1 URI: URI2, IP: G2 REGISTER: URI2, G2:d1 200 OK SIP G2:d1 SIP Proxy 2 URI DB Data Base UA2 200 OK 2.2 2.2.1 SIP 2 SIP UA1 INVITE UA2 INVITE UA2 UA1 G1:s2 SIP Proxy 1 SIP Proxy 2 SIP Proxy 2 URI2 INVITE UA2 INVITE UA2 200 OK 200 OK UA2 G2:d2 2 SIP Proxy UA1 UA1 ACK UA2 BYE 200 OK 2.3 SIP NAT NAT SIP 2 1 NAT NAT 1 SIP IP IP NAT IP IP IP 2.3.1 UA NAT UA IP URI: URI1, IP: G1 INVITE: URI2,G1:s2 200 OK: G2:d2 dst: G2:d2 INVITE: URI2,G1:s2 URI2 G2:d1 200 OK: G2:d2 Media Session SIP Server INVITE: URI2,G1:s2 dst: G2:d1 200 OK: G2:d2 ACK ACK ACK BYE DB URI2:=(G2,d1) BYE 200 OK 200 OK 200 OK 2 SIP URI: URI2, IP: G2 dst: G1:s2 BYE UA REGISTER SIP Proxy SIP Proxy UA URI IP SIP Proxy UA 200 OK IP RFC3581 4) REGISTER IP RFC3581 NAT UA SIP NAT 2.3.2 INVITE SIP Proxy UA UA INVITE SIP Proxy UA INVITE UA IP IP 2.3.3 UA 200 OK
IP IP SIP NAT 3. SIP NAT 3 3.1 SIP NAT IP UPnP STUN 3.1.1 UPnP UPnP Universal Plug and Play 5) NAT NAT UA SIP UA NAT UPnP UA NAT IP UA IP SIP UPnP SIP UPnP NAT UA NAT UPnP 3.1.2 STUN STUN Simple Traversal of UDP through Network Address Translators 6) NAT NAT UA 3 STUN SIP UA SIP STUN Binding Request NAT NAT STUN STUN IP Binding Response UA IP SIP STUN Symmetric NAT UDP 3.2 NAT SIP IP SIP ALG B2B UA 3.2.1 SIP ALG SIP ALG Application Level Gateway 7) NAT NAT SIP NAT IP NAT NAT SIP 3.2.2 B2B UA B2BUA Back to Back User Agent 7) NAT B2B UA NAT UA UA SIP SIP UA NAT 3.3 NAT 3.3.1 TURN TURN Traversal Using Relay NAT NAT UA 3 TURN UA TURN Allocate Request TURN Allocate Response UA UA TURN UA TURN IP SIP TURN TURN SIP TURN SIP UA
RR *.home IN A G2 ACT alice:=(p1, allow) IP: G1 EN IN(alice) DDNS Server EN Domain: example.net IP: G1 3 NAT Router IP: G2 NAT-f IN alice IP: P1 名前解決 NAT-f ネゴシエーション アドレス変換処理 Application Kernel alice.home.example.net V1 G1:s V1:d G1:s V1:d G2 DDNS Server G1:s,alice:d1 G2:m G1:s G2:m G1:s G2:m NAT Router IP: G2 IP: P1 G1:s P1:d G 1:s P1:d TURN NAT NAT TURN TURN 4. NAT-f NAT-f EN External Node NAT NAT NAT-f 4.1 3 EN External Node NAT NAT-f IN Internal Node DDNS Dynamic DNS 8) DDNS IN NAT IP IN IP NAT ACT Access Controll Table alice := (P 1, allow) 4.2 4 NAT-f NAT-f 3 NRT V1:=(alice,G2) ACT alice:=(p1, allow) VAT G1:s {V1:d G2:m} NAT Table G1:s {G2:m P1:d} 4 NAT-f 4.2.1 DNS EN IN DDNS DDNS NAT IP G2 EN IP NAT IP V1 NAT IP IP IN NRT(Name Relation Table) V 1 := (alice, G2) EN IP V1 4.2.2 NAT-f EN IP V1 TCP/UDP NAT NAT-f NAT-f NAT ACT EN IN NAT G1 : s {G2 : m P 1 : d} IP G1:s G2:m G2:m P1:d NAT IP G2 m EN EN
EN SIP Proxy 1 SIP Proxy 2 NAT Router IN IP: G2 NAT-f NAT-f IP: G1 DB SIP Server IP: G3 URI: URI1, IP: P1 P1 V1 URI1, V1:d1 REGISTER: URI1, P1:d1 REGISTER: URI1, P1:d1 URI1,V1:d1 NRT V1 := (P1,G3) 200 OK 200 OK 5 VAT Virtual Address Translation G1 : s {V 1 : d G2 : m} 4.2.3 EN VAT IP V1 G2 m NAT IP NAT IN NAT End-to-End 5. NAT-f 5.1 NAT-f 4 NAT-f NAT IN IN IP NAT 5.2 EN IN SIP SIP Proxy 2 NAT NAT-f 5.2.1 5 EN SIP Proxy 2 REGISTER EN IP: G1 dst: G3:m2 INVITE: Call-ID1,URI1,G1:s2 200 OK: Call-ID1,G3:m ACK SIP Proxy 1 SIP Proxy 2 IP: G2 DB URI1,V1:d1 INVITE: Call-ID1,URI1,G1:s2 200 OK: Call-ID1,G3:m URI1 V1:d1 SIP Server NRT V1 := (P1,G3) Cache Call-ID1,G1:s2 Media Session G2:s1,P1:d1 G3:m1 INVITE: Call-ID1,URI1,G1:s2 dst: G3:m1 P1:d2 G3:m2 200 OK: Call-ID1,P1:d2 G1:s2,P1:d2 G3:m2 NAT Router NAT-f IP: G3 G2:s1 { G3:m1 P1:d1 } INVITE: Call-ID1,URI1,G1:s2 dst: P1:d:1 G1:s2 { G3:m2 P1:d2 } ACK ACK ACK dst: G3:m1 dst: P1:d:1 6 NAT-f src: G3:m2 dst: P1:d2 200 OK: Call-ID1,P1:d2 IN URI: URI 1, IP: P1 URI SIP P1:d1 SIP Proxy 2 REGISTER IP P1 V1 DB SIP Proxy 2 V1 P1 G3 NRT 200 OK IN 5.2.2 src: P1:d2 6 EN SIP Proxy 2 EN INVITE DB INVITE V1:d1 IP V1 SIP Proxy 2 NAT NAT-f SIP Proxy 2 INVITE G2:s1 d1 NRT IN P1 NAT NAT SIP Proxy 2 IN SIP NAT G3:m1 SIP Proxy 2 INVITE SIP Proxy 2 Call-ID EN G1:s2 SIP Proxy 2 INVITE 200 OK Call-ID1 NAT NAT-f SIP Proxy 2 EN G1:s2 IN
P1:d2 EN IN NAT SIP Proxy 2 NAT EN IN NAT SIP Proxy 2 200 OK P1:d2 G3:m2 200 OK EN ACK Name System (DNS UPDATE), RFC 2136, IETF (1997). 6. NAT-f SIP NAT SIP Proxy NAT IN INVITE SIP Proxy NAT NAT-f SIP Proxy IN NAT SIP Proxy EN IN NAT NAT-f EN IN NAT 1) P.Srisuresh and K.Egevang: Traditional IP Network Address Translator (Traditional NAT), RFC 3022, IETF (2001). 2) NAT NAT-f Vol.48, No.12, pp.3949 3961 (2007). 3) J.Rosenberg, H.Schulzrinne, G.Camarillo, A.Johnston, J.Peterson, R.Sparks, M.Handley and E.Schooler: SIP: Session Initiation Protocol, RFC 3261, IETF (2002). 4) J.Rosenberg and H.Schulzrinne: An Extension to the Session Initiation Protocol (SIP) for Symmetric Response Routing, RFC 3581, IETF (2003). 5) Forum, U.: Internet Gateway Device (IGD) Standardized Device Control Protocol V 1.0 (2001). http://www.upnp.org/. 6) J.Rosenberg, J.Weinberger, C.Huitema and R.Mahy: STUN - Simple Traversal of User Datagram Protocol (UDP) Through Network Address Translators (NATs), RFC 3489, IETF (2003). 7) A.Johnston, S.Donovan, R.Sparks, C.Cunningham and K.Summers: Session Initiation Protocol (SIP) Basic Call Flow Examples, RFC 3665, IETF (2003). 8) P.Vixie, S.Thomson, Y.Rekhter and J.Bound: Dynamic Updates in the Domain