毅航互联SBC 防火墙适配方案

企业为了确保网络安全,普遍部署各种防火墙,作为边缘和隔离设备,将企业的信任和非信任网络(一般外网非信任,内网为信任)分隔开来,避免直接访问。同时,防火墙兼具NAT功能,隐藏内网并代理内网对外网的访问。

前言企业为了确保网络安全,普遍部署各种防火墙,作为边缘和隔离设备,将企业的信任和非信任网络(一般外网非信任,内网为信任)分隔开来,避免直接访问。同时,防火墙兼具NAT功能,隐藏内网并代理内网对外网的访问。由于防火墙的存在,部署SBC变得较为复杂。某些情况下还需要防火墙的配合,才能够完成SIP信令和语音流的防火墙/NAT穿透。就防火墙和SBC的位置关系,一般分成两种模式:近端防火墙,也就是SBC在防火墙内,对接的设备在近端防火墙外或者在远端防火墙内;远端防火墙,也就是SBC在防火墙外,对接的设备在防火墙内。这两种模式下,毅航互联SBC均可以完成信令和媒体的正确穿透。一、方案简介1、概述毅航互联SBC充分考虑了近端和远端防火墙对信令和媒体的影响。在信令层面通过对From/To/Contact/rport/SDP等IP地址进行处理,反映出实际的对接地址,避免信令不通,摘机超时,挂机挂不断等问题。同时,SBC支持OPTIONS/REGISTER等心跳模式(接收或者发送),用于保持防火墙的session(保活),保证防火墙/NAT的端口可用和不变化。媒体通过识别远端的IP/PORT,然后向这个IP/PORT发送媒体包的方法,达到各种NAT情况的穿透。合理的防火墙穿透方式防火墙/NAT有各种模式和对应的各种穿透方式。但是,较为合理的穿透方式是从防火墙外网IP/PORT收到包,回应或者主动发的包再送回这个IP/PORT。示意图如下图: 2、防火墙SIP ALG由于现在的防火墙普遍内置SIP ALG(应用层代理),此功能会对SIP信令和媒体产生很大的影响。但是,由于ALG的实现一般不完善,很容易使得信令和数据不通和单通等各种问题,导致各种不可预测的问题,所以需要将防火墙的SIP ALG功能关闭。毅航互联在大量的工程支持中,SIP ALG基本上都会导致问题。建议将此作为一个部署的前置检查项,避免在联调时再检查,会耗费比较多的时间。3、 远端防火墙当SBC对接的设备处于防火墙之内,SBC处于防火墙外时,就构成了远端防火墙模式。比如:SBC放公网,代理内网的座席注册;或者对接内网的PBX等等。由于NAT的存在,SBC看到的SIP信令信息和媒体的信息均和原始的信令不同,必须采用一些特别的处理方式来应对这种情况。逻辑结构远端防火墙的示意结构如下图: 注意:a、图中用单层防火墙做示意,实际上这种模式可以支持多层防火墙。b、SBC可能在防火墙内。这种模式放到近端防火墙做讨论,不影响远端防火墙的逻辑结构。c、一般将防火墙内的设备作为客户端,毅航互联SBC作为服务端,便于建立和维持互通。信令配置为了自动的远端防火墙穿透,一般将防火墙内部的设备(座席、PBX等)作为客户端,而防火墙外部的SBC作为服务端。由客户端向服务器发起周期性的心跳(比如:注册REGISTER、OPTIONS等),周期时间控制在120s以内,这样就可以维持防火墙的session,达到保活的目的(也就是防火墙不关闭外网的端口,SBC可以从这个端口向内网设备主动发信令消息)。各种内网设备均有自己不同的配置界面,一般都可以找到相应的注册和OPTIONS的配置。找到相应的配置后,按照要求进行配置后即可。SBC侧无需对信令做特别配置。对于像PBX等设备,可能不能够配置为客户端,此时需要在防火墙上做映射,将PBX的信令IP/PORT映射到防火墙的外网,这样SBC才能够访问。毅航SBC支持SIP在TCP协议上传输,如果UDP穿透存在难以配置的情况,也可以通过采用TCP协议来完成信令的穿透。采用TCP协议时,建议采用永久连接,避免连接断开而导致防火墙的阻断。信令穿透内网设备无需做特殊的协议修改,所有的穿透由SBC完成。由于内网设备配置的是内网IP地址,经过防火墙后,这些地址对于SBC来讲是无效的(无法访问),如果根据这些地址作为后续信令的传输地址,将无法通信。比如:发送挂机BYE SIP信令时,远端地址来自于内网设备 INVITE SIP信令Contact头域中的IP地址和端口。此时肯定是内网的IP地址,就会导致BYE SIP信令无法触达内网设备,导致不能够挂机。又比如:SBC会根据INVITE SIP信令中的From/To/Contact等头域中的IP地址校验有效性,或者进行中继组的匹配。穿透模块会用TCP/IP协议栈的真实IP/PORT替换相应的域,达到有效校验或者匹配的目的。毅航SBC会用从网络协议栈收到的真实IP/PORT替换上述的关键头域中的IP/PORT等信息,满足安全和中继组识别等要求。并且将给内网设备的SIP信令送给上述真实的IP/PORT,保证了信令可以触达内网设备。媒体穿透和信令类似,SBC在收到内网设备发送的RTP/RTCP包后,识别出真实的IP/PORT