毅航互聯vSBC-5000是純軟件實現,較多的部署在虛擬機或者云平臺中使用,需要有測試來確定在常見的配置模式下大概的性能數據,作為現場部署的參考。
由于毅航互聯vSBC-5000的功能非常多,本測試主要完成最簡單情況下的通話測試,包括:不轉碼透傳通話、加密通話和基于sipp的壓力測試。
經過上述測試驗證,毅航互聯vSBC-5000產品支持編碼透傳、基于TLS/SRTP的加密通話和1000并發(fā)通話。
注:用sipp帶媒體做壓力測試,發(fā)現并發(fā)超過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安全和廣域網組網等場景,也可以用于協(xié)議轉換、SIP信令整形、視頻會議、WebRTC接入等SBC場景。
- 毅航互聯vSBC支持雙機主備冗余功能(HA),主備切換不影響通話,現有通話不會中斷,滿足運營級要求。
- 毅航互聯vSBC支持話單,可用于計費等運營場景。
- 毅航互聯vSBC是純軟件實現,可部署在專用服務器、通用服務器、虛擬機(VMware、KVM、VirtualBox)和云平臺(阿里云、騰訊云、百度云、華為云等)。
- 毅航互聯vSBC具有高性能和大容量的特點。呼叫:500呼叫/秒,5000并發(fā)。注冊:500事務/秒,5000并發(fā)。
- 毅航互聯vSBC不執(zhí)行媒體的編解碼轉換,并且采用內核包轉發(fā),具有極高的性能。
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操作系統(tǒng)
宿主服務器和虛擬機均使用CentOS 7.5 64bits linux操作系統(tǒng)。
具體性能參數見網站:
https://www.centos.org
4、毅航互聯SBC-2000
- 毅航互聯 硬SBC由SBC 0500,SBC 1000,SBC 2000等系列產品組成,與毅航互聯 TG1000/TG4000網關共享相同平臺、軟件和架構。
- 毅航互聯SBC面向運營商、互聯網企業(yè)和呼叫中心,為客戶的SIP網絡提供強大的安全、編解碼轉換、內外網穿透、注冊代理、路由、信令流控/轉換、QoS/ACL等功能。
- 毅航互聯SBC秉承毅航互聯iSX4000多媒體交換機的“雙星網”架構,采用高性能DSP/VoIP處理芯片、多核嵌入式CPU處理器、千兆無阻塞網絡交換和高性能主機CPU,構成分布式計算網絡,以極低的功耗實現極高的性能。
- 毅航互聯SBC設備最大支持2000并發(fā)會話和2000路語音媒體轉碼。除傳統(tǒng)電信編解碼(G.711/G.729/G.723),還支持3G/4G編解碼(AMR NB/AMR WB/GSM FR/EFR),以及互聯網編解碼(OPUS/SILK/iLBC)。另外,毅航互聯SBC還支持高清語音(G.722編碼)。
- 毅航互聯SBC在必要時,可以插入中繼模塊或者STM-1光接口板,完成與傳統(tǒng)PSTN網絡的對接。
- 毅航互聯SBC支持HA高可用配置,主備切換時信令和語音通話保持不中斷。
二、測試環(huán)境
1、測試整體結構
為了簡化,測試部件分成四個部分:
- vSBC-5000:包括運行vSBC-5000軟件的載體服務器;
- Eyebeam 1.5:包括運行eyebeam的電腦,模擬電話;
- sipp:壓力測試時,模擬高并發(fā);
- SBC-2000:標準產品,將單純信令的sipp呼叫轉換為帶媒體的SIP呼叫。
整體的測試結構簡化如下圖:

功能測試
功能測試時,呼叫直接在vSBC-5000接通和包轉發(fā),不涉及到SBC-2000。
sipp壓力測試
sipp壓力測試時,由發(fā)起呼叫的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
操作系統(tǒng)
操作系統(tǒng)如下:
[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)
硬件規(guī)格
由于使用虛擬機進行測試,分配的CPU和內存如下圖:

注:常規(guī)測試配置為8核,后續(xù)會做基于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板,總并發(fā)可以做到4096(alaw/ulaw)。
為了避免NAT穿透對包可能產生影響,本設備不配置NAT穿透,直接和vSBC-5000做媒體的對接。
三、測試配置
本節(jié)主要列出與呼叫測試相關的配置,其他常規(guī)的配置見使用手冊。
1、vSBC-5000
配置SIP協(xié)議棧
SIP棧采用缺省配置,IP地址為10.10.99.28,配置完成后,直接激活。

配置SIP注冊中繼組
為測試用的SIP分機配置賬號,如下圖:

從圖上已經可以看到兩個分機都已經注冊上了SBC。
配置SBC-2000呼叫中繼組
SBC-2000中繼組是雙向的:呼入和應答在同一個中繼組中,配置如下圖:

配置分機互打路由
為了保證兩個中繼組間的分機互打,需要配置路由,如下圖:

配置SBC-2000測試路由
從SBC-2000呼入然后再呼出到SBC-2000的路由,如下圖:

2、SBC-2000
配置SIP協(xié)議棧
SIP棧采用缺省配置,IP地址為10.10.210.15,配置完成后,直接激活。

配置sipp壓力測試中繼組
sipp發(fā)起呼叫和接收呼叫的中繼組配置如下圖:

配置vSBC-5000中繼組
中繼組配置如下圖:

路由配置
需要配置兩條路由:sipp_c(發(fā)起呼叫)到vSBC和vSBC到sipp_a(應答呼叫)。如下圖:

3、Eyebeam 1.5
Eyebeam的配置較為簡單,見相關的手冊說明。
4、億聯T21P配置
億聯話機的配置也較為簡單,見相關的手冊說明。
5、sipp腳本
發(fā)起呼叫采用如下的腳本:
由于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編解碼做協(xié)商,但是不會發(fā)RTP包。
應答呼叫的腳本:
./sipp -sf sipp_uas_basic.xml -i 10.10.99.30
不處理接收RTP包。
四、測試
1、alaw通話測試
兩個SIP電話間通過不同編碼的互打,通話正常。
呼叫
在中繼組配置中,將alaw作為第一優(yōu)先級,此時發(fā)起alaw通話,配置如下圖:

通話時,語音正常,通過抓包,可以確認此時為alaw呼叫。

2、加密通話測試
億聯話機配置成TLS/SRTP模式,然后和eyebeam通話,由vSBC執(zhí)行SRTP/RTP的互相轉換。
vSBC-5000配置TLS中繼組
使用vSBC的web配置新的TLS中繼組,以及在中繼組中配置新的用戶號碼:400002。如下圖:

vSBC-5000配置TLS路由
配置SRTP-RTP的轉換路由,如下圖:

億聯話機配置加密通話模式
配置一個新的400002賬號,信令使用TLS傳輸,配置如下:

媒體配置強制加密,這樣就會采用SRTP,如下圖:

vSBC-5000查詢注冊狀態(tài)
在web上可以查詢到話機已經注冊,如下圖:

呼叫測試
通過億聯話機呼叫eyebeam,由vSBC-5000執(zhí)行SRTP-RTP間的相互轉換,通話語音清晰。由于億聯話機和vSBC間通過TLS傳輸,信令不可見,因此在抓包中看不到。
可以通過SIP的日志查詢出億聯話機的信令:
可以通過SIP的日志查詢出億聯話機的信令:

信令是TLS傳輸,媒體為SRTP加密。

呼叫給eyebeam時,已經將信令轉換為UDP傳輸和RTP媒體模式了。
媒體包也可以看到相應的轉換:

3、壓力測試
壓力測試時,由sipp打滿,然后通過SIP電話抽聽語音是否正常。
alaw呼叫
sipp呼叫保持時間大概是25s,將呼叫頻度改為40CAPS,保證穩(wěn)定的呼叫是1000并發(fā)。在此條件下,用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查看到的呼叫統(tǒng)計如下圖:

單個中繼組的并發(fā)是400CAPS,和計算相符。(40CAPS*25s保持時間=1000并發(fā),由于是收到呼叫在轉發(fā)出去,總并發(fā)是2000)
帶寬計算:
整體并發(fā)要2000通道算,共計160M多。下圖的帶寬和計算相符,并且入和出是相同的,表示正常:

從下圖可以看到CPU和內存均正常。

Eyebeam客戶端的抓包分析,沒有丟包和延遲,語音正常,如下圖:

G.729呼叫
由于vSBC-5000不做編解碼,只是透傳RTP包,G.729的包更小,負荷更加輕載。所以本次不做相應的測試。
4、壓力測試-降低資源
將CPU減少到4核,進行相應的壓力測試,用于評估性能,作為上線的參考。
如下圖,CPU已經調整為4核:

壓力測試情況如下:
從web查看到的呼叫統(tǒng)計如下圖:

表明可以支持1000并發(fā)。
整體并發(fā)要2000通道算,共計160M多。下圖的帶寬和計算相符,并且入和出是相同的,表示正常:

從下圖可以看到CPU和內存均正常。

Eyebeam客戶端的抓包分析,沒有丟包和延遲,語音正常,如下圖:

五、測試結論
由于毅航互聯 vSBC-5000采用內核包轉發(fā)模式,在4核/8核的KVM/QEUM虛擬機中,可以很好的支持1000并發(fā)。