为什么今天要回顾下有关网络防火墙穿越的问题?因为在日常的项目工作及运维中碰到了有关网络穿越的问题,比如华为办公电话系统外网移动终端接入开视频会议及拨打电话,华为高清视频会议系统外网终端接入开视频会议,这些场景的实现都离不开一个东西-公网与私网穿越!本篇简要回顾和总结一下网络防火墙穿越的背景,原理和解决方案,思维导图如下。

wKioL1cwI9qwMPdXAAB9_YFlcgQ404.jpg

  • 防火墙知识回顾,什么是防火墙?


       防火墙指的是一个由软件和硬件设备组合而成、在内部网外部网之间、专用网与公共网之间的界面上构造的保护屏障,它是一种计算机硬件和软件的结合,使Internet与Intranet之间建立起一个安全网关(Security Gateway),从而保护内部网免受非法用户的侵入,防火墙主要由服务访问规则、验证工具、包过滤和应用网关4个部分组成。 

wKioL1cvEWLgzBUkAADRELX-7DE048.jpg

  • 什么是网络防火墙穿越?


   顾名思义,就是要正常的穿越防火墙咯(而不是非法***)。某些大型企业为了网络安全,会在内外网各个环节出口处部署大量防火墙,NAT(网络地址转换,内网终端访问外网,需要进行地址转换),安全检测等设备,而有些应用比较特殊,这些设备无法满足这些应用的通信条件,导致无法使用,这时候需要有这样一个设备,在防火墙设备后面,承担这些特殊的功能,帮助外网的信息流顺利穿越防火墙,与内网设备成功通信。   

  • 为什么要防火墙穿越?


  上述基本上已经通俗的讲了防火墙穿越的含义,现在从多媒体通信角度阐述为什么要进行防火墙穿越。

  通常NAT/防火墙设备仅对IP和UDP/TCP报文头的地址及端口号进行转换(所谓的网络层),并不对消息体中的媒体连接信息(应用层)进行转换,从而造成NAT/防火墙不支持SIP/H.323/H.248/MGCP等(当今多媒体通信协议主要是SIP和H.323)IP通信协议的有效传输。

  比如外网终端用户注册后呼叫控制设备上记录的将是其私网地址,当私网终端呼叫公网终端,虽然私网终端可以从注册网关处获取公网终端的IP地址,但在视音频RTP码流时,由于受H.323协议的自身限制,其各自的RTP接收端口和发送端口不同,如下图所示,这样,私网终端向公网终端(公网IP)发送的RTP码流公网终端可以接收,但公网终端向私网终端(其NAT映射的公网地址)发送的RTP码流,在经过NAT设备时,并不会进行IP地址的转换,导致码流不能通过NAT设备。出现单通的情况。

 当公网终端呼叫私网终端,由于呼叫的地址直接是私网终端映射的公网地址,NAT设备不支持H.323协议转换,因此呼叫就不能建立。

wKiom1cvUCSx5F01AADtHCkhDF4961.jpg

  • 如何穿越防火墙?


   静态NAT:对于私网中的每个终端,在防火墙NAT上作静态NAT,即私网地址与公网地址一对一的映射;这种情况是针对终端很少的情况。

   支持H.323协议的NAT设备;动态支持H.323协议NAT的防火墙设备,其直接可以理解H.323协议内容,对H.323协议的IP码流可以直接进行协议转换,使得企业内部局域网上的终端就象放在公网上一样,这样企业内部的终端就可以无障碍地与外部终端互通。

   H.323代理穿越公私网:即采用一台PC作为防火墙出口的代理设备,该方式下,需在每个防火墙后放一个H.323 代理,代理需要被分配公有IP 地址。  

  • 业界解决方案和产品


  目前我所了解的有迅时SBC系列- SX1000,SX300;华为SE2000,SwitchCenter(SC)。

      针对视频会议,我们采用了华为SC,组网如下:

wKioL1cwKbfhZWbFAAFtCTMWJ7s119.jpg

组网说明:

1. SC放置在防火墙的DMZ区域,配置NAT映射到公网。

2. 终端通过SC的私网地址/公网地址注册到SC。

3. 需要定义本地私网,用于SC设置呼叫地址。

4. 终端使用H.323或者SIP协议向SC进行注册,SC负责整个呼叫控制(信令处理机媒体流转发)。

  • 思考和总结?


  通过本次回顾,对多媒体通信场景-视频会议外网接入有一个基本认识,多媒体通信无非靠:信令流来完成终端的注册,连接建立和维护;媒体流(或者称为码流)的传输;信令传输出现问题,就会导致注册异常,呼叫发起不了,码流异常就会导致无声音或者无视频。日常排查问题中,首先需要对通信协议有个理解,然后通过抓包分析具体实现过程。后续再探讨多媒体通信协议-H.323和SIP通信机制!