分类:
2008-10-13 16:09:37
UPPC系统NAT穿透技术
作者出处不详
1.介绍
由于安全方面的考虑和IPv4地址数量的限制,现实中的Internet中存在大量NAT和防火墙设备。这些设备的存在严重阻碍了点对点多媒体通讯。UPPC采用类似于TURN (Traversal Using Relay NAT)的架构实现NAT/FW穿透,具有智能高效和穿透能力强,可穿透任意层NAT,无须改动网关设备配置等优点。UPPC的信令和媒体传输都是基于UDP协议,所以下文不讨论TCP的穿透NAT防火墙技术,下面先介绍防火墙和NAT对于多媒体通讯阻碍的基本情况。
2.防火墙NAT介绍
防火墙主要用于限制特定类型或特定方向通讯,从而保护内网不受来自外部攻击。主要限制包括:
1.只允许TCP或UDP通讯
2.禁用部分端口或只开放部分端口
由于TCP协议的高延迟特性,交互式多媒体通讯基本都采用基于UDP的媒体传输协议。对于只允许TCP的防火墙,UPPC的NAT/FW方案也无法穿透。
NAT则有四类,下面简单描述一个场景,然后说明四种NAT的原理。假设一个网络如下:
1.A机器在内网
2.NAT
3.B和C机器在公网
1.Full Cone:当A和B通讯过后,NAT替A打开一个公网端口,C随后就可以通过访问这个公网端口与A通讯。
2.Restricted Cone:C无法通过A访问B时NAT打开的公网端口与A通讯,NAT只允许B通过这个端口与A通讯,NAT限制外网机器的IP地址
3.Port Restricted Cone:B只能使用当初A访问B时的端口与A通讯,NAT限制外网机器的IP:Port对。
4.Symmetric:以上三种通称Cone型NAT,特征就是NAT打开的外网端口和内网机器IP:Port是一一对应的,只要是从同一个内部地址和端口出来的包,NAT都将它转换成同一个外部地址和端口。但是Symmetric不同,具体表现在:只要是从同一个内部地址和端口出来,且到同一个外部目标地址和端口,则NAT也都将它转换成同一个外部地址和端口。但如果从同一个内部地址和端口出来,是到另一个外部目标地址和端口,则NAT将使用不同的映射,转换成不同的端口。Symmetric的公网地址取决于完整通讯的五元组。
目前NAT/FW穿透方案如ALG, STUN等主要用于Cone型通讯,对于Symmetric无能为力,UPPC采用类似与TURN的方案,当通讯双方都在不同Symmetric NAT后时,利用一个公网上的Relay Service (具体就是UC Distribution Service)转发,其他情况使用反向连接,也就是发送和接受使用同一个端口解决穿透问题。
3. UPPC防火墙原理
3.1 信令
UPPC主要组件有UCSN(Super Node),UCDS (Distribution Service), Web Phone客户端构成。其中Web Phone的信令和媒体流都使用Symmetric Connection与外界通讯,Web Phone启动后首先尝试登录UCSN,UCSN通过比较收到的地址与信令中的地址确定Web Phone是否在NAT后面,如果是的话,通知该客户端启动Keep Alive任务,通过周期性的主动Ping UCSN的信令端口,从而保持同一端口打开,当呼叫接入时,UCSN通过Keep Alive的信道将信令发给NAT后的客户端。
3.2 媒体
当Web Phone A需要与外界Web Phone B建立媒体连接时,UCSN根据双方的NAT情况决定其通讯方式:
A.当A, B都在公网时,双方直接建立媒体通讯。
B.当A, B有一方在NAT后时,UCSN让NAT后的一方主动向公网上的一方发起反向连接,然后公网上的B在通过这个通道与A通讯。
C. 当A, B在同一个NAT后面是,双方直接建立媒体通讯
D. 当A, B在不同的NAT后时,UCSN通知UCDS打开若干个端口(一个媒体类型一个通道),然后告诉A, B直接与UCDS的指定端口通讯,UCDS将从不同地址收到的媒体包互相转发,完成媒体中继。