有关路由器的穿透方式介绍

NAT是通过修改UDP或TCP报文头部地址信息实现地址的转换,但对于VOIP应用,在TCP/UDP净载中也需带地址信 息,ALG方式是指在私网中的VOIP终端在净载中填写的是其私网地址,此地址信息在通过NAT时被修改为NAT上对外的地址。

一、要求这些设备本身具备应用识别的智能,支持IP 语音和视频协议的识别和对NAT/Firewall的控制,同时每增加一种新的应用都 将需要对NAT/Firewall进行升级,在安全要求上还需要作一些折衷,因为ALG 不能识别加密后的报文内容,所以必须保证报文采用明文传送,这使得报文在公网中传送时有很大的安全隐患。

二、与NAT/ALG不同的是,MIDCOM的基本框架是采用可信的第三方对Middlebox进行控制,VOIP 协议的识别不由Middlebox完成,而是由外部的MIDCOM Agent完成,因此VOIP使用的协议对Middlebox是透明的,由于识别应用协议的功能从Middlebox移到外部的MIDCOM Agent上,根据MIDCOM 的构,在不需要更改Middlebox基本特性的基础上,通过对MIDCOM Agent的升级就可以支持更多的新业务,这是相对NAT/ALG方式的一个很大的优势。

三、如果在软交换设备上实现对SIP/H323/MGCP/H248协议的识别,就只需在软交换和NAT/FW设备上增加MIDCO M协议即可,而且以后新的应用业务识别随着软交换的支持而支持,此方案是一种比较有前途的解决方案,但要求现有的NAT/FW设备需升级支持MIDCOM协议,从这一点上来说,对已大量布署的NAT/FW设备来说,也是很困难的,同NAT/ALG方式有相同的问题。

四、解决穿透NAT问题的另一思路是,私网中的VOIP终端通过某种机制预先得到出口NAT上的对外地址,然后在净载中所填写的地址 信息直接填写出口NAT上的对外地址,而不是私网内终端的私有IP地址,这样净载中的内容在经过NAT时就无需被修改了,只需按 普通NAT流程转换报文头的IP地址即可,净载中的IP地址信息和报文头地址信息是一致的。

STUN协议就是基于此思路来解决应 用层地址的转换问题。

五、STUN协议最大的优点是无需现有NAT/FW设备做任何改动。由于实际应用中,已有大量的 NAT/FW,并且这些NAT/FW 并不支持VoIP的应用,如果用MIDCOM或NAT/ALG方式来解决此问题,需要替换现有的NAT/FW,这是不太容易的,而采用STUN方式无需改动NAT/FW,这是其最大优势,同时STUN方式可在多个NAT串联的网络环境中使用,但MIDCO M方式则无法实现对多级NAT的有效控制。

六、TURN方式解决NAT问题的思路与STUN相似,也是私网中的VOIP终端通过某种机制预先得公网上的服务地址,然后在报文净载中所要求的地址信息就直接填写该公网地址。

这种方式除了具有STUN方式的优点外,还解决了STUN应用无法穿透对称NAT以及类似的路由器的缺陷,同时TURN支持基于TCP的应用,如H323协议,TURN Server控制分配地址和端口,能分配RTP/RTCP地址对作为私网终端用户的接受地址,避免了STUN方式中出口NAT对RTP/RTCP地址端口号的任意分配,使得客户端无法收到对端发来的RTCP报文。