被制造的精神病 发表于 2009-6-2 21:04:04

H.323协议穿越NAT/防火墙

随着IP网宽带业务的蓬勃发展,基于分组的多媒体通信系统标准H.323被广泛运用于视频会议和IP电话中。由于很多企业和单位都建有自己的局域网,内部采用了私有的IP地址,访问公网一般经过网络地址转换(NAT)设备进行地址转换。由于H.323协议本身没有考虑NAT的应用,其地址内嵌特点在NAT 设备进行地址转换时发生困难,产生了内、外网难以互通的问题。
1 NAT和防火墙的功能
1.1 NAT
    按照NAT的定义,内部本地地址表示分配给内部网络中的计算机的IP地址;内部合法地址表示对外进行IP通信时,代表一个或多个内部本地地址的合法IP地址。
NAT的地址转换方式如下:
    (1)静态地址转换
    静态地址转换将内部本地址与内部合法地址进行一对一的转换,且需要指定和哪个合法地址进行转换。如果内部网络有E-mail服务器或文件传输协议 (FTP)服务器等,可以为外部用户提供公用的服务。通过发送数据包到内部主机的映射地址,任何外部主机可以发送数据包到内部主机。
    (2)动态地址转换
    动态地址转换也是将内部本地地址与内部合法地址一对一的转换,但是从内部合法地址池中动态地选择一个未使用的地址对内部本地地址进行转换。只有当内部主机曾经发送了数据包到外部主机时,外部主机才可以发送数据包到内部主机。
    (3)复用动态地址转换
    复用动态地址转换首先是一种动态地址转换,但是它可以允许多个内部本地地址共用一个内部合法地址。对只申请到少量IP地址却经常有多个用户同时上外部网络的情况,这种转换极为有用。只有内部主机发送数据包到具有IP地址和端口的外部主机上,外部主机才能发送数据包到内部主机。
    (4)对称地址转换
    对称地址转换是指从内部主机的同样的内部本地地址和端口发送的数据包到外部一个指定的IP地址和端口,将会映射到同样的内部合法地址和端口。如果同样的内网主机内部本地地址和端口发送到不同的目的地址,NAT就会使用不同的内部合法地址,而且只有收到数据包的外网主机才能发送数据报协议(UDP)数据包到内网主机。
1.2 防火墙
    为了网络的安全性,企业内部网一般都安装了防火墙,它是一个放置于私有网内的设备,用来保护网络资源免受外部的恶意破坏。
    防火墙检查从外部进来的每个数据包的IP地址和目的端口号,它经常如此设置:如果防火墙内的一台计算机A向防火墙外的一台计算机B主动发出请求要数据,防火墙会让外部计算机B的数据包通过,而且数据包的目的地址和端口号必须与防火墙内发起请求的计算机A的地址和端口号相同;如果计算机B发来的数据包仅仅目的地址是防火墙内发起请求的计算机A的地址,而端口号不是计算机A发出请求的那个端口号,防火墙将会丢弃那个外来的数据包。
    防火墙总是被配置过滤掉所有不请自到的网络通信,有一个例外是在防火墙内提供Web服务器供外部访问。在这种情况下,企业内部网会配置防火墙允许目的地址是Web服务器的IP地址且目的端口号为80的数据包通过,这就使得企业外部用户可以主动向企业的Web服务器发起请求得到一些企业放在服务器上的数据。
2 H.323穿越NAT/防火墙遇到的问题
2.1H.323协议不能穿越NAT
    局域网内的终端之间进行呼叫和通信时不会有任何问题,但这些终端与外网终端进行H.323通信时就会有问题产生,原因是局域网中的IP地址是私有的,在 Internet中是不可路由的。当局域网内的终端呼叫外部终端时可以建立连接,但局域网内的终端不能收到网外终端发送的语音和视频数据包;局域网内的终端也不能收到网外终端的呼叫。
2.2H.323协议不能穿越防火墙
    H.323协议要求终端之间彼此使用IP地址和端口建立数据信道,由于防火墙通常被设置成限制未经请求的外部数据包进入,因此防火墙内部的终端不能接收外部的呼叫,即使防火墙打开一个端口接收呼叫的初始数据包,H.323协议还要求动态分配一些端口用来接收呼叫控制信息和建立语音、视频数据通道,因此除非打开防火墙的所有端口,才可以进行H.323通信,而防火墙也就失去了意义。
3 H.323协议穿越NAT的方案
    针对H.323协议的特点和NAT/防火墙的特性,人们提出了不同的解决方案,归纳起来主要有H.323代理、应用网关、MIDCOM几种方式。
3.1 H.323代理方式
    如图1所示,这种解决方案的典型应用是在防火墙后放一个H.323代理,代理需要被分配公有IP地址。防火墙被配置允许代理和外部进行多媒体通信。
/qzone/newblog/v5/editor/css/loading.gif
页: [1]
查看完整版本: H.323协议穿越NAT/防火墙