您当前的位置是:  首页 > 新闻 > 文章精选 >
 首页 > 新闻 > 文章精选 >

图解边界会话控制器(SBC)的20个最常用功能

2019-02-26 14:48:27   作者: james.zhu   来源:CTI论坛   评论:0  点击:


  边界会话控制器(Session Border Controller-SBC)是目前基于IP语音通信中,特别是基于SIP,3GPP网络中的核心设备。关于SBC的讨论,笔者在以前的历史文档中发布过很多关于SBC的功能,作用,以及部署协议讨论。但是,仍然有很多用户对SBC的概念比较模糊,为了进一步帮助读者理解什么是SBC,笔者这次通过配图示例来解释这些功能,希望读者结合以前的技术,对SBC有一个完整的理解,在以后的设备选型中有一个清晰的认识。以下视频是一个简单的视频介绍,什么是SBC和安全功能介绍。
  首先说明的是,目前,SBC没有任何组织或者RFC标准来规定SBC必须具备什么样的功能,很多SBC厂家根据大概的SBC的应用场景定义了很多不同的功能。一些厂家都声称一些所谓的功能,事实上也可能不完全是SBC的一般认可的功能。另外,因为技术积累的原因,一些厂家的SBC也只能实现比较基础的功能,比较有实力的厂家则开发了很多高级功能。因此,笔者很难讨论对某些功能做讨论介绍。这里,笔者根据国外市场的调查,结合一些国际上认可的SBC品牌,同时结合SBC应用协议的规范,准备了20个SBC的常用功能来做介绍。
  当然,SBC本身是一个比较新的产品,特别是基于互联网技术的发展,未来可能会逐渐引入很多新的功能支持,笔者也不清楚,我们暂且不讨论。
  关于SBC的其他技术讨论,读者可以查阅本公众号的历史文档或网络资料来进行进一步的学习。现在,我们针对常用的20个SBC常用功能结合图例来分别加以介绍说明。另外,笔者几年前就发布过很多关于SBC的技术讨论的文章,读者可以查阅历史文档学习,包括:
  • 边界会话控制器部署协议RFC5853
  • 全面剖析SBC产品和功能
  • 免费SBC-FreeSBC,免费边界会话控制器,支持软硬件安装部署方式,支持亚马逊/阿里云安装部署方式。免费下载测试。
  • 使用开源Kamailio开发SBC的一些误解
  • 漫谈VoIP网络中的核心设备-SBC,读者自行搜索: 
  01 SBC控制通信数据流量
  边界会话控制器-SBC,顾名思义,实际上就是对Session的控制。它仅对会话进行管理。因此,SBC不仅仅支持SIP,也可以支持H323和MGCP等协议。读者可以根据字面意思就基本上了解了SBC的作用和功能:
  1. Session-会话支持。这里重复说明,SBC主要的作用是支持会话处理,不是指定的其他的IP处理。因此,一般的SBC厂家的价格都是根据支持会话多少来决定。会话处理包括:实时的通信交互,语音视频其他多媒体处理,SIP/H323/MGCP协议的支持处理。
  2. Border-边界支持。这里的边界是指内网和外网的边界区域。类似于防火墙的部署一样,部署在网络的边界区域就可以实现安全设置。
  3. Controller-控制器功能。这里的控制器可以控制的功能很多,例如控制数据流量,安全设置,编码,呼叫路由处理,协议头转译等功能。
  02 SBC部署在网络边界
  SBC部署在企业或运营商的网络边界处。因此,通常情况下,SBC会至少支持两个网络接口来对接WAN和LAN。WAN口对接外部网络,LAN口和公司内网其他通信设备进行通信,例如企业IPPBX。这里的边界包括了多种形式的边界管理,边界包括:IP对IP网络的边界,SIP中继对服务提供商的边界,远端外网用户访问的边界和企业内网/外网的边界。
  笔者在这里再讨论一下关于边界对接管理的应用示例。一般的SBC必须支持至少一个外网NIC口和一个内网的NIC口。外网地址通过WAN口连接,内网网卡连接其他的内网交换机,负责和企业IPPBX或者UC进行通信。外网SIP协议数据通过SBC,然后再通过SBC连接到内网的其他基于SIP的IPPBX。以下是一个IPPBX在数据中心,基于SBC的部署解决方案示例:

  基于软件SBC配合商业IPPBX,开源Asterisk或FreeSWITCH完成对整体解决方案示例(SBC+IPPBX部署在本地),通过此方案,企业IPPBX同时支持了PSTN呼叫/SIPrrunk呼叫,SBC功能等其他的应用。
  03 SBC是一个B2BUA
  SBC是一个B2BUA。这里用户一定要注意,通常情况下,SBC执行的是一个背靠背代理的角色,因此,它可以对外网进入到SIP信令进行处理。
 
  此代理通过一个桥接的方式,对两个会话分别进行处理,包括路由,头的规范化重置等流程。简单来说,B2BUA就是一个两面派,需要执行UAS功能时就是一个服务器的角色,例如响应;需要执行客户端是就是一个客户端的角色,例如请求。
  为了支持SBC的功能,B2BUA充当了很多角色和具体的功能:
  通过SBC的处理,用户内网的消息可以重新设置为一个外网的地址再次呼叫外网用户,这里的用户内网地址就会替换为外网的公网地址。
  04 SBC执行NAT处理流程
  上面的边界处理事实上也是一个NAT地址的功能实现。SBC可以实现网络地址的转换功能。不同网络之间通过SBC实现网络的通信。
  如果是运营商级的SBC的话,可以支持不同IMS网络的对接。IMS网络中通过SBC来对接不同的IMS网络:
  05 SBC支持网络拓扑隐藏
  SBC支持了网络拓扑隐藏功能。根据我们前面的介绍,SBC是一个边界设备,企业通信的其他应用服务器都部署在内网中,通过SBC和外网进行交互,对外的地址是SBC的地址,外网用户不会看到内网用户的地址,因此实现了网络拓扑隐藏功能,保证了内网服务器的安全。
  06 SBC支持信令和语音加密处理
  因为SBC是一个B2BUA,因此SBC可以对会话进行修改处理,包括对数据进行加密等。SIP支持了TLS后,SBC发送到外网的消息就会进行加密处理,包括对信令加密和对媒体加密等功能。外网数据的安全得到了保证。
  07 SBC支持SIP信令标准化处理
  SBC可以支持SIP信令的标准化处理,当然也可以支持H323的标准化处理。很多情况下,一些对接的设备中其SIP消息不规范,这样会导致不兼容的问题。在信令进入到媒体网关之前对其语法规范进行处理,防止下游设备出现其他的兼容性问题的问题。例如,在客户端的消息中缺少了消息,SBC可以对其进行规范化处理,在发送到下游网关设备时进行规范处理,添加所需要的消息内容。
  经过SBC的规范化处理以后,网关收到正确的消息内容:
  08 SBC支持协议转换
  SIP/SS7,SIP/H323,或者SIP/WebRTC等。很多SBC设备已经支持了PRI/SS7协议栈,因此通过SIP转换到PSTN也不会出现问题。但是,很多市场上的终端产品可能支持了H323或者WebRTC等。因此SBC需要支持协议转换的功能。
  SBC转换SIP和WebRTC:
  09 SBC处理IPv4或IPv6转换
  现在,IPv6变得越来越普及,外网用户可能使用IPv6对内网用户进行呼叫。SBC需要对IP地址进行转换处理。通过SBC的转换,外网地址变成了内网地址,然后再进行下一步的通信处理流程。
  10 SBC支持防攻击功能
  因为SBC部署在网络边界区域,因此会经常受到外网的攻击,SBC需要对其进行防攻击的处理。SBC通过不同的安全策略防火墙来阻止外网的垃圾数据进入到内网的通信服务器,从而保证了内网通信服务器的安全。以下是一个调查报告,说明目前使用的攻击目标:
  因此,为了保证实现外网的防范攻击,企业用户建议部署SBC。部署SBC前的图例(无SBC),IPPBX是非安全状态:
  部署SBC后:
  当然,安全策略需要针对不同的业务端口进行设置,一般的端口设置包括UDP的安全威胁,RTP的安全威胁,SIP安全威胁,IP层的安全威胁,ICMP的安全威胁和TCP的安全威胁等攻击方式。
  11 SBC支持Authentication处理
  SBC支持内网用户的认证处理。一般的企业IPPBX用户,通过SIP注册基本上可以完成注册呼叫等功能。但是,如果用户是外网用户呼入到企业内网的话,可能SIP用户的安全设置不能完全保证其用户的身份。SBC可以增加一个身份参数(P-Asserted-Identity)来对其外网用户进行进一步的安全认证。SBC通过对下游服务器的身份查询,获得其用户的身份以后,确认外网用户的认证过程,允许用户呼叫。
  经过对P-Asserted-Identity查询,要求用户重新认证,然后SBC通过其认证过程。
  关于P-Asserted-Identity,读者可以进一步阅读RFC3325,这里不再做过多解读。这里提醒读者,P-Asserted-Identity一般使用在代理或服务器端,而且不能对这个头进行加密处理。
  12 SBC支持相关通信法律法规
  SBC是运营商级的接入设备,所以必须符合当地法律的要求。在语音通信环境中,监听是一个必不可少的功能。SBC可监听呼叫,通过第三方设备或者接口实现电话录音等功能。SBC可以监控SDP的媒体数据消息,支持强制使用第三方的媒体服务器,对媒体进行监听功能。
  通过指定第三方的媒体网关,监听终端可以对双方通话进行监听。录音文件可存储在第三方的服务器中,通过其他的接口随时调用。
  13 SBC支持紧急呼叫功能
  紧急呼叫是政府对企业通信环境必须支持的功能。SBC可设置紧急呼叫优先路由(911或119等号码),或者根据呼叫方的消息,通过其他的手段,支持呼叫方的地理地址,其他相关紧急处理机构获得了呼叫方具体的地理地址后能够快速实现支持。紧急呼叫策略在呼出路由设置中始终默认为最高优先级的呼叫。
  目前比较少的SBC解决方案实现了地理位置的呼叫路由方式。笔者不清楚具体的实现方式,可能SBC通过其他的地理位置服务功能接口,结合SBC的呼叫策略,SBC应该支持基于地理位置的紧急呼叫。IPPBX用户可以通过SBC呼叫911服务或其他的紧急服务号码,SBC应该支持基于地理位置的911服务或其他的国内119服务方式。
  14 SBC支持语音质量保障QoS服务
  大部分情况下,企业网络带宽总是有限的。如果在带宽有限的情况下,或者不能支持需要更多带宽的编码时,SBC可以修改编码使用选项,它可以根据呼叫方提供的不同编码,选择占用带宽较低的编码来进行呼叫,这样就保证了QoS服务和正常的语音质量。在以下的示例中,呼叫方在SDP中提供了两种编码X和Y,SBC发现Y编码占用带宽资源比较低,同时,被呼叫方也可以支持Y编码,那么,SBC就选择Y编码进行呼叫。这样的话,呼叫的QoS就获得了保障。
  15 SBC支持呼叫控制处理机制
  SBC支持了呼叫控制功能。其中一种比较常用的功能就是SBC通过对带宽的监控实现呼叫控制。SBC可以监控不同的中继使用的带宽状态,确保不同中继能够正常工作,同时确保安全优先级高的优先呼叫。SBC增加了对呼叫上下游的带宽监控功能,如果呼叫所使用的编码的带宽不够,SBC则拒绝此呼叫。通过带宽的方式控制呼叫。
  当然,我们这里所说的呼叫控制不仅仅是带宽监控一个方面,其他方式的监控也可以通过SBC来实现。其他方面的呼叫控制包括:呼叫权限控制,呼叫时间控制,呼叫目的地控制,黑白名单控制等呼叫控制功能。
  16 SBC支持NAT转换媒体能力
  我们在前面已经介绍过,SBC可以支持NAT功能。但是,很多SBC同时支持了媒体能力,SBC可以实现媒体的转换处理。SBC不仅仅控制信令,也可以实现媒体功能。外网用户可以通过SBC可以直接呼叫内网的用户。
  17 SBC可支持媒体编码转换
  刚才我们介绍过,SBC可以作为一个媒体服务器来使用。因此,SBC也可以对媒体编码进行转换处理。因为基于浏览器的WebRTC,IMS网络,SIPtrunk的接入,语音编码的使用也越来越多。目前,使用比较多的编码如G。729,AMR-NB,V8等。SBC需要对各种编码进行转换处理,使得企业IPPBX可以实现无缝对接,保证终端之间的正常呼叫。大部分的硬件SBC都支持了编码DSP芯片,这些DSP可以支持多种商业编码,并且取得了不错的性能和处理能力。如果基于软件的SBC,则相对支持的编码处理能力相对比较低,编码选项也支持的相对比较少。
  浏览器用户使用V8编码,通过SBC可以实现内网H264编码终端实现视频呼叫。同样,外网SIPtrunk使用了G729的话,可以通过SBC实现内网IPPBX所支持的711等编码的通话。
  另外,还有一些用户使用编码卡来进行基于DSP的编码处理。通过开源软交换平台和PCI编码卡来实现,支持了多种语音编码。

  18 SBC可支持IVR功能
  因为SBC可以支持媒体服务器,因此也可以支持DTMF生成,语音文件播放等功能。一些情况下,SBC可以支持简单的IVR语音导航功能。如果IVR导航进入到相应的其他业务流程。在实际生产环境中,IPPBX就可以实现IVR功能,因此在SBC上使用IVR的可能不是太多。
  19 SBC支持呼叫数据统计
  因为SBC是通信节点,因此它可以非常方便地统计所有的呼叫状态数据,这些数据包括:平均呼叫量,失败呼叫,呼叫时长,最长呼叫,最短呼叫等数据。
  20 SBC支持CallStateful实现CDR功能
  SBC可以支持状态呼叫,系统保存了整个呼叫的所有流程的消息,因此,SBC可以获得完整的呼叫流程记录。例如,呼叫请求,拆线BYE消息等数据。SBC可以支持完整的CDR报表,此CDR报表为企业应用服务提供支持。
  21 总结
  在本文章中,笔者通过具体的图例结合文字说明介绍了20个SBC的常用功能,这些功能基本上涵盖了目前SBC的所有常用功能。在每一个功能中,笔者尽可能结合一些具体的示例来说明每个特定功能。读者可以结合厂家的SBC解决方案来对应学习。另外,随着技术的不断发展,一些软件SBC和基于云部署的SBC也逐渐发展起来,而且软件架构也慢慢向云平台技术转移。因此,当前的功能介绍还不能涵盖所有的技术功能。读者自己需要做进一步的跟踪学习。
  参考资料:
  https://wiki.freepbx.org/display/SBC/SBC+Threat+Protection
  https://www.itproportal.com/2016/08/10/how-to-interrogate-the-security-of-your-session-border-controller-sbc/
  https://www.ietf.org/rfc/rfc3325.txt
  https://www.sangoma.com/products/vega-enterprise-sbc-vmsoftware/
  https://docs.telcobridges.com/tbwiki/FreeSBC#Cloud_computing
【免责声明】本文仅代表作者本人观点,与CTI论坛无关。CTI论坛对文中陈述、观点判断保持中立,不对所包含内容的准确性、可靠性或完整性提供任何明示或暗示的保证。请读者仅作参考,并请自行承担全部责任。

专题

CTI论坛会员企业