OAI搭建 SIM卡(2018-11更新版)

三步走教程的最后一篇,也搁置了比较久。这里的UE是用白卡烧写的SIM卡,不是oaisim。步骤不多,细心+耐心。预警:如果遇到可以注册但不能上网,比较难解决。 后文再谈

0、前期准备

(1)成功连接的OAI eNB 和OAI EPC。有几个基本标志:1、eNB侧运行scope可以弹出观察窗,且不会提示eNB 没有 associated with MME; 2、EPC侧可以观测到mme与eNB连上了。
(2)可编程白卡(programmed SIM card)+读卡器。笔者的SIM卡是某宝网购的。
(3)手机一枚。我用的荣耀V10。

1、EPC处修改信息:

在浏览器访问数据库。用户名是root,密码是之前自己设置的:

localhost/phpmyadmin

在左侧栏操作,选择oai_db。

(1)选择用户(点击users)
OAI搭建 SIM卡(2018-11更新版)_第1张图片

这个用户和之前填的MCC和MNC有关。我之前配置文件中都是208/93,所以选择开头是20893的任何用户均可(建议用20893)。这里选择的是208930000000005的那个用户。点击edit,核对如下信息:

OAI搭建 SIM卡(2018-11更新版)_第2张图片

上述信息中需要修改的有NOT_PURGED。key和OPc如果跟我一样就可以先不管,不一样的话等等在写卡部分谈。注意表中“mmeidentity_idmmeidentity”的值是1。

(2)核对mmeidentity值(点击mmeidentity)

我的主机名是nano,因此对应的mmehost是nano.openair4G.eur,可以看到其idmmeidentity值为1。如果是其他主机名,如wty,其idmmeidentity值为4,那么对应(1)中的值也要修改为4。反正对应相等就行。
OAI搭建 SIM卡(2018-11更新版)_第3张图片

(3)新建apn(点击apn)
OAI搭建 SIM卡(2018-11更新版)_第4张图片

点击Insert插入一条apn,内容对着图抄就行。

(4)修改pgw(点击pgw)

修改一条pgw记录,我修改的id是3(忘了是修改的还是添加的新纪录了)。ipv4就写EPC的地址,ipv6对应。记住这条pgw的id。

OAI搭建 SIM卡(2018-11更新版)_第5张图片

(5)修改pdn(点击pdn)

找到(1)中选择的用户,这里要注意的就是pgw_id的值要和(4)中刚刚修改的那条id对应。
OAI搭建 SIM卡(2018-11更新版)_第6张图片

2、写卡

将白卡插入读卡器,需要填写的信息如下:
OAI搭建 SIM卡(2018-11更新版)_第7张图片

三个我画椭圆的:
(A)IMSI15:在(1)中你的选择;
(B)KI:(1)中查到的key值,左边有个框不要勾起来;
(C)OPC:(1)中查到的OPc值。
框框里头的是可以用旁边的auto自动生成的。
SPN自己取,这个就是之后手机左上角的运行商的名字了。搞定之后左边有一个Same with LTE点一下。

关于KI和OPc的值。我们一共有5个变量,列举如下:
(1)phpmyadmin中的key值
(2)phpmyadmin中的OPc值
(3)hss.conf中的OP值
(4)SIM卡中需要烧写的KI值
(5)SIM卡中需要烧写的OPc值
他们的关系是:
(2)是电脑自动计算的(根据(1)和(3))
(1)=(4)
(2)=(5)
如果你的key值(1)是:8BAF473F2F8FD09487CCCBD7097C6862
且/usr/local/etc/oai/hss.conf中的OP值(3)是:1006020f0a478bf6b699f15c062e42b3
那么你的OPc值(2)就是:e734f8734007d6c5ce7a0508809e7e9c

如果你采取其他的(1)或(3)值,那么根据我上面描述的对应关系,自行修改这些值。

3、手机端:

插入白卡,接下来的操作就和具体手机有关系了。我的是华为荣耀V10。找到设置网络的界面。我的如下:
OAI搭建 SIM卡(2018-11更新版)_第8张图片

(1)添加一条apn,名字随便取,APN为oai.ipv4,其他可以都不填
(2)打开数据国际漫游!很重要。
(3)点击网络运营商,关闭自动选择,然后手机会自动搜索可用运营商,过一会儿就能搜到20893了。点击,注册,即可享受网络。

4、遇到的坑

其实过得有点久了,记不太清,主要有这几个:

(1)不支持的SIM卡。之前用的库存的卡,结果是老型号的卡,OAI并不支持,因此也读不出任何信息来。一般是新买的卡不会出现这个问题。至于后来买的卡是某宝买的,就不挂链接了,买之前问一下支不支持OAI就行。

(2)不支持的频段。eNB的教程里建立用的是band7的conf(band7一般是国外的频段)。我的是荣耀V10,并不支持band7,于是也搜不到20893的运营商。解决方案:A.更换支持band7的手机(支不支持可以去百度手机配置,这里又有个坑是小米5明明写了支持band7,却搜不到,仔细了解才知道小米5支持的band7不完整。)B.用其他频段建立eNB,笔者后来限于没有手机,用band3建立了eNB。

这里我分享一下我建立band3采用的conf文件:

https://download.csdn.net/download/qq_42030961/10783282

(3)可以注册进网络但不能上网。这个问题非常复杂且不好解决。首先必须100%确认上文的信息是认真改了的,然后再去查看是哪里报错了,这个得具体问题具体分析。如果无法注册进网络,估计是OPc/KI之类的值导致的鉴权错误。如果搜不到网络,估计是手机频段的问题了。如果试了什么都不能解决:

重装eNB是一个值得尝试的选择。——作者亲身经历

下面解决方法贴自OAI官网:

https://gitlab.eurecom.fr/oai/openairinterface5g/wikis/HowToConnectCOTSUEwithOAIeNBNew

Issue 3: UE Connects but cannot access Internet.

  • TESTED: See last section of EPC USER Guide 1 on how to connect eNB
    and EPC machine without using switch in between and changing
    interface MTU. You can also try to build a VPN between EPC and eNB
    machine and set the MTU of VPN interface to say 1600. We have not
    tried but here is example tutorial,
    http://blog.boyeau.com/cheat-sheet-establishing-a--tunnel-between-2-linux-servers/.
    Please let us know if this works for you on the mailing list with
    detailed instructions on how you did it. It will help the community
  • TESTED: Root the phone and manually change the MTU on the phone to
    1400 using ifconfig or any other utility once the phone is connected.
    This will work on Android phones.
  • NOT TESTED: You can simply change
    the MTU of both EPC and eNB machines to 1600 and connect them
    directly. If they are connected together via switch/router, then you
    need to inspect switch configuration that it does not
    assemble/dis-assemble packets. We simply recommend to connect them
    directly to avoid issues with switch configuration which is not easy
    to document and can result in unpredicable behavior in the network if
    done incorrectly. If you make this work, please create a tutorial
    with detailed instructions to help the community to help our open
    source project
  • NOT TESTED: Install EPC in a KVM or VMWARE on the
    same machine running eNB (natively). So, this machine has to be at
    least 8 cores w/ 16 GB RAM. Then change the MTU of bridge and all its
    associated interfaces to 1600 and use this interface for S1 link
    between eNB/EPC. There is VMWARE image you can readily use for this.
    Checkout the VMWARE image from here,
    https://gitlab.eurecom.fr/oai/openairinterface5g/wikis/HowToConnectCOTSUEwithOAIeNBNew#example-vmware-image-with-working-core-network-installation-for-47x-linux-kernel.
    This might create real-time issues esp. with USB based SDRs like,
    USRP B210, so we have to see how well this works. Community testing
    will help out with this as every configuration is slightly different.
    Please DO NOT install EPC/eNB natively on the same machine due to
    conflicting packages/kernel and so on. If you make this work, please
    create a tutorial with detailed instructions to help the community to
    help our open source project

遇到的问题是隔了比较久写的。没谈到的点,欢迎在评论区讨论。

你可能感兴趣的:(OAI的从零奋斗之路)