VoIPNAT穿越技术Word文档格式.docx
《VoIPNAT穿越技术Word文档格式.docx》由会员分享,可在线阅读,更多相关《VoIPNAT穿越技术Word文档格式.docx(11页珍藏版)》请在冰豆网上搜索。
TURN的全称为TraversalUsingRelayNAT,即通过Relay方式穿越NAT,能穿越symmetericNAT。
1.3隧道穿透
一样企业网都不想升级或改动他们的防火墙和NAT设备的配置,也不想让内外的交互通信绕过这些设备,采纳许诺IP语音和视频穿越防火墙和NAT的隧道穿透方案或许是最适合的,目前提供此类解决方案的有美国的Ridgeway公司。
隧道穿透解决方案由两个组件组成,Server软件和Client软件。
Client放在防火墙内的私有网,它同时具有网守功能和代理功能,私有网内的终端注册到Client上,它和防火墙外的Server创建一个信令和操纵通道,能够把所有的注册和呼唤操纵信令转发到Server,也把音视频数据转发到Server,在转发时它把内部终端发送的和外部发往终端的数据包的地址和端口号替换为自己的。
Server放在防火墙外的公众空间,能够位于效劳提供商网络或位于企业网的DMZ区域,Server扮演网守代理的角色,从Client收到的所有注册和呼唤信令都被Server转发到中心网守。
Server和Client之间的通信要紧通过两个固定的端口来传输数据,这两个端口是2776和2777端口,被IANA机构分派给Ridgeway的系统。
当私网内Client启动时:
1.它与Server上的2776端口成立一个固定连接用来传送操纵和状态信息;
2.它监听私网内网守注册和请求信息;
当一个终端启动时:
1.终端通过Client/Server之间的连接发送注册信息到中心网守;
2.Server分派给每一个注册的终端一个唯一的端口号(与Server的IP地址对应)。
当一个终端呼唤防火墙外的另一个终端时,所有的数据包都通过Client路由到Server,返回的数据也从Server通过Client路由回到终端。
当呼唤被成立后,Client确保所有必需的通过防火墙的音视频通道维持开放,如此音视频数据能够通过这些防火墙上开放的通道进行传输。
利用用这种方式IP地址信息被专门好的屏蔽,因为所有的数据包通过Server来路由转发,每一个终端仿佛看来在直接地和Server进行通信,而不是和别的终端,这保证了终端的IP地址在网络外不可取得。
而且这种方式在大多数情形下不用对防火墙配置进行任何修改。
关于那些防火墙设置限制打开向外的端口的情形,治理员能够创建简单的原那么来许诺从Client到Server上两个固定的端口2776和2777的向外的连接。
那个方式最大的缺点是所有通过防火墙的通信都必需经由Server来进行中转,这会引发潜在的瓶颈,那个经由Client和Server的进程会增加少于5ms的延迟。
可是这又是必需的,因为Server是防火墙唯一信任的设备。
1.4SBC(SessionBorderController)
SBC方案,是迄今为止,对FW/NAT问题解决最完善的方案。
实施SBC方案,不仅不用对原有网络中的FW/NAT设备做任何改动,而且对原有网络没有任何特殊要求。
SBC本身能够被看做支持VoIP的Proxy,它是一种“可识别应用层”的设备,能够识别第五层和第七层的消息,而且还能够处置第五层的众多会话信令协议,修改数据包头的地址,从而实现SBC内外网地址变换。
SBC同时还可以用于协助VoIP穿越远端防火墙/NAT设备。
它一般放置在网络核心交换设备侧。
所有经过SBC的信令和媒体流经过SBC的协调和修改,可以在系统侧和用户侧正确传输。
用户侧的NAT/Firewall可以接受这种修改后的信令和媒体流并把他们传送到用户侧内网。
这种利用SBC实现的防火墙穿越技术可以称之为“远端防火墙穿越”。
SBC可以帮助SIP/MGCP信令穿越已经存在的FW/NAT,而不需要对现有的FW/NAT设备做任何改变。
具体来说,对于SIP终端,SIP终端设备会周期性发注册消息到SBC;
对于MGCP终端,当收到MGCP设备的第一个注册消息后,SBC会周期性发AUEP消息到终端,强制其再不停的周期性回复200OK消息。
这样,由于不停的有信令消息经过防火墙/NAT设备,可以使防火墙/NAT对通过的消息流始终保持一个确定的端口;
同时,当注册信息经过SBC,它将记录在防火墙上的第三层的IP地址和端口等信息,并且将此信息与防火墙后面的终端的用户名或电话号码等第五层信息进行绑定记录。
这样,当一个信令到来,SBC将通过防火墙上正确的地址和端口发送给被叫方。
当呼叫建立后,双向的媒体流端口都是动态建立的。
由于媒体流同样也通过SBC,SBC将通过与该媒体流相关的呼叫(第五层消息中的用户名或电话号码)识别出防火墙上的IP地址和端口。
因此,SBC可以把相应的媒体流发送到防火墙上的相关IP地址和端口,然后正确的使媒体流到达防火墙后的用户侧。
SBC本身可以被看作支持VoIP的防火墙,不过它们不仅仅有此功能。
它们还可以修改IP包的包头,使IP包能够顺利通过网络边缘设备(如:
FW或NAT)。
SBC是一种“可识别应用层”的设备,能够识别第五层和第七层的消息,而且还能够处置第五层的众多会话信令协议,修改数据包头的地址,从而实现“远端防火墙穿越”。
同时,SBC能够通过对会话数量的限制,实现应用层防解决。
1.5ACM(AutomaticChannelMapping)
与SBC相似。
1.6SIPextensionsforNATtraversal
只支持SIP信令穿越,不支持媒体穿越,具体描述见RFC3581。
1.7SymmetricRTP
与技术有相似处:
都是利用对端实际的地址(NAT翻译以后)作为返回的地址,而不是信令里告知的地址(NAT翻译之前)。
SymmetricRTP适合所有RTP,包括SIP和。
1.8ICE
1.9ALG
ALG(ApplicationLayerGateway)适应所有NAT方式,并非需要SIPClient做任何额外的支持。
它对Application层的SIP信令进行处置和修改,从而做到透明转换地址。
ALG修改SIP消息里面的SIP地址和端口和SDP消息里面的RTP地址和端口,其中RTP地址和端口要向RTPProxy请求取得,RTPProxy分派自己的一个空闲的地址和端口,并和那个Call维持映射关系。
并为分派给呼唤两边的地址和端口进行绑定,如此,呼唤两边的RTP连接地址都是RTPProxy,由RTPProxy通过中转,发至真正的目的地。
假设,有两个SIPClient要进行通信,Ada和Bob,他们别离位于自己的NatServer后面:
其中两台NATServer都是SymmetricCone方式。
其信令流程如下:
1.Ada发起信令,InviteBob。
IPPacketIPAddress:
From:
(SIPALG)
SIPMsgIPAddress:
BodyIPAddressforRTP:
2.通过NATServer,NAT将其私有地址转换成公网地址,并绑定,由于是采纳SymmetricCone方式,因此还绑定目的的IP地址。
{PacketIPAddress:
3.ALG同意到该INVITE,发觉其包的IP地址和SIPIP地址不同,就判定其是通过NAT,于是就将其相关的SIPIP地址修改。
并检查它的Body中是不是是包括SDP信息,若是是,且有RTP地址,SIPALG就会去向RTPProxy请求一个公网RTP地址来代替原有的RTP地址。
MsgIPAddress:
(下一跳的地址)
SDPBodyIPAddressforRTP:
4.因为Bob不断的向SIPALG发送注册包,因此,它的NATServer始终为它保留着这么个绑定,{.12:
5060}|{。
因此,由SIPALG发出的INVITE,Bob能收到。
Bob返回200OK,包括SDP信息。
.12:
5060
To:
(下一跳的地址)
.12:
10002
5.NATServer将其包的IP地址修改。
发往SIPALG。
6.SIPALG同意到该200OK,发觉其包的IP地址和SIPIP地址不同,就判定其是通过NAT,于是就将其相关的SIPIP地址修改。
7.现在,RTPProxy为那个Session维持着这么个连接绑定
8.{收到200OK,它以为对方的RTP地址是。
将与其成立连接。
而Bob以为对方的RTP地址是。
9.当RTPProxy的3002端口收到包,它能够从包地址取得Ada的RTP公网IP。
当RTPProxy的3000端口收到包,它能够从包地址取得Bob的RTP公网IP。
从而,RTPProxy会将3002端口收到的包转发到Bob的RTP公网IP。
一样,RTPProxy会将3000端口收到的包转发到Ada的RTP公网IP。
如此,一个通话的连接就成功成立。
1.10穿越防火墙技术的比较