很多童鞋在微信或者QQ群中經常詢問我的測試環境搭建過程,由于本人工作繁忙無法一一解答,在此将搭建過程釋出到部落格,希望對大家搭建測試環境有借鑒意義,如有錯誤,請私信指正,謝謝各位!
oai epc網絡搭建
1、準備工具
- 雙網卡工控機一台(運作ubuntu系統和EPC)
- 筆記本電腦一台(用于配置實驗小基站參數)
- smallcell實驗小基站一台
- SIM白卡一張
- 燒卡器一個
- 測試手機一台(本次測試使用榮耀8X手機測試)
有圖有真相:
2、基站配置
基站采用朋友公司的成品實驗小基站,最大發射功率23dbm,不涉及程式編譯,直接拿來配參數,具體配置過程不做介紹,關鍵參數配置如下:
基站S1口IP:192.168.170.100
核心網IP:192.168.170.200(MME綁定的網卡IP)
基站TAC:1 (此處必須與核心網一緻)
基站PLMN:20893(此處必須與核心網一緻)
基站頻點:38950
3、安裝OAI EPC
3.1 運作環境
使用的作業系統和核心版本見下截圖:
網卡IP配置見下截圖,其中enp2s0是EPC綁定的網卡,enp3s0是連接配接網際網路的網卡,lo是本地環回測試網卡,在後面配EPC網元參數要使用對應的網卡名和IP位址:
3.1安裝git
sudo apt-get update
sudo apt-get install subversion git
3.2 擷取oai epc源碼
git clone https://gitlab.eurecom.fr/oai/openair-cn.git
查詢主機名字,我的主機名是epc,然後執行sudo gedit /etc/hosts 打開并編輯hosts檔案,把第二行對應位置替換為epc:
3.3 安裝輔助軟體
3.3.1 安裝apache
sudo apt-get install apache2
浏覽器輸入 localhost,出現apache首頁說明安裝OK:
3.3.2 安裝php
apt-get install php7.0
apt-get install libapache2-mod-php7.0
3.3.3 安裝mysql
sudo apt-get install mysql-server mysql-client
注意,安裝mysql時要設定賬号使用者名和密碼,記錄下賬戶名和密碼,後面配hss參數需要使用
3.3.4 安裝phpmyadmin
sudo apt-get install phpmyadmin
然後在浏覽器輸入 localhost/phpmyadmin,出現資料庫登陸界面:
3.4 編譯MME、HSS、SPGW網元
cd openair-cn
git checkout develop //本次搭建EPC使用develop分支,網友們也可以嘗試使用master分支搭建
git pull
cd scripts
./build_mme -i
./build_hss -i
./build_spgw -i
注意:編譯過程會下載下傳相關的軟體,是以可能比較慢,需要耐心等待
3.4 配置網元參數
在配置網元參數之前先執行如下指令将配置檔案copy到對應位置:
sudo mkdir -p /usr/local/etc/oai/freeDiameter
sudo cp ~/openair-cn/etc/mme.conf /usr/local/etc/oai
sudo cp ~/openair-cn/etc/hss.conf /usr/local/etc/oai
sudo cp ~/openair-cn/etc/spgw.conf /usr/local/etc/oai
sudo cp ~/openair-cn/etc/acl.conf /usr/local/etc/oai/freeDiameter
sudo cp ~/openair-cn/etc/mme_fd.conf /usr/local/etc/oai/freeDiameter
sudo cp ~/openair-cn/etc/hss_fd.conf /usr/local/etc/oai/freeDiameter
3.4.1 配置MME
執行sudo gedit /usr/local/etc/oai/mme.conf打開mme.conf檔案修改配置參數,MME網元負責S1口控制面協定處理,涉及關鍵協定參數有PLMN(MCC+MNC)、TAI見下截圖,配置和基站側配置保持一緻,否則基站給MME發送s1_setup_req消息請求建立S1口連接配接會失敗,無法建立射頻小區
IP配置如下,注意用MME綁定的網卡名enp2s0和IP位址(192.168.170.200)替換配置檔案中的參數
3.4.2 配置SPGW
執行sudo gedit /usr/local/etc/oai/spgw.conf打配置檔案
先配置SGW參數,将網卡名字和IP改為和配置一緻:
PGW配置
網卡名仍然是enp2s0,由此可見MME、SGW、PGW使用同一個網卡:
3.4.3 配置HSS
執行sudo gedit /usr/local/etc/oai/hss.conf 打開hss.conf配置檔案
填寫安裝mysql時設定的資料庫賬号,username = root,password= linux
資料庫名字我設定為epc_db
3.4.4 修改freeDiameter使用的參數
執行sudo gedit /usr/local/etc/oai/freeDiameter/hss_fd.conf 確定 Identity = “hss.openair4G.eur” Realm = “openair4G.eur”
sudo gedit /usr/local/etc/oai/freeDiameter/mme_fd.conf,確定如下資訊正确:
Identity = “epc.openair4G.eur”
Realm = “openair4G.eur”;
ConnectPeer= “hss.openair4G.eur” { ConnectTo =“127.0.0.1”; No_SCTP ; No_IPv6; Prefer_TCP; No_TLS; port = 3868; realm = “openair4G.eur”;}
3.5 編譯&運作
編譯前需要安裝證書:
cd /openair-cn/scripts //進入scripts目錄
./check_hss_s6a_certificate /usr/local/etc/oai/freeDiameter/ hss.openair4G.eur
./check_mme_s6a_certificate /usr/local/etc/oai/freeDiameter/ epc.openair4G.eur
在/openair-cn/scripts目錄下:
./build_mme
./run_mme
./build_spgw
./run_sgpw
./build_hss
./run_hss -i ~/openair-cn/SRC/OAI_HSS/db/epc_db.sql
注意,此語句隻在第一次調用hss時執行,目前是建立HSS使用的epc_db資料庫,後續執行hss隻需要輸入./run_hss即可
MME、HSS、SPGW運作之後,把基站的WAN口和EPC綁定的網口用網線連接配接,對基站上電,等待基站發起S1_SETUP_REQ消息與MME建立連接配接,連接配接建立成功,見下截圖:
3.6 配HSS資料庫
登陸資料庫,賬号和使用者名與hss配置檔案中的一緻:
3.6.1 設定APN
測試環境apn配置為cmnet
3.6.2 配置MME ID
3.6.3 配置PDN
本次測試user_imsi使用了20893000000001:
3.6.4 配user
本次測試user_imsi使用了20893000000001,記錄下表中IMSI對應的K、opc參數,後續燒卡使用:
HSS資料庫配置完畢!!!
3.7 燒卡
燒卡步驟請參考jackpaul的部落格:
https://blog.csdn.net/u013429928/article/details/75319585
**注意:**測試使用enb、mme配置的PLMN是20893,是以寫卡時需要将涉及到PLMN的位置改為20893
3.8 上網測試
3.8.1 設定手機APN名稱:
位置:移動網絡->移動資料->接入點名稱(APN)->添加APN
**注意:**手機中的apn設定必須和hss中的一緻,否則會引起EPC程式跑飛,hss中設定為cmnet,是以手機也設定為cmnet
3.8.2 設定網卡資料轉發
ubuntu運作在雙網卡環境上,EPC綁定的網卡和連接配接網際網路的網卡使用了不同的網卡,是以需要把PGW進出的資料和連接配接網際網路的網卡設定轉發,否則無法上網,資料轉發指令格式如下:
sudo iptables -A FORWARD -i gtp0 -o 連接配接網際網路的網卡名 -j ACCEPT
sudo iptables -t nat -A POSTROUTING -o 連接配接網際網路的網卡名 -j MASQUERADE
本次測試環境連接配接網際網路的網卡名為enp3s0,iptables指令的使用,有意願的童鞋可以深入了解下。
然後把手機飛行、去飛行,或者重新啟動,即可連接配接到測試網絡上網。
網絡測速: