最近使用USRP B210和OAI搭建成功,其中EPC和ENB分別位於不同主機。UE使用的是商用手機,將相關信息寫入白卡後,插入手機,手機可以上網。其主要步驟分:搭建EPC、搭建ENB、配置白卡等。今天先介紹EPC搭建過程,ENB和白卡相關過程,後續補上。
貼圖防水
關於OAI這裏就不在介紹,既然你已經訪問此頁面,想必也有所瞭解。本教程基本上根據OAI官網:https://gitlab.eurecom.fr/oai/openairinterface5g/wikis/HowToConnectCOTSUEwithOAIeNBNew 來操作的,由於源碼版本更新換代比較快,難以保證對任何版本有效,還請大家多多參照官方文檔。
1 系統準備
EPC對主機性能要求不高,因此不必進行電源管理之類的設置。另外,EPC要求內核版本大於4.7,我這裏直接裝的是Ubuntu16.04.2,不用更換內核,直接開始搭建EPC。多說一句,防止有同學對Linux不熟。裝好系統後,執行sudopasswd。輸入當前用戶密碼後,設置好root密碼。
另外,爲了方便配置,我裝系統時主機名就叫nano(跟官方教程一致)。如果主機名不是nano也沒事,在後續配置過程中,將所有出現nano的地方改爲你的主機名,同時在數據庫mmeidentity表裏,添加一條記錄,該記錄與主機名對應。
2 獲取源碼
2.1 安裝git
sudo apt-get update
sudo apt-get install subversion git
2.2 獲取EPC源碼
git clone https://gitlab.eurecom.fr/oai/openair-cn.git
這裏再囉嗦一句,cd ~ 的意思是進入用戶主目錄。一般你非root登錄(假設用戶名爲:abc)成功,工作目錄就在 /home/abc,這裏我普通用戶登錄,直接克隆,這樣源碼包就位於/home/abc中,想在別的文件夾進去該源碼包,直接 cd ~/openair-cn即可,其效果與 cd /home/abc/openair-cn相同
3 編譯和配置
3.1配置FQDN
(1)執行 su root 輸入root密碼,切換爲root用戶。
(2)執行 hostname 查詢主機名。(我這裏主機叫nano)
(3)執行 vi /etc/hosts 編輯hosts文件(如果有同學不會使用VI編輯器,可執行 chmod u+w /etc/hosts 獲取當前用戶對該文件寫入權限,然後進去圖形界面, 使用文本編輯器編輯)在hosts 開頭添加如下信息:
127.0.0.1 localhost
127.0.1.1 nano.openair4G.eur nano #假設你的hostname叫abc,這裏就是127.0.1.1 abc.openair4G.eur abc
127.0.1.1 hss.openair4G.eur hss
(4)編輯完hosts文件後,執行 hostname -f 會輸出 nano.openair4G.eur(和3.1-(3)一個道理)
3.2 安裝額外軟件包
(1)由於自動編譯命令,執行過程中安裝Mysql會失敗,所以需要提前安裝mysql .執行 sudo apt-get install mysql-server 設置root密碼爲 Linux(出現的界面 我全選 yes)
(1) 安裝apache2:
sudo apt-get install apache2
測試apache2:
瀏覽器訪問 localhost或者127.0.0.1 會出現apache2主頁
(2) 安裝php
apt-get install php7.0
apt-get install libapache2-mod-php7.0
重啓apache2: service apache2 restart 或者 sudo/etc/init.d/apache2 restart
測試php
在/var/www/html裏面新建info.php
vim /var/www/html/info.php或者 gedit /var/www/html/info.php
在該文件裏添加php語句:<?php echo ‘hello world’;?> 保存退出
然後瀏覽器訪問localhost/info.php或者127.0.0.1/info.php 瀏覽器會顯示hello world頁面
(3) 安裝mysql
sudo apt-get install mysql-server mysql-client
測試mysql
輸入 mysql –uroot –p 輸入安裝mysql時設置的root密碼
會出現mysql操作界面
(4) 安裝 phpmyadmin
sudo apt-get install phpmyadmin
然後
sudo ln -s /usr/share/phpmyadmin /var/www/html
測試phpmyadmin
然後瀏覽器訪問localhost/phpmyadmin或者127.0.0.1/phpmyadmin 瀏覽器會顯示數據庫登錄頁面
如果報錯:mbstringextension is missing.Please check your PHP configuration.
解決辦法:
將/etc/php/7.0/mods-available/json.ini文件裏第二行的分號去掉
然後重啓apache2(service apache2 restart)
(2)進去EPC源碼文件夾openair-cn ,執行自動安裝命令,如果沒紅色報錯,表示安裝成功。(我沒翻牆,只更換了個hosts文件)
cd openair-cn
git checkout develop
git pull
cd scripts
./build_mme -i
./build_hss -i
./build_spgw -i
3.3 配置EPC
(1)執行如下命令,將配置文件放到該放的位置。不懂得話,請看2.2後面囉嗦的那句。這裏etc由於源碼版本不同大小寫不同,具體情況看openair-cn文件夾裏面是大寫還是小寫。由於我用的是develop版本,所以是小寫。
su nano
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
(2)切換至root,執行ifconfig查詢網卡名和IP地址。(我這裏EPC主機網卡名爲eno1 ipv4地址爲10.105.41.38)
(3)執行 vi /usr/local/etc/oai/mme.conf 配置MME。MCC MNC之類的基本不用改變,後面配置ENB時,只有和這邊一致就行。具體見下圖:
(4)vi /usr/local/etc/oai/spgw.conf 配置SPGW DNS可以自定義,如果不知道有效的DNS地址,就如圖即可。
(5)vi /usr/local/etc/oai/hss.conf 配置HSS 設置用戶名 密碼 op_key先不管。
(6)vi /usr/local/etc/oai/freeDiameter/hss_fd.conf 確保 Identity
= "hss.openair4G.eur"
Realm = "openair4G.eur"
(7)vi /usr/local/etc/oai/freeDiameter/mme_fd.conf 確保裏面信息如下:
Identity = "nano.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";};
還是提醒一下,這裏的nano因主機名而定,若你的主機名爲abc 那Identity
就是
abc.openair4G.eur
3.4 編譯和運行
安裝證書:
進入/openair-cn/scripts
./check_hss_s6a_certificate /usr/local/etc/oai/freeDiameter/ hss.openair4G.eur
./check_mme_s6a_certificate /usr/local/etc/oai/freeDiameter/
nano
.openair4G.eur
(1)編譯&運行HSS(sudo 或者root)
進入/openair-cn/scripts
(2)編譯&運行MME./build_hss ./run_hss -i ~/openair-cn/SRC/OAI_HSS/db/oai_db.sql (只在初次運行HSS,執行一次,導入HSS數據庫,以後運行hss直接./run_hss)
進入/openair-cn/scripts
./build_mme
./run_mme
(3)編譯&運行SPGW
進入/openair-cn/scripts
./build_spgw
./run_spgw
(4)HSS MME SPGW運行圖,分別如下所示:
HSS
MME
SPGW