1 / 27

SIP 之 穿越 NAT

SIP 之 穿越 NAT. Agenda. SIP 穿越 NAT NAT 分类 问题之所在 各种解决方案. SIP 穿越 NAT – NAT 分类. Full Cone NAT ( 完全圆锥型 ) Address Restricted Cone NAT ( 地址限制圆锥型 ) Port Restricted Cone NAT ( 端口限制圆锥型 ) Symmetric NAT ( 对称型 ). 公网. 私网. M. A,b. P. X,y. NAT. S. SIP 穿越 NAT – NAT 分类.

chaim
Download Presentation

SIP 之 穿越 NAT

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. SIP之穿越NAT

  2. Agenda • SIP穿越NAT • NAT分类 • 问题之所在 • 各种解决方案

  3. SIP穿越NAT – NAT分类 • Full Cone NAT(完全圆锥型) • Address Restricted Cone NAT(地址限制圆锥型 ) • Port Restricted Cone NAT(端口限制圆锥型) • Symmetric NAT(对称型) 公网 私网 M A,b P X,y NAT S

  4. SIP穿越NAT – NAT分类 Full Cone NAT(完全圆锥型NAT) 公网 私网 M A,b P X,y Full Cone NAT S • NAT会将客户机地址{X:y}转换成公网地址{A:b}并绑定 • 任何包都可以通过地址{A:b}送到客户主机的{X:y}地址上

  5. SIP穿越NAT – NAT分类 Address Restricted Cone NAT(地址限制圆锥型 ) 公网 私网 M X P,q A,b P,r X,y X Restricted Cone NAT S • NAT会将客户机地址{X:y}转换成公网地址{A:b}并绑定 • 只有来自主机{P}的包才能和主机{X:y}通信

  6. SIP穿越NAT – NAT分类 Port Restricted Cone NAT(端口限制圆锥型 ) 公网 私网 M,n P,q X A,b P,r X,y X Port Restricted Cone NAT S • NAT会将客户机地址{X:y}转换成公网地址{A:b}并绑定 • 只有来自主机{P,q}的包才能和主机{X:y}通信

  7. SIP穿越NAT – NAT分类 Symmetric NAT(对称型) 公网 私网 M,n C,d P,q X A,b P,r X,y X Port Restricted Cone NAT S • NAT会将客户机地址{X:y}转换成公网地址{A:b}并绑定为{X:y}|{A:b}<->{P:q} • NAT只接受来自{P:q}的incoming packet,将它转给{X:y} • 每次客户机请求一个不同的公网地址和端口,NAT会新分配一个端口号{C,d}

  8. Firewall /NAT SIP穿越NAT – 问题之所在 • SIP Proxy无法穿过NAT回送SIP信令 公网 SIP Proxy 私网 私网 X X SIP信令 Firewall /NAT 因为SIP信令中的From和Contact头域记录的是私网地址和端口,NAT无法识别和转换。

  9. SIP穿越NAT – 问题之所在 • 如果是UDP Hole Punching呢?什么是UDP Hole? 公网 私网 UDP包 Firewall /NAT 这个内网的NAT上打了一个方向为211.136.91.58的“洞”,(这就是称为UDP Hole Punching的技术)以后211.136.91.58就可以通过这个洞与内网的192.168.1.223联系了,但是其他的IP不能利用这个洞。

  10. SIP穿越NAT – 问题之所在 • 如果是UDP Hole Punching呢? • 在没有活动的时候,这个Hole会过期: • NAT对于地址转换关系是有一定生命期的,某个地址转换后在一段时间内没有被使用将会被清除,当这个业务流再次出现时,将会建立一个新的地址转换关系。

  11. SIP穿越NAT – 解决问题 • 几种解决方案 • ALG • MidCom • STUN • TURN • SBC

  12. Application Level Gateway Solution SIP穿越NAT – ALG • ALG可以识别SIP信令,能够适当地修改数据包 • ALG可以是单独的连接于外网和内网之间的设备,也可以是内置于防火墙内的插件 • 当FW/NAT发现外网呼叫信令为SIP时,将其转发到ALG(应用层网关),通过ALG建立起内网伪地址终端与外网终端的通信连接 • 需要对现有设备升级改造

  13. IETF MIDCOM(Middlebox Communications) Solution SIP穿越NAT – MidCom • 允许第三方(MIDCOM Agent)成为受FW/NAT信任的实体,然后代表FW/NAT做出决定,强迫其开放端口传送媒体流或数据流。这些受信任的实体通过“MidCom”定义的新协议与FW/NAT进行通信。 • 协议的识别不由Middlebox完成,而是由外部的MIDCOM Agent完成 • 需要对现有设备升级改造

  14. STUN(Simple Traversalof UDP Through Network) Solution SIP穿越NAT – STUN STUN回包告诉客户端 公网IP和12345端口 公网 私网 [A,b] What’s my ip? A,b S,t X,y NAT 希望在5060端口接收数据 从5060端口发送请求STUN服务器 NAT映射端口为12345

  15. SIP穿越NAT – STUN • IETF RFC 3489定义了如何确定由NAT分配的公网地址和端口 • 不需要改造现有NAT 主要特色: • 能够让客户端发现NAT的存在以及类型 • 能够让客户端发现NAT的绑定生命周期 • 可以工作在多NAT串联环境下 • 非常简单的协议,易于实现,负载低 • STUN服务器可以位于公网任何地方 适用范围: • 不适用于Symmetric NAT • 对于Non- Symmetric NAT都适用 • 如果双方都位于同一个NAT之后,就不适用

  16. SIP穿越NAT – STUN STUN的优点: • 无需现有NAT设备做任何改动 • 可在多个NAT串联的网络环境中使用 STUN的局限性: • 需要终端支持STUN CLIENT的功能 • 不适合支持TCP连接的穿越,所以不支持H.323 • 不支持Symmetric NAT • 不支持对防火墙的穿越

  17. SIP穿越NAT – STUN

  18. SIP穿越NAT – STUN

  19. SIP穿越NAT – STUN • 成熟的STUN Server/Client方案: http://sourceforge.net/projects/stun/ 下载stund_0.94_Oct29.gz • 运行其中的WinStun.exe测试程序,即可获知NAT类型以及分配的公网地址:

  20. TURN(Traveral Using Relay NAT) Solution SIP穿越NAT –TURN 通过Relay方式穿越NAT的方式:私网终端发出的报文都要经过TURN Server进行Relay转发 公网 私网 O,p M,n [O,p] O,p A,b Give my ip M,n S,t X,y 分配一个IP和端口:[O,p] NAT

  21. SIP穿越NAT –TURN • IETF draft “draft-rosenberg-midcom-turn-06” • TURN Server控制分配地址和端口,能分配RTP/RTCP地址对(RTCP端口号为RTP端口号加1)作为私网终端用户的接收地址,避免了STUN方式中出口NAT对RTP/RTCP地址端口号的任意分配,使得客户端无法收到对端发来的RTCP报文(对端发RTCP报文时,目的端口号缺省按RTP端口号加 1发送)。

  22. SIP穿越NAT –TURN 与STUN的类似之处: • 私网中的终端通过某种机制预先得到公网上的服务地址,然后在报文净载中所要求的地址信息就直接填写该公网地址。 与STUN的区别: • STUN得到的地址为出口NAT上外部地址;TURN得到的地址为TURN Server上的公网地址 • TURN支持Symmetric NAT • TURN支持基于TCP的应用,如H.323

  23. SIP穿越NAT –TURN TURN的优点: • 无需现有NAT设备做任何改动 • 可在多个NAT串联的网络环境中使用 • 支持Symmetric NAT • 支持TCP连接的穿越 TURN的局限性: • 需要终端支持TURN CLIENT的功能 • 所有报文都必须经过TURN Server转发,增大了包的延迟和丢包的可能性

  24. ICE(Interactive Connectivity Establishment) Solution SIP穿越NAT –ICE • IETF draft “draft-ietf-mmusic-ice-03” • 综合运用 STUN、TURN或RSIP(Realm Specific IP)协议,使之在最适合的情况下工作,以弥补单独使用其中任何一种所带来的固有缺陷 • 在 SIP client开发上显著地增加了复杂性 • 适用于各种类型的NAT • 需要每一个终端支持 traversal 方法 资源: • 可以参考论文《基于ICE方式SIP信令穿透Symmetric NAT技术研究 》

  25. Firewall Firewall SBC(Session Border Controller) Solution SIP穿越NAT –SBC SIP Proxy SIP Signaling RTP/RTCP Media

  26. SIP穿越NAT –SBC • Signaling Solution • SBC可以帮助SIP信令穿越已经存在的FW/NAT,而不需要对现有的FW/NAT设备做任何改变 • 对于SIP终端,SIP终端设备会周期性发送注册消息到SBC • Media Traversal Solution • SBC可以把相应的媒体流发送到防火墙上的相关IP地址和端口,然后正确地使媒体流到达防火墙后的用户侧

  27. 谢谢!

More Related