燕东渭
(陕西省气象信息中心,西安 710014)
近年来,各行各业都在大力进行有关大数据的应用和研究,其中如何获取外部门数据往往成为开展大数据应用,特别是跨部门数据融合应用的关键。目前,陕西省气象部门已经得到了授权,可以访问外部门覆盖陕西全省的实景视频信息。这些信息对于气象部门开展天气实况服务、短时临近预报预警以及预报服务评估等业务来说,都是非常宝贵的资源。但因为没有项目和经费支撑,无法搭建通信专线,也无法购置新的专用设备来完成共享数据的获取。仅有的通道是互联网和电子政务外网这样的公网。因此,以陕西省气象局和某省级部门为例,探讨如何基于公网,在不添置任何新网络设备的条件下,实现跨部门视频流数据的共享。
1.1.1 网络 两个部门互联的网络拓扑示意如图1,陕西省气象局和对方都有各自的省级、市级局域网络[1-2],省级网络均通过硬件防火墙接入了公网。两个防火墙(防火墙A和防火墙B)之间测试是畅通的,但是将两个私网直接打通是不可能的。其中,对方WWW服务器布设在省级网络,几个流媒体服务器分别在市级网络。
图1 两个部门互联网络拓扑图
1.1.2 数据共享 某省级部门的实景视频服务对其内部是借助一台省级WWW服务器提供入口门户的。内部用户使用浏览器点击该WWW页面上以树形层次结构呈现的所有视频拍摄点位置名称,即可查看相关的实景视频。当用户点击访问不同场所的视频时,底层是借助预装在本地终端上的插件按照WWW服务器上的超链接信息(流媒体服务器IP,视频设备ID,用户名密码等),实时连接对应的一台市级流媒体服务器,请求对应场所的摄像设备,从而获取实时信息。需要注意的是,此时该用户的PC必须与对应的市级流媒体服务器保持连通。其给陕西省气象局提供的数据共享方式,仅仅是允许浏览该WWW服务器。
省气象局得到访问该部门覆盖陕西全省的实景视频信息的许可只是单点的。为了更广泛地发挥实景视频信息的作用,还需保证省气象局网内全部用户,或者至少部分用户可以自如地访问到对方的WWW服务器和视频资源。同时,还需考虑不给气象部门内部用户增加其他附加的操作,如临时修改终端路由或安装VPN客户端等。
流媒体(streaming media)是在网络上按时间先后顺序传输和播放的连续音频或视频数据流。传统方式浏览网络上的视频时,须先将整个文件完整下载并存储在本地后,才能播放。与传统方式不同,流媒体服务允许用户在播放前无需下载整个文件,只将部分内容缓存,使媒体数据流边传送边播放,这样节省了下载等待时间,非常适合实时视频的共享。这种服务有个前提,即用户终端PC必须与流媒体服务器网络连通,而不是经过第三方中转。
NAT(net address transfer)是网络上常用的一种技术,通过改变数据包的源IP或目的IP[3],进而使本不符合路由规则的数据包变得符合规则而得以被转发。扩展的NAT技术还允许改变数据包的源端口或目的端口。该技术非常适合在内外网节点处的设备上配置,进而打通不同网络。因此可利用NAT技术,实现陕西省气象局内网上的PC终端像对方的内部终端一样自如地访问其视频信息。具体实施方法:陕西省气象局用户访问对方视频时,在发出的数据包经过陕西省气象局的防火墙出口时,将数据包的源IP修改成陕西省气象局的防火墙外网口IP(公网IP),目标IP也需要确保是对方的防火墙外网口IP(公网IP),这样可以保证该数据包顺利经过公网,到达对方的防火墙;随后再进行二次NAT,即将该数据包的目标IP修改为对方服务器的真实IP,还需要将源IP修改为对方的防火墙内网口IP。经过两次NAT后,即可保证数据包顺利到达对方内网中的目标服务器。
除了上述复杂的NAT外,一些必要的访问控制规则也同样需要考虑,如在陕西省气象局的防火墙上允许转发目标IP是对方公网IP的数据包,在对方防火墙上增加允许转发源IP是陕西省气象局公网IP,目标IP是对方WWW服务器IP的数据包,等等。此外还需要在陕西省气象局核心交换机上增加对方网络的静态路由等。
按照上述技术方案,在陕西省气象局防火墙上配置NAT,规则如表1。其中,第1条是将陕西省气象局内部网上所有访问对方WWW服务器(IP为61.2.2.249,服务端口为TCP8080)的数据包中源IP地址包装成陕西省气象局的公网IP。这样可以保证该数据包能顺利通过公网到达对方的防火墙,进而进入其内部网络。该规则是针对源IP的NAT。第2条是将陕西省气象局内部网上访问对方流媒体服务器A的数据包源IP地址包装成陕西省气象局的公网IP,不同的是该目标服务器是对方A市的流媒体服务器,服务端口是TCP1200,而且该IP是对方服务器的真实IP。这条规则的目的同样是保证该数据包能顺利通过公网到达对方的内部网络。该规则是针对源IP和目的IP同时的NAT(终端用户与流媒体服务器连接时,必须用对方的真实IP)。第3条规则和第2条的作用类似,该规则针对的是另一个市级流媒体服务器B(IP是10.2.2.24,服务端口是TCP1200)的访问。对方给陕西省气象局提供服务的公网IP(61.2.2.249)只有一个,而对方几个不同流媒体服务器的服务统一使用TCP1200端口。在第2条规则中,陕西省气象局为了实现流媒体服务的转发,已经占用了服务器端口TCP1200,故在第3条中暂时将目标端口修改为TCP1230。为了保证数据包到达对方网络后,能够正常转发到目标服务端口上,在对方的防火墙上做反向NAT时,及时把对端口TCP1230访问的数据包目标端口恢复成TCP1200即可。该条规则同样是针对源IP和目标IP的双向NAT。第4条规则和第3条类似,不再赘述。
表1 陕西省气象局NAT规则
经过上述一系列NAT后,陕西省气象局内网用户向对方发出各种被授权的请求(WWW服务和流媒体服务)数据包,均可顺利通过公网转发到对方的防火墙上。故还需要在对方防火墙上做一系列反向NAT,每一条规则都是陕西省气象局防火墙上对应规则的反向转换。如,针对陕西省气象局NAT第1条规则,在对方防火墙上应该有一条将所有源IP是陕西省气象局公网IP,访问服务是TCP8080的数据包进行NAT:源IP转换为对方防火墙内网口IP,目标IP转换为对方提供WWW服务的真实IP。这样,该数据包就会像对方内部数据包一样被正常转发至WWW服务器。其他规则原理类似,不再赘述,具体见表2。需要特别指出的是,对方的WWW是省级服务器,布设在省级网络区域,而其他的流媒体服务器有些在地市级的网络区域部署。因此,为了保证陕西省气象局对所有市级流媒体正常访问,就必须保证对方防火墙的内网口与其所有地市级流媒体服务器畅通。这可能需要对方网络管理技术人员配合完成相关的路由打通工作。
表2 某省级部门NAT规则
按照上述技术方案在双方的公网防火墙设备上实施配置后,在陕西省气象局授权的内部网上,用户安装必要的插件,并经过相关身份认证后,便可顺畅地访问对方的实时视频信息,达到预想效果。目前可以借助该部门覆盖陕西全省的实景视频信息及时掌握陕西省多地的天气实况,极大地提升了气象防灾减灾的效率。