■
近期我單位正在開發一套基于個人隨身設備(手機、平板等)上的視頻會議軟件并、通過衛星鏈路接入總部MCU,傳送音、視頻信號的移動通信系統。由于衛星鏈所路固有的低帶寬、高時延(500ms以上)、高誤碼率等特點對IP音、視頻通信造成較大影響,為保證系統開發后的可用性需對該系統在實際環境中予以充分測試滿足要求后才投入批量生產、使用。
由于現網衛星通信系統為應急保障通道,不能隨意作為測試平臺,筆者開始想到使用專業“網絡損傷仿真儀”搭建測試環境以完成測試任務,但經過了解,發現此類硬件設備不僅較為昂貴且部署較為復雜;經過尋找、比較最終使用了基于開源Linux系統的WANem軟件較好的完成了測試工作。下面結合測試環境的搭建過程對該軟件的使用加以說明。

圖1 環境拓撲圖

圖2 網絡配置圖
WANem全名為WAN emulator,是一個開源廣域網絡模擬器,不僅能在本地網絡模擬廣域網的包括帶寬、時延、丟包、抖動等基本特性,還能完成隨機復位連接、按概率發重復包、按概率使數據包亂序和按概率瞬時斷開網絡、按協議隨機斷開連接等高級任務,而且可以針對不同協議、主機、網絡、應用程序精細化模擬。
該軟件可以在http://WANem.sourceforge.net/下載,目前較新的是3.0版本,下載文件解壓后是一個ISO光盤鏡像,可以直接將鏡像刻錄到光盤上使用PC機引導,也可以直接利用ISO使用虛擬機引導。為便于部署,本例中使用了VMware虛擬機并搭建了如圖1所示的測試環境。
由于應用最終部署在便攜設備上,且接入方式多為wifi接入,為了能夠更好的還原真實環境本例中部署了兩個AP分別為兩個網段提供無線接入,最終通過移動設備上安裝的軟件測試視頻會議點對點呼叫效果;安裝VMware虛擬軟件測PC 作為測試機在其上部署WANem軟件,該機的有線網卡連接無線AP1,無線網卡連接AP2的5Ghz天線(由于筆記本電腦的無線網卡不支持802.11a標準),AP2的2.4Ghz天線供用戶接入使用;AP1接入用戶通過PC DHCP服務獲取20.1.1.0/24網段IP,網關為20.1.1.1(虛擬機Linux網卡1 IP地址),AP2接入用戶通過三層交換機Sw1 DHCP Server獲得30.1.1.0/24網段IP地址,網關為30.1.1.1(虛擬機Linux網卡2 IP).
由于該測試需要數據穿越虛擬軟件中部署的Linux系統,需要配置虛擬機橋接測試PC機的有線網卡和無線網卡,使用VMware自帶的如圖2所示網絡配置工具,將Vmnet0和Vmnet1配置為分別與有線和無線網卡橋接。
完成虛擬機網卡設置后,在新建虛擬機中根添加兩塊網卡,第一塊網卡保持橋接,第二塊網卡選擇自定義網絡Vmnet1,即上一步已經設置好的兩個橋接網絡。
在CD/DVD設備處選擇使用ISO鏡像,并選擇WANem的ISO鏡像文件。
完成虛擬機的基本配置后打開虛擬機,從ISO引導,出現啟動畫面。
正常引導開機后,直接進入knoppix Linux 圖形環境,并彈出網卡配置向導。通過該向導可完成網卡參數的設置。
點擊左下角任務欄的LX終端按鈕可以進入如圖3所示的WANem命令行模式,使用help命令查看可執行的命令。

圖3 WANem命令行模式

圖4 策略示意圖
使用exit2shell命令退出WANem命令模式,直接接入Linux 系統 shell,使用 ifconfig或ip addr命令 分別為 eth0、eth1網卡配置20.1.1.1/24和30.1.1.1/24地址。由于測試需要在兩塊網卡間轉發流量,因此還需要使用下列“Echo "1" > /proc/sys/net/ipv4/ip_forward” 命令打開系統的IP轉發功能。做好網絡參數的配置,在瀏覽器中輸入http://127.0.0.1/WANem/即可打開如圖八所示的軟件配置界面。界面簡潔直觀,只需點擊鼠標即可完成配置和監控,其中基本(basic)選項卡可對網卡的帶寬、和時延做配置,如果僅需要模擬這兩個參數,使用該模式選擇帶寬、輸入時延值即可滿足需求,點擊保存設置按鈕,配置即時生效。
點擊高級模式選項,選擇要配置的網卡,進入高級配置模式,在該模式下可對網卡進行包隊列大小,帶寬、延時、抖動、重包率、丟包率、包重排率、錯包率,空閑斷開定時器、平均失效前時間、平均恢復前時間、需要應用策略的源和目的地址、子網、應用端口等更多復雜參數的設置。這里需要特別說明的是“Symmetrical network”對稱網絡選項,當選中為Yes的時候,應用網絡的規則將在數據包往返的方向上都生效。
根據當前所使用衛星鏈路實際情況設置一個帶寬為E1(2.048Mbps)、延時 500ms左右、丟包率在10%左右的規則,為了更為接近實際環境,需要20.1.1.0網段的流量經過網卡1穿越測試主機后通過網卡2轉發,因此在配置延時和丟包率時對兩塊網卡做了分別配置,即網卡1 247ms延時、5%丟包率,網卡2 248ms時延、5%丟包率,這里沒有分別設置250ms時延主要是考慮經過了虛擬機處理會有一定的附加延遲。也可單獨在一塊網卡上配置495ms延遲和10%的丟包率,由于上例中“對稱網絡”選項選擇yes,對于流入和流出網卡的同一往返流量均會應用配置的相應參數。配置完成后點擊保存設置按鈕,規則即刻生效,同時,可通過點擊檢測當前狀態按鈕查看如圖4所示的目前生效的策略。
策略配置完畢,就可以測試了,測試方法是登錄AP1,發送 100個 Ping包至AP2以太網接口地址,可以看到如下的統計信息丟包率為13%、往返時延平均值為500ms與設置值較為匹配。


至此仿真環境已初步搭建并測試完畢,可以使用移動設備分別接入AP1 和 AP2,測試視頻應用在當前環境下是否正常了。這里要特別說明的是,由于AP2需要在兩根不同頻率天線之間轉發流量,需要通過“undo l2fw wlanclient-ISOlation enable” 命令關閉默認開啟的二層用戶隔離功能。另外,本例中只是對帶寬、延時、丟包率三個參數進行了配置,其他參數讀者可根據實際需求有針對性的進行調整。同時,WANem還提供了WANalyer廣域網學習工具,通過該工具可以預先對目標網絡的丟包、時延、抖動進行測試,并自動生成參數設置腳本,這就讓我們的仿真環境更具客觀性和針對性了。