毅航互联vSBC-5000 linux虚拟机测试
更新时间:2021-09-03

一、简介

毅航互联vSBC-5000是纯软件实现,较多的部署在虚拟机或者云平台中使用,需要有测试来确定在常见的配置模式下大概的性能数据,作为现场部署的参考。


由于毅航互联vSBC-5000的功能非常多,本测试主要完成最简单情况下的通话测试,包括:不转码透传通话、加密通话和基于sipp的压力测试。

经过上述测试验证,毅航互联vSBC-5000产品支持编码透传、基于TLS/SRTP的加密通话和1000并发通话。


注:用sipp带媒体做压力测试,发现并发超过500时,sipp就很容易出现出现coredump、没有响应或者控制终端直接和服务器断开等现象,网络带宽也严重偏离。因此,在此测试中引入毅航硬件SBC(SBC-2000),sipp只是做信令处理,与SBC-2000对接,由SBC-2000和vSBC-5000对接,保证vSBC-5000具有真实的媒体流量。


1、毅航互联vSBC-5000

毅航互联透传SBC-5000(简称vSBC)提供类似IMS网络A-SBC和I-SBC的功能,用于网络拓扑隐藏、NAT穿透、内外网隔离、VoIP安全和广域网组网等场景,也可以用于协议转换、SIP信令整形、视频会议、WebRTC接入等SBC场景。

毅航互联vSBC支持双机主备冗余功能(HA),主备切换不影响通话,现有通话不会中断,满足运营级要求。

毅航互联vSBC支持话单,可用于计费等运营场景。

毅航互联vSBC是纯软件实现,可部署在专用服务器、通用服务器、虚拟机(VMware、KVM、VirtualBox)和云平台(阿里云、腾讯云、百度云、华为云等)。

毅航互联vSBC具有高性能和大容量的特点。呼叫:500呼叫/秒,5000并发。注册:500事务/秒,5000并发。

毅航互联vSBC不执行媒体的编解码转换,并且采用内核包转发,具有极高的性能。


2、DELL R720机架式服务器

本测试的宿主服务器采用DELL PowerEdge R720机架式服务器。配置两颗intel E5-2690 v2 CPU,32G内存。

具体参数见网站:

https://www.dell.com/zh-cn/work/shop/povw/poweredge-r720


注意:DELL此产品已经下架,类似产品为R740。


3、CentOS 7.5操作系统

宿主服务器和虚拟机均使用CentOS 7.5 64bits linux操作系统。


具体性能参数见网站:

https://www.centos.org


4、毅航互联SBC-2000

毅航互联 硬SBC由SBC 0500,SBC 1000,SBC 2000等系列产品组成,与毅航互联TG1000/TG4000网关共享相同平台、软件和架构。

毅航互联SBC面向运营商、互联网企业和呼叫中心,为客户的SIP网络提供强大的安全、编解码转换、内外网穿透、注册代理、路由、信令流控/转换、QoS/ACL等功能。

毅航互联SBC秉承毅航互联iSX4000多媒体交换机的“双星网”架构,采用高性能DSP/VoIP处理芯片、多核嵌入式CPU处理器、千兆无阻塞网络交换和高性能主机CPU,构成分布式计算网络,以极低的功耗实现极高的性能。

毅航互联SBC设备最大支持2000并发会话和2000路语音媒体转码。除传统电信编解码(G.711/G.729/G.723),还支持3G/4G编解码(AMR NB/AMR WB/GSM FR/EFR),以及互联网编解码(OPUS/SILK/iLBC)。另外,毅航互联SBC还支持高清语音(G.722编码)。

毅航互联SBC在必要时,可以插入中继模块或者STM-1光接口板,完成与传统PSTN网络的对接。

毅航互联SBC支持HA高可用配置,主备切换时信令和语音通话保持不中断。

二、测试环境

1、测试整体结构

为了简化,测试部件分成四个部分:

vSBC-5000:包括运行vSBC-5000软件的载体服务器;

Eyebeam 1.5:包括运行eyebeam的电脑,模拟电话;

亿联SIP硬话机:模拟电话;

sipp:压力测试时,模拟高并发;

SBC-2000:标准产品,将单纯信令的sipp呼叫转换为带媒体的SIP呼叫。


整体的测试结构简化如下图:



功能测试

功能测试时,呼叫直接在vSBC-5000接通和包转发,不涉及到SBC-2000。


sipp压力测试

sipp压力测试时,由发起呼叫的sipp呼叫到SBC-2000,由SBC-2000转呼到vSBC。vSBC接收到呼叫后,再呼出到SBC-2000,然后由SBC-2000呼到应答sipp。整体的流程如下图:



2、vSBC-5000

vSBC-5000软件

测试版本为:iGatewayPackageRE-1.0.5.release.i386.tar.gz


操作系统

操作系统如下:

[root@localhost ~]# uname -a

Linux localhost.localdomain 3.10.0-862.el7.x86_64 #1 SMP Fri Apr 20 16:44:24 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux


[root@localhost ~]# cat /etc/os-release

NAME="CentOS Linux"

VERSION="7 (Core)"

ID="centos"

ID_LIKE="rhel fedora"

VERSION_ID="7"

PRETTY_NAME="CentOS Linux 7 (Core)"

ANSI_COLOR="0;31"

CPE_NAME="cpe:/o:centos:centos:7"

HOME_URL="https://www.centos.org/"

BUG_REPORT_URL="https://bugs.centos.org/"


CENTOS_MANTISBT_PROJECT="CentOS-7"

CENTOS_MANTISBT_PROJECT_VERSION="7"

REDHAT_SUPPORT_PRODUCT="centos"

REDHAT_SUPPORT_PRODUCT_VERSION="7"


[root@localhost ~]# cat /etc/system-release

CentOS Linux release 7.5.1804 (Core)


硬件规格

由于使用虚拟机进行测试,分配的CPU和内存如下图:


注:常规测试配置为8核,后续会做基于4核的性能测试。


[root@localhost ~]# free

              total        used        free      shared  buff/cache   available

Mem:        8008980     3520676     3798084      393640      690220     3806660

Swap:       2097148        2048     2095100


3、宿主机的配置

CPU为:


注:服务器配置了两颗E5-2690 V2 CPU。


4、Eyebeam 1.5

使用测试版本。

由于eyebeam在counterpath已经下线和不提供下载,测试版本是从其他一些网站上下载的测试版本,测试后已经不再使用。

具体见:https://www.counterpath.com/


5、硬SIP话机

采用亿联T21P。


6、SBC-2000硬件SBC

SBC-2000配置8块MGW-VOIP板,总并发可以做到4096(alaw/ulaw)。

为了避免NAT穿透对包可能产生影响,本设备不配置NAT穿透,直接和vSBC-5000做媒体的对接。


三、测试配置

本节主要列出与呼叫测试相关的配置,其他常规的配置见使用手册。


1、vSBC-5000

配置SIP协议栈

SIP栈采用缺省配置,IP地址为10.10.99.28,配置完成后,直接激活。



配置SIP注册中继组

为测试用的SIP分机配置账号,如下图:



从图上已经可以看到两个分机都已经注册上了SBC。


配置SBC-2000呼叫中继组

SBC-2000中继组是双向的:呼入和应答在同一个中继组中,配置如下图:



配置分机互打路由

为了保证两个中继组间的分机互打,需要配置路由,如下图:



配置SBC-2000测试路由

从SBC-2000呼入然后再呼出到SBC-2000的路由,如下图:



2、SBC-2000

配置SIP协议栈

SIP栈采用缺省配置,IP地址为10.10.210.15,配置完成后,直接激活。



配置sipp压力测试中继组

sipp发起呼叫和接收呼叫的中继组配置如下图:



配置vSBC-5000中继组

中继组配置如下图:



路由配置

需要配置两条路由:sipp_c(发起呼叫)到vSBC和vSBC到sipp_a(应答呼叫)。如下图:



3、Eyebeam 1.5

Eyebeam的配置较为简单,见相关的手册说明。


4、亿联T21P配置

亿联话机的配置也较为简单,见相关的手册说明。


5、sipp脚本

发起呼叫采用如下的脚本:


由于G.711的包长度比G.729大很多,因此,只用G.711做测试。脚本如下:

./sipp -i 10.10.99.60 -p 6060 -sf ./sipp_uac_basic.xml 10.10.210.15:5060 -d 25000 -r 40 -rp 1000 -aa -m 10000

sipp_uac_basic.xml:本脚本会使用G.711 alaw编解码做协商,但是不会发RTP包。


应答呼叫的脚本:

./sipp -sf sipp_uas_basic.xml -i 10.10.99.30

不处理接收RTP包。



四、测试

1、alaw通话测试

两个SIP电话间通过不同编码的互打,通话正常。

呼叫

在中继组配置中,将alaw作为第一优先级,此时发起alaw通话,配置如下图:



通话时,语音正常,通过抓包,可以确认此时为alaw呼叫。



2、加密通话测试

亿联话机配置成TLS/SRTP模式,然后和eyebeam通话,由vSBC执行SRTP/RTP的互相转换。

vSBC-5000配置TLS中继组

使用vSBC的web配置新的TLS中继组,以及在中继组中配置新的用户号码:400002。如下图:



vSBC-5000配置TLS路由

配置SRTP-RTP的转换路由,如下图:



亿联话机配置加密通话模式

配置一个新的400002账号,信令使用TLS传输,配置如下:



媒体配置强制加密,这样就会采用SRTP,如下图:



vSBC-5000查询注册状态

在web上可以查询到话机已经注册,如下图:



呼叫测试

通过亿联话机呼叫eyebeam,由vSBC-5000执行SRTP-RTP间的相互转换,通话语音清晰。由于亿联话机和vSBC间通过TLS传输,信令不可见,因此在抓包中看不到。

可以通过SIP的日志查询出亿联话机的信令:


信令是TLS传输,媒体为SRTP加密。


呼叫给eyebeam时,已经将信令转换为UDP传输和RTP媒体模式了。


媒体包也可以看到相应的转换:



3、压力测试

压力测试时,由sipp打满,然后通过SIP电话抽听语音是否正常。


alaw呼叫

sipp呼叫保持时间大概是25s,将呼叫频度改为40CAPS,保证稳定的呼叫是1000并发。在此条件下,用SIP电话抽听语音正常。


./sipp -i 10.10.99.60 -p 6060 -sf ./sipp_uac_basic.xml 10.10.210.15:5060 -d 25000 -r 40 -rp 1000 -aa -m 10000


从web查看到的呼叫统计如下图:



单个中继组的并发是400CAPS,和计算相符。(40CAPS*25s保持时间=1000并发,由于是收到呼叫在转发出去,总并发是2000)


带宽计算:

整体并发要2000通道算,共计160M多。下图的带宽和计算相符,并且入和出是相同的,表示正常:



从下图可以看到CPU和内存均正常。



Eyebeam客户端的抓包分析,没有丢包和延迟,语音正常,如下图:



G.729呼叫

由于vSBC-5000不做编解码,只是透传RTP包,G.729的包更小,负荷更加轻载。所以本次不做相应的测试。


4、压力测试-降低资源

将CPU减少到4核,进行相应的压力测试,用于评估性能,作为上线的参考。


如下图,CPU已经调整为4核:



压力测试情况如下:


从web查看到的呼叫统计如下图:



表明可以支持1000并发。


整体并发要2000通道算,共计160M多。下图的带宽和计算相符,并且入和出是相同的,表示正常:



从下图可以看到CPU和内存均正常。



Eyebeam客户端的抓包分析,没有丢包和延迟,语音正常,如下图:





五、测试结论

由于毅航互联vSBC-5000采用内核包转发模式,在4核/8核的KVM/QEUM虚拟机中,可以很好的支持1000并发。

返回