NextEPC是由C语言实现的开源LTE核心网,并且在最新版本的ubuntu系统上面,提供了NextEPC的包,2019年5月,NextEPCv1.0.0发布,支持以下功能:
1、符合LTE版本14
2、AES,Snow3G,ZUC加密算法
3、支持使用Milenage的USIM卡
4、多个PDN支持
5、支持S1/X2切换
6、支持IPV6
7、支持CSFB和SMSoS(SMS Over SGs)
8、支持VoLTE
这部分可以参考srslte搭建这篇博客,很详细,这里不再赘述。
如果你是ubuntu18.04系统,那么你可以通过包管理器安装,可参考nextepc官网,这里详细介绍一下通过源码构建。
1、安装MongoDB
MongoDB用于NextEPC的数据库。
输入下面命令:
sudo apt-get update
sudo apt-get -y install mongodb
sudo systemctl start mongodb
2、定义 TUN 虚拟网口
通过编写pgwtun的配置文件创建它。
sudo sh -c "cat << EOF > /etc/systemd/network/99-nextepc.netdev
[NetDev]
Name=pgwtun
Kind=tun
EOF"
sudo sh -c "cat << EOF > /etc/systemd/network/99-nextepc.network
[Match]
Name=pgwtun
[Network]
Address=45.45.0.1/16
Address=cafe::1/64
EOF"
sudo systemctl enable systemd-networkd
sudo systemctl restart systemd-networkd
3、安装依赖项
sudo apt-get -y install autoconf libtool gcc pkg-config \
git flex bison libsctp-dev libgnutls28-dev libgcrypt-dev \
libssl-dev libidn11-dev libmongoc-dev libbson-dev libyaml-dev
4、下载源码并构建
git clone https://github.com/nextepc/nextepc
cd nextepc
autoreconf -iv
./configure --prefix=`pwd`/install
make -j `nproc`
make install
5、运行Nextepc
在nextepc目录下面运行:
./nextepc-epcd
6、安装WebUI
先安装Node.js
sudo apt-get -y install curl
curl -sL https://deb.nodesource.com/setup_10.x | sudo -E bash -
sudo apt-get -y install nodejs --fix-missing
然后安装WebUI的依赖项
cd webui
npm install
最后运行WebUI
npm run dev
在浏览器中输入http://localhost:3000
即可访问。
为了让srsenb和nextepc顺利链条,需要修改enb的配置文件(当然也可以修改nextepc的配置文件),nextepc的配置文件在/nextepc/install/etc/nextepc.conf中,这里我是通过修改srsenb的配置文件使其连接。安装srsenb和nextepc主机的ip为192.168.1.103。在enb.conf中修改下面几个地方即可。
首先需要在nextepc webUI中加入ue的信息。打开http://localhost:3000后:
- Username : admin
- Password : 1423
用上面用户名和密码登录。
进去点击Edit Subscriber,然后配置下列信息:
点击SAVE即可,这些信息是之前搭建srslte白卡烧录进去的信息,故我这里没有再次烧录。需要把上述信息写进白卡才行。
配置成功后,手机即可连上基站。
输入下面命令:
echo 1 > /proc/sys/net/ipv4/ip_forward
sudo iptables -t nat -A POSTROUTING -o <'interface-name'> -j MASQUERADE
sudo iptables -I INPUT -i pgwtun -j ACCEPT
这里我只做了一个简单的速率测试,在50PRB情况下手机连上的速率。
可以看到下行可以达到15.6Mbps,而且手机连上后相对srsepc更加稳定。
以上内容仅供参考,主要作为自己留存。